Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu
Irodalmi források Cserny L.: Számítógépek architektúrája. Miskolci Egyetem, Dunaújváriosi Főiskolai Kar, 1996. Tanenbaum A.S.: Számítógéparchitektúrák. Panem Kiadó, Budapest, 2001. Sima D., Fountain T, Kacsuk P.: Korszerű számítógéparchitektúrák tervezési tér megközelítésben. SZAK Kiadó, 1998.
Számítási modell Specifikációs eszköz Végrehajtó eszköz Végrehajtás Programozási nyelv Számítógép architektúra
Számítási modell Nyelvosztály Számítógéposztály Turing modell 0-típusú nyelvek - Neumann modell Imperatív nyelvek Neumann-féle Adatfolyam modell Egyszeri értékadású nyelvek Adatfolyam Applikatív modell Funkcionális nyelvek Redukciós Objektum alapú modell Objektumorientált nyelvek Objektumorientált Predikátumlogika alapú modell Logikai programozási nyelvek (eddig névtelen)
Neumann-elv HNF Padernborn
Neumann-féle számítási modell A számítások alapelemei az adatok. Az adatok nevesítettek, hogy egy számítás során egynél több adatot lehessen használni. A nevesített adatelemeket a programozási nyelvekben változóknak nevezik. A számítások végrehajtása során ezeknek a változóknak meghatározott memória és regiszterhelyek felelnek meg. A megfelelő memória- és regisztercímeket a fordítóprogram rendeli hozzá a változónevekhez. A többszörös értékadás megengedett. A változók a számítások során, ha szükséges, új értéket kaphatnak, és értéküket mindaddig megtartják, amíg új értéket nem rendelünk hozzá. Számításon az adatokon végrehajtott műveleteket értjük. Az adatokat és a műveleteket meghatározó utasításokat binárisan kódoljuk. Az utasítások végrehajtása állapot-átmenet átmenet szemantikát követ. A Neumannmodell olyan véges automatának tekinthető, amelyben a végrehajtás során az automata pillanatnyi állapotát az összes deklarált változó az utasításszámláló regiszter minden, a számítás szempontjából jelentőséggel bíró állapotjelző aktuális értéke határozza meg.
A többszöri értékadás következménye A változók értékét az egymást követő utasítások többször is módosíthatják. A változók aktuális értéke múltérzékeny, azaz attól függ, hogy eddig mely utasítások kerültek végrehajtásra, más szóval a változók nem hivatkozás függetlenek. Ennek példája a ciklusváltozók. A múltérzékenység egy különleges esetét mellékhatásoknak nevezzük. Ez a globális változók értékének a programozó által nem szándékolt, de program által mégis végrehajtott módosítása.
A közvetlen vezérlésű végrehajtás következménye Mivel a Neumann-modellben a számítási feladatot egy rendezett utasítássorozat írja le, és ezen utasítások sorrendje közvetlen vezérlésű, a Neumann-féle számítási modell alapvetően soros jellegű. Ez esetben az alapvetően soros problémaleírás még azokban az esetekben is soros feldolgozáshoz vezet, amikor a feladat eredendően párhuzamos jellegű, például: z=(a+b)*(c+d) A soros végrehajtás kényszerű korlátja feloldható, ha a számítások párhuzamosan végrehajtható részeinek kijelölésére új absztrakciót vezetünk be, amelyet az absztrakció jellegétől függően folyamatnak vagy szálnak nevezünk. A párhuzamos végrehajtás megvalósításához kommunikációhoz, szinkronizációhoz és az adatmegosztáshoz megfelelő mechanizmusokat kell biztosítani.
A számítógép architektúra fogalma Amdahl, 1964 a számítógép azon felépítése, amelyet egy alacsony szinten programokat fejlesztő szakembernek kell ismernie ahhoz, hogy korrekt programokat tudjon írni egy gépre Tartalmazza a regiszterek, memória deklarálását, az utasításkészletet, az utasításszerkezetet, címzési módokat, utasításkódokat. Nem tartalmazza az implementációt (tényleges hardverstruktúrát) és a megvalósítás módját (áramköri technológiát, az áramkörök megvalósítását és azok összeköttetéseit).
A számítógép architektúra fogalma Bell és Newell, 1970 Többszintű hierarchikus leírás: áramköri szint logikai tervezés szintje programozási szint processzor-memória sínek szintje. Az architektúra másik megfogalmazása: a külső jellemzők; a belső felépítés működés együttes leírása.
Az értelmezés szintjei Neumann számítási modell esetén
Leírási szintek Magas szintű programnyelvek szintje Gépi kód (assembly) szintje Operációs rendszer szintje Processzor utasítás szintje (ISA) Mikroarchitektúra szintje Digitális áramköri szint
Szekvenciális mikroarchitektúra CPU Központi egység CU Vezérlő egység ALU Műveleti egység Egy információ-feldolgozó rendszer funkciója, hogy az input információk A halmazát transzformálja az output információk B halmazába. B= f(a) Az adatok az operatív tárban helyezkednek el. Az adatfeldolgozást a CPU (Central Processor Unit) végzi, amelyet program vezérel, amely ugyancsak az operatív tárban található. A CPU-t feloszthatjuk egy ALU-ra (Arithmetical Logical Unit) vagy műveleti egységre (adatfeldolgozó részre) és egy vezérlőegységre CU (Control Unit) (programvezérlő részre). Regiszterek.. RAM Operatív tár I/O eszközök Lemezegységek Nyomtató Busz rendszer
Neumann architektúrájú számítógép felépítése Logikai architektúra operatív tár műveleti egység vezérlőegység megszakítási rendszer I/O rendszer buszrendszer Egy logikai architektúrához több fizikai is kötődik, amelyet. integrált áramkörök aktív elemek passzív elemek vezetékek csatlakozók alkotnak.