- Forbedring av arkitektur
- Opprinnelse
- Modell
- - Central Processing Unit (CPU)
- Logisk aritmetisk enhet
- Kontrollenhet
- Records
- - Minne
- - Inngangsutgang
- - Buss
- Hvordan fungerer von Neumann-arkitekturen?
- Søk etter
- Dekode
- Løpe
- Å lagre
- Flaskehals
- Fordel
- Utvikling av operativsystemer
- ulemper
- referanser
The von Neumann-arkitektur er en teoretisk konstruksjon, slik at en datamaskin kan ha et program som er lagret internt, tjener som basis for nesten alle datamaskiner som er i dag laget.
En von Neumann-maskin består av en sentral prosesseringsenhet, som inkluderer en aritmetisk logisk enhet og en kontrollenhet, pluss et hovedminne, sekundærlagring og inn / ut-enheter.
Kilde: David strigoi - Eget arbeid, Public Domain, commons.wikimedia.org
Denne arkitekturen forutsetter at hver beregning trekker ut data fra minnet, behandler det og deretter sender dem tilbake til minnet.
I en von Neumann-arkitektur brukes det samme minnet og den samme bussen for å lagre både dataene og instruksjonene som kjører et program.
Forbedring av arkitektur
Fordi data og programminne ikke kan nås samtidig, er von Neumann-arkitekturen utsatt for flaskehalser og svekker datamaskinens ytelse. Dette er det som kalles von Neumann-flaskehalsen, der strøm, ytelse og kostnader påvirkes.
En av endringene som ble gjort innebar å revurdere hvor mye data som faktisk måtte sendes til minnet og hvor mye som kunne lagres lokalt.
I stedet for å måtte sende alt til minne, kan flere cacher og proxy-hurtigbuffer redusere strømmen av data fra prosessorbrikker til forskjellige enheter.
Opprinnelse
I løpet av 1945, etter andre verdenskrig, løftet to forskere uavhengig av hvordan de skulle bygge en mer formbar datamaskin. En av dem var matematikeren Alan Turing og den andre var den like talentfulle forskeren John Von Neumann.
Britiske Alan Turing hadde vært involvert i å knekke Enigma-koden i Bletchley Park ved å bruke datamaskinen 'Colossus'. På den annen side hadde amerikaneren John Von Neumann jobbet med Manhattan Project for å bygge den første atombomben, som krevde en god del manuelle beregninger.
Inntil da var krigsmaskiner mer eller mindre "programmert" ved å koble sammen hele maskinen for å utføre en annen oppgave. For eksempel tok den første datamaskinen kalt ENIAC tre uker å koble til igjen for å gjøre en annen beregning.
Det nye konseptet besto i at i et minne ikke bare måtte dataene lagres, men også programmet som behandlet dataene skulle lagres i det samme minnet.
Denne internt lagrede programarkitekturen er ofte kjent som 'Von Neumann' -arkitekturen.
Denne nye ideen betydde at en datamaskin med denne arkitekturen ville være mye enklere å programmere. Programmet i seg selv vil bli behandlet på samme måte som dataene.
Modell
Hovedfundamentet for Von Neumann-modellen er tanken på at programmet er lagret internt i en maskin. Minneenheten inneholder dataene og også programkoden. Arkitekturdesignet består av:
Kilde: Fra UserJaimeGallego - Denne filen er avledet fra Von Neumann Architecture.svg, CC BY-SA 3.0, commons.wikimedia.org
- Central Processing Unit (CPU)
Det er den digitale kretsen som er ansvarlig for å utføre instruksjonene til et program. Det kalles også en prosessor. CPU inneholder ALU, kontrollenhet og et sett med registre.
Logisk aritmetisk enhet
Denne delen av arkitekturen er bare involvert i å utføre aritmetiske og logiske operasjoner på dataene.
De vanlige beregningene for å legge til, multiplisere, dele og trekke fra vil være tilgjengelige, men datasammenligninger som "større enn", "mindre enn", "lik" vil også være tilgjengelige.
Kontrollenhet
Den kontrollerer driften av datamaskinens ALU-, minne- og inngangs- / utgangsenheter, og instruerer dem hvordan de skal handle på instruksjonene i programmet du nettopp har lest fra minnet.
Kontrollenheten vil administrere prosessen med å flytte data og programmer til og fra minnet. Den vil også ta vare på å utføre programmets instruksjoner, en om gangen eller i rekkefølge. Dette inkluderer ideen om et register for å holde mellomverdiene.
Records
Det er høyhastighets lagringsområder på CPU-en. Alle data må lagres i et register før de kan behandles.
Minneadresseregisteret inneholder minneposisjonen til dataene som skal åpnes. Hukommelsesdataregisteret inneholder dataene som overføres til minnet.
- Minne
Datamaskinen har minne som kan inneholde data, så vel som programmet som behandler disse dataene. I moderne datamaskiner er dette minnet RAM eller hovedminne. Dette minnet er raskt og tilgjengelig direkte av CPU.
RAM er delt inn i celler. Hver celle består av en adresse og dens innhold. Adressen identifiserer hvert sted i minnet på en unik måte.
- Inngangsutgang
Denne arkitekturen gjør det mulig å fange ideen som en person trenger for å samhandle med maskinen, via inngang-utgangsenhetene.
- Buss
Informasjon må flyte mellom de forskjellige delene av datamaskinen. I en datamaskin med von Neumann-arkitekturen overføres informasjon fra en enhet til en annen langs en buss, og kobler alle CPU-enhetene til hovedminnet.
Adressebussen bærer adressene til data, men ikke data, mellom prosessoren og minnet.
Databussen bærer data mellom prosessoren, minnet og inngangsutgangsenhetene.
Hvordan fungerer von Neumann-arkitekturen?
Det relevante prinsippet i von Neumann-arkitekturen er at både data og instruksjoner blir lagret i minnet og behandlet det samme, noe som betyr at instruksjoner og data er retningsbestemt.
Det fungerer ved å bruke fire enkle trinn: finne, avkode, utføre, lagre, kalt "Maskinsyklus."
Instruksjonene hentes av CPU fra minnet. CPU avkoder deretter og utfører disse instruksjonene. Resultatet blir lagret i minnet etter at instruksjonens utførelsessyklus er fullført.
Søk etter
I dette trinnet blir instruksjonene hentet fra RAM og bufret for tilgang av kontrollenheten.
Dekode
Kontrollenheten avkoder instruksjonene på en slik måte at den logiske aritmetiske enheten kan forstå dem, og sender dem deretter til den logiske aritmetiske enheten.
Løpe
Den aritmetiske logiske enheten utfører instruksjonene og sender resultatet tilbake til cachen.
Å lagre
Når programtelleren indikerer stopp, lastes det endelige resultatet ned til hovedminnet.
Flaskehals
Hvis en Von Neumann-maskin ønsker å utføre en operasjon med data i minnet, må den overføres via bussen til CPU. Etter å ha utført beregningen, må resultatet flyttes til minnet via samme buss.
Flaskehalsen Von Neumann oppstår når data som legges inn eller fjernes fra minnet, må nøle mens den nåværende minnefunksjonen er fullført.
Det vil si at hvis prosessoren nettopp har fullført en beregning og er klar til å utføre den neste, må den skrive den ferdige beregningen, som opptar bussen, inn i minnet før den kan hente nye data fra minnet, som også bruker den samme bussen.
Denne flaskehalsen har blitt verre med tiden, fordi mikroprosessorene har økt hastigheten og på den annen side har ikke minnet avansert så raskt.
Fordel
- Kontrollenheten henter data og instruksjoner på samme måte fra minnet. Derfor er utformingen og utviklingen av kontrollenheten forenklet, den er billigere og raskere.
- Data fra inngangs- / utgangsenheter og hovedminne hentes på samme måte.
- Organiseringen av minnet utføres av programmererne, som gjør det mulig å bruke all minnekapasiteten.
- Det er enklere og lettere å administrere en enkelt minneblokk.
- Utformingen av mikrokontrollerbrikken er mye enklere, siden bare ett minne vil få tilgang til. Det viktigste med mikrokontrolleren er tilgang til RAM, og i von Neumann-arkitekturen kan dette brukes både til å lagre data og til å lagre programinstruksjoner.
Utvikling av operativsystemer
Den største fordelen med å ha det samme minnet for 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 annet program er ikke annet enn et operativsystem. Hvis programmer og data ikke ble tillatt i samme minne, som tilfellet er med von Neumann-arkitekturen, kunne operativsystemer aldri ha blitt utviklet.
ulemper
Selv om fordelene langt oppveier ulempene, er problemet at det bare er en buss som kobler minnet til prosessoren, så bare en instruksjon eller ett dataelement kan hentes av gangen.
Dette betyr at prosessoren kan måtte vente lenger på at data eller instruksjoner kommer frem. Dette er kjent som von Neumann-flaskehalsen. Siden CPU er mye raskere enn databussen, betyr dette at den ofte er inaktiv.
- På grunn av sekvensiell behandling av instruksjonene, er ikke parallell implementering av programmet tillatt.
- Ved å dele minne er det fare for at en instruksjon blir skrevet over en annen på grunn av en feil i programmet, noe som får systemet til å krasje.
- Noen defekte programmer kan ikke frigjøre minne når de er ferdige med det, noe som kan føre til at datamaskinen fryser på grunn av utilstrekkelig minne.
- Data og instruksjoner deler den samme databussen, selv om hastigheten som hver må hentes til vanligvis er veldig forskjellig.
referanser
- Semiconductor Engineering (2019). Von Neumann Arkitektur. Hentet fra: semiengineering.com
- Scott Thornton (2018). Hva er forskjellen mellom Von-Neumann og Harvard-arkitekturer? Tips om mikrokontroller. Hentet fra: microcontrollertips.com.
- Lær IKT (2019). Von Neumann-maskinen. Hentet fra: teach-ict.com.
- Informatikk (2019). Von Neumann Arkitektur. Hentet fra: computerscience.gcse.guru.
- Lær deg det med Mr C (2019). Von Neumann-maskinen. Hentet fra: learningitwithmrc.co.uk.
- Solid State Media (2017). Hvordan fungerer datamaskiner? Von Neumann-arkitekturen. Hentet fra: solidstateblog.com.