Von Neumannova arhitektura

alt=|mini|Šematski prikaz Von Neumannove arhitekture
**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*. 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

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.

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

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 
* ARC2 (Birkbeck, Univerzitet u Londonu) 12. maj 1948. 
* 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 
* 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 
[mini| Evolucija arhitekture sa jednom [Sistemska sabirnica|sistemskom sabirnicom ]]
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. Jedna sistemska sabirnica se može koristiti za pružanje modularnog sistema. To se ponekad naziva "moderniziranje" arhitekture. 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 
### Von Neumannovo usko grlo 
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 
* Mašina sa slučajnim pristupom 
* Turing mašina 
* Neuromorfni inženjering 
* Eckert arhitektura

## Reference 
## Vanjski linkovi 
* Harvard protiv von Neumanna
* Alat koji oponaša ponašanje von Neumannove mašine 
* JOHNNY: Jednostavan simulator otvorenog koda von Neumannove mašine za obrazovne svrhe

Kategorija:Neriješeni problemi
Kategorija:Računarska arhitektura