Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "1 Számítógépek felépítése 12. előadás Dr. Istenes Zoltán ELTE-TTK."— Előadás másolata:

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

2 2 Processzorok („gépek”)... Alpha CRAY-1 VAX...

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

5 5 Prefetch and Dispatch Unit ensures that all execution units remain busy by fetching instructions before they are needed in the pipeline. Instructions can be prefetched from all levels of the memory hierarchy, including the I-cache, E-cache, and main memory. A 12-entry prefetch buffer decouples instruction prefetching from instruction dispatch and prevents pipeline stalls A 16 KB two-way associative I-cache that is physically indexed and tagged Instructions in the I-cache are pre-decoded A 9-stage instruction pipeline to minimize latency Dynamic branch prediction to allow for greater prediction accuracy

6 6 Pipeline Organization UltraSPARC-I uses a double-instruction-issue pipeline with nine stages: fetch, decode, grouping, execution, cache access, load miss, integer pipe wait, trap resolution, and writeback. These stages imply that the latency (time from start to end of execution) of most instructions is nine clock cycles. However, at any given time, as many as nine instructions can execute simultaneously, producing an overall rate of execution of one clock per instruction in many cases. In reality, some instructions may require more than one cycle to execute due to the nature of the instruction, a cache miss, or other resource contentions. The first stage of the pipeline is a fetch from the I-cache. In the second stage, instructions are decoded and placed in the instruction buffer. The third stage, grouping, groups and dispatches up to four instructions. Next, integer instructions are executed and virtual addresses calculated during the execution stage. In the fifth stage the D-cache is accessed. Cache hits and misses are determined, and branches are resolved. If a cache miss was detected, the loaded miss enters the load buffer. At this point, the integer pipe waits for the floating-point/graphics pipe to fill and traps are resolved. In the final stage, writeback, all results are written to the register files and instructions are committed.

7 7 Integer Execution Unit 2 ALUs for arithmetic, logical, and shift operations 8-window register file Result bypassing A Completion Unit which allows a nine- stage pipeline with minimal bypasses

8 8 CRAY - 1

9 9 Semour Cray (kb ?) 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 10 CRAY-1 vektor processzor kb. 5 IBM 370/ 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 11 CRAY 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 12 CRAY-1 regiszterek 8x24 bites címregiszter (A) 64x24 bites átmeneti címregiszter (B) 8x64 bites skalár regiszter (S) 64x64 bites átmeneti skalár regiszter (T) 8x64 elemes vektor regiszter (64bit/elem) (V) 4Kbyte+ 6ns -os regiszter tároló

13 13 CRAY-1 memoria blokk töltése T regiszterekbe vektoron végzett műveletek verem nincs cache nincs

14 14 VAX 1970 DEC (Digital Equipement Corp.) CISC VAX 11/780 sebessége kb. 1MIPS kb. „hűtőszekrény” méret

15 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 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 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 18 Csodák palotája... számítógép történeti kiállítás cím: Bp. XIII. Váci út 19 telefon: (+36 1) fax: (+36 1)

19 19 Párhuzamos feldolgozás...

20 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 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 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 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 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 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 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 27 Gépi utasítások közötti párhuzamosítás : Dataflow (adatfolyam) X= (A*B)+(C/D) * + / A BC D utasítás („művelet”) akkor hajtható végre, ha az operandusok már rendelkezésre állnak

28 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 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 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 31 Többprocesszoros rendszerek

32 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 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 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órajelmátrixszorzás EDSAC12000ns100/s CRAY-112,5ns130 millió/s 160x x

35 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 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 37 a rendszerek csoportosítása (3) feldolgozási mód (Flynn) SISD MISD SIMD MIMD

38 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 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 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 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 42 osztott feldolgozás (distributed processing) : feldolgozás adatbázis

43 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 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 45 A processzorok csatolási módja tárcsatolt be/kiviteli csatolású

46 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 47 A kommunikációs csatorna működési módja szó (byte) átviteli blokkátviteli vegyes átviteli

48 48 A passzív elemek használata csak globális globális és lokális

49 49 A kapcsolat technológiája fizikai elosztottság...

50 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


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

Hasonló előadás


Google Hirdetések