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

Hasonló előadás


Az előadások a következő témára: "Az ILP feldolgozás fejlődése"— Előadás másolata:

1 Az ILP feldolgozás fejlődése
Sima Dezső 2006. szeptember

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 ? x 1. ILP feldolgozási paradigmák 1.1. Bevezetés (1)
mainframe 1950 1960 1970 1980 1990 2000 minicomputer microcomputer x UNIVAC 4004 /370 /390 z/900 server/workstation desktop PC value PC 8080 8088 80286 80386 80486 Pentium PII PIII P4 Celeron /360 PDP-8 PDP-11 VAX RS/6000 PPro Xeon super- computer ENIAC CDC-6600 ? Cray-1 Cray-2 NORC Cray-3 Cray T3E Cray-4 Altair 1.1. ábra: Számítógép kategóriák fejlődése

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

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

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

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

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

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

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

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

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

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

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

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

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

17 2.2.2. Az operatív tár sávszélessége (2)
x86 M68000 MIPS R 1980 81 82 83 84 85 86 87 88 89 1990 91 92 80386 80486 68030 68040 R3000 R6000 R4000 C(8) C(1/4,1/4) C(4,4) C(16) C(8,8) C(0,1/4) R2000 68020 80286 pipelined (scalar processors), with cache C(n) universal cache (size in kB) C(n/m) instruction/data cache (sizes in kB) pipelined (scalar processors) 2.3. ábra: Gyorsítótárak bevezetése

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

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

20 2.2.3. Az elágazáskezelés problémája (3)
x86 M68000 MIPS R 1980 81 82 83 84 85 86 87 88 89 1990 91 92 80386 80486 68030 68040 R3000 R6000 R4000 C(8) C(1/4,1/4) C(4,4) C(16) C(8,8) Pipelined (scalar processors) Speculative execution of branches C(0,1/4) R2000 68020 80286 2. 6. ábra: Az elágazásbecslés bevezetése skalár processzorokban

21 2.3. Futószalag processzorok generációi (1)
Cache Speculative branch processing generation pipelined no no 1.5. generation pipelined yes no generation pipelined yes yes

22 2.3. Futószalag processzorok generációi (2)
x86 80286 80386 80486 C(0,1/4) C(1/4,1/4) C(4,4) M68000 68020 68030 68040 C(4,4) C(4,4) C(16) C(8,8) MIPS R R2000 R3000 R6000 R4000 1980 81 82 83 84 85 86 87 88 89 1990 91 92 generation pipelined (no cache, no speculative branch processing) 1.5. generation pipelined (cache, no speculative branch processing) generation pipelined (cache, speculative branch processing) 2. 7. ábra: Futószalag processzorok generációi

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

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

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

26 Statikus függőség kezelés / párhuzamos optimalizálás
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 Statikus függőség kezelés / párhuzamos optimalizálás Komplex VLIW fordító

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

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

29 3.2. A VLIW feldolgozás (5) A statikus függőségkezelés hátrányai:
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 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...) Új modellekhez új fordító verziók szükségesek

30 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

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

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

33 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

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

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

36 3.3.2. Első generációs szuperskalár processzorok jellemzői
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 Gyorsítótár: Egyportos, blokkoló L1 adat-gyorsítótár Processzor buszon keresztül csatoltoff-chip L2 gyorsítótár Példák: Alpha 21064 PA 7100 Pentium

37 3.3.3. A kiváltott feldolgozási szűk keresztmetszet és feloldása (1)
A kibocsájtási szűk keresztmetszet értelmezése (a): Simplified structure of the mikroarchitekture assuming direct issue (b): The issue process 3.5. ábra: A direkt kibocsájtás elve

38 3.3.3. A kiváltott feldolgozási szűk keresztmetszet és feloldása (2)
A kibocsájtási szűk keresztmetszet feloldása 3.6. ábra: A pufferelt (out of order) kibocsájtás elve

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

40 3.3.4. Második generációs szuperskalárok jellemzői
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 Proc. mag: Gyorsítótár: 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: Alpha 21064 Alpha 21264 PA 7100 PA 8000 Pentium Pentium Pro K6

41 3.3.5. A kibocsájtási párhuzamosság kimerülése
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.

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

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

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

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

46 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

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

48 4.3. Szuperskalár- processzor generációk áttekintése
Superscalars First Generation Second Generation 2.5 Generation 2-3 RISC instructions/cycle or 4 RISC instructions/cycle or Unbuffered issue No renaming Single ported data caches Static branch prediction Off-chip L2 caches attached via the processor bus No MM/3D support Examples: Alpha 21064 PA 7100 PowerPC 601 SuperSparc Pentium Alpha 21264 PA 8000 PowerPC 604 UltraSparc I, II Pentium Pro PowerPC 620 Pentium II Buffered issue (shelving) Renaming Predecoding Dual ported data caches Dynamic branch prediction Off-chip direct coupled L2 caches K6 FX-SIMD 1 1,4 2 No ROB ROB Blocking L1 data caches or nonblocking caches with up to a single pending cache miss allowed Nonblocking L1 data caches with multiple cache misses allowed Features: ("Thin superscalars") ("Wide superscalars") ("Wide superscalars with MM/3D support") 2 CISC instructions/cycle "wide" 3 CISC instructions/cycle "wide" No predecoding No renaming. Power2 3 4 Dual ported data cache, optional No off-chip direct coupled L2. Only single ported data cache. Width: Core: Caches: ISA: instructions Third Generation Power 4 Pentium III m ( ) Pentium 4 Athlon (model 4) On-chip L2 caches FX- and FP-SIMD Athlon MP (model 6) dynamic branch prediction. Performance Complexity Memory Bandwidth Branch prediction accuracy

49 4.4. Az adatpárhuzamos feldolgozás bevezetésével elérhető teljesítménynövelés korlátja
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

50 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)

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

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

53 5.2. A fejlődés fővonala (2) i: Időbeli  kibocsájtási  adat párhuzamosság bevezetése a párhuzamosság egy-egy dimenziójának bevezetése i=1:3 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 5.2 ábra: A fejlődés fővonalának három ciklusa

54 5.2. A fejlődés fővonala (3) Hagyományos soros feldolgozás Az időbeli párhuzamosság bevezetése Introduction of A kibocsájtási párhuzamosság bevezetése Az adat párhuzamosság bevezetése Hagyományos soros processzorok Futószalag processzorok Szuperskalár processzorok SIMD-kiterjesztésű szuperskalárok Továbbfejlesztett memória alrendszer ISA kiterjesztés 1. generáció  1.5. generáció Gyorsítótárak  generáció Elágazás becslés Továbbfejlesztett elágazás becslés 1. generáció  2. generáció Dinamikus utasítás ü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ó gyorsítótárak Közvetlen csatolású L2 2.5. generáció FX SIMD kiterjesztés Továbbfejlesztett rendszer architektura AGP On-chip L  3. generáció FP SIMD kiterjesztés ... ~ 1985/88 ~ 1990/93 ~ 1994/97 5.3 ábra: A fejlődés három ciklusában bevezetett fontosabb technikák

55 5.2. A fejlődés fővonala (4) Memória sávszélesség Hardver komplexitás Teljesítmény ~ 1985 ~ 2000 t 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

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

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

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

59 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 SMP: Symmetric Multiprocessing (CMP: Chip Multiprocessing) SMT: Simultaneous Multithreading (HT: Hyperthreading (Intel)) Ugyanazon a lapkán implementált két vagy több processzor-maggal Többszálas processzor-maggal L3/Operatív tár SMT Proc.-mag L2/L3 L3/Operatív tár L2/L3 Mag Lapka

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


Letölteni ppt "Az ILP feldolgozás fejlődése"

Hasonló előadás


Google Hirdetések