Von Neumann - arkkitehtuuri ( von Neumann - malli , Princeton - arkkitehtuuri ) on hyvin tunnettu periaate komentojen ja tietojen yhteisestä tallentamisesta tietokoneen muistiin . Tällaisia laskentakoneita kutsutaan usein termillä "von Neumann-kone", mutta näiden käsitteiden vastaavuus ei ole aina yksiselitteistä. Yleensä kun ihmiset puhuvat von Neumann -arkkitehtuurista, he tarkoittavat periaatetta tietojen ja ohjeiden tallentamisesta samaan muistiin.
Perustukset tietokonearkkitehtuurin opille loi John von Neumann vuonna 1944, kun hän oli mukana luomassa maailman ensimmäistä tyhjiöputkitietokonetta ENIAC . Työskennellessään ENIAC : n parissa Pennsylvanian yliopiston Moore-instituutissa von Neumannin ja hänen kollegoidensa John William Mauchlyn , John Eckertin , Herman Goldsteinin ja Arthur Burksin välisissä lukuisissa keskusteluissa syntyi ajatus kehittyneemmästä koneesta nimeltä EDVAC . EDVAC:n tutkimustyö jatkui samanaikaisesti ENIAC:n rakentamisen kanssa.
Maaliskuussa 1945 loogisen arkkitehtuurin periaatteet virallistettiin asiakirjassa nimeltä " First Draft Report on EDVAC " - raportti Yhdysvaltain armeijan ballistiikan laboratoriolle, jonka rahoilla ENIAC :n rakentaminen ja EDVAC : n kehittäminen toteutettiin . Raporttia, koska se oli vain luonnos, ei ollut tarkoitettu julkaistavaksi, vaan vain levitettäväksi ryhmän sisällä, mutta Yhdysvaltain armeijan projektin kuraattori Herman Goldstein toisti tämän tieteellisen työn ja lähetti sen laajalle piirille. tutkijoiden arvioitavaksi. Koska asiakirjan ensimmäisellä sivulla esiintyi vain von Neumannin nimi [1] , asiakirjan lukijoilla oli väärä käsitys, että hän oli kaikkien teoksessa esitettyjen ajatusten kirjoittaja. Asiakirja tarjosi tarpeeksi tietoa niille, jotka sitä lukivat, jotta he voivat rakentaa tietokoneitaan, kuten EDVAC:ia, samoilla periaatteilla ja samalla arkkitehtuurilla, joka lopulta tuli tunnetuksi "von Neumann-arkkitehtuurina".
Toisen maailmansodan päättymisen ja ENIAC -työn valmistumisen jälkeen helmikuussa 1946 insinöörien ja tiedemiesten ryhmä hajosi, John Mauchly , John Eckert päätti aloittaa liiketoiminnan ja luoda tietokoneita kaupallisin perustein. Von Neumann, Goldstein ja Burks siirtyivät Institute for Advanced Study -instituuttiin , jossa he päättivät rakentaa EDVAC - tyyppisen " IAS-koneen " -tietokoneensa ja käyttää sitä tutkimustyöhön. Kesäkuussa 1946 he [2] [3] hahmottelivat tietokoneiden rakentamisen periaatteensa nyt klassikkoartikkelissa "Elektronisen laskentalaitteen loogisen suunnittelun alustava tarkastelu" [4] [5] [6] . Siitä on kulunut yli puoli vuosisataa, mutta siinä esitetyt säännökset ovat edelleen ajankohtaisia. Artikkeli perustelee vakuuttavasti binäärijärjestelmän käytön numeroiden esittämiseen, ja itse asiassa aiemmin kaikki tietokoneet tallensivat käsiteltyjä lukuja desimaalimuodossa. Kirjoittajat osoittivat binäärijärjestelmän edut teknisessä toteutuksessa, aritmeettisten ja loogisten operaatioiden suorittamisen mukavuuden ja helppouden. Tulevaisuudessa tietokoneet alkoivat käsitellä ei-numeerisia tietoja - tekstiä, grafiikkaa, ääntä ja muita, mutta binääridatan koodaus muodostaa edelleen minkä tahansa nykyaikaisen tietokoneen tietopohjan.
Toinen vallankumouksellinen idea, jonka merkitystä tuskin voi yliarvioida, on "tallennettujen ohjelmien" periaate. Alun perin ohjelma asetettiin asentamalla jumpperit erityiseen korjauspaneeliin. Tämä oli erittäin aikaa vievä tehtävä: esimerkiksi ENIAC-koneen ohjelman muuttaminen kesti useita päiviä, kun taas varsinainen laskenta ei voinut kestää muutamaa minuuttia kauempaa - lamput, joita oli valtava määrä, epäonnistuivat . Ohjelma voidaan kuitenkin tallentaa myös nollien ja ykkösten joukkona ja samaan muistiin sen käsittelemien lukujen kanssa. Perusteellisen eron puuttuminen ohjelman ja datan välillä mahdollisti sen, että tietokone itse pystyi muodostamaan itselleen ohjelman laskelmien tulosten mukaisesti.
Tietyn joukon suoritettavia komentoja ja ohjelmia oli ensimmäisten tietokonejärjestelmien tyypillinen piirre. Nykyään samanlaista mallia käytetään yksinkertaistamaan tietokonelaitteen suunnittelua. Joten pöytälaskimet ovat periaatteessa laitteita, joissa on kiinteä joukko suoritettavia ohjelmia. Niitä voidaan käyttää matemaattisiin laskelmiin, mutta lähes mahdotonta käyttää tekstinkäsittelyyn ja tietokonepeleihin , graafisten kuvien tai videoiden katseluun . Laiteohjelmiston vaihtaminen tämän tyyppisille laitteille vaatii lähes täydellisen uudelleensuunnittelun, ja useimmissa tapauksissa se on mahdotonta. Varhaisten tietokonejärjestelmien uudelleenohjelmointia kuitenkin tehtiin edelleen, mutta se vaati valtavan määrän manuaalista työtä uuden dokumentaation laatimiseksi , lohkojen ja laitteiden uudelleen vaihtamiseksi ja uudelleen rakentamiseksi jne.
Kaikki muutti ajatus tietokoneohjelmien tallentamisesta jaettuun muistiin. Kun se otettiin käyttöön, suoritettaviin käskysarjoihin perustuvien arkkitehtuurien käyttö ja laskentaprosessin esittäminen ohjelmaan kirjoitettujen käskyjen suorittamisprosessina oli lisännyt huomattavasti laskentajärjestelmien joustavuutta tietojenkäsittelyn suhteen. Sama lähestymistapa tietojen ja ohjeiden huomioimiseen teki helpoksi itse ohjelmien vaihtamisen.
Komennot ja tiedot tallennetaan samaan muistiin, ja ne ovat ulkoisesti erotettavissa muistista. Ne voidaan tunnistaa vain siitä, miten niitä käytetään; eli samaa arvoa muistisolussa voidaan käyttää sekä datana että komentona ja osoitteena, riippuen vain tavasta, jolla sitä käytetään. Tämän avulla voit suorittaa samat toiminnot komennoille kuin numeroille, ja näin ollen se avaa useita mahdollisuuksia . Joten muuttamalla komennon osoiteosaa syklisesti, on mahdollista tarjota pääsy tietotaulukon peräkkäisiin elementteihin. Tätä tekniikkaa kutsutaan komentojen muokkaamiseksi, eikä se ole tervetullut nykyaikaisen ohjelmoinnin näkökulmasta. Hyödyllisempi on toinen seuraus homogeenisuusperiaatteesta, jossa yhden ohjelman käskyt voidaan vastaanottaa toisen ohjelman suorittamisen seurauksena. Tämä mahdollisuus on käännös - ohjelman tekstin kääntäminen korkean tason kielestä tietyn tietokoneen kielelle.
Kohdistamisen periaateRakenteellisesti päämuisti koostuu numeroiduista soluista, ja mikä tahansa solu on prosessorin käytettävissä milloin tahansa. Komentojen ja tietojen binäärikoodit jaetaan tietoyksiköiksi, joita kutsutaan sanoiksi ja tallennetaan muistisoluihin, ja niihin pääsemiseksi käytetään vastaavien solujen numeroita - osoitteita.
Ohjelman hallinnan periaateKaikki algoritmin laskelmat ongelman ratkaisemiseksi on esitettävä ohjelman muodossa, joka koostuu ohjaussanojen - komentojen sekvenssistä. Jokainen käsky määrää jonkin toiminnon tietokoneen toteuttamien toimintojen joukosta. Ohjelmakomennot tallennetaan tietokoneen peräkkäisiin muistisoluihin ja suoritetaan luonnollisessa järjestyksessä, eli siinä järjestyksessä, missä ne sijaitsevat ohjelmassa. Tarvittaessa tätä järjestystä voidaan muuttaa erikoiskomentojen avulla. Päätös ohjelmakomentojen suoritusjärjestyksen muuttamisesta tehdään joko aikaisempien laskelmien tulosten analyysin perusteella tai ehdoitta.
Suunnitelman mukaan ensimmäinen von Neumannin arkkitehtuurin mukaan rakennettu tietokone oli EDVAC (Electronic Discrete Variable Automatic Computer) - yksi ensimmäisistä elektronisista tietokoneista. Toisin kuin edeltäjänsä ENIAC , se oli binääri eikä desimaalipohjainen tietokone. Kuten ENIAC, myös EDVAC:n kehitti Pennsylvanian yliopiston Moore-instituutissa Yhdysvaltain armeijan ballististen tutkimuslaboratorioiden käyttöön John Presper Eckertin ja John William Mauchleyn johtaman insinöörien ja tiedemiesten ryhmässä aktiivisella matemaatikon avustuksella, mutta vuoteen 1951 asti. EDVAC:ia ei käynnistetty vuodesta -johtuen teknisistä vaikeuksista luotettavan tietokoneen muistin tekemisessä ja erimielisyyksistä kehitystiimin sisällä. Muut tutkimuslaitokset, jotka ovat tutustuneet ENIACiin ja EDVAC-projektiin, pystyivät ratkaisemaan nämä ongelmat paljon aikaisemmin. Ensimmäiset tietokoneet, jotka toteuttivat von Neumannin arkkitehtuurin pääpiirteet, olivat:
Neuvostoliitossa ensimmäinen von Neumannin periaatteita lähellä oleva täysin elektroninen tietokone oli MESM , jonka rakensi Lebedev ( Ukrainan SSR:n tiedeakatemian Kiovan sähkötekniikan instituutin pohjalta ). MESM prototyyppinä lanseerattiin ensimmäisen kerran julkisesti 6.11.1950 ja jo täysimittaisena koneena läpäisi valtion hyväksyntätestit 25.12.1951.
Ohjelmamuistin ja datamuistin väylän jakaminen johtaa von Neumann -arkkitehtuurin pullonkaulan syntymiseen, nimittäin prosessorin ja muistin välisen kaistanleveyden rajoitukseen verrattuna muistin määrään. Koska ohjelmamuistia ja tietomuistia ei voida käyttää samanaikaisesti, prosessorin ja muistin välinen kaistanleveys ja muistin nopeus rajoittavat huomattavasti prosessorin nopeutta - paljon enemmän kuin jos ohjelmat ja tiedot olisi tallennettu eri paikkoihin.
Tämä ongelma ratkaistaan parantamalla välimuistijärjestelmiä , mikä puolestaan monimutkaistaa järjestelmän arkkitehtuuria ja lisää sivuvirheiden riskiä (esimerkiksi muistin koherenssiongelma ).
Termin "von Neumann-arkkitehtuurin pullonkaula" esitteli John Backus vuonna 1977 luennossaan "Voiko ohjelmointi vapauttaa von Neumann-tyylistä?" , jonka hän luki Turing-palkinnon jaossa [7] [8]
Yhdysvaltalaiset ja italialaiset tutkijat ilmoittivat vuonna 2015 prototyypin luomisesta meme-prosessorista ( eng. memprocessor ) , jonka arkkitehtuuri eroaa von Neumannista ja mahdollisuudesta käyttää sitä NP - täydellisten ongelmien ratkaisemiseen [9] [10] [ 11] .
prosessoritekniikat | Digitaaliset|||||||||
---|---|---|---|---|---|---|---|---|---|
Arkkitehtuuri | |||||||||
Ohjesarjan arkkitehtuuri | |||||||||
koneen sana |
| ||||||||
Rinnakkaisuus |
| ||||||||
Toteutukset | |||||||||
Komponentit | |||||||||
Virranhallinta |