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ésEgy 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 2.)
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