von Neumann-arkitekturen ( von Neumann- model , Princeton -arkitektur) er et velkendt princip for fælles lagring af kommandoer og data i computerhukommelsen . Computermaskiner af denne art omtales ofte med udtrykket "von Neumann-maskine", men overensstemmelsen mellem disse begreber er ikke altid entydig. Generelt, når folk taler om von Neumann-arkitekturen, mener de princippet om at lagre data og instruktioner i den samme hukommelse.
Grundlaget for doktrinen om computernes arkitektur blev lagt af John von Neumann i 1944, da han deltog i skabelsen af verdens første vakuumrørcomputer ENIAC . Mens man arbejdede på ENIAC på Moore Institute ved University of Pennsylvania, opstod ideen om en mere avanceret maskine kaldet EDVAC under adskillige diskussioner mellem von Neumann og hans kolleger John William Mauchly , John Eckert , Herman Goldstein og Arthur Burks . Forskningsarbejdet om EDVAC fortsatte sideløbende med konstruktionen af ENIAC.
I marts 1945 blev principperne for den logiske arkitektur formaliseret i et dokument kaldet " First Draft Report on EDVAC " - en rapport for US Army Ballistics Laboratory, hvis penge opførelsen af ENIAC og udviklingen af EDVAC blev udført på . Rapporten, da den kun var et udkast, var ikke beregnet til offentliggørelse, men kun til distribution inden for gruppen, men Herman Goldstein , projektkurator fra den amerikanske hærs side, reproducerede dette videnskabelige arbejde og sendte det til en bred kreds af videnskabsmænd til gennemgang. Da kun von Neumanns navn [1] optrådte på den første side af dokumentet , havde de, der læste dokumentet, det falske indtryk, at han var forfatteren til alle de ideer, der blev præsenteret i værket. Dokumentet gav nok information til dem, der læste det, til at bygge deres computere som EDVAC på de samme principper og med den samme arkitektur, som til sidst blev kendt som "von Neumann-arkitekturen."
Efter afslutningen af Anden Verdenskrig og færdiggørelsen af arbejdet på ENIAC i februar 1946, brød holdet af ingeniører og videnskabsmænd op, John Mauchly , John Eckert besluttede at gå ind i forretningen og skabe computere på kommercielt grundlag. Von Neumann, Goldstein og Burks gik videre til Institute for Advanced Study , hvor de besluttede at bygge deres EDVAC - lignende " IAS machine " computer og bruge den til forskningsarbejde. I juni 1946 skitserede de [2] [3] deres principper for at konstruere computere i den nu klassiske artikel "Foreløbig overvejelse af det logiske design af en elektronisk computerenhed" [4] [5] [6] . Mere end et halvt århundrede er gået siden da, men bestemmelserne i den er stadig relevante i dag. Artiklen underbygger overbevisende brugen af det binære system til at repræsentere tal, og faktisk tidligere lagrede alle computere behandlede tal i decimalform. Forfatterne demonstrerede fordelene ved det binære system til teknisk implementering, bekvemmeligheden og letheden ved at udføre aritmetiske og logiske operationer i det. I fremtiden begyndte computere at behandle ikke-numeriske typer information - tekst, grafisk, lyd og andre, men binær datakodning danner stadig informationsgrundlaget for enhver moderne computer.
En anden revolutionær idé, hvis betydning næppe kan overvurderes, er princippet om "lagret program". Oprindeligt blev programmet sat ved at installere jumpere på et specielt patchpanel. Dette var en meget tidskrævende opgave: for eksempel tog det flere dage at ændre programmet på ENIAC-maskinen, mens selve beregningen ikke kunne vare mere end et par minutter - lamperne, som der var et stort antal af, svigtede . Programmet kan dog også gemmes som et sæt af nuller og etere, og i samme hukommelse som de tal, det behandler. Fraværet af en grundlæggende forskel mellem programmet og data gjorde det muligt for computeren selv at danne et program for sig selv i overensstemmelse med resultaterne af beregninger.
Tilstedeværelsen af et givet sæt af eksekverbare kommandoer og programmer var et karakteristisk træk ved de første computersystemer. I dag bruges et lignende design til at forenkle designet af en computerenhed. Så desktop- beregnere er i princippet enheder med et fast sæt af eksekverbare programmer. De kan bruges til matematiske beregninger, men næsten umulige at bruge til tekstbehandling og computerspil , til at se grafiske billeder eller videoer . Ændring af firmwaren til disse typer enheder kræver et næsten komplet redesign, og det er i de fleste tilfælde umuligt. Omprogrammeringen af tidlige computersystemer blev dog stadig udført, men det krævede en enorm mængde manuelt arbejde at udarbejde ny dokumentation , omskifte og genopbygge blokke og enheder osv.
Det, der ændrede alt, var ideen om at gemme computerprogrammer i delt hukommelse. På det tidspunkt, hvor det blev introduceret, havde brugen af arkitekturer baseret på eksekverbare instruktionssæt , og repræsentationen af en beregningsproces som processen med at udføre instruktioner skrevet i et program, i høj grad øget fleksibiliteten af computersystemer med hensyn til databehandling. Den samme tilgang til at overveje data og instruktioner gjorde det nemt at ændre selve programmerne.
Kommandoer og data er gemt i den samme hukommelse og kan ikke skelnes eksternt i hukommelsen. De kan kun genkendes på den måde, de bruges på; det vil sige, at den samme værdi i en hukommelsescelle kan bruges både som data og som en kommando og som en adresse, kun afhængig af den måde, den tilgås på. Dette giver dig mulighed for at udføre de samme handlinger på kommandoer som på tal, og åbner derfor op for en række muligheder . Så ved cyklisk at ændre adressedelen af kommandoen er det muligt at give adgang til successive elementer i dataarrayet. Denne teknik kaldes kommandomodifikation og er ikke velkommen fra moderne programmerings synspunkt. Mere nyttig er en anden konsekvens af princippet om homogenitet, hvor instruktionerne fra et program kan modtages som et resultat af udførelsen af et andet program. Denne mulighed ligger til grund for oversættelsen - oversættelsen af programmets tekst fra et højt niveau sprog til sproget på en bestemt computer.
Princippet om målretningStrukturelt består hovedhukommelsen af nummererede celler, og enhver celle er tilgængelig for processoren til enhver tid. Binære koder for kommandoer og data er opdelt i informationsenheder, kaldet ord, og gemt i hukommelsesceller, og for at få adgang til dem bruges numrene på de tilsvarende celler - adresser.
Princip for programstyringAlle beregninger leveret af algoritmen til løsning af problemet skal præsenteres i form af et program bestående af en sekvens af styreord - kommandoer. Hver instruktion foreskriver en operation fra det sæt af operationer, der er implementeret af computeren. Programkommandoer gemmes i sekventielle hukommelsesceller på computeren og udføres i en naturlig sekvens, det vil sige i rækkefølgen efter deres placering i programmet. Om nødvendigt kan denne sekvens ændres ved hjælp af specielle kommandoer. Beslutningen om at ændre rækkefølgen for udførelse af programkommandoer træffes enten på grundlag af en analyse af resultaterne af tidligere beregninger eller ubetinget.
Efter planen skulle den første computer bygget efter von Neumann-arkitekturen være EDVAC (Electronic Discrete Variable Automatic Computer) – en af de første elektroniske computere. I modsætning til sin forgænger ENIAC var det en binær snarere end en decimalbaseret computer. Ligesom ENIAC blev EDVAC udviklet ved Moore Institute ved University of Pennsylvania til US Army Ballistic Research Laboratory af et hold af ingeniører og videnskabsmænd ledet af John Presper Eckert og John William Mauchley med aktiv hjælp fra en matematiker, dog indtil 1951 , EDVAC blev ikke lanceret fra -på grund af tekniske problemer med at lave pålidelig computerhukommelse og uenigheder inden for udviklingsteamet. Andre forskningsinstitutter, der havde stiftet bekendtskab med ENIAC og EDVAC-projektet, var i stand til at løse disse problemer meget tidligere. De første computere til at implementere hovedtrækkene i von Neumann-arkitekturen var:
I USSR var den første fuldt elektroniske computer tæt på von Neumanns principper MESM , bygget af Lebedev (på grundlag af Kiev Institute of Electrical Engineering fra Academy of Sciences i den ukrainske SSR ). MESM som prototype blev først lanceret offentligt den 6. november 1950, og allerede som en fuldgyldig maskine bestod statens accepttests den 25. december 1951.
Deling af bussen til programhukommelse og datahukommelse fører til en flaskehals i von Neumann-arkitekturen, nemlig begrænsningen af båndbredden mellem processor og hukommelse sammenlignet med mængden af hukommelse. Fordi programhukommelse og datahukommelse ikke kan tilgås på samme tid, begrænser processor-til-hukommelse båndbredde og hukommelseshastighed markant processorens hastighed – meget mere, end hvis programmer og data blev lagret forskellige steder.
Dette problem løses ved at forbedre caching -systemer , hvilket igen komplicerer systemarkitekturen og øger risikoen for sidefejl (for eksempel problemet med hukommelsessammenhæng ).
Udtrykket "flaskehals i von Neumann-arkitektur" blev introduceret af John Backus i 1977 i hans foredrag "Kan programmering befries fra von Neumann-stilen?" , som han læste ved overrækkelsen af Turing-prisen [7] [8]
Forskere fra USA og Italien annoncerede i 2015 oprettelsen af en prototype af en meme-processor ( eng. memprocessor ) med en anden arkitektur end von Neumann og muligheden for at bruge den til at løse NP - komplet problemer [9] [10] [ 11] .
processorteknologier | Digitale|||||||||
---|---|---|---|---|---|---|---|---|---|
Arkitektur | |||||||||
Instruktionssæt arkitektur | |||||||||
maskinord | |||||||||
Parallelisme |
| ||||||||
Implementeringer | |||||||||
Komponenter | |||||||||
Strømstyring |