- Arkitektur forbedring
- Oprindelse
- Model
- - Central Processing Unit (CPU)
- Logisk aritmetisk enhed
- Styreenhed
- Records
- - Hukommelse
- - Indgangsafgang
- - Bus
- Hvordan fungerer von Neumann-arkitekturen?
- Søge efter
- Decode
- Løb
- At lagre
- Flaskehals
- Fordel
- Udvikling af operativsystemer
- Ulemper
- Referencer
Den von Neumann arkitektur er en teoretisk konstruktion, så en computer kan have et program lagret internt, der tjener som grundlag for næsten alle computere, der i øjeblikket foretages.
En von Neumann-maskine består af en central behandlingsenhed, der inkluderer en aritmetisk logik-enhed og en styreenhed, plus en hovedhukommelse, sekundær lagring og input / output-enheder.
Kilde: David strigoi - Eget arbejde, Public Domain, commons.wikimedia.org
Denne arkitektur antager, at enhver beregning udtrækker data fra hukommelsen, behandler dem og derefter sender dem tilbage til hukommelsen.
I en von Neumann-arkitektur bruges den samme hukommelse og den samme bus til at gemme både dataene og instruktionerne, der udfører et program.
Arkitektur forbedring
Da der ikke er adgang til data og programhukommelse på samme tid, er von Neumann-arkitekturen tilbøjelig til flaskehalser og computerens ydelse svækket. Det er det, der kaldes von Neumann-flaskehalsen, hvor strøm, ydelse og omkostninger påvirkes.
En af de ændringer, der blev foretaget, involverede genovervejelse af, hvor meget data, der faktisk skulle sendes til hukommelsen, og hvor meget der kunne gemmes lokalt.
I stedet for at skulle sende alt til hukommelse, kan flere cacher og proxy-cacher reducere strømmen af data fra processorchips til forskellige enheder på denne måde.
Oprindelse
I 1945, efter 2. verdenskrig, rejste to forskere uafhængigt af, hvordan man bygger en mere formbar computer. En af dem var matematikeren Alan Turing og den anden var den lige så talentfulde videnskabsmand John Von Neumann.
Britiske Alan Turing havde været involveret i krakningen af Enigma-koden i Bletchley Park ved hjælp af 'Colossus' computeren. På den anden side havde amerikaneren John Von Neumann arbejdet på Manhattan-projektet for at bygge den første atombombe, hvilket krævede en hel del manuelle beregninger.
Indtil da blev krigsmaskiner mere eller mindre "programmeret" ved at tilslutte hele maskinen for at udføre en anden opgave. For eksempel tog det den første computer, der hedder ENIAC, tre uger at genoprette forbindelsen for at foretage en anden beregning.
Det nye koncept bestod i, at ikke kun dataene skulle gemmes i en hukommelse, men også det program, der behandlede disse data, skulle gemmes i den samme hukommelse.
Denne internt lagrede programarkitektur er almindeligt kendt som 'Von Neumann' arkitektur.
Denne nye idé betød, at en computer med denne arkitektur ville være meget lettere at omprogrammere. Programmet i sig selv vil blive behandlet på samme måde som dataene.
Model
Hovedfundamentet for Von Neumann-modellen er tanken om, at programmet gemmes internt i en maskine. Hukommelsesenheden indeholder dataene og også programkoden. Arkitekturdesignet består af:
Kilde: Fra UserJaimeGallego - Denne fil er afledt af Von Neumann Architecture.svg, CC BY-SA 3.0, commons.wikimedia.org
- Central Processing Unit (CPU)
Det er det digitale kredsløb, der er ansvarlig for at udføre instruktionerne i et program. Det kaldes også en processor. CPU'en indeholder ALU, kontrolenheden og et sæt registre.
Logisk aritmetisk enhed
Denne del af arkitekturen er kun involveret i udførelse af aritmetiske og logiske operationer på dataene.
De sædvanlige beregninger af tilføjelse, multiplikation, opdeling og subtraktion vil være tilgængelige, men dataforligninger som 'større end', 'mindre end', 'lig med' vil også være tilgængelige.
Styreenhed
Den styrer betjeningen af computerens ALU-, hukommelses- og input / output-enheder og instruerer dem, hvordan de skal handle på instruktionerne i det program, du lige har læst fra hukommelsen.
Kontrolenheden administrerer processen med at flytte data og programmer til og fra hukommelsen. Det vil også tage sig af at udføre programmets instruktioner, ad gangen eller i rækkefølge. Dette inkluderer idéen om et register, der skal indeholde mellemværdierne.
Records
Det er højhastighedslagringsområder på CPU'en. Alle data skal gemmes i et register, før de kan behandles.
Hukommelsesadresseregisteret indeholder hukommelsesplaceringen af de data, der skal fås adgang til. Hukommelsesdataregisteret indeholder de data, der overføres til hukommelse.
- Hukommelse
Computeren har hukommelse, der kan indeholde data, såvel som det program, der behandler disse data. I moderne computere er denne hukommelse RAM eller hovedhukommelse. Denne hukommelse er hurtig og tilgængelig direkte af CPU'en.
RAM er opdelt i celler. Hver celle består af en adresse og dens indhold. Adressen identificerer entydigt hver placering i hukommelsen.
- Indgangsafgang
Denne arkitektur giver mulighed for at fange ideen om, at en person har brug for at interagere med maskinen, via input-output enhederne.
- Bus
Informationen skal flyde mellem de forskellige dele af computeren. I en computer med von Neumann-arkitekturen overføres information fra en enhed til en anden langs en bus, der forbinder alle CPU-enheder til hovedhukommelsen.
Adressebussen bærer adresserne til data, men ikke data, mellem processor og hukommelse.
Databussen bærer data mellem processor, hukommelse og input-output enheder.
Hvordan fungerer von Neumann-arkitekturen?
Det relevante princip i von Neumann-arkitekturen er, at både data og instruktioner gemmes i hukommelsen og behandles det samme, hvilket betyder, at instruktioner og data er retningsbestemte.
Det fungerer ved hjælp af fire enkle trin: finde, afkode, udføre, gemme, kaldet "Maskincyklus."
Instruktionerne hentes af CPU'en fra hukommelsen. CPU afkoder derefter og udfører disse instruktioner. Resultatet gemmes i hukommelsen, efter at instruktionens eksekveringscyklus er afsluttet.
Søge efter
I dette trin er instruktionerne hentet fra RAM og cache for adgang fra kontrolenheden.
Decode
Kontrolenheden afkoder instruktionerne på en sådan måde, at den logiske aritmetiske enhed kan forstå dem, og sender dem derefter til den logiske aritmetiske enhed.
Løb
Den aritmetiske logiske enhed udfører instruktionerne og sender resultatet tilbage til cachen.
At lagre
Når programtælleren indikerer stop, downloades det endelige resultat til hovedhukommelsen.
Flaskehals
Hvis en Von Neumann-maskine ønsker at udføre en operation med data i hukommelsen, skal den overføres via bussen til CPU'en. Efter udførelse af beregningen skal resultatet flyttes til hukommelsen via den samme bus.
Flaskehalsen Von Neumann opstår, når data, der indtastes eller fjernes fra hukommelsen, skal dvæle, mens den aktuelle hukommelsesoperation er afsluttet.
Det vil sige, at hvis processoren netop har afsluttet en beregning og er klar til at udføre den næste, skal den skrive den færdige beregning, der optager bussen, i hukommelsen, før den kan hente nye data fra hukommelsen, som også bruger den samme bus.
Denne flaskehals er blevet værre med tiden, fordi mikroprocessorerne har øget deres hastighed, og på den anden side er hukommelsen ikke fremskredet så hurtigt.
Fordel
- Kontrolenheden henter data og instruktioner på samme måde fra hukommelsen. Derfor er design og udvikling af styreenheden forenklet, idet den er billigere og hurtigere.
- Data fra input / output-enheder og hovedhukommelse hentes på samme måde.
- Organiseringen af hukommelsen udføres af programmererne, som gør det muligt at bruge al hukommelseskapacitet.
- Håndtering af en enkelt hukommelsesblok er enklere og lettere at opnå.
- Designet af mikrokontrolchippen er meget enklere, da der kun er adgang til en hukommelse. Det vigtigste ved mikrokontrolleren er adgang til RAM, og i von Neumann-arkitekturen kan dette bruges både til at gemme data og til at gemme programinstruktioner.
Udvikling af operativsystemer
Den største fordel ved at have den samme hukommelse til programmer og data er, at programmer kan behandles, som om de var data. Med andre ord kan du skrive programmer, hvis data er andre programmer.
Et program, hvis data er et andet program, er intet andet end et operativsystem. Hvis programmer og data ikke blev tilladt i det samme hukommelsesområde, som det er tilfældet med von Neumann-arkitekturen, kunne operativsystemer aldrig have været udviklet.
Ulemper
Selvom fordelene langt opvejer ulemperne, er problemet, at der kun er en bus, der forbinder hukommelsen til processoren, så kun en instruktion eller dataelement kan hentes ad gangen.
Dette betyder, at processoren muligvis bliver nødt til at vente længere på, at data eller instruktioner kommer frem. Dette er kendt som von Neumann flaskehals. Da CPU'en er meget hurtigere end databussen, betyder det, at den ofte er inaktiv.
- På grund af den sekventielle behandling af instruktionerne er parallelimplementering af programmet ikke tilladt.
- Ved at dele hukommelse er der risiko for, at en instruktion skrives over en anden på grund af en fejl i programmet, der får systemet til at gå ned.
- Nogle defekte programmer kan ikke frigøre hukommelse, når de er færdige med det, hvilket kan forårsage, at computeren fryser på grund af utilstrækkelig hukommelse.
- Data og instruktioner deler den samme databus, selvom hastigheden, hvormed hver skal hentes, normalt er meget forskellig.
Referencer
- Semiconductor Engineering (2019). Von Neumann Arkitektur. Taget fra: semiengineering.com
- Scott Thornton (2018). Hvad er forskellen mellem Von-Neumann og Harvard-arkitekturer? Tips til mikrokontroller. Taget fra: microcontrollertips.com.
- Undervis IKT (2019). Von Neumann-maskinen. Taget fra: teach-ict.com.
- Computer Science (2019). Von Neumann Arkitektur. Taget fra: computerscience.gcse.guru.
- Lær det med Mr C (2019). Von Neumann-maskinen. Taget fra: learningitwithmrc.co.uk.
- Solid State Media (2017). Hvordan fungerer computere? Von Neumann-arkitekturen. Taget fra: solidstateblog.com.