A Neumann-elvek
vissza

 

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.