Von Neumanni arhitektuur

Von Neumanni arhitektuur, ka von Neumanni mudel või Princetoni arhitektuur, on arvutiarhitektuur, mis põhineb aastal 1945 matemaatik John von Neumanni välja pakutud arvuti arhitektuuri kirjeldusel uue täiselektroonilise EDVAC arvuti jaoks. Käsikiri “First Draft of a Report on the EDVAC”[1][2] kirjeldas arvuti arhitektuurilist ülesehitust, kus käske ja andmeid säilitatakse arvutis ühises mäluruumis ning arvutit juhitakse tema enese mällu salvestatud programmiga. See arvutiarhitektuur on saanud aluseks suurema osa tänapäeva arvutite disainile.

Von Neumanni arhitektuur

Terminist “von Neumanni arhitektuur” on kujunenud mõiste, mis kirjeldab kõiki siseprogrammarvuteid, milles ühise siini tõttu ei saa käskudega ja andmetega seotud operatsioonid toimuda samal ajal. Von Neumanni arhitektuuril põhinevad arvutid on lihtsama disainiga kui Harvardi arhitektuuriga arvutid, mis on samuti siseprogrammarvutid, kuid millel on eraldi aadressi- ja andmesiinid mälust lugemise/kirjutamise jaoks ning käskude mälust võtmiseks.

Kuigi mällu salvestatud programmi abil talitav ning ühitatud käsu- ja andmemäluga arvutiarhitektuur on saanud nimetuse von Neumanni järgi, siis esimesena pakkusid sellise idee välja 1944. aastal ENIAC-i projekteeriad J. Presper Eckert ja John Mauchly ning von Neumann tegelikult arendas ja viimistles nende kontseptsiooni edasi.[2][3]

AjaluguRedigeeri

 
Arvuti EDVAC

John Mauchly ja J. Presper Eckerti juhtimisel hakati 1943. aastal Ameerika Ühendriikides Pennsylvania ülikoolis ehitama arvutit ENIAC, aastal hiljem liitus projektiga ka von Neumann.[3] Aastal 1945, kui ENIAC-i ehitus oli veel käimas, avaldas von Neumann käsikirja, milles tõi välja peamised ideed elektroonilise siseprogramm üldkasutatava digitaalse arvuti ehk EDVAC-i jaoks. Pennsylvania ülikoolis 1946. aastal peetud EDVAC-i teemalised loengud olid väga populaarsed ja aitasid olulisel määral kaasa uute ideede levimisele.[2][4][5] EDVAC-i ehitamise käigus väljatöötatud uudse arvutiarhitektuuri põhimõtted toodi välja 1946. aastal ilmunud Arthur W. Burks, Herman H. Goldstine ja John von Neumanni artiklis “Preliminary Discussion of the Logical Design of an Electronic Computing Instrument”[6]. Kuigi artikkel valmis kolme autori ühistööna, on neist hiljem meeles peetud vaid ühte – John von Neumanni.

Siseprogrammarvutid olid suur edasiminek 1940. aastate programmjuhtimisega arvutitest, nagu Colossus ja ENIAC, kuna arvuti töö juhtimiseks hakati kasutama arvuti mälus säilitatavat programmi. Paljud esimesed arvutid ei olnud kas üldse ümberprogrammeeritavad (arvuti täitis vaid üht kindlat riistvarasse installeeritud programmi) või siis oli võimalik arvuti ülesannet teatud piirides muuta, kuid see nõudis palju vaeva. Näiteks kuigi ENIACi puhul oli tegemist juba täiselektroonilise arvutiga, programmeeriti seda ikka käsitsi sadade ja tuhandete pistikute ning lülitite ümberseadistamisega. Programmi ettevalmistamisele kulus tavaliselt kuu või kaks ning arvuti uue programmi jaoks töökorda seadmiseks paar päeva.[2]

TööpõhimõteRedigeeri

 
Von Neumanni mudel digitaalse arvuti jaoks[7]

Käsikirjas “First Draft of a Report on the EDVAC” kirjeldab von Neumann arhitektuurilist ülesehitust elektroonilise digitaalse arvuti jaoks, millel on järgmised komponendid:

  • keskseade, millel on aritmeetika-loogikaseade ja registrid;
  • juhtseade, millel on käsuloendur ja registrid käskude jaoks;
  • mälu, kuhu salvestatakse andmeid ja käske;
  • väline massmälu;
  • sisend-väljundseadmed.[1][7]

Võrdlus Harvardi arhitektuurigaRedigeeri

Arvutis, mis rakendab Harvardi arhitektuuri põhimõtteid, on käskude ja andmete jaoks eraldi mälud ja siinid. Sellest tulenevalt on protsessor võimeline tegelema rööpselt nii andmete kui ka käskudega, ja seda ka siis, kui puudub vahemälu. Selline arhitektuur parandab oluliselt arvuti jõudlust.[8]

Von Neumanni arhitektuur Harvardi arhitektuur
Andmetel ja käskudel ühine mälu ja siinid Andmetel ja käskudel eraldi mälud ja siinid
Infotöötlus on aeglasem, sest käsud ja andmed kasutavad ühist siini ning seega ei saa protsessor tegeleda üheaegselt mõlemaga Infotöötlus on kiirem, sest protsessor saab samaaegselt lugeda käske ja pöörduda mälu poole
Riistvaraliselt lihtsam ja odavam ehitada Riistvaraliselt keerulisem ja kulukam ehitada

Varajased Von Neumanni arhitektuuril põhinevad arvutidRedigeeri

Käsikirjas “First Draft of a Report on the EDVAC” kirjeldatud arhitektuurilist ülesehitust kasutati arvutite ehitamisel paljudes ülikoolides ja suurettevõtetes.[4][5]

  • ARC2 – Birkbecki kolledž, Londoni Ülikool, Suurbritannia. Alustas ametlikult tööd 12. mail 1948.
  • Manchester Baby – Manchesteri Ülikool, Suurbritannia. Tuntud ka nimega SSEM (Small-Scale Experimental Machine), jooksutas edukalt mällu salvestatud programmi esimest korda 21. juunil 1948. SSEM oli suuteline mällu salvestama mitte ainult andmeid, vaid ka lühikest programmi.
  • EDSAC – Cambridge'i Ülikool, Suurbritannia. Esimene praktiline salvestatud programmidega elektrooniline arvuti – juhtmeid ega lüliteid olnud vaja uute arvutuste jaoks ümberseadistada (mai 1949).
  • Manchester Mark 1 – Manchesteri Ülikool, Suurbritannia. SSEM-i edasiarendus (juuni 1949).
  • CSIRAC – Austraalia teadusorganisatsioon CSIRO. Austraalia esimene digitaalne arvuti (november 1949).
  • EDVAC – loodi Ameerika Ühendriikide armee Ballistilise Teadustöö Labori jaoks (sai valmis 1949, alustas tööd 1951).
  • ORDVAC – Illinoisi Ülikool, Ameerika Ühendriigid. Sai valmis novembris 1951, valmistati samuti Ballistilise Teadustöö Labori jaoks.
  • IAS masin – Princetoni Ülikool, Ameerika Ühendriigid (jaanuar 1952).
  • MANIAC I – Los Alamose teaduslabor, Ameerika Ühendriigid (märts 1952).
  • ILLIAC – Illinoisi Ülikool, Ameerika Ühendriigid (september 1952).
  • BESM-1 – Moskva, Venemaa (1952).
  • AVIDAC – Argonne'i Riiklik Laboratoorium, Ameerika Ühendriigid (1953).
  • ORACLE – Oak Ridge'i Riiklik Laboratoorium, Ameerika Ühendriigid (juuni 1953).
  • BESK – Stockholm, Rootsi (1953).
  • JOHNNIAC – Ameerika Ühendriigid, RAND korporatsioon (jaanuar 1954).
  • DASK – Taani, põhines rootslaste BESK-il (1955).
  • WEIZAC – Rehovot, Iisrael (1955).
  • PERM – München, Saksamaa (1956).
  • SILLIAC – Sydney, Austraalia (1956).

Von Neumanni arhitektuuri piirangudRedigeeri

Käske ja andmeid hoitakse ühtses mälukeskkonnas ning sellest tingituna on siini kasutus protsessori ja mälu vahel samuti jagatud. Käsud ja andmed loetakse mälust jadapöördusega, mis aga seab olulisi piiranguid mälupöördustele. Sellist olukorda nimetatakse von Neumanni pudelikaelaks. Kuna erinevalt Harvardi arhitektuurist ei saa programmi mälu ja andmete mälu lugeda samaaegselt, on infotöötluse kiirus palju väiksem protsessori tegelikust jõudlusest, sest protsessor on sunnitud ootama seni, kuni andmete lugemine/kirjutamine mälust on lõpetatud.[9]

Kuna von Neumanni arhitektuuri puhul puudub erisus mälus säilitatava info – andmete ja käskude – vahel, siis on oht, et programmis tekkiva vea tõttu kirjutatakse üle arvuti mälus olevad käsud, mis võib kahjustada arvutis töötavat programmi, teisi arvuti mälus olevaid programme või koguni arvuti operatsioonisüsteemi.

ViitedRedigeeri

  1. 1,0 1,1 von Neumann, J. "First Draft of a Report on the EDVAC". 30. juuni 1945. Vaadatud 30. aprill 2020. Arhiiviversioon, arhiveeritud 14. märts 2013.
  2. 2,0 2,1 2,2 2,3 McCartney, S. (1999). ENIAC, The Triumphs and Tragedies of the World's First Computer. Ameerika Ühendriigid: Walker Publishing Company. Lk 90-95, 114-128. 
  3. 3,0 3,1 "Who Gets Credit for the Computer?: An Exchange". 27. september 2012. Vaadatud 30. aprill 2020. Arhiiviversioon, arhiveeritud 17. aprill 2020.
  4. 4,0 4,1 "The Modern History of Computing". 18. detsember 2000. Vaadatud 30. aprill 2020. Arhiiviversioon, arhiveeritud 14. märts 2020.
  5. 5,0 5,1 "Electronic Computer Project". Vaadatud 30. aprill 2020. Arhiiviversioon, arhiveeritud 30. november 2019.
  6. Burks, A. W., Goldstine, H. H., von Neumann, J. "Preliminary Discussion of the Logical Design of an Electronic Computing Instrument". 28. juuni 1946. Vaadatud 30. aprill 2020. Arhiiviversioon, arhiveeritud 28. november 2019.
  7. 7,0 7,1 Murdocca, M. J., Heuring, V. P. (2007). Computer Architecture and Organization: An Integrated Approach. Ameerika Ühendriigid: Wiley. 
  8. "5 Major Difference Between Von Neumann And Harvard Architecture". Vaadatud 30. aprill 2020. Arhiiviversioon, arhiveeritud 1. mai 2020.
  9. Backus, J. W. "Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs". doi:10.1145/359576.359579.