Hardver Ismeretek Várady Géza
[email protected]
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