A Neumann-elvek (#12)

Miről szól ez a cikk?
A ma használt számítógépek elvi és gyakorlati felépítése nem légből kapott, hanem sok-sok év kutatómunkájának eredménye.
Az évezredek során mindig történtek kísérletek a számolás automatizálására ilyen-olyan eszközök létrehozásával. A múlt században megérett az idő arra, hogy a korábbi tapasztalatok és tudás birtokában valaki összefoglalja azon elveket, amelyek alapján egy működőképes, univerzális feladatokra alkalmas számító gép alkotható. Ezen munka oroszlánrészét, a ma is használt számítógépek működési elveit, egy magyar származású amerikai tudós, Neumann János végezte.
Ebben a cikkben ezekről az alapelvekről lesz szó.

Először röviden foglaljuk össze ezeket az alapelveket!

  1. A számítógép elektronikus berendezés – elektronikus alkatrészekből álljon, működését az elektromos áram biztosítsa.
  2. A számítógép működése a kettes számrendszeren alapuljon.
  3. A számítógép rendelkezzen belső, ún. operatív memóriával.
  4. A tárolt program elve – a számításhoz szükséges adatokat és a programutasításokat a számítógép a belső memóriában tárolja a feldolgozás alatt.
  5. A soros utasítás-végrehajtás elve – az utasítások végrehajtása egymás után, sorban történjen.
  6. A számítógép univerzális Turing-gép legyen. Ez az univerzális felhasználhatóságot jelenti, vagyis hogy a programtól függ, mire képes a számítógép.
  7. A számítógép felépítésében tartalmazza a következő öt funkcionális részegységet: központi vezérlő-, aritmetikai, memória, bemeneti és kimeneti egység.

Nézzük meg egyenként a fenti alapelvek mai jelentését!

1. A számítógép elektronikus berendezés

Neumann idejében a fejlődés magával hozta a finommechanikai és elektromechanikus gépeket, amelyekkel akkoriban nagyon sok baj volt, tehát megbízhatatlanok voltak egy számítógép céljára. Ez érthető, hiszen például egy szövőgép hibája legfeljebb folytonossági hiányt jelentett az anyagban, addig egy számítógépnél megengedhetetlen bármiféle működési, végrehajtási, számításai hiba. Neumann ezért vélte úgy, az akkori technikai fejlődést ismerve, hogy egy hibamentesen működő számítógépnek pusztán elektronikus, tehát mozgó, kopó részegységeket nem tartalmazó alkatrészekből kell állnia.

Ezt az elvet manapság kezdjük túlhaladni. A villamosság használata munkavégzésre, a villamos gépek térhódítása számunkra már természetes, ahogy az elektronikus számítógépek léte is annak számít. Azonban az elektronok áramán alapuló működésnek vannak korlátai, például a teljesítmény növelésének egyik gátja az elektronáram haladási sebessége a vezető anyagban. A működési sebesség növelésének alapjaiban új eszköze a fény, amely a természetben előforduló legnagyobb sebesség. A tudósok, kutatók ma az ún. optikai számítógép kifejlesztésén dolgoznak, amelyben elektronáram helyett fény hordozza az információt.

2. Kettes számrendszeren alapuló működés

A kettes számrendszeren alapuló működés elvét az egyszerű felépítésre, a hibamentes működésre és az olcsó gyártástechnológiára törekvés hozta magával. Belátható, hogy ha egy bonyolult eszköztől teljesen hibamentes működést várunk el, akkor egyrészt olyan elektronikus alkatrészekből kell állnia, amelyek minél kevesebb számú jellel (feszültséggel, árammal) dolgoznak, másrészt az ebből eredő egyszerű felépítés csökkenti a gyártási költségeket és a működés is jobban átlátható, modellezhető, matematikailag leírható.

Az elgondolás tehát az volt, hogy elegendő legyen pusztán két eltérő jel használata a számítógép működtetéséhez. Ahogy az ember számára a tíz ujja határozza meg a számolást, és eredményezte a tízes számrendszer használatát, a két jellel a kettes számrendszer segítségével vált könnyebbé a működés modellezése, matematikai leírása, végső soron a számítások elvégzése.

A számítógép tehát minden számítást (hisz ez volt az elsődleges cél – automata számoló berendezést készíteni) kettes számrendszerben végez. A matematikából azt is tudjuk, hogy minden számítási művelet összeadásra és kivonásra, valamint elemi logikai műveletekre bontható, így az ezeket megvalósító elektronikus alkatrészek a két jelet kezelve könnyen tervezhetők, egyszerű felépítésűek, és olcsóbb gyártásúak lehettek.

A kettes számrendszeren alapuló működést a binárisan digitális fogalmakkal írjuk le. A digitális, magyarul számjegyes működés azt jelenti, hogy előre meghatározott számú, esetünkben kettő, vagyis bináris értékkel működik a számítógép.

Az elektronikus működési elvvel összhangban tehát kijelenthetjük, hogy a mai számítógépek binárisan digitális elektronikus eszközök.

3. A belső, ún. operatív memória

A történelem során feltalált számoló eszközökre mind igaz, hogy kezelésükhöz szükség volt az ember jelenlétére, aktív közreműködésére – a kiszámolandó adatokat és a végrehajtani kívánt műveleteket az eszközt kezelő ember fejében kellett tárolni.

Neumann egyik zseniális felismerése, hogy egy számítógép részben attól lesz automata, hogy az adatokat és az utasításokat képes tárolni. Az emberi agy memóriájából kiindulva adta magát a felismerés, hogy a számítógépnek is legyen „agya”, legyen képes tárolni az adatokat és az utasításokat. Ezt az eszközt mi másnak nevezhette el Neumann János, mint belső memóriának. Korszerűbb, mai nevén operatív memória vagy tár.

4. A tárolt program elve

Ez az elv az előzőből fakad: a belső memória képes legyen tárolni az utasításokat, a feldolgozó egységbe innen kerüljenek be, ne kelljen a kezelőnek egyenként beadnia azt az adatok feldolgozásához.

5. A soros utasítás-végrehajtás elve

Ez az elv magától értetődő, hiszen bármiféle gépet is kezelt az ember történelme során, az elvégzendő tevékenységeket egymás után hajtotta végre vele. A számítógép belső memóriájában tárolt adatokon az utasításokat egymás után, utasításról utasításra, tehát sorban egymás után hajtja végre a feldolgozó egység.

A technológiai fejlődés és a teljesítmény növelésének vágya magával hozta a párhuzamos utasítás-végrehajtás elvét, amelyet a ma számítógépei sikerrel meg is valósítottak, tehát a soros utasítás-végrehajtás elve kezd túlhaladottá válni. Az elv szerint lehetséges úgy módosítani a számítógép belső felépítését, hogy képes legyen párhuzamos utasítás-végrehajtásra. Jegyezzük meg, hogy a közbeszédben kétféle párhuzamos végrehajtásról beszélhetünk:

  • Az egyik esetben a feldolgozó egység figyelme oszlik meg több utasítás-végrehajtási folyamat között, hol az egyikkel, hol a másikkal foglalkozva. Ezen – másképp fogalmazva – utasításszálak száma akár több ezer is lehet egy mai számítógépben. A feldolgozó egység elképesztő sebességgel vált egyik folyamatról a másikra, mindig csak egy utasításszálat feldolgozva, így a felhasználó számára teljesen párhuzamosnak, egyszerre, egyidőben zajló feldolgozásnak tűnik az utasításszálak végrehajtása. Ezt hívjuk időosztásos utasítás-végrehajtásnak, de ez továbbra is soros utasítás-végrehajtás.
  • A másik esetben, a valóban párhuzamos végrehajtáshoz, a számítógépnek több feldolgozó egységet kell tartalmaznia. Ezt sikerült többféle módon megoldani, ahogy azt majd a feldolgozó egységről, a processzorról szóló cikkekben látni fogjuk.

6. Turing-gép

A számítógép Turing-gépként működése a számítógép univerzális felhasználhatóságát jelenti, vagyis annak felismerését, hogy nem kell minden feladatra önálló számológépet készíteni, hanem csak az utasítássorozatot kell lecserélni. Az univerzalitást Turing angol matematikusnak, Neumann kortársának köszönhetjük, aki fenti elvét 1927-ben foglalta írásba. Ezt az elvet nevezték el a tudós tiszteletére Turing-gépnek, és ismerte fel Neumann János az elv jelentőségét és szükségességét.

7. Öt funkcionális elem megléte

Neumann elvárásokat fogalmazott meg a számítógép belső felépítését illetően is, meghatározva, melyek azok a funkcionális részegységek, amelyekre elengedhetetlenül szükség van. Ezek a részegységek a következők:

  1. A központi végrehajtó egység feladata a berendezés működtetése, a részegységek összefogása, irányítása, közöttük a kapcsolat megteremtése. Ez ma a processzor, vagyis a CPU. A CPU a Central Processing Unit angol szavak rövidítése, amely szó szerint központi végrehajtó egységet jelent.
  2. Az aritmetikai vagy mai szóhasználattal aritmetikai-logikai egység felelős a tényleges utasítás-végrehajtásért, vagyis a számítások elvégzéséért. Ez az egység ma a központi végrehajtó egység része. Ahogy korábban írtuk, a számítógép elektronikus eszközei a működési elvből fakadóan minden műveletet összeadásra és elemi logikai műveletekre bontanak – ezért kapta nevét az ezeket végző egység, ami angolul ALU (Arithmetical Logical Unit).
  3. A belső vagy operatív memória szükségességéről is írtunk. A mai számítógépek részegységeinek többsége tartalmaz memóriát. Számunkra azonban az adatok és utasítások tárolására kijelölt ún. RAM memória léte, nagysága és egyéb tulajdonságai a meghatározók. A számítógép kikapcsolt állapotában pedig az ún. háttértárolót, mint nem felejtő, speciális memóriát használjuk az adatok és utasítások tárolására.
  4. Az input, magyarul bemeneti egységek teremtik meg a befelé menő kapcsolatot a számítógép egységeivel, tehát hogy a kezelő képes legyen adatait és utasításait bevinni a számítógép fenti részegységeinek valamelyikébe. A két leggyakoribb bemeneti eszköz ma a billentyűzet (keyboard) és az egérnek (mouse) nevezett mutató eszköz.
  5. A feldolgozás eredményét valahogy meg kell tudni jeleníteni a kezelő által értelmezhető formában, valamint szükséges, hogy a kétoldalú kommunikáció gördülékeny legyen. Szükség van tehát output, magyarul kimeneti egységekre, amelyek tipikus mai példái a képernyő (monitor) és a nyomtató (printer).

A be- és kimeneti egységek közös neve periféria. Azért kapták nevüket, mert szigorúan véve ma sem a számítógépek belső egységeinek számítanak, hanem kívülről csatlakoztatjuk azokat az ún. perifériavezérlő egységhez (angolul PCU vagy DCU (Peripheral Controll Unit, Device Controll Unit)). A be- és kimeneti egységekre angolul Input/Output, rövidítve I/O néven is hivatkozunk.

Miről szólt ez a cikk?
Ebben a cikkben meggyőződhettünk arról, hogy a számítógép működési elveinek lefektetése történelmi léptékben nemrég történt, és az azóta eltelt évtizedek óriási fejlődését hozta a számítógépes eszközök mindennapjainkba történő beépülésével. A Neumann-elvek zsenialitását jelzi, hogy a számítógépek felépítésükben, működésükben máig ezen elveken alapulnak, és a jól lefektetett elveknek köszönhető a gyors és látványos fejlődés. Az emberiség fejlődésében a számítógép az első olyan multifunkcionális, univerzális eszköz, amely bármire felhasználható, bármire befogható.