Neumann-elvek a számítógép felépítésében és működésében
Neumann János (1903–1957) magyar születésű matematikus és vegyész. Iskoláit Magyarországon, Németországban és Svájcban végezte. 1930-tól az Egyesült Államokban tanított és kutatott. Maradandód alkotott többek között a matematika, a közgazdaságtan és a számítástechnika területén is.
Az 1945 nyarán írt First Draft of a Report on the EDVAC című dokumentumban lefektette a modern számítógép felépítésének és működésének alapelveit. Munkássága olyan jelentős volt, hogy a mai napig alapvetésnek számít a számítógépek tervezésében. Ebben a fejezetben azt tekintjük át, hogy Neumann meglátásai hogyan jellennek meg az informatikában a 21. század elején.
A számítógép felépítése
Az első Neumann-elvű gépek
Neumann elképzelése szerint a számítógép összetevőit három csoportba lehet elkülöníteni.
- A központi egység (mai nevén processzor) felelős a számítógép működtetéséért. A vezérlőegység feldolgozza a programok utasításait, az aritmetikai és logikai egység pedig végrehajtja a matematikai és logikai műveleteket.
- Az operatív tár (mai nevén memória) tartalmazza az éppen futó programok utasításait és az éppen használatban lévő adatokat. A központi egység innen olvassa ki a következő utasítást, és ide írja a számítások eredményét. Ha a számítógép áramellátása megszűnik, az opratív tár tartalma törlődik.
- A ki- és bemeneti egységek (mai nevén perifériák) teremtik meg a kapcsolatot a felhasználó és a számítógép között. Lehetőséget adnak az utasítások és adatok bevitelére, valamint megjelenítik a számítások eredményét.
A modern számítógépek
A First Draft megírása óta eltelt több, mint 70 évben a számítógépek felépítése sokat változott, de alapjaiban hasonló maradt. Néhány jelentős változás:
- Az összetevők között megjelent egy negyedik csoport, a háttértárak. Ezek feladata a nagymennyiségű adatok hosszútávú tárolása akkor is, ha a számítógép nincs áram alatt. A háttértárakat közvetlenül vagy valamilyen író/olvasó egység segítségével csatlakoztathatjuk.
- Jelentősen megnövekedett a perifériák száma és fajtája. A kezdeti szöveges be- és kiviteli egységek mellett elterjedtek az audiovizuális perifériák (hang és kép) és a különféle mutatóeszközök (egér, touchpad, stb.).
- Megjelentek olyan vezérlőchipek és társprocesszorok, amik a központi egységet tehermentesítik különféle feladatok alól. Ezek az egységek (főként grafikus, hang és hálózati vezérlők) eleinte bővítőkártyák formájában kerültek piacra. Később, ahogy egyre fontosabbak lettek a mindennapi használatban, a gyártók az alaplapra forrasztották őket. Az utóbbi években pedig egyre több vezérlőt építenek be közvetlenül a processzorba, ezzel is növelve a számítógép adatfeldolgozó sebességét.
- A központi egység az operatív tártól függetlenül kapott egy gyorsítótárnak nevezett memóriát. Ez ugyan kis méretű, de a benne tárolt utasítások és adatok gyorsabban elérhetők, mintha az operatív tárban lennének.
- Elterjedtek a többmagos központi egységek. Ezek egy lapkára épített különálló processzorok, amik szorosan együttműködve tovább javítják a számítógép teljesítményét. A magok lehetnek egyenrangúak vagy eltérőek. Az utóbbi főleg a hordozható eszközökben jelent előnyt. A gyengébb mag kisebb számítási teljesítménnyel bír, de cserébe kevesebb áramot fogyaszt, mint az erősebb mag.
A számítógép működése
A Neumann-elvek
A First Draftban Neumann részletesen írt arról is, hogy a számítógépnek hogyan kell működni ahhoz, hogy gyorsan és hatékonyan lehessen velük az adatokat feldolgozni. Ezek egy része manapság megmosolyogtató lehet, de a 40-es években még nem voltak ennyire egyértelműek. A fő megállapítások a következők:
- A számítógép teljesen elektronikus működésű. A 19. században és a 20. század elején ugyanis sokan kísérleteztek mechanikus gépekkel. Az elektronikus központi egység és operatív tár azonban gyorsabb, kisebb és kevésbé sérülékeny, mint a mechanikus megoldások. A mozgó alkatrészeket ugyan nem lehet teljesen kizárni, de a fejlődés abba az irányba tart, hogy ezek száma csökkenjen. Jó példa erre az úgynevezett flashmemóriák sikere, amik nemcsak a szalagos, de lassan a lemezes háttértárakat is kiszorítják.
- A számítógép kettes számrendszerben működik. Azaz minden adatot és utasítást bitsorozatok (egyesek és nullák) formájában kezel. A mindössze kétféle érték nemcsak a feldolgozást, hanem a tárolást és a továbbítást is megkönnyíti, ugyanis könnyű mérni, hogy az áramkör egy adott pontján egy időpillanatban éppen van jel (1), vagy nincs (0).
- A számítógép univerzális működésű. Nemcsak egy adott feladatot tud elvégezni, hanem beprogramozható különféle feladatok elvégzésére. Alan Turing (Neumann kortársa) elmélete szerint ha egy gép el tud végezni néhány alapműveletet (pl.: összeadás, összehasonlítás, másolás), akkor bármilyen bonyolult problémát meg tud oldani. A programozó feladata az, hogy a problémát alapműveletekre bontsa, amiket a számítógép elvégez, és a folyamat végén megszületik a bonyolult számítás eredménye.
- A számítógép a tárolt program elvén működik. Az éppen futó programok utasításait és az éppen használatban lévő adatokat egy közös tárban (memória) kezeli. Így automatikusan be tudja tölteni a következő utasítást, és ideiglenesen tárolni tudja a számítások közben keletkező részeredményeket is. Ezek következtében kevesebb felhasználói beavatkozásra van szükség, és a számítási sebesség jelentősen megnövekszik.
- A számítógép az utasításokat sorban hajtja végre. A központi egység egyszerre egy utasítást olvas ki a memóriából, az adatokat pedig bitenként dolgozza fel. Ez az elv a többmagos processzorok korában úgy módosult, hogy a magok továbbra is sorosan működnek, viszont egymástól függetlenül egyszerre különböző programokat is futtathatnak, így a központi egység párhuzamosan több feladatot is végezhet.
A jövő
A Neumann-elveken működő gépek megjelenése óta folynak olyan kutatások, amik kisebb-nagyobb mértékben eltérő felépítésű és/vagy működésű gépek létrehozására törekednek. Van olyan, ami a kettes számrendszer használatát változtatja meg, és olyan is, ami az utasítások és adatok kezelését párhuzamosan oldja meg. Ezek azonban a gyakorlatban nem, vagy csak korlátozottan működnek, így jelenleg nem tekinthetők univerzális alternatívának.