Neumann-elvek
Az első elektronikusan működő számítógép, az ENIAC (angolul Electronic Numerical Integrator And Computer) építési tapasztalatai alapján a számítógép építéséhez nélkülözhetetlen alapelveket Neumann János matematikus dolgozta ki, aki az ENIAC-nál gyorsabb, megbízhatóbb, egyszerűbb és könnyebben kezelhető gépet szeretett volna megépíteni. Az általunk ma Neumann-elveknek nevezett kritériumrendszert elsőként az 1945. június 30-án kiadott „First Draft of a Report on the Edvac” című művében publikálta.[1] Neumann János 1945-ben a Princentoni Egyetemen az elektronikus számítógép program igazgatója volt, amikor Herman Goldstine-nal megépítették az akkori legkorszerűbb, tárolt programmal vezérelt számítógépet, amit kutatási célokra terveztek. Az 1949-ben megépített EDVAC (angolul Electronic Discrete Variable Automatic Computer), már Neumann elgondolásai alapján épült és a világon az első, belső programvezérlésű, elektronikus, digitális, univerzális számítógép volt. Neumann Jánosnak az "EDVAC-jelentés első vázlata" című meghatározó munkája a teljes elemzését adta az EDVAC tervezett architektúrájának. A jelentés tartalmazta a megépítendő számítógép javasolt felépítését, a részegységek megépítéséhez szükséges logikai áramköröket és a gép kódját.
Néhány gondolat Neumann „First Draft of a Report on the EDVAC” (Első vázlat az EDVAC-ról készült jelentéshez) című művéből:
- „Nagyon nagy sebességű, automatikus, digitális számítási rendszerekkel (computing system) és ezek logikai vezérlésével foglalkozunk.”
- „Egy automatikus számítási rendszer olyan berendezés, amely utasítások végrehajtására képes abból a célból, hogy számításokat végezzen jelentős bonyolultságú problémák, például nemlineáris parciális differenciálegyenletek numerikus megoldása céljából.”
- „Az utasításokat részletesen meg kell adni. Az utasításoknak tartalmazniuk kell minden numerikus információt, amely a probléma megoldásához szükséges, mégpedig a kezdő és peremfeltételeket, a fix paraméterek értékeit, sőt azokat a függvénytáblákat is, amelyek a probléma leírásában szerepelnek.”
- „Differenciálegyenletek megoldásánál a kezdeti, illetve a peremfeltételek nagy numerikus anyagot jelenthetnek, ezeket is meg kell jegyezni, tárolni kell, tehát ehhez is szükséges a memóriaegység.”[2]
A Neumann-elvek szerint a gépnek öt alapvető funkcionális egységből kell állnia: aritmetikai egység, központi vezérlőegység, különböző memóriák, bemeneti egység, kimeneti egység, s ami lényegesebb: a gép működését a tárolt program elvére kell alapozni. Az elvek között szerepel a program soros végrehajtása is.
A Neumann-elvek publikációit teljesen szabadon közreadták, így az EDVAC első üzembe helyezésekor már néhány egyéb Neumann-elvű számítógép is létezett a világban. EDSAC (angolul Electronic Delay Storage Automatic Calculator), UNIVAC (angolul Universal Automatic Computer). Az elvek alapján készül más korai számítógépek: Korai Neumann-architektúrájú számítógépek
Neumann-elvek
[szerkesztés]- Teljesen elektronikus működés (ez Neumann idejében elektroncsöves felépítést jelentett, amit később a tranzisztoros, majd az integrált áramkörös felépítés követett)
- Kettes számrendszer használata (az összes művelet, pl. összeadás, szorzás, kettes számrendszerbeli logikai műveletekre redukálható)
- Belső memória használata
- Tárolt program elve. A számításokhoz szükséges adatokat és programutasításokat a gép azonos módon, egyaránt a belső memóriában (operatív tár) tárolja.[3]
- Soros utasítás-végrehajtás (az utasítások végrehajtása időben egymás után történjen; ennek egy alternatívája a párhuzamos utasítás-végrehajtás, amikor több utasítás egyidejűleg is végrehajtható: ezt a lehetőséget Neumann elvetette)
- Univerzális felhasználhatóság, Turing-gép (programozhatóság; a különböző feladatok programokkal legyenek megoldva, nem pedig erre a célra épített hardverrel)
- Szerkezet: öt funkcionális egység (aritmetikai egység, központi vezérlőegység, memóriák, bemeneti és kimeneti egységek)[1][4]
„ A. M. Turing angol matematikai logikus 1927-ben kimutatta (és a számológépi technika számos szakértője azóta különféle módokon gyakorlatilag is bebizonyította), hogy olyan programutasításokat is ki lehet dolgozni egy számológép számára, amelyek arra késztetik, hogy valamely más – pontosan meghatározott működésű – számológép módjára viselkedjék. Az ilyen utasításrendszereket, amelyek révén egy gép utánozza egy másik gép viselkedését, rövid programoknak nevezzük. E programok kidolgozásának és alkalmazásának jellegzetes kérdéseire valamivel részletesebben is ki szeretnék térni.”
– Neumann János: A számológép és az agy, 1958, A rövid program fogalma[5]
A Neumann-elvű számítógépek elméleti felépítése (a Neumann-architektúra)
[szerkesztés]Egy Neumann-architektúrájú számítógép a következő egységekből épül fel:
- központi egység
- központi feldolgozó egység
- központi vezérlő egység
- aritmetikai-logikai egység
- regiszterblokk
- gyorsítómemória
- matematikai társprocesszor
- operatív tár (memória)
- központi feldolgozó egység
- háttértárak
- perifériák
- input perifériák
- output perifériák
A központi vezérlőegységeket (CPU: Central processing unit), azaz a processzorokat működésük szempontjából két külön kategóriába sorolhatjuk. Az egyik a Neumann-architektúra a másik Harvard-architektúra szerint működik. A két architektúra abban különbözik, hogy a Neumann-elvű esetében megegyezik az adat- és a programmemória, míg a Harvard-architektúrájú számítógép esetén a program- és adatmemória különbözik.
Perifériák Neumann elvei alapján
[szerkesztés]- központi egység (CPU, Central Processing Unit, Központi Feldolgozó Egység, processzor)
- memória
- háttértárak
- merevlemez
- SSD
- flashmemória
- pendrive
- külső háttértár
- CD / DVD
- hajlékonylemez
- stb.
- bemenet
- billentyűzet
- egér
- érintőképernyő
- mikrofon
- digitális kamera
- játék vezérlő / botkormány
- stb.
- kimenet
Jegyzetek
[szerkesztés]- ↑ a b John von Neumann: First Draft of a Report on the EDVAC (angol nyelven) (pdf). University of Pennsylvania, 1945. június 30. (Hozzáférés: 2018)
- ↑ Szelezsán János: Neumann János az első, számítógépet alkalmazó »fizikus«, Fizikai Szemle 2003/12. 425.o.. [2016. augusztus 31-i dátummal az eredetiből archiválva]. (Hozzáférés: 2016. január 17.)
- ↑ A program-, és adatmemória fizikailag közös, ebből származik az architektúra legnagyobb hátránya: a sebezhetőség. (A memóriában tárolt bájtokról nem tudjuk eldönteni, hogy adatot vagy programkódot tartalmaznak, ezt csak a felhasználás módja dönti el!) Ezt használják ki a vírusok, amikor a felhasználó számára adatnak tűnő állományt (például kép) tölt le, miközben a gép a benne található káros kódot futtatja.
- ↑ A Neumann-elv (magyar nyelven), 2003. [2015. július 6-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014)
- ↑ Neumann János. A számológép és az agy (magyar nyelven). Maple Press Company (1959)
Források
[szerkesztés]- John von Neumann: First Draft of a Report on the EDVAC (angol nyelven) (pdf). University of Pennsylvania, 1945. június 30. (Hozzáférés: 2018) – Neumann 1945-ös cikke: "Az első vázlat az EDVAC-ról készülő jelentéshez"
- Kovács Győző, Szelezsán János: Gondolatok Neumann János First Draft of a Report on the EDVAC című, 1945 júniusában megjelent tanulmányáról (pdf)
- Neumann János: A számológép és az agy (The computer and the brain, 1959) (magyar nyelven). Gondolat Kiadó, 1972 (Hozzáférés: 2016) – Neumann 1972-ben megjelent műve magyarul
- Herman H. Goldstine. A számítógép Pascaltól Neumannig. Budapest: Műszaki (2003). ISBN 9789631627718
- Szelezsán János, Révész György, Ádám András, Prékopa András, Legendi Tamás, Herman H. Goldstine. Neumann János élete és munkássága (magyar nyelven). MTESZ Neumann János Számítógéptudományi Társaság (1979. november 27.)
További információk
[szerkesztés]- Neumann János, First Draft of a Report on the EDVAC – az NJSZT oldala Neumann János alapvető tanulmányáról, hivatkozások az angol nyelvű eredeti digitalizált változatára és a megjelent cikk tisztázott, korrektúrázott dokumentumára, a szerkesztő, Michael D. Godfrey előszavával.
Kapcsolódó szócikkek
[szerkesztés]- Neumann-architektúra – benne a korai Neumann-architektúrájú számítógépek felsorolása
- Turing-gép
- Aritmetikai-logikai egység
- absztrakt automata
- sejtautomata
- formális nyelv
- kiszámíthatóság-elmélet
- nem-determinisztikus Turing-gép
- Turing-kiszámíthatóság
- Harvard-architektúra
- Módosított Harvard architektúra