Neumann "First Draft of a Report on the Edvac" címmel 1945-ben megjelentett egy művet, melyben leírta azokat az alapelveket, melyeket ma a tudományos világ "Neumann-elvek"-ként tart számon. Ezek szerint a számítógépnek a következőknek kell megfelelnie:
-
Legyen soros működésű, teljesen elektronikus. A gép egyszerre csak egy
műveletet vesz figyelembe és hajt végre, és mindezt igen gyorsan.
-
Használjon kettes számrendszert. Elektronikusan ezt sokkal könnyebb
megvalósítani: van áram (1), nincs áram (0). Ez a számolási műveleteket
jelentősen leegyszerűsítette a számítógép számára.
-
Használjon belső memóriát. A számítógép gyors működése következtében
nincs értelme annak, hogy minden egyes lépés után emberi beavatkozás
történjen a számítás menetében. A belső memóriában a részeredmények
tárolhatók, és így a gép egy bizonyos műveletsorozatot automatikusan el
tud végezni.
-
Tárolt program elve. Talán a legjelentősebb lépés. A számítások
menetére vonatkozó utasítások kifejezhetők számmal, azaz adatként
kezelhetők. Így ezek éppúgy a belső memóriában tárolhatók, mint
bármilyen más adat. Azáltal, hogy a számítógép belső memóriájában
utasításokat tárolhat, a számítógép önállóan képes dolgozni, mivel
mindegyik lépés után memóriája utasítja a további teendőkre anélkül,
hogy emberi beavatkozásra kellene várnia. Az ilyen utasításrendszert ma
programnak hívjuk.
- Legyen univerzális a gép. A számítógép különféle feladatainak
elvégzésére nem kell speciális gépeket készíteni.
Híres művének lényege - az elektronikus számítógépekkel szembeni
követelmények - 3 pontba foglalható össze.
Az
1. pont a számítógép fő részeit, az azokkal szembeni kívánalmakat
fogalmazza meg, a 2. pont a tárolt program elvet, a 3. pedig az
automatikus, emberi beavatkozás nélküli működési követelményt rögzíti.
1. A gépnek 5 alapvető funkcionális egységből kell állnia:
- a vezérlő egység (control unit),
- az aritmetikai és logikai egység (ALU),
- a tár (memory), ami címezhető és újraírható tároló-elemekkel
rendelkezik, továbbá
- a ki/bemeneti egységek (Input/Output - I/O).
-
A részegységek elektronikusak legyenek és bináris számrendszert
használjanak. Az ALU képes legyen elvégezni az alapvető logikai és
aritmetikai műveleteket (néhány elemi matematikai és logikai művelet
segítségével elvileg bármely számítási feladat elvégezhető).
2.
Tárolt program elvű legyen a számítógép, azaz a program és az adatok
ugyanabban a tárban tárolódjanak, ebből következően a programokat
tartalmazó rekeszek is újraírhatók.
3. A vezérlő egység
határozza meg a működést a tárból kiolvasott utasítások alapján, emberi
beavatkozás nélkül, azaz közvetlen vezérlésűek a számítógépek.
A
3. pont azt jelenti, hogy van egy utasítás készlet (instruction set),
melyek utasításait a vezérlő egység képes felismerni és az ALU-val
elvégeztetni. Az utasításhalmaz egy alkalmazza a tár (rendszerint
egymás utáni) címezhető celláiban van. Ez úgyis elképzelhető, hogy
adott egy utasításfolyam (instruction stream), a gépi kódú program
(code). A vezérlőegység egy mutatója jelöli ki a soron következő
végrehajtható utasítást. Ezt a vezérlő egység értelmezi. Az
utasításokban kódolva vannak/lehetnek az adatok, vagy az adatok tárbeli
címei. Ezeket a vezérlő egység a tárból előveszi, az ALU pedig elvégzi
rajtuk az operációkat. A tárolási helyek címezhetők, a tárolási
helyeken a tárolt értékek változtathatók. Egy utasítás végrehajtása
után a vezérlőegység mutatója automatikusan - emberi beavatkozás nélkül
- a soron következő instrukcióra mutat, a vezérlő egység veszi ezt az
instrukciót, és az előzőekhez hasonló módon végrehatja, majd megy
tovább. A soron következő utasítás címét az utasítás mutató (IP-
Instruction Pointer) mutatja.
A 2. pontból következik, hogy maga a program is feldolgozható,
módosítható.
A
három pont együtteséből a következő megállapítás tehető: a számítógép
architektúra hardver és szoftver architektúrák együttese, hiszen
működését nemcsak a hardver szabja meg, hanem a szoftver is.
A
számítógépek az elmúlt jó pár év során páratlan fejlődésen mentek
keresztül, de elvi felépítésük nem változott. Számtalan kutatás folyik
a nem Neumann elvű gép kifejlesztésére, eddig még gyakorlatilag nem
sikerült. A bejelentett eredményeket ha jobban megvizsgáljuk, mindig
előjön a Neumann elv, bizonyítva, hogy a nem Neumann elvű gép is
Neumann elven működik.