Von Neumannova arhitektura
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Von_Neumann_architecture.svg/langbs-220px-Von_Neumann_architecture.svg.png)
Von Neumannova arhitektura, poznata i kao von Neumannov model ili Princeton arhitektura je računarska arhitektura zasnovana na opisu matematičara i fizičara Johna von Neumanna iz 1945. godine u Prvom nacrtu izvještaja o EDVAC-u.[1] Taj dokument opisuje dizajn arhitekture za elektronski digitalni kompjuter sa ovim komponentama:
- Procesorska jedinica za obradu koja sadrži aritmetičku logičku jedinicu i procesorske registre
- Upravljačka jedinica koja sadrži instrukcijski registar i programski brojač
- Memorija koja pohranjuje podatke i instrukcije
- Disk za pohranu
- Ulazno/izlazni mehanizmi[1][2]
Izraz "von Neumannova arhitektura" se danas odnosi na svaki računar koji sprema programske instrukcije u elektronsku memoriju u kojoj se instrukcijski ciklus i podatkovna operacija ne mogu desiti u istom momentu jer dijele zajedničku sabirnicu . To se naziva Von Neumannovo usko grlo i često ograničava performanse sistema.[3]
Dizajn ove arhitekture je jednostavniji od harvardske arhitektonske mašine koji je također sistem pohranjenog programa, ali ima jedan namjenski skup adresa i podatkovnih sabirnica za čitanje i pisanje u memoriju, te drugi skup adresa i podatkovnih sabirnica za dohvaćanje instrukcija.
Digitalni računar pohranjenog programa čuva i programske upute i podatke u memoriji sa nasumičnim pristupom (RAM) za čitanje i pisanje. Računari sa pohranjenim programom bili su napredak nad računarima iz 1940-ih, poput Colossus-a i ENIAC-a. Oni su programirani postavljanjem prekidača i umetanjem kablova za usmjeravanje podataka i upravljačkih signala između različitih jedinica.
Sposobnosti
[uredi | uredi izvor]U velikoj mjeri, sposobnost tretiranja uputa kao podataka je omogućilo asemblere, kompajlere, linkere, loadere i druge alate za automatsko programiranje. Omogućava "programe koji pišu programe".[4]
Neki programski jezici visokog nivoa utiču na von Neumannovu arhitekturu tako što pružaju apstraktni, mašinski nezavisan način manipulacije izvršnim kodom pri izvođenju (npr. LISP).
Rani računari von Neumannove arhitekture
[uredi | uredi izvor]- ARC2 (Birkbeck, Univerzitet u Londonu) 12. maj 1948.[5]
- Manchester Baby (Univerzitet Victoria u Manchesteru, Engleska) 21. juni 1948.
- EDSAC (Univerzitet u Cambridgeu, Engleska) maj 1949
- Manchester Mark 1 (Univerzitet u Manchesteru, Engleska) juni 1949
- CSIRAC, Australija, novembar 1949.
- EDVAC, 1951
- ORDVAC, novembar 1951[6]
- IAS mašina na Univerzitetu Princeton, januar 1952
- MANIAC I, mart 1952.
- ILLIAC, septembar 1952.
- BESM-1 u Moskvi, 1952
- BESK u Štokholmu, 1953
- JOHNNIAC, Izrael, januar 1954.
- DASK u Danskoj, 1955.
- PERM u Minhenu, 1956.?
Evolucija
[uredi | uredi izvor]![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Computer_system_bus.svg/langbs-220px-Computer_system_bus.svg.png)
Između 1960-ih i 1970-ih računari su uglavnom postali i manji i brži, što je dovelo do evolucije u njihovoj arhitekturi. Na primjer, memorijski mapirani ulazno/izlazni uređaji se mogu tretirati isto kao i memorija.[7] Jedna sistemska sabirnica se može koristiti za pružanje modularnog sistema. To se ponekad naziva "moderniziranje" arhitekture.[8] U sljedećim desetljećima, jednostavniji mikrokontroleri su često izostavljali neke mogućnosti zbog smanjivanja troškova ili veličine uređaja. S druge strane, veći računari dodavali mogućnosti za veće performanse.
Ograničenja dizajna
[uredi | uredi izvor]Von Neumannovo usko grlo
[uredi | uredi izvor]Dijeljena sabirnica između programske memorije i podatkovne memorije dovodi do von Neumannova uskog grla, ograničene propusnosti (brzina prenosa podataka) između centralnog procesora (CPU) i memorije u odnosu na količinu memorije. Procesor je stalno prisiljen čekati da potrebni podaci pređu u memoriju ili iz nje.
Postoji nekoliko poznatih metoda za ublažavanje uskog grla. Na primjer, sljedeće stvari mogu poboljšati performanse:
- Procesorska keš memorija (cache) između CPU-a i glavne memorije
- korištenje algoritama i logike za predviđanje grananja.
- Smanjenje latencije između procesorskih registara i glavne memorije, pružajući veću lokalnost referenci — pojava koja opisuje istu vrijednost, ili odgovarajuće lokacije za skladištenje kojima se često pristupa
Problem se može donekle zaobići i paralelnim sistemima, koristeći na primjer, NUMA arhitekturu — ovaj pristup se obično koristi kod superračunara.
Također pogledajte
[uredi | uredi izvor]Reference
[uredi | uredi izvor]- ^ a b First Draft of a Report on the EDVAC (PDF), 1945, arhivirano s originala (PDF), 14. 3. 2013, pristupljeno 24. 8. 2011 CS1 održavanje: nepreporučeni parametar (link)
- ^ Ganesan 2009
- ^ The Von Neumann Bottleneck, 2007, arhivirano s originala, 12. 12. 2013
- ^ MFTL (My Favorite Toy Language) entry Jargon File 4.4.7, pristupljeno 11. 7. 2008
- ^ "The Development of Computer Programming in Britain (1945 to 1955)". IEEE Annals of the History of Computing. 4 (2): 121–139. april 1982. doi:10.1109/MAHC.1982.10016.
- ^ Illiac Design Techniques, report number UIUCDCS-R-1955-146, Digital Computer Laboratory, University of Illinois at Urbana-Champaign, 1955
- ^ "A New Architecture for Mini-Computers—The DEC PDP-11" (PDF), Spring Joint Computer Conference, str. 657–675, 1970 CS1 održavanje: nepreporučeni parametar (link)
- ^ The essentials of computer organization and architecture (3rd izd.), Jones & Bartlett Learning, 2010, str. 36, 199–203, ISBN 978-1-4496-0006-8