Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu



Hasonló dokumentumok
Ez egy program. De ki tudja végrehajtani?

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

Hardver Ismeretek. Várady Géza

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

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

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

Az informatika fejlõdéstörténete

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

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

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

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

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

Multimédia hardver szabványok

Egyszerű RISC CPU tervezése

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/12. (Personal computer - From Wikipedia, the free encyclopedia)

VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek)

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

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

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

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

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

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

erettsegizz.com Érettségi tételek

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

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

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

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

A mikroszámítógép felépítése.

Az informatika alapjai. 10. elıadás. Operációs rendszer

Számítógépes alapismeretek

Számítógépes alapismeretek

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

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

A számítástechnika története

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

Rövid történeti áttekintés

Mikroprocesszorok (Microprocessors, CPU-s)

IAS számítógép. 1 Neumann János nem magyar nyelvterületen használt neve John von Neumann.

2008/2009 KIDOLGOZOTT TÉTELEK

Rendszerfelügyelet Logikai partíciók

1.1. Általános áttekintés

A számítógép felépítése A processzor és csatlakoztatása

Hardver ismeretek. Várady Géza, B144

A számítógép alapfelépítése

Miért van szükség fordítóprogramokra? Fordítóprogramok célja és szerkezete. Miért van szükség fordítóprogramokra?

Számítógépek. 2.a) Ismertesse a kombinációs hálózatok alapelemeit és a funkcionálisan teljes rendszer

Mikrokontroller alapú rendszerek

Számítógép Architektúrák I-II-III.

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai

Széchenyi István Szakképző Iskola

Az Informatika Elméleti Alapjai

Fábián Zoltán Hálózatok elmélet

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

INFORMATIKAI ALAPISMERETEK

Operációs rendszerek MINB240 V2+2+0

Számítógépes alapismeretek

A SZÁMÍTÓGÉP FELÉPÍTÉSE.

Őstörténet. Mechanikus automaták

MATEMATIKA Emelt szint évfolyam

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

2016/06/23 07:47 1/13 Kérdések

1. A Neumann-elvű számítógép felépítése

Szupermikroprocesszorok és alkalmazásaik

Operációs rendszerek MINB240 V kredit KF Nagyváradi Anett 0. előadás Bevezetés

Történeti áttekintés

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

Tájékoztató. Használható segédeszköz: -

A számítógép története (olvasmány)

DB2 Connect Personal Edition telepítése és beállítása

Szakmai program 2015

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

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Irinyi József Általános Iskola 4274 Hosszúpályi Szabadság tér HELYI TANTERV Informatika 4. osztály 2013

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

Bevezetés az informatikába

FIR SZŰRŐK TELJESÍTMÉNYÉNEK JAVÍTÁSA C/C++-BAN

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

Digitális technika VIMIAA01

INFORMATIKA HELYI TANTERV

Szoftveripar és üzleti modellek

A MiniRISC processzor

Hardware alapismeretek

Bevezetés az informatikába

INFORMATIKA ZÁRÓSZIGORLAT TEMATIKA

INFORMATIKA 5. évfolyam

Oracle Database Appliance

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

Informatika 11. el adás: Hardver

Programozható logikai vezérlõk

12. tétel. Lemezkezelés

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

1.1 Szakdolgozat témája A Program célja A használt technológiák ismertetése A program megtervezése...

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/15. (Personal computer - From Wikipedia, the free encyclopedia)

1. A számítógépek kialakulása:

4. Programozási nyelvek osztályozása. Amatőr és professzionális

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

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

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

A 2. levél feladatainak megoldása

Novell Nterprise Branch Office: a távoli iroda felügyeletének leegyszerűsítése

Átírás:

Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu 1

Bevezetés - fogalmak Informatika sokrétű Információk Szerzése Feldolgozása Tárolása Továbbítása Információtechnika 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 Ismerni kell az adott feladat valós rendszerbeli működését (pl. kémia, aerodinamika, stb...) Információs rendszer (IR) ismerete 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 Fordító L0 nyelvű program Számítógép 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 T c (futtat) << T i (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 T c (fordít)+t c (futtat) > T i (futtat) L1 nyelvű program Fordító L0 nyelvű program Számítógép L1 nyelvű program Értelmező Számítógép 14

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

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

Nyelvek Egyre magasabb szintű nyelvek Speciális célú, de átlátható Miért nem hardveresen? 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 Legtöbb mai számítógép kettő vagy több szintű problémaorientált nyelvi 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 Valódi hardver Kapuk Digitális eszközök problémaorientált nyelvi szint 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 ALU (Arithmetic Logic Unit), regiszterek problémaorientált nyelvi szint 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 ISA (Instruction Set Architecture) szint Gépi nyelvű utasítások szintje problémaorientált nyelvi szint assembly nyelvi szint operációs rendszer gépi szintje utasításrendszer-architektúra szintje mikroarchitektúra szintje digitális logikai szint 22

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

Többszintű gépek Alkalmazás programozók (többnyire fordító, szavakból álló nyelvek) problémaorientált nyelvi szint assembly nyelvi szint 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 Az alsóbb szintek nyelveinek kényelmesebb formája (assembler) problémaorientált nyelvi szint assembly nyelvi szint operációs rendszer gépi szintje utasításrendszer-architektúra szintje mikroarchitektúra szintje digitális logikai szint 25

Többszintű gépek Magas szintű nyelvek (C, C++, Java, stb..) Speciális alkalmazási területre is kiélezett lehet problémaorientált nyelvi szint assembly nyelvi szint operációs rendszer gépi szintje utasításrendszer-architektúra szintje 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 Pl. ADD huzalozott, de INC mikroprogram Később új tulajdonságok is Pl. megszakítások rendszere Program felfüggesztés, folytatás Mikroprogramok meghíztak Visszatértek a hardveres megoldások Programozó szempontjából mindegy 31

Mérföldövek 0. generáció 1642 Blaise Pascal Mechanikus gép összead, kivon 1694 Gottfried Wilhelm von Leibniz Mechanikus gép 4 alapművelet 1822 Charles Babbage 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 COLOSSUS vákuumcsövek, kódfejtés 1943-1946 John Mauchley 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 vezérlés Beviteli egység (Input) Aritmetikai logikai egység Kiviteli egység (Output) perifériák adatátvitel Operatív tár (Memória) 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 Egyéb omnibus 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 (CPU) Vezérlő egység Aritmetikai logikai egység vezérlés Csatorna perifériák adatátvitel Operatív tár (memória) háttértárak Csatorna 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 ESL Electonic Shelf Labeling - http://www.rfid24-7.com/ Több infó: www.rfid.org, www.rfid24-7.com/ 45

Mikrovezérlők Beágyazott számítógépek Mosógép, mikró, mobil telefon, nyomtató, CD- ROM-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

Számítógépek felépítése Intel Xeon Westmere 6 mag (2010-től, 32nm (legkisebb egység méret vezető) 2015: Intel 14 nm 53

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) 54

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ó 55

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ó 56

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

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ó 58

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

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

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

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

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

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

CPU felépítése - adatút A+B A adatút A B ALU A+B 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 65

Utasítások Regiszter memória típus Memóriából vagy memóriába ír egy regiszterbe vagy regiszterből Regiszter regiszter típus 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. 66

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) 67

É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 68

É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 69

É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? 70

É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ó 71

É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 72

RISC és CISC felépítés CISC (Complex Instruction Set Computer) Nagy utasításkészlet (200-300 utasítás) Kényelmes Komplex feladatok egy utasításból megoldhatóak Egyszerű, rövid programok Nagy mikroprogram-tár igény 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 73

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) 74

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 75

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 76

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) 77

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 78

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

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

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 81

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 beolvasó Utasítás dekódoló Operandusbeolvasó Utasításvégrehajtó Visszaíró S1 S2 S3 S4 S5 (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) 82

Utasításszintű párhuzamosság Több pipeline használatának feltételei A párhuzamos utasítások nem használhatják u.a. erőforrást Nem használhatják egymás eredményét Ezt ellenőriznie kell vagy a 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 83

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

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 85

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 86

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 87

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

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 89

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) 90

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 91