Az ILP feldolgozás fejlődése

Slides:



Advertisements
Hasonló előadás
A kereskedelmi gyártás kezdetei. •A háború utáni időkben már üzleti célokra alkalmas gépeket kezdenek gyártani. •1951.UNIVAC – statisztikai hivatal- népszámlálás.
Advertisements

64 bites architektúra, csapdák és átjárók Tóth Sándor Terméktámogatási tanácsadó.
1 Számítógépek felépítése 9. előadás I/O rendszerek.
A számítógép felépítése
CUDA.
A mikroprocesszor 1. rész.
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
Számítógép architektúra
Processzorok.
Az alaplap funkcionális egységei
Az elektronikus számítógépek fejlődése napjainkig
Alapfogalmak Hardver:  A számításokat végző fizikai-technikai rendszer (kézzel fogható, fizikai termékek) Szoftver:  Programok, programrendszerek (szellemi.
Mikroprocesszorok (CPU)
A 2000-es év utáni processzorok jellemzői
SZÁMÍTÓGÉP ARCHITEKTÚRÁK
Digitális rendszerek I. c
Utasítás végrehajtás lépései
Paradigmaváltások a processzorfejlesztésben Sima Dezső augusztus 25.
3. Szálszinten párhuzamos feldolgozás (TLP)
Korszakváltás a processzorok fejlődésében Sima Dezső 2013 őszi félév (verzió 3.4)
Sima Dezső Többmagos/sokmagos processzorok Október Version 3.0.
Korszakváltás a processzorok fejlődésében Sima Dezső 2011 őszi félév (módosított, verzió 3)
Korszakváltás a processzorok fejlődésében Sima Dezső 2011 őszi félév.
Korszakváltás a processzorok fejlődésében Sima Dezső 2007 őszi félév.
Korszakváltás a processzorok fejlődésében Sima Dezső 2009 őszi félév.
Korszakváltás a processzorok fejlődésében
PIC processzor és környezete
CISC - RISC processzor jellemzők
1 Számítógépek felépítése 12. előadás Dr. Istenes Zoltán ELTE-TTK.
A memória.
Mikroprocesszorok. X86 – amit mi is használunk Eredetileg 16 bites CISC Először 8, 16, majd 32 bitesre bővítve IA32 néven Kívül CISC, belül RISC (Pentium.
Egy harmadik generációs gép (az IBM 360) felépítése
Számítástechnika a KFKI AEKI-ben
MIÉRTEK A SZÁMÍTÁSTECHNIKÁBAN
A számítógép felépítése (funkcionális)
Determinisztikus vonások a mikroprocesszorok fejlődésében Sima Dezső május 27.
Paradigmaváltások a processzorfejlesztésben Sima Dezső augusztus 25.
Korszakváltás a processzorok fejlődésében Sima Dezső Szeptember.
Processzorok.
Egy második generációs gép (az IBM 7094) felépítése
Mikroprocesszor.
IT ALAPFOGALMAK HARDVER.
A többmagos processzorok világa Páter-Részeg Attila (PAASABI.ELTE) Beadandó I.
Ismerkedjünk tovább a számítógéppel
Processzorok és típusai
Többszálú Processzorok Sima Dezső 2008 őszi félév (Ver. 2.0)  Sima Dezső, 2007.
Írja fel a tizes számrendszerbeli
A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. Számítógép- architektúrák dr. Kovács György DE AVK GAIT.
1 Számítógépek felépítése 13. előadás Dr. Istenes Zoltán ELTE-TTK.
IT ALAPFOGALMAK HARDVER.
Mikroprocesszorok (Microprocessors, CPU-s)
Piramis klaszter rendszer
A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. Számítógép- architektúrák dr. Kovács György DE AVK GAIT.
ifin811/ea1 C Programozás: Hardver alapok áttekintése
Számítógép-architektúrák
CISC-RISC processzor jellemzők Előadó: Thész Péter Programtervező informatikus hallgató Budapest,
1 Számítógépek felépítése 5. előadás a CPU gyorsítása, pipeline, cache Dr. Istenes Zoltán ELTE-TTK.
Sima Dezső Többmagos/sokmagos processzorok Október Version 3.0.
Korszakváltás a processzorok fejlődésében Sima Dezső 2014 őszi félév (verzió 3.5)
Korszakváltás a processzorok fejlődésében Sima Dezső 2014 őszi félév (verzió 3.5)
A CPU (központi feldolgozó egység vagy processzor)
1 A számítógépek felépítése jellemzői, működése. 2 A számítógép feladata Az adatok Bevitele Tárolása Feldolgozása Kivitele (eredmény megjelenítése)
RAM (Random Access Memory)
Információtechnológiai alapismeretek
Korszakváltás a processzorok fejlődésében
Korszakváltás a processzorok fejlődésében
Az ILP feldolgozás fejlődése
Korszakváltás a processzorok fejlődésében
Fejlett pipeline megoldások IMSC 2019
Pipeline példák (IMSC, 2019).
Előadás másolata:

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

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

1. ILP feldolgozási paradigmák

1.1. ábra: Számítógép kategóriák fejlődése 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

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

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

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

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

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

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

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

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

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ő

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

Types of temporal parallelism in ILP processors 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 R2000 (1988) 41 i80386 (1985) 42 M68030 (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

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

2.2. Kiváltott feldolgozási szűk keresztmetszetek és feloldásuk 2.2.1. Á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)

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

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

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

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

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

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

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 1. generation pipelined (no cache, no speculative branch processing) 1.5. generation pipelined (cache, no speculative branch processing) 2. generation pipelined (cache, speculative branch processing) 2. 7. ábra: Futószalag processzorok generációi

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

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

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

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

3.1. A kibocsájtási párhuzamosság megvalósításának alternatívái 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)

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

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

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ó

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

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

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

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

3.2. A VLIW feldolgozás (7) Kereskedelmi forgalmazású VLIW processzorok: Trace (1987) Multiflow Cydra-5 (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

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

3.3. Szuperskalár feldolgozás 3.3.1. 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

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

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

3.3.2. Első generációs szuperskalár processzorok jellemzői (1) 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 csatolt off-chip L2 gyorsítótár Példák: Alpha 21064 PA 7100 Pentium

3.3.2. Első generációs szuperskalárok jellemzői (2) Processzorjellemzők konzisztenciája (1) Dinamikus utasításeloszlás általános célú alkalmazásokban: 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 (Wall 1989, Lam, Wilson 1992) Forrás: Sima et al., ACA, Addison-Wesley, 1997

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

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

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

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

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

3.3.4. Második generációs szuperskalárok jellemzői (2) Processzorjellemzők konzisztenciája (1) Dinamikus utasításeloszlás általános célú alkalmazásokban: 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 (Wall 1990) Forrás: Sima et al., ACA, Addison-Wesley, 1997

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

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

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.

4. Az adatpárhuzamosság bevezetése

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

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

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

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)

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

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

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 (0.18 ) 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

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

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)

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 adat-párhuzamosság bevezetése é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 (EPIC)

5.2. A fejlődés fővonala (1) A kihasznált utasítás-szintű párhuzamosság (ILP) Soros ILP feldolgozás Időbeni párhuzamosság + Kibocsátási párhuzamosság + Adat párhuzamosság Hagyományos soros proc. Futószalag processzorok Szuperskalár processzorok Superscalar processors with SIMD extension 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 ciklusa

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

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átási párhuzamosság bevezetése Az adatpá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  2. generáció Elágazás becslés Továbbfejlesztett elágazás becslés 2.5. generáció FX SIMD kiterjesztés Továbbfejlesztett rendszer architektúra AGP On-chip L2 ...  3. generáció FP SIMD kiterjesztés ... 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ú L2 ~ 1985/88 ~ 1990/93 ~ 1994/97 5.3 ábra: A fejlődés három ciklusában bevezetett fontosabb technikák

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

Futószalag fokozatok száma 5.2. A fejlődés fővonala (5) Az elágazásbecslés pontossága 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

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

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)

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 (Multiprogramming) Folyamat- ill. szálszinten párhuzamos feldolgozás (Multitasking, Multithreading)

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

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