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

Az ILP feldolgozás fejlődése Sima Dezső 2010 tavaszi félév.

Hasonló előadás


Az előadások a következő témára: "Az ILP feldolgozás fejlődése Sima Dezső 2010 tavaszi félév."— Előadás másolata:

1 Az ILP feldolgozás fejlődése Sima Dezső 2010 tavaszi félév

2 Felépítés 1. ILP feldolgozási paradigmák 2. Az időben párhuzamos feldolgozás bevezetése 3. A kibocsájtási párhuzamosság bevezetése 3.1. VLIW feldolgozás 3.2. Szuperskalár feldolgozás 4. Az adatpárhuzamosság bevezetése 5. A fejlődés fővonalának összegzése 6. Kitekintés

3 1. ILP feldolgozási paradigmák

4 mainframe minicomputer microcomputer x UNIVAC 4004 /370/390z/900 server/workstation desktop PC value PC Pentium PIIPIIIP4 Celeron /360 PDP-8PDP-11VAX RS/6000 PPro Xeon super- computer ENIACCDC-6600 ? Cray-1Cray-2NORCCray-3Cray T3E Cray Altair 1.1. ábra: Számítógép kategóriák fejlődése 1.1. Bevezetés (1)

5 1.2. ábra: Az x86 alapú Intel processzorok fixpontos teljesítményének növekedése 1.1. Bevezetés (2)

6 Futószalag processzorok Időben párhuzamos feldolgozás Párhuzamos utasítás- kibocsájtás ILP feldolgozási paradigmák statikus függőség kezeléssel VLIW processzorok 1.2. ILP feldolgozási paradigmák (1)

7 VLIW feldolgozás elve FEFE FEFE FEFE VLIW: Very Large Instruction Word független utasítások (statikus függőség kezelés) Processzor utasítások

8 Futószalag processzorok Időben párhuzamos feldolgozás Párhuzamos utasítás- kibocsájtás ILP feldolgozási paradigmák Statikus függőség kezelés Dinamikus függőség kezelés VLIW processzorok Szuperskalár processzorok 1.2. ILP feldolgozási paradigmák (1)

9 utasítások VLIW feldolgozás elve FEFE FEFE FEFE VLIW: Very Large Instruction Word független utasítások (statikus függőség kezelés) Processzor Szuperskalár feldolgozás elve FEFE FEFE FEFE dinamikus függőség kezelés Processzor függő utasítások

10 Futószalag processzorok SIMD kiterjesztés Időben párhuzamos feldolgozás Párhuzamos utasításkibocsájtás Adatpárhuzamos feldolgozás ILP feldolgozási paradigmák statikus függőség- kezeléssel dinamikus függőségkezeléssel VLIW processzorok Szuperskalár processzorok 1.2. ILP feldolgozási paradigmák (1)

11 1.2. ILP feldolgozási paradigmák (2) ~ ‘90~ ‘85 ~ ’95 -‘00 Szuperskalár proc. Futószalag proc. VLIW proc. EPIC proc. Szuperskalár proc. SIMD kiterjesztéssel 1.3 ábra: Az ILP paradigmák/ processzorok megjelenése Soros feldolgozás Időben párh. feldolgozás Párhuzamos utasításkibocs. Adatpárhuzamos feldolgozás statikus függőségkezelés dinamikus függőségkezelés

12 1.3. ILP processzorok teljesítménypotenciálja (1) Abszolut teljesítmény Ideális esetben Valós esetben Soros Futószalag VLIW/ szuperskalár SIMD kiterjesztéssel

13 1.3. ILP processzorok teljesítménypotenciálja (2) Órajel frekvencia Technológia/ μarchitektúra függő Hatékonyság ISA, μarchitektúra, rendszer architektúra, OR, fordító, alkalmazás függő Órajel frekvencia Időbeli párh. Kibocsájtási párh. Adat párh. Spek. végr. hatékonysága ILP processzorok teljesítménykomponensei

14 2. Az időben párhuzamos feldolgozás bevezetése

15 (F: fetch cycle, D: decode cycle, E: execute cycle, W: write cycle) Overlapping all phases i i +1 i i +3 i i +2 i i F EW D Pipelined processors Atlas (1963) 37 IBM 360/91 (1967) 38 R2000 (1988) 41 i80386 (1985) 42 M68030 (1988) Bevezetés (1) Types of temporal parallelism in ILP processors 2.1 ábra: Az időben párhuzamos feldolgozás megvalósítási alternatívái

16 2.1. Bevezetés (2) 2.2. ábra: Futószalag processzorok megjelenése

17 2.2. Kiváltott feldolgozási szűk keresztmetszetek és feloldásuk Az elágazáskezelés problémája Az operatív tár sávszélessége (2.2.2) (2.2.3) Áttekintés

18 Az operatív tár sávszélessége (1) nagyobb sávszélesség igény Szekvenciális feldolgozás Futószalag feldolgozás óraciklusonként több utasítás és adat lehívása

19 Az operatív tár sávszélessége (2) 2.3. ábra: Gyorsítótárak bevezetése x86 M68000 MIPS R R3000 R6000 R4000 C(8) C(1/4,1/4)C(4,4) C(16) C(8,8) C(0,1/4) R pipelined (scalar processors), with cache C(n) universal cache (size in kB) C(n/m) instruction/data cache (sizes in kB) pipelined (scalar processors)

20 i i+2 i i Az elágazáskezelés problémája (1) (pl: feltételes elágazások esetén) 2.4. ábra: Feltételes elágazások kezelése 4-fokozatú futószalag processzorban F bti i i+4 D E W Brach address calculation F D E Condition checking D F Decode F bc i clock cycles Branch target instruction bti Conditional branch bc

21 Az elágazáskezelés problémája (2) ábra: Az elágazásbecslés elve egy feltételes elágazás esetén Conditional branches Instructions other than conditional branches Guessed path Basic block Basic block Approved path

22 Az elágazáskezelés problémája (3) x86 M68000 MIPS R R3000 R6000 R4000 C(8) C(1/4,1/4)C(4,4) C(16) C(8,8) P ipelined (scalar processors) Speculative execution of branches C(0,1/4) R ábra: Az elágazásbecslés bevezetése skalár processzorokban

23 2. generation pipelined 1.5. generation pipelined 1. generation pipelined CacheSpeculative branch processing no yesno yes 2.3. Futószalag processzorok generációi (1)

24 2.3. Futószalag processzorok generációi (2) x86 M68000 MIPS R R3000 R6000 R4000 C(8) C(1/4,1/4)C(4,4) C(16) C(8,8) 2. generation pipelined (cache, speculative branch processing) C(0,1/4) R generation pipelined (cache, no speculative branch processing) 1. generation pipelined (no cache, no speculative branch processing) ábra: Futószalag processzorok generációi

25 A 2. generációs futószalag processzorok érdemben már kimerítik az időbeli párhuzamosság bevezetésével elérhető teljesítménynövelési lehetőségeket 2.4. Az időben párhuzamos feldolgozás bevezetésével elérhető teljesítménynövelés korlátja Futószalag feldolgozás

26 3. A kibocsájtási párhuzamosság bevezetése

27 Futószalag feldolgozás VLIW (EPIC) utasítás kibocsátás Statikus függőség feloldás (3.2) 3.1. A kibocsájtási párhuzamosság megvalósításának alternatívái

28 utasítások VLIW feldolgozás elve FEFE FEFE FEFE VLIW: Very Large Instruction Word független utasítások (statikus függőség kezelés) Processzor

29 Futószalag feldolgozás Szuperskalár utasítás kibocsátás VLIW (EPIC) utasítás kibocsátás Statikus függőség feloldás (3.2) Dinamikus függőség feloldás (3.3) 3.1. A kibocsájtási párhuzamosság megvalósításának alternatívái

30 utasítások VLIW feldolgozás elve FEFE FEFE FEFE VLIW: Very Large Instruction Word független utasítások (statikus függőség kezelés) Processzor Szuperskalár feldolgozás elve FEFE FEFE FEFE dinamikus függőség kezelés Processzor függő utasítások

31 3.2. A VLIW feldolgozás (1) F E F E F E F E Memory/cache VLIW instructions independent sub-instructions (static dependency resolution) VLIW processor ~ (10-30 FE) 3.1. ábra: A VLIW feldolgozás elve

32 3.2. A VLIW feldolgozás (2) VLIW: Very Long Instruction Word Elnevezés: 1983 (Fisher) Részutasítás-hossz ~32 bit Utasítás hossz: ~n*32 bit n: feldolgozó egységek (FE) száma Komplex VLIW fordító Statikus függőség kezelés / párhuzamos optimalizálás

33 3.2. A VLIW feldolgozás (3) 3.2. ábra: Kísérleti és forgalmazott VLIW processzorok The term ‘VLIW’

34 3.2. A VLIW feldolgozás (4) A statikus függőségkezelés előnye: Korábbi megjelenés Magasabb f c vagy nagyobb ILP Kevésbé komplex processzor

35 3.2. A VLIW feldolgozás (5) A fordító a függőség kezeléshez ill. párh. optimalizáláshoz technológia függő paramétereket használ (pl. a FE-k késleltetési, ismétlési ideje, cache elérési idők...) A statikus függőségkezelés hátrányai: Új modellekhez új fordító verziók szükségesek Gyökeresen új ISA Új fordítók, operációs rendszer Alkalmazások újraírása A piaci elfogadtatáshoz szükséges „kritikus tömeg” elérése

36 3.2. A VLIW feldolgozás (6) A statikus függőségkezelés hátrányai (folytatás): A VLIW utatítások részlegesen kitöltöttek Rossz kihasználtságú tártér és sávszélesség

37 3.2. A VLIW feldolgozás (7) Kereskedelmi forgalmazású VLIW processzorok: Néhány éven belül mindkét cég tönkrement Fejlesztőik: HP, IBM EPIC processzorok kezdeményezői, fejlesztői lettek Trace (1987) Multiflow Cydra-5 (1989) Cydrome

38 3.2. A VLIW feldolgozás (8) SIMD feldolgozás, fejlett szuperskalár vonások integrálása VLIWEPIC 1994: Intel, HP együttműködés bejelentése 2001: IA-64  Itanium 1997: EPIC elnevezés

39 3.3. Szuperskalár feldolgozás Bevezetés (1) Futószalag feldolgozás Párhuzamos utasítás kibocsátás Szuperskalár feldolgozás jellemzői: Dinamikus függőség kezelés Kompatibilis ISA

40 Bevezetés (2) 3.3. ábra:Kísérleti szuperskalár processzorok

41 Bevezetés (3) 3.4. ábra:Szuperskalár processzorok megjelenése

42 Első generációs szuperskalár processzorok jellemzői (1) Gyorsítótár: Szélesség 2-3 RISC utasítás/ciklus vagy 2 CISC utasítás/ciklus „széles” Proc. mag: Statikus elágazásbecslés Egyportos, blokkoló L1 adat-gyorsítótár Processzor buszon keresztül csatolt off-chip L2 gyorsítótár Példák: Pentium PA 7100 Alpha 21064

43 Processzorjellemzők konzisztenciája (1) Dinamikus utasításeloszlás általános célú alkalmazásokban: (Wall 1989, Lam, Wilson 1992) Első generációs szuperskalárok jellemzői (2) FX utasítások~ 40 % Load utasítások~ 30 % Store utasítások~ 10 % Elágazások~ 20 % FP utasítások~ 1-5 % Elérhető párhuzamosság általános célú alkalmazásokban, direkt (nem pufferelt) kibocsájtás mellett: ~ 2 utasítás / ciklus Forrás: Sima et al., ACA, Addison-Wesley, 1997

44 Szükséges VE-k (Minden L/S utasításhoz kell címszámítás is): utasítás/ciklus Egyportos adat-cache Szükséges adat-cache portok száma (n p ): Hasznos magszélesség: n p ~ 0.4 * (2 - 3)= 0.8 – 1.2 utasítás/ciklus Processzorjellemzők konzisztenciája (2) Első generációs szuperskalárok jellemzői (3) FX~ 0.8 * (2 – 3) = 1.6 – 2.42 – 3 FX EUs L/S~ 0.4 * (2 – 3) = 0.8 – 1.21 L/S EU Elág.~ 0.2 * (2 – 3) = 0.4 – 0.61 B EU FP~ (0.01 – 0.05) * (2 – 3) 1 FP EU

45 (b): The issue process(a): Simplified structure of the mikroarchitecture assuming unbuffered issue 3.5. ábra: A direkt kibocsájtás elve Icache I-buffer Instr. window (3) Decode, check, issue Dependent instructions block instruction issue EU Issue EU A kiváltott feldolgozási szűk keresztmetszet és feloldása (1)

46 3.6. ábra: A pufferelt (indirekt) kibocsájtás elve (b): The issue process(a): Simplified structure of the mikroarchitecture assuming buffered issue (shelving) (shelving, buffered issue) A kiváltott feldolgozási szűk keresztmetszet és feloldása (2) A kibocsájtási szűk keresztmetszet feloldása

47 A kiváltott feldolgozási szűk keresztmetszet és feloldása (3) Első generációs (keskeny) szuperskalárok Második generációs (széles) szuperskalárok A kialakuló kibocsájtási szűk keresztmetszet feloldása és az egyes alrendszerek feldolgozási szélességének adekvát növelése

48 Második generációs szuperskalárok jellemzői Gyorsítótár: Proc. mag: Első generációs „keskeny” szuperskalárok Második generációs „széles” szuperskalárok Szélesség: 2-3 RISC utasítás/ciklus vagy 2 CISC utasítás/ciklus „széles” 4 RISC utasítás/ciklus vagy 3 CISC utasítás/ciklus „széles” Statikus elágazásbecslés Elődekódolás Dinamikus elágazásbecslés Pufferelt kibocsátás Reg. átnevezés ROB Egyportos, blokkoló L1 adat-gyorsítótár Processzor buszon keresztül csatolt off-chip L2 gyorsítótár Kétportos, nem blokkoló L1 adat-gyorsítótár Közvetlen csatolású off-chip L2 gyorsítótár Példák: Pentium Pentium Pro K6 PA 7100 PA 8000 Alpha Alpha 21264

49 Processzorjellemzők konzisztenciája (1) Dinamikus utasításeloszlás általános célú alkalmazásokban: (Wall 1990) Második generációs szuperskalárok jellemzői (2) FX utasítások~ 40 % Load utasítások~ 30 % Store utasítások~ 10 % Elágazások~ 20 % FP utasítások~ 1-5 % Elérhető párhuzamosság általános célú alkalmazásokban, pufferelt kibocsájtás mellett: ~ 4 – 6 utasítás / ciklus Forrás: Sima et al., ACA, Addison-Wesley, 1997

50 Source: Wall: Limits of ILP, WRL TN-15, Dec ábra: Elérhető párhuzamosság szintje általános célú alkalmazások esetén, pufferelt kibocsájtás használatával

51 Szükséges VE-k (Minden L/S utasításhoz kell címszámítás is): utasítás/ciklus Kétportos adat-cache Szükséges adat-cache portok száma (n p ): Hasznos magszélesség: n p ~ 0.4 * (4 - 5)= 1.6 – 2 utasítás/ciklus FX~ 0.8 * (4 – 5) = 3.2 – 43 – 4 FX EUs L/S~ 0.4 * (4 – 5) = 1.6 – 22 L/S EU Elágazás~ 0.2 * (4 – 5) = 0.8 – 11 B EU FP~ (0.01 – 0.05) * (4 – 5) 1 FP EU Processzorjellemzők konzisztenciája (2) Második generációs szuperskalárok jellemzői (3)

52 A 2. generációs szuperskalárok zömében már kiaknázzák az általános célú alkalmazásokban rendelkezésre álló utasításszintű párhuzamosságot A kibocsájtási párhuzamosság kimerülése

53 4. Az adatpárhuzamosság bevezetése

54 4.1. Áttekintés (1) 4.1. ábra: Az adatpárhuzamosság bevezetésének alternatívái 4. Az adatpárhuzamosság bevezetése

55 Szuperskalár feldolgozás Utasításon belüli párhuzamos műveletvégzés Szuperskalár kiterjesztés EPIC kiterjesztés SIMD utasítások FX/FP 4.1. Áttekintés (2) 4.2 ábra: SIMD utasítások bevezetésének elve szuperskalár ill VLIW(EPIC) processzorokban

56 4.2. SIMD utasítások megjelenése szuperskalárokban (1) 4.3. ábra: FX-SIMD és FP-SIMD utasítások megjelenése szuperskalárokban Megvalósítás: az ISA kibővítésével (MMX, SSE, SSE2, SSE3, 3DNow!, 3DNowProfessional)

57 A 2.5. és 3. generációs szuperskalárok (1) Második generációs szuperskalárok 3. generációs szuperskalárok 2.5. generációs szuperskalárok FX SIMD (MM) FX SIMD + FP SIMD (MM+3D)

58 A 2.5. és 3. generációs szuperskalárok (2) 4.4. ábra: A 2.5. és 3. generációs szuperskalárok megjelenése

59 A kiváltott feldolgozási szűk keresztmetszet Rendszerarchitektúra (operatív tár,megjelenítő) AGP busz On-chip L2

60 Performance Complexity Memory Bandwidth Branch prediction accuracy 4.3. Szuperskalár- processzor generációk áttekintése

61 A második generációs szuperskalárokkal: az ILP kimerülése általános célú alkalmazásokban A harmadik generációs szuperskalárokkal: az ILP kimerülése dedikált (MM,3D) alkalmazásokban is Ezzel az ILP processzorok fejlődésének korszaka lezárult 4.4. Az adatpárhuzamos feldolgozás bevezetésével elérhető teljesítménynövelés korlátja

62 4.5. SIMD utasítások megj. EPIC (VLIW) processzorokban A bevezetés módja: A VLIW architektúrák/processzorok még nem támogatták a SIMD utasításokat Az EPIC architektúrák/processzorok már eleve támogatják a SIMD utasításokat. (pl. az IA-64 ISA ill. az Itanium család processzorai)

63 5. A fejlődés fővonalának összegzése

64 Az időbeni párhuzamosság bevezetése/növelése A kibocsájtási párhuzamosság bevezetése/növelése A VLIW feldolgozás bevezetése Az adat- párhuzamosság bevezetése és növelése Az adatpárhuzamosság bevezetése (EPIC) a. „Szisztematikus” fejlődés (szuperskalár bővítés) (A fejlődés fővonala) b. „Radikális” fejlődés (VLIW/EPIC bővítés) 5.1. Fejlődési szcenáriók

65 Hagyományos soros proc. Superscalar processors with SIMD extension + Adat párhuzamosság Szuperskalár processzorok + Kibocsátási párhuzamosság Futószalag processzorok Időbeni párhuzamosság 5.1 ábra: A fejlődés fővonalának három ciklusa A kihasznált utasítás-szintű párhuzamosság (ILP) A hardver redundancia mértéke Soros ILP ~ 1985/88~ 1990/93~ 1994/ 00 feldolgozás t 5.2. A fejlődés fővonala (1)

66 a párhuzamosság egy-egy dimenziójának bevezetése ennek megvalósítása szűk keresztmetszet(ek)hez vezet a kialakuló szűk keresztmetszet(ek) feloldása az adott dimenzióban rendelkezésre álló párhuzamosítási lehetőségek érdemben kimerülnek, a teljesítmény további növeléséhez a párhuzamosság újabb dimenziójának bevezetése szükséges i: Időbeli  kibocsájtási  adat párhuzamosság bevezetése i=1: A fejlődés fővonala (2) 5.2 ábra: A fejlődés fővonalának három ciklusa

67 Szuperskalár processzorok 5.3 ábra: A fejlődés három ciklusában bevezetett fontosabb technikák Introduction of Továbbfejlesztett memória alrendszer Továbbfejlesztett elágazás becslés A kibocsátási párhuzamosság bevezetése SIMD kiterjesztésű szuperskalárok ISA-kiterjesztés Az adatpárhuzamosság bevezetése Hagyományos soros feldolgozás ~ 1985/88~ 1990/93~ 1994/97 1. generáció  2. generáció Dinamikus ut. ütemezés Regiszter átnevezés Elődekódolás Dinamikus elágazás becslés ROB Kétportos adat gyorsítótár Nem blokkoló adat gyorsítótár Közvetlen csatolású L generáció FX SIMD kiterjesztés Továbbfejlesztett rendszer architektúra AGP On-chip L2...  3. generáció FP SIMD kiterjesztés... Az időbeli párhuzamosság bevezetése 1. generáció  1.5. generáció Gyorsítótárak  2. generáció Elágazás becslés Hagyományos soros processzorok Futószalag processzorok 5.2. A fejlődés fővonala (3)

68 ~ 1985 t ~ 2000 Memória sávszélesség Hardver komplexitás Teljesítmény 5.4 ábra: A memória sávszélesség igény és a hardver komplexitás növekedése a teljesítmény növekedésével 5.2. A fejlődés fővonala (4)

69 ~ 1985 t ~ 2000 Az elágazásbecslés pontossága Futószalag fokozatok száma fcfc 5.5 ábra: Az elágazásbecslés pontossági igényének növekedése az órafrekvencia növekedésével 5.2. A fejlődés fővonala (5)

70 6. Kitekintés: A szálszinten párhuzamos feldolgozás bevezetése

71 6. Kitekintés: Szálszinten párhuzamos feldolgozás bevezetése (1) ILP (instruction-level parallelism) TP (thread-level parallelism) Egyetlen szál (Utasításfolyam) Több szál Szemcsézettség

72 6. Kitekintés: Szálszinten párhuzamos feldolgozás bevezetése (2) Párhuzamos szálak származtatása ugyanabból az alkalmazásból különböző alkalmazásokból Multiprogramozás (Multiprogramming) Folyamat- ill. szálszinten párhuzamos feldolgozás (Multitasking, Multithreading)

73 6. Kitekintés: Szálszinten párhuzamos feldolgozás bevezetése (3) A többszálas technika megvalósítási lehetőségei mikroprocesszorokban Ugyanazon a lapkán implementált két vagy több processzor-maggal Többszálas processzor-maggal Lapka SMP: Symmetric Multiprocessing (CMP: Chip Multiprocessing) SMT: Simultaneous Multithreading (HT: Hyperthreading (Intel)) L3/Operatív tár L2/L3 Mag L3/Operatív tár SMT Proc.-mag L2/L3

74 6. Kitekintés: szálszinten párhuzamos feldolgozás bevezetése (4) Szuperskalár (négyszeres) Többszálas szuperskalár (négyszeres/két szálas) Szál Szál 2Szál 1 SMT: Simultaneous Multithreading (HT: Hyperthreading (Intel))


Letölteni ppt "Az ILP feldolgozás fejlődése Sima Dezső 2010 tavaszi félév."

Hasonló előadás


Google Hirdetések