Download - Számítógépek felépítése 12. előadás
1
Számítógépek felépítése12. előadás
Dr. Istenes Zoltán
ELTE-TTK
2
Processzorok („gépek”)...
Alpha
CRAY-1
VAX
...
3
Alpha 21164 processzor• 64-bit RISC• Superscalar: 4 utasítás órajel ciklusonként • Superpipelined:
– 7 lépcsős pipeline egész számos utasításokra, – 9 lépcsős pipeline lebegőpontos számos utasításokra
• 16K L1 cache (8K adat, 8K utasítás), 96K L2 cache • Pipelined Floating Point Unit: lebegőpontos egység 2
utasítás órajel ciklusonként (kivéve osztás)• órajel 600 MHz, 2.4 billió utasítás /sec• 9.6 millió tranzisztor • Dynamic Branch Prediction
4
Dinamikus elágazás előrelátás(Dynamic Branch Prediction)
Probléma : feltételes elágazáskor a prefetch nem „tudja előre kitalálni” hogy lesz elágazás vagy sem (melyik lesz a következő utasítás)
A végrehajtott feltételes elágazás utasításaihoz „elágazási információk” eltárolása...
az előző (két) esetben volt elágazás vagy sem...
8
CRAY - 1
9
CRAY-1
• Semour Cray (kb. 1977 ?)
• hosszú ideig a leggyorsabb számítógép
• „tiszta” tervezés
• „semmivel se spórolni”
• tudományos, sok-sok lebegőpontos számításra
10
CRAY-1
• vektor processzor• kb. 5 IBM 370/195• 138 MFLOP (250 MFLOPS burst)• 12,5ns (80MHz)• 1 millió szavas tár, 1 szó = 64 bit• 115KW fogyasztás, freon hűtés...• kb. 5 tonna• nagyon drága...
11
CRAY-1
• 128 utasítás (egész + lebegőpontos)
• 0-3 címes utasítások
• nincs karakter művelet, sem egész osztás
• adattípusok : 2-es komplemens, lebegőpontos
• szó hozzáférésű tár, 1 szó = 64 bit
• 12 műveletvégző egység
• pipeline feldolgozás
12
CRAY-1 regiszterek
• 8x 24 bites címregiszter (A)• 64x 24 bites átmeneti címregiszter (B)• 8x 64 bites skalár regiszter (S)• 64x 64 bites átmeneti skalár regiszter (T)• 8x 64 elemes vektor regiszter (64bit/elem) (V)
4Kbyte+ 6ns -os regiszter tároló
13
CRAY-1
• memoria blokk töltése T regiszterekbe
• vektoron végzett műveletek
• verem nincs
• cache nincs
14
VAX
• 1970 DEC (Digital Equipement Corp.)
• CISC
• VAX 11/780 sebessége kb. 1MIPS
• kb. „hűtőszekrény” méret
15
VAX utasítás készlete• egész aritmetika : különféle adat-mérettel• logikai : különféle adat-mérettel• cím és bit manipulációk• vezérlés átadó utasítások (elágazás, ugrás,
ciklusok, eljárások)• lebegőpontos műveletek• karakter-string műveletek (pld. edit)• crc (Cyclic Redundancy Check)• BCD műveletekösszesen több mint 200 utasítás...
16
VAX regiszterek
• 16db 32 bites „általános célú”...
• R15 = PC (szabadon módósítható)
• R14 = SP (varem mutató)
• R13 = „keret mutató” (memória kezelés)
• R12 = „argumentum mutató” (eljárások paraméterei)
17
VAX adattípusok• byte, word (16 bits), longword (32 bits), quadword
(64 bits), octaword (128 bits)
• F floating point (32 bit, 7 bites exponens)
• D floating point (64 bit, 7 bites exponens)
• G floating point (64 bits,10 bites exponens)
• H floating point (128 bit, 15 bites exponens)
• character string
• numeric string (egészeket ábrázoló ASCII kódok)
• BCD string
18
Csodák palotája...számítógép történeti kiállítás
http://www.sztaki.hu/providers/bsc/home/home.htm
cím: Bp. XIII. Váci út 19
telefon: (+36 1) 350 6131
fax: (+36 1) 350 6131
e-mail: [email protected]
19
Párhuzamos feldolgozás...
20
Neumann elv - soros feldolgozás
szekvenciális feldolgozás
Lassú
egy utasítás feldolgozásakor „több részegység tétlen”...
CPU
Mem
feladatot részlépésekre lehetne bontani...
Párhuzamosság...
párhuzamos feldolgozó egységek...párhuzamos számítógépek...
21
Párhuzamos számítás(Parallel computing)
párhuzamos programozás - operációs rendszer : • „látszólag” több program fut „egyszerre” • amíg egy prg. lassú I/O-ra várt egy másik prg. fut• független folyamatok, „nem férnek egymáshoz”
program részeinek párhuzamos feldolgozása :• kommunikáció (információ csere)• szinkronizáció (összehangolt működés)
22
A párhuzamos programvégrehajtás szintjei
• A hardver egységen belüli párhuzamosítás• Gépi utasítás végrehajtásán belüli párhuzamosítás• Párhuzamosítás a feldolgozott adatok szintjén• Gépi utasítások közötti párhuzamosítás• Eljárások (makro utasítások) közötti párhuzamosítás• Jobok közötti párhuzamosítás• Folyamatok közötti párhuzamosítás
23
1. szint: A hardver egységen belüli párhuzamosítás
• Egyidejűleg több alkotóelem végez aktív feldolgozó munkát az aktuális programrészlet végrehajtása érdekében.
• Pl.: egy párhuzamos aritmetikai egységben az operandusok minden bitjén egyidejűleg történik az előírt művelet végrehajtása, vagy egy buszon a memóriából felhozott utasításszó minden bitje egyidejűleg mozog.
24
2. szint: Gépi utasítás végrehajtásán belüli párhuzamosítás.
• Egy gépi utasítás végrehajtása több fázisra bontható. A számítógépek sebessége nagymértékben fokozható, ha ezeket a fázisokat átlapoltan, több utasításon párhuzamosan hajtja végre a számítógép.
• Pld. az n-edik utasításhoz tartozó akciók végrehajtásával egyidejűleg folyik az n+1.-dik utasítás dekódolása, és az n+2.-dik utasítás felhozása.
• Ez a párhuzamosítási technika a pipeline (csővezeték) technika.
25
3. szint: Párhuzamosítás a feldolgozott adatok szintjén.
• Vektorok feldolgozása esetén tipikus feladat, hogy ugyanazt a műveletet a vektor minden elemén végre kell hajtani (pl. két vektor összeadása). N elemű vektor esetén a szokásos számítógépek az ilyen műveleteket N lépésben hajtják végre. Vannak azonban olyan többprocesszoros számítógépek, melyek ezt a műveletet egyetlen lépésben képesek végrehajtani. Ezek az ún. vektorprocesszorok, amelyekben N processzor egyidejűleg hajtja végre a vektor N elemén ugyanazt a műveletet.
26
4. szint: Gépi utasítások közötti párhuzamosítás.
• A hagyományos számítógépekben az utasítások végrehajtási sorrendje kötött, jóllehet legtöbb programban találhatók olyan utasítások, amelyeknek a végrehajtási sorrendje a program működésének helyességét nem befolyásolja. Az olyan utasítások, amelyek egymástól ily módon függetlenek, bármilyen sorrendben, akár egyidejűleg is végrehajthatók.
• A párhuzamosan végrehajtható utasítások automatikus felderítésére a Neumann-elvű többprocesszoros számítógépek nem voltak alkalmasak, mivel a párhuzamosítási előírások akkora túlmunkát jelentettek a feldolgozó egységnek, hogy alapjaiban kérdőjelezte meg a gépi utasítások közötti párhuzamosítás létjogosultságát.
27
Gépi utasítások közötti párhuzamosítás : Dataflow
(adatfolyam)
X= (A*B)+(C/D)
*
+
/
A B C D
utasítás („művelet”) akkor hajtható végre,ha az operandusok
már rendelkezésre állnak
28
5. szint: Eljárások (makro utasítások) közötti párhuzamosítás.
• Egy adott makro utasítást egyetlen gépi utasítás(ok) egy sorozata reprezentál
• Mivel az eljárás végrehajtási ideje jelentős, ezért a párhuzamosítási előírások megvalósításából származó többlet-ráfordítás elhanyagolható lehet az eljárás végrehajtási idejéhez képest.
• Ezen a szinten már hatékonyan alkalmazhatók a Neumann-elvű processzorokból felépített többprocesszoros számítógépek is.
29
6. szint: Jobok közötti párhuzamosítás.
• Jobon olyan véges működésű programot értünk, amely önálló működésre képes és a rendszer erőforrásait használja.
• Az eljárás és a job közötti rokonság, hogy mindkettő véges lefutású, lényeges különbség viszont, hogy amíg az eljárás sosem önálló, addig a jobok egymástól logikailag függetlenek, egy-egy virtuális gépet reprezentálnak.
• A közös erőforrások használata miatt egy szinkronizációs mechanizmust kell alkalmazni.
30
7. szint: Folyamatok közötti párhuzamosítás.
• Folyamat (process) alatt olyan nem feltétlenül véges működésű programot értünk, amely önálló működésre képes, a rendszer erőforrásait használja és a többi folyamattal kommunikál.
• Szinkronizációs mechanizmust, az üzenetátadást, és az eseménykezelést is biztosítani kell.
31
Többprocesszoros rendszerek
32
Többprocesszoros rendszerek megjelenését segítő tényezők
• hardware elemek árának a csőkkenése
• számítógépes hálózatok elméletének és technikájának a fejlődése
• technológiai korlátok (több alkatrész már nem fér a chip-be)
33
Multiprocesszoros rendszerek csoportosítása és osztályozása
(alkalmazásuk szerint) • Általános célú rendszerek : cél az egyprocesszoros
számítógépek működési sebességének a fokozása az architektúra módosításával.
• A redundáns (hibatűrő) rendszerek : cél a számítógépek megbízhatóságának a növelése több processzor alkalmazásával.
• A számítógép-hálózatok : cél nagytávolságú elosztott információs rendszerek kialakítása.
34
Számítógépek teljesítőképességét befolyásoló tényezők
• technológia - sebességnövekedés (gyorsabb alkatrészek, tárak, stb...)
• architektúra - különböző egységek kapcsolatának a megszervezése, kezelése
Példa :
gép órajel mátrixszorzás
EDSAC1 2000ns 100/s
CRAY-1 12,5ns 130 millió/s
160x 1.000.000x
35
a rendszerek csoportosítása (1)
logikai struktúra :
• horizontális
• vertikális
fizikai struktúra
• közös tárterület (centralizált)
• sínrendszer (osztott)
36
a rendszerek csoportosítása (2)
kölcsönhatás módja, csatolás foka :
• szorosan csatolt
• lazán csatolt („on site computing”)
processzor és passzív elemek (tár, I/O) közötti kapcsolat :
• közös sín
• crossbar
• többszörös hozzáférésű tárak
37
a rendszerek csoportosítása (3)
feldolgozási mód (Flynn)
• SISD
• MISD
• SIMD
• MIMD
38
Multiprocesszoros rendszerek(általános célú)
• SISD Single Instruction stream on Single Data stream (egy utasítás egy adat)
• SIMD Single Instruction stream on Multiple Data stream (egy utasítás több adat)
• MISD Multiple Instruction stream on Single Data stream (több utasítás egy adat)
• MIMD Multiple Instruction stream on Multiple Data stream (több utasítás több adat)
39
SISD, SIMD, MISD, MIMD• A SISD rendszerek : a szokásos egyprocesszoros
számítógépek. • A SIMD rendszerek : a program párhuzamosítás 3.
szintjének támogatását szolgáló vektor (hardver megvalósítása a CrayX számítógép) -, tömb (Connection Machine) - ill. asszociatív processzorok (Staran).
• A MISD rendszerek : a program 2. párhuzamosítási szint megvalósítására szolgáló pipeline processzorok tartoznak.
• A MIMD architektúra : a program párhuzamosítás 4., 5., 6. és 7. szintjének megvalósítása.
40
előnyök
feldolgozási teljesítőképesség :
• átbocsájtóképesség
• közös erőforrás használat
• megbízhatóság
41
többprocesszoros rendszerek architektúrája
„egyes rendszerelemek (processzorok - tárak - I/O) egymáshoz kapcsolódása, együttműködése, közös feladatvégrehajtása”
fogalmak : adatút, kapcsolóelem (osztott/központi vezérlésű hálózat), kommunikáció létrehozási módja, modularitás, bővíthetőség, hibatűrés, egyidejüség, üzenetterítés, összekötöttség...
42
osztott feldolgozás (distributed processing) :
• feldolgozás
• adatbázis
43
A processzorok közötti kapcsolat megvalósítása :
• a csatolás topológiája
• a processzorok csatolásánalk módja
• a kapcsolat fizikai megvalósítása
• a kommunikációs csatorna működési módja
• a passzív elemek használata
• a kapcsolat technológiája
44
A csatolás topológiája• útvonal (path)• kapcsoló (switch)
• gyűrű• teljes összekötés• közös központi tár• központi rendszersín
• csillag• közös központi
vezérlésű sín• reguláris hálózat• irreguláris hálózat• kapcsoló a processzor és
a sín között
45
A processzorok csatolási módja
• tárcsatolt
• be/kiviteli csatolású
46
A kapcsolat fizikai megvalósítása
• időosztásos közös sínrendszer
• crossbar kapcsolórendszer
• többszörös hozzáférésű tárak
47
A kommunikációs csatorna működési módja
• szó (byte) átviteli
• blokkátviteli
• vegyes átviteli
48
A passzív elemek használata
• csak globális
• globális és lokális
49
A kapcsolat technológiája
• fizikai elosztottság...
50
• osztott erőforrás• kritikus szakasz• kölcsönös kizárás (mutual exclusion)• test and set• szemafor
x x:=x-200x:=x+1000