Számítógépek architektúrák Architektúrák
Bemutatkozom … Dr. Vadász Dénes, egyetemi docens
[email protected] 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
[email protected] 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
A tárgy célja • 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öz1
• 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
A teljesítés feltételei • Aláírás és vizsga • Az aláírá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árgy té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ép1 (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
Bejelenti terveit, 98-99-re tervezik bevezetni
2001 Itanium
Intel
Valódi 64 bites
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.
Szimuláláció: tettetés, színlelés; Emuláció: utánzás, példa követés
Ea1 15
Az utóbbi évtizedek a számítástechnikában Az évek
70-es
80-as
90-es
A Kötegelt paradigma feldolgozás
Időosztás
Asztali gépek
Hálózatok
Számítóközpontban
Terminálszobában
Íróasztalon
Mobil
Numerikus Szövegek + adatok számok
…+ rajzok
Multimédia
Számítások Hozzáférés
Megjelenítés
Kommunikáció
Hol? Az adatok Fő cél
60-as
Számítógépek © Vadász, 2008. 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.
Ea1 16
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
Lyukkártya
Billentyűzet + CRT
Lásd és kattints
Kérdezd és 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öz1
• 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
Hardverismeret • Kell-e? – 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) Architektúra: itt fő részek és kapcsolódásuk.
CPU CU ALU
Central Memory
I/O Peripheries
Regs 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.
Periféria: perem, szegély külső rész, határon (túl) lévő
Ea1 23
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 folyam is: 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 állapotteret határoznak meg. – Egy-egy instrukció végrehajtása állapot változást hoz. 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 sum := a + b
1
av := sum/2
2
asq := a * a
3
bsq := b * b
4
sumsq := asq + bsq
5
avsq := sumsq/2
6
b sum av asq bsq sumsq avsq x x x x x 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 60C av
x x
610 asq 614 bsq 618 sumsq 61C avsq
x x x x
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 © Vadász, 2008. 814 DIV sumsq, 2, Számítógépek avsq
Ea1 36
Példa: adott a és b, kiszámítandó átlaguk és négyzeteik átlaga Adatfolyam gép a
sum := a + b
b
av := sum/2 asq := a * a
*
bsq := b * b sumsq := asq + bsq
+ sum asq
2
/
avsq := sumsq/2
Hibakezelés: explicit hibaértékekkel
av
bsq
*
A nyilak: neves, vagy névnélküli értékek.
+ sumsq 2
A körök: az operációkhoz rendelt processzorok.
/ avsq
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éke van! 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 • Az alapelemek: 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. Ea1 43 Számítógépek © Vadász, 2008.
Számítógép: hardver és szoftver architektúra • A legáltalánosabb SW architektúra • Direkt futtatás, monitor, operációs rendszer • Az OS fogalma
Alkalmazás
– Kiterjesztett gép – Erőforrás menedzser
Felhasználói felület
Operációs rendszer Hardver
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