Hardver Ismeretek. Várady Géza varady@morpheus.pte.hu



Hasonló dokumentumok
Számítógép architektúrák I. Várady Géza

Számítógép architektúrák. Bevezetés

Ez egy program. De ki tudja végrehajtani?

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

Számítógép architektúrák

A számítástechnika fejlődése

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

Digitális rendszerek. Mikroarchitektúra szintje

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

Számítógépek felépítése, alapfogalmak

Számítógépek felépítése

Hardver ismeretek. Várady Géza, B144

Máté: Számítógép architektúrák

Számítógép architektúra

Számítógépek felépítése, alapfogalmak

Bevezetés az informatikába

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

A mikroprocesszor felépítése és működése

Processzor (CPU - Central Processing Unit)

1. Fejezet: Számítógép rendszerek. Tipikus számítógép hirdetés

Az informatika fejlõdéstörténete

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK A STRUKTURÁLT SZÁMÍTÓGÉP-FELÉPÍTÉS. Misák Sándor. 2. előadás DE TTK

Adatok ábrázolása, adattípusok

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

3. Az elektronikus számítógépek fejlődése napjainkig 1

Bevezetés az informatikába

Digitális rendszerek

1. Fejezet: Számítógép rendszerek

1. Generáció( ):

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

VEZÉRLŐEGYSÉGEK. Tartalom

szeged.hu/~mate/ szeged.hu/~mate/ Máté: Számítógép architektúrák előadás 1

Programozás alapjai. Wagner György Általános Informatikai Tanszék

Informatika érettségi vizsga

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Számítógép felépítése

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

erettsegizz.com Érettségi tételek

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

BEVEZETÉS AZ INFORMATIKÁBA. Háber István

2017/12/16 21:33 1/7 Hardver alapok

Digitális rendszerek. Utasításarchitektúra szintje

Az Informatika Elméleti Alapjai Dr. Kutor László. A számolás korai segédeszközei A korszerű számítógépek kialakulása

Az Informatika Elméleti Alapjai Dr. Kutor László. A számolás korai segédeszközei A korszerű számítógépek kialakulása

Digitális Rendszerek és Számítógép Architektúrák (BSc államvizsga tétel)

2016/08/31 02:45 1/6 Hardver alapok

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Jelfeldolgozás a közlekedésben

Jacquard szövőgépe, vezérlési modulok használata 1805 lyukkártyás vezérlés

A számítástechnika történeti áttekintése

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

1. Milyen eszközöket használt az ősember a számoláshoz? ujjait, fadarabokat, kavicsokat

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

SZÁMÍTÓGÉP FELÉPÍTÉSE (TK 61-TŐL)

Informatikai Rendszerek Alapjai. A számolás korai segédeszközei A korszerű számítógépek kialakulása

A fejlődés megindulása. A Z3 nevet viselő 1941-ben megépített programvezérlésű elektromechanikus gép már a 2-es számrendszert használta.

Beágyazott rendszerek KMABR11TNC Tematika.

Digitális rendszerek. Digitális logika szintje

Számítógép Architektúrák

A szoftverfejlesztés eszközei

Architektúra, cache. Mirıl lesz szó? Mi a probléma? Teljesítmény. Cache elve. Megoldás. Egy rövid idıintervallum alatt a memóriahivatkozások a teljes

Hardver Ismeretek IA32 -> IA64

Fejezetek az Információ-Technológia Kultúrtörténetéből

Számítógép architektúrák. A mai témák. A teljesítmény fokozás. A processzor teljesítmény növelése

Számítógépek architektúrák. Bemutatkozom. A tárgy célja. Architektúrák

Labor gyakorlat Mikrovezérlők

A mai témák. Számítógép architektúrák. CISC és RISC. A teljesítmény fokozás. További előnyök. A RISC gondolat

SZÁMÍTÓGÉP-ARCHITEKTÚRÁK

Az informatika fejlődéstörténete. A számítástechnika kezdetei

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Párhuzamos programozási platformok

Bevezetés a számítógépes rendszerekbe programozóknak

Központi vezérlőegység

Máté: Számítógép architektúrák

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

IT - Alapismeretek. Feladatgyűjtemény

IT - Alapismeretek. Megoldások

Nagy Gergely április 4.

Szoftver-technológia I.

ismerd meg! A PC vagyis a személyi számítógép

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

Számítógépek architektúrák. Architektúrák

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

Egyszerű RISC CPU tervezése

Alapfogalmak. Dr. Kallós Gábor A Neumann-elv. Számolóeszközök és számítógépek. A számítógép felépítése

Máté: Számítógép architektúrák

Összeadás BCD számokkal

Bevezetés az informatikába

Informatikai alapismeretek földtudományi BSC számára

A SZÁMÍTÓGÉP KIALAKULÁSA. Zámori Zoltán, KFKI

Máté: Számítógép architektúrák

Alapismeretek. Tanmenet

A számítógép egységei

Grafikus csővezeték 1 / 44

Átírás:

Hardver Ismeretek Várady Géza varady@morpheus.pte.hu 1

Bevezetés - fogalmak Informatika sokrétű Információk Információtechnika Szerzése Feldolgozása Tárolása Továbbítása Informatika a technikai eszköz oldalról Számítástechnika Automatizált adatfeldolgozás eszközeivel foglalkozik 2

Bevezetés - fogalmak Rendszer Elemekből áll Elemek között viszonyok léteznek Rendszerkörnyezetek Határok meghúzása Belső környezet Külső környezet Kettős rendszernézet Valóság, valós rendszer (VR) Róla szóló ismeret információs rendszer (IR) 3

Bevezetés - fogalmak Probléma Fejlesztő nem érti (jól) a VR-t Felhasználó nem érti (jól) az IR-t Helyes informatikai szemlélet, 3 dolog egységében gondolkozni Valóság (valós rendszer, VR) Ismereti kép (információs rendszer, IR) Technikai erőforrás (eszközrendszer, ER) 4

Bevezetés - fogalmak VR IR A megfelelő kapcsolatot egy jó modell biztosíthatja, amely a feladat szempontjából jól írja le absztrakt módon a valós rendszert. Modell: valós rendszer megfelelő mértékben egyszerűsített leírása. Csupán a feladat szempontjából érdekes összefüggéseket és objektumokat tartalmazza. 5

Bevezetés Informatikusok feladata Valós rendszer (VR) ismerete Információs rendszer (IR) ismerete Ismerni kell az adott feladat valós rendszerbeli működését (pl. kémia, aerodinamika, stb...) Informatikai megoldások ismerete Eszközrendszer (ER) ismerete Technikai eszközök ismerete 6

Bevezetés Informatikai megoldások elsődleges eszközei: Számítógépek Analóg számítógépek (folyamatos jeleken és értékeken alapul) Digitális számítógépek (ugrásszerű jeleken és értékeken alapul) Tárgy témája a digitális számítógépek Felépítése Működése Osztályozása 7

Bevezetés Digitális számítógép Emberi problémák Utasítások Megoldás Számológép számítógép Sűrű interakció Program Utasítások sorozata? = 8

Bevezetés Elektronikus áramkörök Egyszerű utasításokat hajtanak végre ( add össze, hasonlíts, másolj ) Utasítások együttese: Nyelv Gép nyelve: Gépi nyelv (L0) Pl. 0F A2 (cpuid) F4 (hlt) E9 (jmp short) Emberek számára nehézkes, fárasztó, komplex feladatoknál átláthatatlannak tűnik 9

Bevezetés Megoldás: Ember számára érthetőbb, új utasításrendszer (L1, L2, L3 ) Absztrakciós szintek - komplexitás kezelése Strukturált számítógép felépítés 10

Struktúrált számítógép felépítés Az új utasítások rendszere is nyelv (L1). Két módszer az új nyelv kezelésére: Első módszer: L1 utasításait L0-beli sorozatokkal helyettesítjük L1 aa1 bb1 cc1.. L0 a0 a1 a2 b0 b1 c0 11

Nyelvek Ekkor L1-ből létrejön egy új L0-beli program és az fut le L1 nyelvű program L0 nyelvű Fordító Számítógép program Ez a módszer: Fordítás A fordítást végző program: Fordító (Compiler) 12

Nyelvek Másik módszer: L0 nyelvű L1 értelmező (Interpreter) Utasításonként végrehajtódik az L1 program L1 nyelvű program Értelmező Számítógép Nincs köztes L0 nyelvű program 13

Nyelvek Fordító Értelmező különbségek Tc(futtat) << Ti(futtat) Fordítás: létrejön egy köztes L0 program Értelmezés: nincs köztes program Értelmezés: fejlesztés, hibakeresés gyorsabb Tc(fordít)+Tc(futtat) > Ti(futtat) L1 nyelvű Fordító program L1 nyelvű program L0 nyelvű Számítógép program Értelmező Számítógép 14

Nyelvek Értelmezés - Virtuális gép L1 nyelvű Értelmező Számítógép program Gépi nyelve L1 15

Nyelvek Értelmezés - virtuális gépek többszintű gép Az n-edik szintű Ln nyelvű, Mn virtuális gép nyelven írt programokat lefordítják n-m-edik L3 nyelvű, M3 virtuális gép szintűre, vagy egy L2 nyelvű, M2 virtuális gép n-m-edik szintű értelmező értell1 nyelvű, M1 virtuális gép mezi őket, mє[1,..,n] L0 nyelvű, M0 valódi gép 16

Nyelvek Egyre magasabb szintű nyelvek Miért nem hardveresen? Speciális célú, de átlátható Lehetséges, de nagy költséggel járna Hordozhatóság n-edik szintű nyelv, különböző gépek n-1-edik szintjeire épülhet 17

Nyelvek n-edik szintű nyelv programozója nem szükséges hogy ismerje az n-m szinteket Azoknak akik új szinteket terveznek vagy gyors és hatékony programokat akarnak írni, szükséges az alsóbb szintek ismerete 18

Többszintű gépek problémaorientált nyelvi szint Legtöbb mai számítógép kettő vagy több szintű assembly nyelvi szint operációs rendszer gépi szintje utasításrendszer-architektúra szintje mikroarchitektúra szintje digitális logikai szint 19

Többszintű gépek problémaorientált nyelvi szint Valódi hardver Kapuk Digitális eszközök assembly nyelvi szint operációs rendszer gépi szintje utasításrendszer-architektúra szintje Alatta: eszközszint (tranzisztorok) mikroarchitektúra szintje digitális logikai szint 20

Többszintű gépek problémaorientált nyelvi szint ALU (Arithmetic Logic Unit), regiszterek assembly nyelvi szint operációs rendszer gépi szintje utasításrendszer-architektúra szintje mikroarchitektúra szintje digitális logikai szint 21

Többszintű gépek problémaorientált nyelvi szint ISA (Instruction Set Architecture) szint assembly nyelvi szint operációs rendszer gépi szintje Gépi nyelvű utasítások utasításrendszer-architektúra szintje szintje mikroarchitektúra szintje digitális logikai szint 22

Többszintű gépek problémaorientált nyelvi szint Kevert szint, ISA szintű assembly nyelvi szint utasítások és új utasítások vegyesen operációs rendszer gépi szintje eltérő memóriautasításrendszer-architektúra szintje szervezés Több program egyidejű mikroarchitektúra szintje futtatása digitális logikai szint 23

Többszintű gépek Alkalmazás problémaorientált nyelvi szint programozók (többnyire fordító, szavakból álló assembly nyelvi szint nyelvek) operációs rendszer gépi szintje Rendszerprogramozók (értelmező, numerikus programok) utasításrendszer-architektúra szintje mikroarchitektúra szintje digitális logikai szint 24

Többszintű gépek problémaorientált nyelvi szint Az alsóbb assembly nyelvi szint szintek nyelveinek kényelmeoperációs rendszer gépi szintje sebb formája utasításrendszer-architektúra szintje (assembler) mikroarchitektúra szintje digitális logikai szint 25

Többszintű gépek problémaorientált nyelvi szint Magas szintű nyelvek (C, assembly nyelvi szint C++, Java, stb..) operációs rendszer gépi szintje Speciális alkalmazási utasításrendszer-architektúra szintje területre is kiélezett lehet mikroarchitektúra szintje digitális logikai szint 26

Többszintű gépek Egy szint adattípusai, műveletei, Szolgáltatásai A szint architektúrája Számítógép felépítése ~ Számítógép-architektúra 27

Mikroprogramozás 1940 digitális számítógépek kétszintűek Digitális logika szintje (bonyolult áramkörök) ISA-szint (programok) 1951 Maurice Wilkes legyen három szint Digitális logika Beépített értelmező (mikroprogram) ISA-szint Kevesebb áramkör (azaz kevesebb vákuumcső) 1970-re minden komoly gép így készült 28

Operációs rendszerek ~1960 Számítási idő Kezelés - programozó személyesen Fordító program betöltése (kártyákról, pl. FORTRAN) Program betöltése (FORTRAN nyelvű) Fordítás új program kártyán (Gépi kódú) Új program betöltése Futtatás Kimenet Hiba esetén memóriamásolat (core dump), otthon tanulmányozható. 29

Operációs rendszerek Gépkezelő munkájának kiváltása Vezérelt betöltések (fordító, új program, adat) Egyre több szolgáltatás az ISA szint felett Új réteg körvonalazódott Operációs rendszeri makroutasítások mai néven: rendszerhívások 30

Mikroprogram szintje Egyre több szolgáltatás ezen a szinten Eleinte csak műveleti utasítások Később új tulajdonságok is Pl. megszakítások rendszere Program felfüggesztés, folytatás Mikroprogramok meghíztak Pl. ADD huzalozott, de INC mikroprogram Visszatértek a hardveres megoldások Programozó szempontjából mindegy 31

Mérföldövek 0. generáció 1642 Blaise Pascal 1694 Gottfried Wilhelm von Leibniz Mechanikus gép 4 alapművelet 1822 Charles Babbage Mechanikus gép összead, kivon Differenciagép polinom közelítés 1837 Charles Babbage Analitikus gép 4 művelet Lyukkártyákkal programozható, kimenet is kártyákon 32

Mérföldövek 0. generáció 1937, John Atanasoff, Georg Stibbitz Számológép Kondenzátor memória, felejtés ellen frissítés (mint ma...) 33

Mérföldövek 1. generáció 1943 Alan Turing 1943-1946 John Mauchley COLOSSUS vákuumcsövek, kódfejtés ENIAC 18000 vákuumcső, 140000 Watt 30 tonna, programozás 6000 kapcsolóval 1945 Neumann János EDVAC IAS Memória (adat és program) Aritmetikai Logikai Egység (ALU) Vezérlő egység Bement/Kimeneti eszközök 34

1. Generáció Neumann elvű gép Processzor (CPU) Vezérlő egység Beviteli egység (Input) Aritmetikai logikai egység perifériák adatátvitel Operatív tár (Memória) vezérlés Kiviteli egység (Output) perifériák Dr. Istenes Zoltán 35

Mérföldövek 2. generáció 1948 John Bardeen, Walter Brattain, William Shockley Tranzisztor DEC PDP-8 Egyetlen sín (omnibus) Eltér a memóriacentrikus felépítéstől (miniszámítógépeken ez van ma is) CPU Memo Terminal Lyukszallag I/O omnibus Egyéb 36

Mérföldkövek - 2. generáció 1964 CDC 6600 Seymour Cray 1 nagyságrenddel gyorsabb mint a korabeliek Nagyfokú párhuzamosság Kiegészítő CPU-k Mai gépek sok lényeges eleme visszavezethető erre a gépre 37

2. Generáció Processzor Vezérlő egység (CPU) vezérlés Aritmetikai logikai egység Operatív tár (memória) Csatorna Csatorna adatátvitel perifériák háttértárak 38

Mérföldkövek 3. generáció 1958 Robert Noyce Integrált Áramkör (IC) Gépcsalád felfogás (IBM System 360) Multiprogramozás Más gépek emulációja (több mikroprogram) Első operációs rendszerek 39

Mérföldkövek 4. generáció VLSI (Very Large Scale Integration) Több millió tranzisztor egy lapkán 1980 Személyi számítógépek kora 1981 IBM PC (MS DOS) 1984 Apple Macintosh (GUI) 1985 386 (Pentium igazi őse) Manapság: 64 bites PC-k 40

Mérföldkövek 5. generáció Méretek csökkennek PDA-k láthatatlan számítógépek Körömnyi gépek mindenben (óra, bankkártya, stb) mindenütt jelenlevő számítástechnika Mark Weiser 41

Mit hoz a jövő? Moore-szabály ~18 havonta megduplázódik a tranzisztorok száma egy lapkán Moore-szabály másik értelmezése: ugyanazt egyre olcsóbban állíthatjuk elő 42

Mai gépek skálája Eldobható számítógép 0,5 USD Zenélő képeslap Mikrovezérlő 5 USD Órák, autók, stb Játékgép 50 USD Videójátékok PC 500 USD Asztali és hordozható gépek Szerver 5000 USD Hálózati kiszolgáló Munkaállomás csoport 50000-500000 USD Mini-szuperszámítógép Nagyszámítógép 5000000 USD Banki kötegelt adatfeldolgozás Tanenbaum 43

Eldobható számítógépek Eldobható számítógép eldobható repülőgép? Körömnyi számítógépek egyik fontos területe RFID (Radio Frequency IDentification, rádiófrekvenciás azonosító) Ár: pár tíz Forint Benne: rádióadóvevő + 128 bites szám Méret: kiskörömnyi 44

Eldobható számítógépek RFID-vel megjelölhetőek: Áruk Járművek Állatok Emberek Pénz is megjelölhető vele Pl.: Euro Rablás Hamis pénz Pénzforgalom Több infó: www.rfid.org 45

Mikrovezérlők Beágyazott számítógépek Mosógép, mikró, mobil telefon, nyomtató, CDROM-meghajtó, MP3-lejátszó, TV, kamera, rakéta, kávéautomata, rádiós autó Teljes értékű számítógépek 8 64 bites CPU + I/O + Mem Beépített szoftver (ROM) Gyakran realtime azonnali válasz kell 46

Személyi számítógépek Lelke: nyomtatott áramköri kártya CPU, Memória, I/O eszközök,perifériavezérlők, bővítők Rengeteg periféria és szoftver Különböző méretekben Laptop PDA (teljes értékű PC) 47

Kiszolgálók (szerverek) Általában egy erősebb PC Több memória Nagyobb háttértár(ak) Gyors hálózati kapcsolat Szoftver: általában UNIX v. Windows változat 48

Munkaállomás csoport Csoportba Cluster (fürt)-be kapcsolt gépek (COW, Clusters of Workstations) Gigabites hálózatban Speciális szoftverrel feladatokat megosztva végzik Könnyen skálázható pl. géptermi gépek éjjel render farm -ként üzemelnek 49

Nagyszámítógépek A teremnyi gépek leszármazottai A gyors szervereknél nem sokkal gyorsabbak, de Több ezer Gigabyte tárat kezelnek Drága és kockázatos lecserélni őket Régi, megbízható szoftverek Internetes kiszolgálásra is jók manapság Szuperszámítógépek (Cluster-ezés kiejtette őket) 50

Számítógépek felépítése 51

Számítógépek felépítése Digitális számítógép fő komponensei CPU-k (Central Processing Unit) Memóriák Bemeneti / kimeneti (I/O) egységek Intel 486DX2 12x6,75 mm 52

Egyszerű számítógép Központi vezérlő egység (CPU) Vezérlő egység Aritmetikai Logikai Egység (ALU) Regiszterek I/O eszközök Központi memória Lemez Nyomtató Sín (bus) 53

CPU feladata Központi vezérlő egység (CPU) Vezérlő egység Aritmetikai Logikai Egység (ALU) Regiszterek Központi memóriában tárolt programok futtatása Utasítások beolvasása, értelmezése, végrehajtása I/O eszközök Központi memória Lemez Nyomtató 54

Sín (bus) feladata Központi vezérlő egység (CPU) Vezérlő egység Részegységek összekötése, Címek, adatok, vezérlőjelek haladnak rajta Aritmetikai Logikai Egység (ALU) Regiszterek I/O eszközök Központi memória Lemez Nyomtató 55

Vezérlőegység feladata Központi vezérlő egység (CPU) Vezérlő egység Utasítások beolvasása a memóriából, típusuk megállapítása (AND? OR? JMP?) Aritmetikai Logikai Egység (ALU) Regiszterek I/O eszközök Központi memória Lemez Nyomtató 56

ALU feladata Központi vezérlő egység (CPU) Vezérlő egység Műveletek végzése, pl: Összeadás, szorzás, stb Aritmetikai Logikai Egység (ALU) Regiszterek I/O eszközök Központi memória Lemez Nyomtató 57

Regiszterek feladata Központi vezérlő egység (CPU) Vezérlő egység Több regiszter, más más feladatokkal: - részeredmények - vezérlőinformációk Aritmetikai Logikai Egység (ALU) Regiszterek I/O eszközök Központi memória Lemez Nyomtató 58

Regiszterek Utasítás- vagy programszámláló regiszter (Program Counter, PC) Utasításregiszter (Instruction Register, IR) Következő utasítás címe Épp végrehajtott utasítást tartalmazza Általános célú regiszterek Egyéb speciális célú regiszterek 59

CPU felépítése - adatút Regiszterek (tipikusan 1..32) adatút A+B A ALU (Aritmetikai-logikai egység) bemeneti regiszter B B A ALU bemeneti sín ALU kimeneti regiszter ALU A+B 60

CPU felépítése - adatút Megfelelő regiszterek tartalma az ALU regiszterekbe kerülnek a művelet végrehajtásához adatút A+B A B B A ALU A+B 61

CPU felépítése - adatút adatút A+B A Amíg az ALU máson dolgozik, az adatok az ALU regiszterekben tárolódnak B B A ALU A+B 62

CPU felépítése - adatút adatút A+B A B B A ALU ALU elvégzi a megfelelő műveletet A+B 63

CPU felépítése - adatút adatút A+B A B B A ALU A+B A művelet elvégzése után az eredmény az ALU kimeneti regiszterbe kerül, ha szükséges, visszakerül a memóriába 64

Utasítások Regiszter memória típus Regiszter regiszter típus Memóriából vagy memóriába ír egy regiszterbe vagy regiszterből Tipikusan két regiszterből vesz operandusokat, beteszi őket az ALU-regiszterekbe, majd az ALU művelet utáni eredményt tárolja egy regiszterbe Operandusok ALU-n való átfuttatása és eredmény regiszterbe helyezése az adatciklus. Jelentős mértékben az adatciklus határozza meg egy gép teljesítményét. 65

Utasítás végrehajtás Az utasításokat a CPU apró lépésekben hajtja végre: Soron következő utasítás beolvasása a memóriából az utasításregiszterbe Utasításszámláló beállítása a köv. utasításra Beolvasott utasítás típusának megállapítása Ha az utasítás memóriabeli szót használ, szó helyének megállapítása Ha szükséges, a szó beolvasása egy regiszterbe Utasítás végrehajtás Előlről, a köv. utasítással betöltés (fetch) dekódolás (decode) Végrehajtás (execute) 66

Értelmezők A betöltő-dekódoló-végrehajtó ciklust imitálhatja egy szoftver is, azaz nem muszály az utasításokat huzalozva, hardver -ből megoldani Értelmező (Interpreter) Az értelmező a célgép utasításait kis, egyszerű lépésekre bontja A célgép utasításai komplikáltak lehetnek, hardveres megvalósításuk sokkal drágább mint egy értelmező beiktatása 67

Értelmezők Az összetett utasítások gyorsabbak, gyakori egyszerű utasítás szekvenciákat ki lehet váltani velük Az összetett utasításokat hardver kiegészítőkkel jól lehetett párhuzamosítani Nagygépek összetett utasítások Kisgépek egyszerű utasítások 68

Értelmezők Szoftverfejlesztés drágult Kompatibilitás igénye nőtt (számítógép családok) Olcsó kis gépeken is szükségessé vált az összetett utasítások megvalósítása Hogyan érhető el? 69

Értelmezők Válasz: interpretálás Olcsó gépeken az összetett utasításokat egy értelmező segjtségével hajtották végre Előnyök: Hibás utasítások, hardver tervezési hibák áthidalhatóak Új utasítások a hardver módosítása nélkül Strukturált felépítés fejlesztés, teszt, dokumentáció 70

Értelmezők Az értelmező alapú fejlesztést segítették az olcsó vezérlőtárak (control store) is Az összetett utasítások a szűk memóriakeresztmetszetet miatt is gazdaságosak voltak (kevesebb fetch ) Az összetett utasításokat végrehajtó egyszerű utasítások a mikroutasítások 71

RISC és CISC felépítés CISC (Complex Instruction Set Computer) Nagy utasításkészlet (200-300 utasítás) Nagy mikroprogram-tár igény Kényelmes Komplex feladatok egy utasításból megoldhatóak Egyszerű, rövid programok Széles címmezők a címzéshez Több tranzisztorral kivitelezhető Változó utasításhossz Csak a szükséges pár regiszter van jelen Pl.: Intel 286/386/486, Pentium, VAX 72

RISC és CISC felépítés RISC (Reduced Instruction Set Computer) Kevés, alapvető utasítás (~50) Fix huzalozású (nincs értelmező, mikrokód) Bonyolultabb programozás Komplex dolgokat kézzel a programban Programok hosszabbak Sok regiszter Pl.: Pentium Pro, DEC Alpha, UltraSPARC, ARM (486-tól az Intel processzorokban CISC és RISC együtt: gyakori utasítások RISC, ritkák CISC) 73

Tervezési elvek Mai tervezési elvek a RISC processzorok tervezési elvein alapulnak Gyakori utasításokat a hardver hajtsa végre Utasítás-kiadás üteme maximális legyen Párhuzamosság számít Sok lassú utasítás egymás mellett jó - időspórolás Utasítások könnyen dekódolhatóak legyenek Minnél kevesebb utasítás formátum, annál jobb Egyforma utasításhosszak jók 74

Tervezési elvek Utasítások operandusai regiszterek legyenek Memória elérés lassú, jobb ha erre csak a dedikált utasításoknak van lehetősége (LOAD, STORE) és azok másolnak regiszter-memória között Sok regiszter kell Minél több regiszter, annál kevesebb lassú memóriaelérés 75

Teljesítmény növelés Teljesítmény növelés módjai Órajel frekvencia növelés Általában technikai korlátba ütközik (Pl. Intel P4 3,6 GHz melegedés, hibák) Párhuzamosítás Utasítás szintű (utasítás kiadás növelése) Processzor szintű (több processzor dolgozik) 76

Utasításszintű párhuzamosság Csővezeték (Pipeline) Utasítások végrehajtásának szűk keresztmetszete az utasítások memóriából történő kiolvasása Prefetch buffer: előre kiolvasott utasításokat tárolja Lépések: beolvasás (előre) + végrehajtás Csővezeték: kettő helyett több lépésben hajtja végre az utasítást Minden részt külön hardver kezel, párhuzamosan 77

Utasításszintű párhuzamosság 5 fázisú csővezeték (Pipeline) Utasítás beolvasó S1 Utasítás dekódoló S2 Operandusbeolvasó S3 Utasításvégrehajtó Visszaíró S4 S5 1 órajel késleltetéssel mindegyik fázis elindul és párhuzamosan működik 78

Utasításszintű párhuzamosság 5 fázisú csővezeték (Pipeline) S1 (utasítás beolv.) S2 (utasítás dekód.) S3 (operandus beolv.) S4 (utasítás végreh.) S5 (visszaíró) 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6 5 4 3 2 Ábra: 6 órajelciklus és 5 fázis 79

Utasításszintű párhuzamosság 5 fázisú csővezeték (Pipeline) Amint feltöltődött a csővezeték, már 1 órajelenként végrehajtódhat egy-egy új utasítás Késleltetés: mennyi idő amíg egy utasítás az összes fázison áthalad. Órajel: T ns Fázis: n db Késleltetés: Tn 80

Utasításszintű párhuzamosság Több pipeline használata További gyorsulási lehetőség Utasítás dekódoló Operandusbeolvasó Utasításvégrehajtó Visszaíró Utasítás dekódoló Operandusbeolvasó Utasításvégrehajtó Visszaíró S4 S5 Utasítás beolvasó S1 S2 S3 (Pentiumban hasonló, ötfázisú kétszeres csővezeték van, de ott az egyik csővezeték csak egyszerű, egész műveleteket tud elvégezni) 81

Utasításszintű párhuzamosság Több pipeline használatának feltételei Ezt ellenőriznie kell vagy a A párhuzamos utasítások nem használhatják u.a. erőforrást Nem használhatják egymás eredményét Fordítóprogramnak, vagy a Kiegészítő hardvernek Bonyolult szabályok alapján lehet a (kompatibilis) utasításokat párba állítani 4-es pipeline még elképzelhető, de ekkor már sok a plusz hardver elem 82

Utasításszintű párhuzamosság Megoldás: ALU Egy pipeline, több funkcionális egységgel Szuperskaláris architektúra Utasítás beolvasó Utasítás dekódoló ALU Operandusbeolvasó LOAD Visszaíró STORE S1 S2 (Pl. Pentium 4) S5 S3 Lebegőpontos egység S4 83

Utasításszintű párhuzamosság S3 fázisnak gyorsabbnak kell lennie mint az S4 fázisnak, különben nincs értelme a több feldolgozó egységnek Ez valóban így is van, S4 egységei 1 órajelnél jóval tovább dolgoznak 84

Processzorszintű párhuzamosság Csővezeték és szuperskalár működési mód sebességnövelése: 5-10x-es Nagyobb gyorsulás érdekében más technika kell Egyetlen mód: több CPU-t tartalmazó gépet kell építeni 85

Processzorszintű párhuzamosság Tömbszámítógépek Sok számítási probléma tömbökön végzett műveletekből áll Gyakran ugyanazt a műveletet kell elvégezni a tömb összes elemén Tömbprocesszor: Nagyszámú egyforma processzorból áll, ezek ugyanazokat a műveleteket végzik adattömbökön 86

Processzorszintű párhuzamosság Tömbszámítógép (SIMD Single Instructionstream Multiple Data stream) Vezérlő egység CPU + Memória 87

Processzorszintű párhuzamosság Vektorprocesszor Hasonlít a tömbprocesszorra, de Minden összeadást egy csővezeték elvű összeadóban végez el Vektorregiszter-ek használata több hagyományos regiszterből áll Vektor-utasítás ezen regiszterek tartalmát irányítja egy csővezetékes összeadóba Az eredmény újabb vektor 88

Processzorszintű párhuzamosság Multiprocesszorok Tömbprocesszor feldolgozó egységei nem függetlenek, közös vezérlő vezérli őket Több teljes CPU, közös memóriával multiprocesszor Egysínes (csak közös memória, egyszerre érik el) Lokális memória (nem megosztott, csökkenti a sínforgalmat) 89

Processzorszintű párhuzamosság Multiszámítógépek Bizonyos CPU szám felett nehéz a CPU-kat és memóriát összekötni Egyszerűbb külön gépeket összekötni, melyeknek lokális memóriája van multiszámítógépek Lazán kapcsolt CPU-k (multiprocesszorok szorosan kapcsoltak) Üzenet küldéssel kommunikálnak a CPU-k Ált. lokális környezettel kapcsolódik egy CPU Léteznek hibrid multiprocesszormultiszámítógép elrendezések is 90