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