számítógépek felépítése 12. előadás

47
1 Számítógépek felépítése 12. előadás Dr. Istenes Zoltán ELTE-TTK

Upload: thane

Post on 24-Jan-2016

77 views

Category:

Documents


0 download

DESCRIPTION

Számítógépek felépítése 12. előadás. Dr. Istenes Zoltán ELTE-TTK. Processzorok („gépek”). Alpha CRAY-1 VAX. 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, - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 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

Page 2: Számítógépek felépítése 12. előadás

2

Processzorok („gépek”)...

Alpha

CRAY-1

VAX

...

Page 3: Számítógépek felépítése 12. előadás

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

Page 4: Számítógépek felépítése 12. előadás

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...

Page 5: Számítógépek felépítése 12. előadás

8

CRAY - 1

Page 6: Számítógépek felépítése 12. előadás

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

Page 7: Számítógépek felépítése 12. előadás

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...

Page 8: Számítógépek felépítése 12. előadás

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

Page 9: Számítógépek felépítése 12. előadá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ó

Page 10: Számítógépek felépítése 12. előadás

13

CRAY-1

• memoria blokk töltése T regiszterekbe

• vektoron végzett műveletek

• verem nincs

• cache nincs

Page 11: Számítógépek felépítése 12. előadás

14

VAX

• 1970 DEC (Digital Equipement Corp.)

• CISC

• VAX 11/780 sebessége kb. 1MIPS

• kb. „hűtőszekrény” méret

Page 12: Számítógépek felépítése 12. előadás

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...

Page 13: Számítógépek felépítése 12. előadá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)

Page 14: Számítógépek felépítése 12. előadás

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

Page 15: Számítógépek felépítése 12. előadás

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]

Page 16: Számítógépek felépítése 12. előadás

19

Párhuzamos feldolgozás...

Page 17: Számítógépek felépítése 12. előadá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...

Page 18: Számítógépek felépítése 12. előadás

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)

Page 19: Számítógépek felépítése 12. előadá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

Page 20: Számítógépek felépítése 12. előadá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.

Page 21: Számítógépek felépítése 12. előadás

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.

Page 22: Számítógépek felépítése 12. előadás

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.

Page 23: Számítógépek felépítése 12. előadás

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.

Page 24: Számítógépek felépítése 12. előadás

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

Page 25: Számítógépek felépítése 12. előadás

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.

Page 26: Számítógépek felépítése 12. előadás

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.

Page 27: Számítógépek felépítése 12. előadás

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.

Page 28: Számítógépek felépítése 12. előadás

31

Többprocesszoros rendszerek

Page 29: Számítógépek felépítése 12. előadás

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)

Page 30: Számítógépek felépítése 12. előadás

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.

Page 31: Számítógépek felépítése 12. előadás

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

Page 32: Számítógépek felépítése 12. előadás

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)

Page 33: Számítógépek felépítése 12. előadás

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

Page 34: Számítógépek felépítése 12. előadás

37

a rendszerek csoportosítása (3)

feldolgozási mód (Flynn)

• SISD

• MISD

• SIMD

• MIMD

Page 35: Számítógépek felépítése 12. előadás

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)

Page 36: Számítógépek felépítése 12. előadás

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.

Page 37: Számítógépek felépítése 12. előadás

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

Page 38: Számítógépek felépítése 12. előadás

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...

Page 39: Számítógépek felépítése 12. előadás

42

osztott feldolgozás (distributed processing) :

• feldolgozás

• adatbázis

Page 40: Számítógépek felépítése 12. előadás

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

Page 41: Számítógépek felépítése 12. előadás

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

Page 42: Számítógépek felépítése 12. előadás

45

A processzorok csatolási módja

• tárcsatolt

• be/kiviteli csatolású

Page 43: Számítógépek felépítése 12. előadá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

Page 44: Számítógépek felépítése 12. előadás

47

A kommunikációs csatorna működési módja

• szó (byte) átviteli

• blokkátviteli

• vegyes átviteli

Page 45: Számítógépek felépítése 12. előadás

48

A passzív elemek használata

• csak globális

• globális és lokális

Page 46: Számítógépek felépítése 12. előadás

49

A kapcsolat technológiája

• fizikai elosztottság...

Page 47: Számítógépek felépítése 12. előadás

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