Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.