Számítógépek architektúrák Architektúrák
Bemutatkozom Dr. Vadász Dénes, egyetemi docens vadasz@iit.uni-miskolc.hu http://www.iit.uni-miskolc.hu/vadasz Informatikai Intézet épülete, I. emelet, 111. szoba Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai és villamosmérnöki tanszékcsoport Általános informatikai tanszék http://www.iit.uni-miskolc.hu Számítógépek Vadász, 2008. Ea1 2
Bemutatkozom Dr. Kovács Szilveszter, egyetemi docens szkovacs@iit.uni-miskolc.hu http://www.iit.uni-miskolc.hu/~szkovacs Tel: +36 46 565-136 Informatikai Intézet épülete, I. emelet, 106a. Szoba, 21-07 mellék Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Általános informatikai tanszék http://www.iit.uni-miskolc.hu Számítógépek Vadász, 2008. Ea1 3
Számítógép (computer) A tárgy célja Egy programozási nyelv segítségével leírt számítási feladat végrehajtására szolgáló eszköz 1 Architektúra (felépítés, szerkezet) 2 Funkcionális specifikáció az irányultság: specifikáció, Megvalósítási célú irányultság: egységek és kapcsolódásuk. Bármelyik irányultságnál különböző részletezettség A tárgy célja: általános hardverismeret megszerzése, továbbá felhasználói felületek (parancsértelmezős és grafikus) megismerése. Szemléletmód kialakítás. Számítógépek Vadász, 2008. Ea1 4
Az oktatási módszereink Vetített képes előadások http://www.iit.uni-miskolc.hu/~szkovacs/ Oktatási oldalaimon a GEIAL301B kurzus anyaga itt az előadások képei nyomtatható formában (Acrobat Reader) A Számítógépek, számítógép rendszerek c. jegyzet Az előadásokon a lényeges dolgok kiemelése, fontos definíciók, konvencionális szóhasználat stb. Laboratóriumi gyakorlatok Kötelező a látogatásuk Önálló feladatok Számítógépek Vadász, 2008. Ea1 5
Ajánlott irodalom Sima, Fountain, Kacsuk: Korszerű számítógép-architektúrák, SZAK Kiadó, 1998. Csala: A számítástechnikai hardver alapjai, BKE, Aula, 1993. Vadász: Számítógépek, számítógép rendszerek, Jegyzet, ME, http://www.iit.uni-miskolc.hu/~szkovacs/szgepek-jegyzet.pdf Számítógép architektúrák, Előadás vázlatok, ME, http://www.iit.uni-miskolc.hu/~szkovacs Számítógépek Vadász, 2008. Ea1 6
Az ütemterv A tárgy honlapján, a tanszéki hirdetőtáblán Témák: Számítási modellek, architektúrák A felhasználó szemlélete. Szolgáltatások. Parancsnyelvek. A CPU Memória Sínek Eszközök: képernyő, billentyűzet, mutatók Háttértárak, nyomtatók Esettanulmányok Számítógépek Vadász, 2008. Ea1 7
Aláírás és vizsga Az aláírás feltételei A teljesítés feltételei A gyakorlatokon aktív jelenlét, az ottani feladatok eredményes elvégzése. Legalább 10 gyakorlatot el kell ismertetni! Köztük évközi ZH kötelező (13. hét)! Aláírást csak a tanulmányi időszakban szerezhetnek! A vizsga írásbeli és szóbeli vizsga Írásbeli: rövid kérdésekre rövid válaszok Szóbeli, lehet javítani is, rontani is Számítógépek Vadász, 2008. Ea1 8
A teljesítés feltételei Az aláírás feltétele a gyakorlatokra való felkészülés és azokon való aktív részvétel. Minden gyakorlaton minden hallgatót értékel a gyakorlatvezető, és megállapítja, hogy az adott gyakorlatot teljesítettnek veszi-e vagy sem. Az aláíráshoz legalább 10 gyakorlatot teljesíteni kell. Betegség miatti hiányzásokat is pótolni kell. Az aláírás további feltétele az évközi feladatok eredményes elkészítése és az évközi zárthelyi dolgozat eredményes teljesítése. Számítógépek Vadász, 2008. Ea1 9
A teljesítés feltételei Az évközi zárthelyi dolgozat időpontja a 13. tanulmányi hétre esik. A zárthelyi időtartama 50 perc, elégséges szintű megoldásához legalább 50%-os eredmény szükséges. A gyakorlat hiányosságai miatt elmaradt aláírás pótlásra a vizsgaidőszakban már nincs lehetőség. Számítógépek Vadász, 2008. Ea1 10
A vizsga A vizsga írásbeli és szóbeli vizsga. Az írásbeli vizsgán belépő dolgozatot írnak, melyhez több, röviden megválaszolható kérdést kapnak. Ezt 50%-nál jobb teljesítéssel kell megírni, hogy a szóbeli részre sor kerüljön. A szóbelin a tárgytémaköreihez kapcsolódó kérdésekre kell felelniük. Számítógépek Vadász, 2008. Ea1 11
Számítógép történet Tanulmányozzák Katona István A számítógép története c. prezentációját! http://www.ektf.hu/mediainf/inf/ktoth/konyvtar/szamitogeptortenet_elemei/frame.htm Ebből fontos: a Neumann elvű gép A Neumann elv röviden: A számítógép legyen teljesen elektronikus, külön vezérlő-és végrehajtó egységgel. Kettes számrendszert használjon. Az adatok és a programok ugyanabban a belső tárban, a memóriában legyenek. A számítógép legyen univerzális Turing-gép 1 (soros utasítás végrehajtás elve érvényesüljön) (Turing 1937) Számítógépek Vadász, 2008. Ea1 12
Fontos mérföldkövek Év Név Készítő Megjegyzés 1834 Analytical Engine Babbage Az első általános célú számítógép 1936 Z1 Zuse Első működő, relés technikával 1943 COLOSSUS Brit kormáy Első elektronikus gép. Szupertitkos 1944 Mark I Aiken Első amerikai általános célú (Harward arch.) 1946 ENIAC Ecker/Mauchley A modern számítógépek története indul 1948 Neumann A Neumann elv megszületik 1949 EDSAC Wilkes Első tárolt program elvű 1952 IAS Neumann A mai géptervezés alapjai 1961 1401 IBM Üzleti célú, népszerű 1962 7094 IBM Tudományos számításokhoz 1964 360 IBM Általános célú Számítógépek Vadász, 2008. Ea1 13
Fontos mérföldkövek Év Név Készítő Megjegyzés 1964 6600 CDC Első tudományos célú szuperszámítógép 1965 PDP-8 DEC Tömegesen elterjedt mikroszámítógép 1970 PDP-11 DEC Tömegesen elterjedt mikroszámítógép 1974 8080 Intel 8 bites lapkán általános célú gép 1974 CRAY-1 Cray Első vektoros szuperszámítógép 1978 VAX DEC 32 bites miniszámítógép, 1 MIPS-es 1981 IBM PC IBM Személyi számítógépek kora indul 1985 MIPS MIPS RISC korszak indul 1987 SPARC Sun SPARC alapú munkaállomások 1990 RS6000 IBM Az első szuperskalár gép Számítógépek Vadász, 2008. Ea1 14
Fontos mérföldkövek Év Név Készítő Megjegyzés 1991 R4000 MIPS Már 64 bites a processzor 1992 Alpha DEC Kiváló RISC processzor 1994 IA-64 Intel 2001 Itanium Intel Valódi 64 bites Bejelenti terveit, 98-99-re tervezik bevezetni 2003 PowerPC Apple Mc OS operációs rendszer 2003 AMD64 AMD 32 bitessel kompatibilis (azt emulálja) Opteron, Athlon Számítógépek Vadász, 2008. Ea1 15 Szimuláláció: tettetés, színlelés; Emuláció: utánzás, példa követés
Az utóbbi évtizedek a számítástechnikában Az évek 60-as 70-es 80-as 90-es A paradigma Kötegelt feldolgozás Időosztás Asztali gépek Hálózatok Hol? Terminálszobában Számítóközpontban Íróasztalon Mobil Az adatok Numerikus adatok Szövegek + számok + rajzok Multimédia Fő cél Számítások Hozzáférés Megjelenítés Kommunikáció Számítógépek Vadász, 2008. Ea1 16 Paradigma: Bizonyításra, összehasonlításra alkalmas példa, minta. Követése jó döntések meghozatalát segítheti. Elfogadott tételek, koncepciók együttese, ami persze minta lehet.
Az utóbbi évtizedek a számítástechnikában 2 Az évek 60-as 70-es 80-as 90-es A paradigma Batch Time sharing Desktop Network Az interfész Lyuk- Billentyű- Lásd és Kérdezd és kártya zet + CRT kattints mondd Kapcsolódás Nincs Terminál vonalak LAN Internet Tulajdonos Intézeti sz.központ Osztályok Osztályok dolgozói Mindenki Számítógépek Vadász, 2008. Ea1 17
Szemléletek... Számítógép (computer) Egy programozási nyelv segítségével leírt számítási feladat végrehajtására szolgáló eszköz 1 Architektúra (felépítés, szerkezet) 2 Funkcionális specifikáció az irányultság: specifikáció, Megvalósítási célú irányultság: egységek és kapcsolódásuk. Bármelyik irányultságnál különböző részletezettség A tárgy célja: általános hardverismeret megszerzése, továbbá felhasználói felületek (parancsértelmezős és grafikus) megismerése. Különböző szerepköri szemléletek is vannak... Számítógépek Vadász, 2008. Ea1 18
Általános felhasználói látásmód Többnyire felső szint Grafikus v. parancsnyelvi felhasználói felület (ikonok, ablakok, eszközök, fájlok, könyvtárak stb., parancs, megnyitás, indítás, kattintás vonszolás stb.) Szolgáltatások Irodai Kommunikációs Információszerző Védelmi, menedzselő Adott célú alkalmazások Számítógépek Vadász, 2008. Ea1 19
Programozói látásmód Közeledünk a konkrétumokhoz... Amit a felhasználó lát, azt a programozó is Fejlesztői felület (editorok, make, fordító és taszképítő, debugger stb.) Ezt a szemléletet más tárgyakban oktatjuk Rendszergazdai látásmód Közelebb a valódi géphez Az operációs rendszert, szolgáltatásokat, ezek menedzselését ismernie kell Számítógépek Vadász, 2008. Ea1 20
Kell-e? Hardverismeret Könnyebb az egyszerű felhasználónak is, ha vannak bizonyos ismeretei Programozónak több... Rendszergazdának sok... Hardvereseknek egész sok, villamosmérnökségi szint Figyeljünk fel arra, hogy a egy számítógépet a hardver és szoftver architektúrája együtt határozza meg. Kijelentjük: ez a Neumann elvből származtatható gondolat! (Magyarázzák a származtatást!) Számítógépek Vadász, 2008. Ea1 21
Az eredeti Neumann gép Tár (Memória) Vezérlő egység Végrehajtó egység (ALU+Accum.) I/O egység Számítógépek Vadász, 2008. Ea1 22
A Neumann architektúra (mai fogalmakkal) CPU Architektúra: itt fő részek és kapcsolódásuk. CU ALU Regs Central Memory I/O Peripheries Bus Control Unit: Vezérlő egység ALU: Aritmetikai és logikai egység Regs: Regiszterek Central Memory: Központi memória, tár I/O Peripheries: Ki/bemeneti egységek, perifériák Bus: Sín, adattovábbító áramkörök Central Processing Unit: Központi feldolgozó egység, processzor Számítógépek Vadász, 2008. Ea1 23 Periféria: perem, szegély külső rész, határon (túl) lévő
Egy másik funkcionális modell Számítógépek Vadász, 2008. Ea1 24
A központi tár és perifériák A memória Adatokat (bit, bájt, szó, blokk, mezőkből álló rekord, fájl stb.) és gépi instrukciókat tartalmazó, címezhető cellák (rekeszek) készlete. Valamilyen fizikai hatásra kialakuló állapot, állapotkülönbség (mágnesezettség, töltöttség, feszültségszint, fény törés stb.) A perifériák (ki/bemeneti egységek) Periféria vezérlő áramkörökkel (controller, adapter) kapcsolódó eszközök (devices). A CPU A gépi instrukciókat feldolgozó (processzáló) egység, a processzor. Több funkcionális elemből áll (CU, ALU, Regs stb.) Számítógépek Vadász, 2008. Ea1 25
A Neumann gép működése A memória rekeszeiben ott vannak a gépi instrukciók (a kód, a program) és az adatok. A CPU memóriából felhozza (fetch) a soron következő gépi instrukciót A CU elemzi az instrukciót. Értelmezi. Ha szükséges, a memóriából felhozza az instrukció operandusát Az ALU végrehajtja az instrukciót A végrehajtás eredménye a regiszterekbe, esetleg a memória megfelelő rekeszébe kerül Folytatódik a soron következő instrukcióval Számítógépek Vadász, 2008. Ea1 26
Az állapotterek Vegyük észre e következő absztrakciókat A soron következő instrukció koncepció egy instrukció folyam (instruction stream) képzetet ad Ezen folyamon egy mutató mutathatja a soron következő elemet. Ez a mutató a programszámláló regiszter (PC: Program Counter, IP: Instruction Pointer) Az instrukció folyam instrukcióinak készlete vezérlési állapotteret határoz meg. Ebből egy állapotot az ad meg, hogy az i-edik lépésben mely instrukciót hajtja végre a processzor Létezik számunkra egy adat folyamis: a memória rekeszeknek és regisztereknek az a sora, mely az egymás utáni instrukciókban operandusként szerepelnek. Az adat folyam elemei adat állapotterethatároznak meg. Egy-egy instrukció végrehajtása állapot változásthoz. Számítógépek Vadász, 2008. Ea1 27
Kis előleg a félév végéről... Kérdések Csakis egy IS és DS képzelhető el? Dehogy! SIMD: ugyanazt az instrukció folyamot változó (különböző, többszörös) adatfolyamon el tudjuk-e képzelni? Hol lehetne ezt? (pl. vektorprocesszor) Mi képezi a vezérlési állapotteret? Mi a vezérlési állapot (az állapottér egy eleme)? Adat állapottér? Ennek egy eleme? Állapot változás? Mi okozza? Számítógépek Vadász, 2008. Ea1 28
Az instrukció folyam végrehajtása A program (az instrukció folyam, a kód) futása állapot-átmenetek láncolatát hozza. A vezérlés állapot-átmenet láncolat kulcsjellemzője a programszámláló regiszter egymás utáni értékei: a vezérlés menete (flow of control). (processz, vagy thread, szál fogalom) A Neumann elvű gépekre jellemző ez az egy vezérlésmenet(single Instruction Stream) egy adatfolyamon (on Single Data Stream): SISD Flinn 1966-os osztályozása (SISD, SIMD, MIMD) Számítógépek Vadász, 2008. Ea1 29
Állapotfüggés Hogy egy instrukció milyen állapotba billent, az függ az előző állapottól... Állapot-érzékeny a Neumann gép El tudunk-e képzelni állapot-független gépet? Számítógépek Vadász, 2008. Ea1 30
A Neumann gép és az imperatív programozás Az imperatív nyelvekkel a vezérlés menetét manipuláljuk Tedd ezt ezzel, utána ezt stb. FORTRAN, C, Pascal, Basic Ezért az imperatív programozási paradigma jól megfelel a Neumann gépnek Imperatív paradigma: teljesen specifikált lépések teljesen specifikált adatokon Számítógépek Vadász, 2008. Ea1 31
Hiba és eseménykezelés a Neumann gépen Az eseményekhez kezelő (handler) instrukciófolyam tartozik Az esemény bekövetkeztekor a vezérlés menete ugorjon a kezelőre (a CPU állapot, a kontextus lementése után) A kezelés után (ha lehetséges) a vezérlés menete térjen vissza a normál instrukció folyamra, folytatódjon a processz futása (az állapot, a kontextus vissza-emelése után persze). Összegezve: a hiba és eseménykezelés a vezérlés menetének manipulálásával történik. Számítógépek Vadász, 2008. Ea1 32
Egy más elvű gép: adatfolyam gép A Dataflow Machine (kontrasztként) ideája: szeparált processzorok minden operációra (operáció lehet: aritmetikai, logikai, függvényhívás stb.) Az operációk (processzorok) várnak, míg operandusuk értéke előáll, utána adják eredményüket. A processzorok (operációk) függetlenek. A legkorábbi lehetséges pillanatban adják az eredményüket. Az operációk végrehajtásának sorrendje az adatfolyamból adódik. Számítógépek Vadász, 2008. Ea1 33
Példa: adott a és b, kiszámítandó átlaguk és négyzeteik átlaga Egy virtuális Neumann gép (szekvenciális végrehajtás) A flow of control IP a b sum av asq bsq sumsq avsq sum := a + b av := sum/2 asq := a * a bsq := b * b sumsq := asq + bsq 1 x 2 x 3 x 4 x 5 x avsq := sumsq/2 6 x Az állapotvektor a 3. absztrakt instrukció végrehajtása után Számítógépek Vadász, 2008. Ea1 34
Gyakran használt fogalmak Virtualitás, virtuális (látszólagos) Valami, ami valóságosan nem létezik, de mégis úgy használhatjuk, mintha létezne Pl. virtuális meghajtó, emulált terminál, virtuális gép stb. Transzparencia, transzparens (átlátszó) Valami, ami ott van, de nem látjuk, nem vesszük észre, nem kell törődni vele, mert átlátszó. (Pl. az előbbi virtuális diszk-meghajtót a hálózaton át egy fájlszerver biztosítja, akkor a hálózat transzparens, nem kell vele törődni.) Világos, tiszta, nem titkolt Számítógépek Vadász, 2008. Ea1 35
Példa: adott a és b, kiszámítandó átlaguk és négyzeteik átlaga Neumann gép (szekvenciális végrehajtás) IP 800 804 808 80C 810 814 600 a 604 b 608 sum x 60C av 610 asq x 614 bsq x 618 sumsq x 61C avsq 800 ADD a,b,sum 804 DIV sum, 2, av 808 MUL a, a, asq 80C MUL b, b, bsq 810 ADD asq, bsq, sumsq 814 DIV sumsq, 2, avsq x Számítógépek Vadász, 2008. Ea1 36 x
Példa: adott a és b, kiszámítandó átlaguk és négyzeteik átlaga Adatfolyam gép sum := a + b av := sum/2 a b asq := a * a bsq := b * b sumsq := asq + bsq avsq := sumsq/2 Hibakezelés: explicit hibaértékekkel * + * asq sum bsq A nyilak: neves, vagy 2 névnélküli értékek. / + av 2 / sumsq avsq A körök: az operációkhoz rendelt processzorok. Számítógépek Vadász, 2008. Ea1 37
Példa: adott a és b, kiszámítandó átlaguk és négyzeteik átlaga Adatfolyam gép Van 6 processzor a 6 operációhoz, nincsenek változók (név, érték, típus, cím), névvel ellátott értékek vannak (a,b,asq,bsq,sum stb). A neves értékek nem definiálhatók át! Redefinició esetén nem tudnák a processzorok, melyik értékre várjanak! A neves értékeknek típusa és explicit hibaértékevan! Ui. egy processzor mindenképp kell eredményezzen értéket, legföljebb hibás eredményt! Kaphat hibás inputot is. Számítógépek Vadász, 2008. Ea1 38
Számítógép - nyelvek - számítási modell A számítási modellek összetevői a számítás alapelemei a problémaleírás modellje a leírás jellege és módszere; a végrehajtás modellje a végrehajtási szemantika a végrehajtás kontrollja Számítógépek Vadász, 2008. Ea1 39
A Neumann modell Azalapelemek: azonosítható entitásokhoz rendelt (típusos) adatok. (Változók, többszörös értékadás) Problémaleírás procedurális/imperatív (lépésenként megadva ) A végrehajtás modellje a szemantika: állapotátmenet szemantika a kontroll: közvetlen vezérlés ( a vezérlés menete ) Szemantika(görög): jelentéstan, a nyelvtudománynak a nyelvi formák jelentésével és jelentésváltozásával foglalkozó ága Entitás: Lényeges létező valami. Elem. Számítógépek Vadász, 2008. Ea1 40
Az adatfolyam modell Az alapelemek: azonosítható entitásokhoz rendelt (típusos) adatok. (Egyszeri értékadás) Problémaleírás deklaratív (az operációk felsorolása pl. függvények használatával ) A végrehajtás modellje a szemantika: applikatív a kontroll: adatfolyam vezérelt Deklaratív paradigma: A deklaratív program csak felsorol. Az ilyen program utasításainak a sorrendje nem számít Deklaratív jellegű lehet egy logikai programozási nyelv is (ahol a következtetési motor a teljes szabályteret bejárja ). Számítógépek Vadász, 2008. Ea1 41
Neumann elvű gép A gép fő részei, követelmények: ALU, vezérlő egység, memória, perifériák, 2-es számrendszer, elektronikus. Előtte? Tárolt program elv: A tárban az adatok és a program is. Előtte? Következményei: jók és rosszak. Automatikus működés (közvetlen vezérlés): program szerint, állapotok, állapotátmenetek, a vezérlés menete, PC/IP szerepe. Babbage Analitical Engine: megfelel? Számítógépek Vadász, 2008. Ea1 42
Neumann elvű gép Babbage Analitical Engine: megfelel? The first fully-automatic calculating machine. British computing pioneer Charles Babbage (1791-1871) Foreground: "operational cards", for instructions; background: "variable cards", for inputting data. Számítógépek Vadász, 2008. Ea1 43
Számítógép: hardver és szoftver A legáltalánosabb SW architektúra Direkt futtatás, monitor, operációs rendszer Az OS fogalma Kiterjesztett gép Erőforrás menedzser architektúra Alkalmazás Operációs rendszer Hardver Felhasználói felület A rétegezettség (layered architecture) Egy réteg elrejti az alatta fekvő rétegek részleteit. Elegendő csak az alattad lévő réteg felületét (interface) ismerni Számítógépek Vadász, 2008. Ea1 44
Operációs rendszer osztályozás Cél szerint: általános, cél HW nagyság szerint: PC, kis, nagy, szuper Processzorok, processzek, felhasználók száma szerint Időosztás szerint: szekvenciális, time sharing: kooperativ, beavatkozó Memóriamenedzselés szerint: valós, virtuális Fájlrendszer implementáció szerint Számítógépek Vadász, 2008. Ea1 45
Összefoglalás Bevezetés Egy kis história A Neumann elvű gép és az adatfolyam gép. Számítási modellek Számítógépek Vadász, 2008. Ea1 46
Számítógépek architektúrák Architektúrák VÉGE