Von Neumann arkitektur

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 16. januar 2018; checks kræver 52 redigeringer .

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.

Historien om udtrykket

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å ENIACMoore 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.

Von Neumanns principper

Princippet om hukommelseshomogenitet

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ålretning

Strukturelt 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 programstyring

Alle 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:

  1. prototype  - Manchester lille eksperimentel maskine  - University of Manchester , Storbritannien, 21. juni 1948;
  2. EDSAC  - University of Cambridge , Storbritannien, 6. maj 1949;
  3. Manchester Mark I  - University of Manchester , Storbritannien, 1949;
  4. BINAC  - USA, april eller august 1949;
  5. CSIR Mk 1  - Australien, november 1949;
  6. EDVAC  - USA, august 1949 - faktisk lanceret i 1952;
  7. CSIRAC  - Australien, november 1949;
  8. SEAC  - USA, 9. maj 1950;
  9. ORDVAC  - USA, november 1951;
  10. IAS-maskine  - USA, 10. juni 1952;
  11. MANIAC I  - USA, marts 1952;
  12. AVIDAC  - USA, 28. januar 1953;
  13. ORACLE  - USA, slutningen af ​​1953;
  14. WEIZAC  - Israel, 1955;
  15. SILLIAC  - Australien, 4. juli 1956.

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.

Flaskehals i von Neumann arkitektur

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] .

Se også

Noter

  1. John von Neumann . Første udkast til en rapport om EDVAC . University of Pennsylvania (30. juni 1945). Hentet 28. august 2013. Arkiveret fra originalen 6. april 2015.
  2. Yuri Polunov. Forfatter!!!  // PC Week/Russian Edition. - 2006. - Nr. 20 (530) .
  3. Cragon, HG Computerarkitektur og implementering . - Cambridge University Press, 2000. - S.  2 . — 238 sider. - ISBN 978-0-521-65168-4 .
  4. Goldstine, 1980 , s. 255.
  5. Burks AW, Goldstine HH, Neumann J. Indledende diskussion af det logiske design af et elektronisk computerinstrument. - Institute for Advanced Study, Princeton, NJ, juli 1946.
  6. Smirnov A.D. Computersystemarkitektur: Lærebog for universiteter. - M. : Nauka, 1990. - S. 104. - 320 s. - ISBN 5-02-013997-1 .
  7. Backus, John W. Kan programmering befries fra von Neumann-stilen? En funktionel stil og dens algebra af programmer  (engelsk)  : tidsskrift. - doi : 10.1145/359576.359579 .
  8. Dijkstra, Edsger W. EW Dijkstra Archive: En gennemgang af 1977 Turing Award Lecture . Hentet 11. juli 2008. Arkiveret fra originalen 26. februar 2020.
  9. En prototype af en computer med en anden von Neumann-arkitektur blev skabt. Arkiveret 21. november 2015 på Wayback Machine / Lenta.ru, 2015-07-07
  10. Forskere bygger en computer, der fungerer mere som den menneskelige hjerne: SCIENCE: Tech Times . Hentet 22. november 2015. Arkiveret fra originalen 22. november 2015.
  11. Memcomputing NP-komplette problemer i polynomisk tid ved hjælp af polynomielle ressourcer og kollektive tilstande Arkiveret 22. november 2015 på Wayback Machine / Science Advances 3. juli 2015: Vol. 1, nr. 6, e1500031 DOI:10.1126/sciadv.1500031  (engelsk)

Litteratur

Links