Tbbszl Processzorok Sima Dezs 2007 szi flv Ver
Többszálú Processzorok Sima Dezső 2007 őszi félév (Ver. 2. 1) Dezső Sima, 2007
Felépítés • 1. Bevezetés • 2. Áttekintés • 3. Durván szemcsézett többszálúság • 4. Finoman szemcsézett többszálúság • 5. Szimultán többszálúság
1. Bevezetés
1. Bevezetés (1) Többszálúság célja teljesítmény emelése szuperskalár vagy többfeladatos futtatáshoz képest, a végrehajtási párhuzamosság növelésével Szál (thread): dinamikus végrehajtási folyamat Többszálúság főbb jellemzői A szálak • ugyanazon folyamathoz tartoznak, • közös adattéren osztoznak (általában, különben több címfordítási útvonal egyidejű kezelésére van szükség (virtualisból valósba)) • egyidejűleg futnak (átfedésben vagy párhuzamosan). Szálkezelés • • • Szálak létrehozása és megszüntetése, végrehajtásuk vezérlése, egyidejűleg több szál állapotának nyilvántartása, kezelése, kontextusváltás a szálak között.
1. Bevezetés (2) Többszálúság megvalósítása (többszálú alkalmazás/OS futtatásakor) Szoftver megvalósítás Hardver megvalósítás Program/OS többszálú futtatása egyszálú processzoron időosztással Program/OS többszálú futtatása többszálú processzoron átfedésben vagy párhuzamosan Több szál egyidejű kezelése az operációs rendszer által Több szál egyidejű kezelése a processzor által Többszálú OS Többszálú processzor A szálak között gyors kontextusváltás szükséges.
1. Bevezetés (3) Többszálú processzorok megvalósítási lehetőségei Többmagos processzorok Többszálú magok (SMP: Symmetric Multiprocessing CMP: Chip Multiprocessing) Chip Core L 2/L 3 MT core Core L 2/L 3 L 3/Memory
1. Bevezetés (4) Szoftver többszálúság követelményei: Több szál állapotának nyilvántartása/kezelése az OS által (PC, FX/FP architekturális regiszterek, állapot regiszterek) Többszálú magokhoz szükséges többletráfordítás: • Több szál állapotának nyilvántartésa/kezelése: PC, FX/FP arhictekturális regiszeterek, állapot regiszterek, (összevont arch. és átnevezési regiszterek esetén kellően nagyméretű fizikai regiszterfájl biztosítása (FX/FP)) • Egyidejűleg több szál mikroállapotának nyilvántartésa/kezelése, például: regiszterátnevezések nyilvántartása, RAS (Return Address Stack), ROB stb. • Szűknek bizonyuló érzékeny erőforrások bővítése, például: utasítás puffer, store queue stb. méretének a növelése
1. Bevezetés (5) Többmagos processzorok Többszálas magok Komplexitás növekedés ~ (60 – 80) % ~ (2 – 10) % Nyereség (általános alkalmazásokban) ~ (60 – 80) % ~ (0 – 30) %
1. Bevezetés (6) Többszálú operációs rendszerek: • Windows NT • OS/2 • Unix w/Posix • 90 -es évek eleje óta kifejlesztett operációs rendszerek döntő többsége
Soros-, többfeladatos-, és többszálú programozás elve Soros prog. P 1 Többfeladatos programozás P 1 Többszálú programozás P 1 fork() Process / Thread Management Example T 1 Create. Thread() P 2 exec() T 2 fork() Create Process() T 3 P 2 P 3 P 2 T 4 T 5 exec() T 6 P 3 join()
Multiprocessing és multithreading megvalósítása Software Development Performance Level OS Support Sequential programs Multitask programs Software megvalósítás Multithreaded programs Software impl. Hardware impl. Legacy OS Traditional Unix support Most modern OS’s (Windows NT/2000, OS/2, Unix+Posix) Low Higher Process and thread life cycle management API Explicit threading API Open. MP Low-medium No API level Process life cycle management API support
2. Áttekintés
2. Áttekintés (1) 2. 1 Szálak ütemezése szoftver többszálúság esetén, hagyományos szuperskalár processzoron Egy új szál futtatását kontextusváltás előzi meg (ezáltal mentődik le a felfüggesztett szál állapottere, és töltődik be a futtatandó szál állapottere). Ábra 2. 1: Szálak ütemezése hagyományos szuperskalár processzoron Forrás: Mazzucco P. , „Fundamentals of Multithreading, ” http: //www. slcentral. com/articles/01/6/multithreading
Szálak ütemezése CMP-n (Durván szemcsézettség) A magok a szálakat egymástól függetlenül futtatják Ábra 2. 2: Szálak ütemezése durva szemcsézettséggel Forrás: Mazzucco P. , „Fundamentals of Multithreading, ” http: //www. slcentral. com/articles/01/6/multithreading
2. Áttekintés (2) Szálütemezés többszálú magok esetében Durván szemcs. MT
A szálakat gyors, HW által támogatott kontextus váltásokkal cserélik. Ábra 2. 3: Szálak ütemezése 4 -utas durva szemcsézettségű többszálas processzoron Forrás: Mazzucco P. , „Fundamentals of Multithreading, ” http: //www. slcentral. com/articles/01/6/multithreading
2. Áttekintés (3) Szálütemezés többszálú magok esetében Durván szemcs. MT Finoman szemcs. MT
A hardveres szálütemező minden ütemben kiválaszt egy szálat és abból a szálból származó utasításokat kiküld/kibocsát abban az ütemben. Ábra 2. 4: Szálak ütemezése 4 -utas finom szemcsézettségű többszálas processzoron Forrás: Mazzucco P. , „Fundamentals of Multithreading, ” http: //www. slcentral. com/articles/01/6/multithreading
2. Áttekintés (4) Szálütemezés többszálú magok esetében Durván szemcs. MT Finoman szemcs. MT Szimultán MT (SMT)
Elérhető utasítások (a megfelelő módszerrel kiválasztva, pl. a szálak prioritása) kiküldésre vagy kibocsátásra kerülnek minden ciklusban. SMT: Proposed by Tullsen, Eggers and Levy in 1995 (U. of Washington). Ábra 2. 5: Szálak ütemezése 4 -utas szimultán többszálas processzoron Forrás: Mazzucco P. , „Fundamentals of Multithreading, ” http: //www. slcentral. com/articles/01/6/multithreading
2. MCP-k áttekintése (1) 8 CST QCMT QCST 1/06 5/05 DCMT Pentium EE 840 (Smithfield) Pentium EE 955/965 (Presler) 90 nm/2*103 mm 2 230 mtrs. /130 W 2 -way MT/core 65 nm/2*81 mm 2 2*188 mtrs. /130 W 2 -way MT/core DCST 1 Q 2 Q 3 Q 2005 4 Q 1 Q 2 Q 3 Q 2006 Ábra 2. 6: Intel többmagos processzor családjai 4 Q
2. MCP-k áttekintése (2) 8 CST QCMT QCST 6/06 10/05 DCMT Xeon DP 2. 8 (Paxville DP) Xeon 5000 (Dempsey) 90 nm/2*135 mm 2 2*169 mtrs. /135 W 2 -way MT/core 65 nm/2*81 mm 2 2*188 mtrs. /95/130 W 2 -way MT/core DCST 1 Q 2 Q 2005 3 Q 4 Q 1 Q 2 Q 2006 3 Q Ábra 2. 7. : Intel kétmagos Xeon DP-családja 4 Q
2. MCP-k áttekintése (3) 8 CST QCMT QCST DCMT 11/05 8/06 Xeon 7000 (Paxville MP) Xeon 7100 (Tulsa) 90 nm/2*135 mm 2 2*169 mtrs. /95/150 W 2 -way MT/core 65 nm/435 mm 2 1328 mtrs. /95/150 W 2 -way MT/core DCST 1 Q 2 Q 2005 3 Q 4 Q 1 Q 2 Q 2006 3 Q Ábra 2. 8. : Intel kétmagos Xeon MP-családja 4 Q
2. MCP-k áttekintése (4) 8 CST QCMT QCST 7/06 DCMT 9 x 00 (Montecito) 90 nm/596 mm 2 1720 mtrs. /104 W 2 -way MT/core DCST 1 Q 2 Q 2005 3 Q 4 Q 1 Q 2 Q 2006 3 Q 4 Q Ábra 2. 9. : Intel kétmagos EPIC alapú szerver családja
2. MCP-k áttekintése (5) 2006 8 CST Cell BE 90 nm/221 mm 2 234 mtrs. /95 W (PPE: 2 -way MT) (SSEs: no MT) QCMT QCST 5/04 DCMT 10/05 POWER 5 2007 POWER 5+ 130 nm/389 mm 2 276 mtrs. /80 W (est. ) 2 -way MT/core POWER 6 90 nm/230 mm 2 276 mtrs. /70 W 2 -way MT/core 65 nm/341 mm 2 750 mtrs. /~100 W 2 -way MT/core DCST 3 Q 4 Q 2001 ~ ~ 3 Q 4 Q 2002 ~ ~ 1 Q 2 Q 3 Q 4 Q 1 Q 2 Q 2004 Ábra 2. 10. : IBM többmagos szerver családjai 2006 3 Q 4 Q 1 Q 2 Q 2007
2. MCP-k áttekintése (6) 11/2005 8 CMT 2007 Ultra. SPARC T 1 (Niagara) Ultra. SPARC T 2 (Niagara II) 90 nm/379 mm 2 279 mtrs. /63 W 4 -way MT/core 65 nm/342 mm 2 72 W (est. ) 8 -way MT/core 8 CST 2008 QCMT APL SPARC 64 VII (Jupiter) 65 nm/464 mm 2 ~120 W 2 -way MT/core QCST 2007 DCMT APL SPARC 64 VI (Olympus) 90 nm/421 mm 2 540 mtrs. /120 W 2 -way MT/core DCST 1 Q 2 Q 2004 3 Q 4 Q 1 Q 2 Q 2005 3 Q 4 Q ~ ~ 1 Q 2 Q 2007 3 Q 4 Q Ábra 2. 11. : Sun és Fujitsu többmagos szerver családjai 1 Q 2 Q 2008 3 Q
2. MCP-k áttekintése (7) 5/05 8 CMT XLR 5 xx 90 nm/~220 mm 2 333 mtrs. /10 -50 W 4 -way MT/core 8 CST QCMT QCST DCMT DCST 1 Q 2 Q 2005 3 Q 4 Q 1 Q 2 Q 2006 3 Q Ábra 2. 12. : RMI többmagos XLR-családja (skalár RISC) 4 Q
2. 2. Többszálú processzorok áttekintése (1) Mögöttes mag(ok) Skalár mag(ok) SUN Ultra. SPARC T 1 (2005) (Niagara) up to 8 cores, 4 threads Szuperskalár mag(ok) VLIW mag(ok) IBM RS 64 IV (2000) (SStar) 2 -way SUN MAJC 5200 (2000) Quad-core/4 -way (dedicated use) Pentium 4 (2002) 2 -way Intel Montecito (2006) Dual-core/2 -way DEC 21464 (2003) Dual-core/2 -way IBM POWER 5 (2005) Dual-core/2 -way Pentium EE 840 (2005) Dual-core/2 -way Pentium EE 955/965 (2005) Dual-core/2 -way
3. Durván szemcsézett többszálúság
3. Durván szemcsézett többszálúság 3. 1 Áttekintés (1) Szálütemezés többszálú magok esetében Durván szemcs. MT Finoman szemcs. MT Szimultán MT (SMT)
3. Durván szemcsézett többszálúság 3. 1 Áttekintés (2) Durván szemcs. MT Skalár alapú Szuperskalár alapú IBM RS 64 IV (2000) (SStar) 2 T VLIW alapú SUN MAJC 5200 (2000) Quad-core/4 T (dedicated use) Intel Montecito (2006? ) Dual-core/2 T
3. 2 Esettanulmányok 1: IBM RS 64 IV (1) Mikroarchitekúra 4 -utas szuperskalár, kétszálas IBM i. Series és p. Series kereskedelmi szerverekben használják. Üzleti szerverterhelésre optimalizálva, úgy mint online tranzakció kezelés, webkiszolgálás, ERP (Enterprise Resource Planning). Utasítás lehívás szélessége: 8 ut. /ciklus Architekturális állapot: • GPRs, FPRs, CR (condition reg. ), CTR (count reg. ), • speciális célú, privilegizát módú regiszterek, mint például MSR (machine state reg. . ) • állapot és vezérlő regiszterek, mint például szál prioritás. Minden szál a saját címterében fut A címfordításhoz használt egységeket duplikálni kell, pl: SRs (Segment Address Reg. s) Duplikált erőforrások: ~ + 5 % chip felület Mind az egyszálas, mind a többszálas futtatási módok támogatása
3. 2 Esettanulmányok 1: IBM RS 64 IV (2) IERAT: Effective to real address translation cache (2 x 64 entries) 6 XX bus Ábra 3. 1: IBM’s RS 64 IV mikroarchitektúra Forrás: Borkenhagen J. M. et al. „A multithreaded Power. PC processor for commercial servers”, IBM J. Res. Develop. Vol. 44. No. 6. Nov. 2000, pp. 885 -898
3. 2 Esettanulmányok 1: IBM RS 64 IV (3) Cél: üzleti alkalmazások • • nagyméretű feldolgozandó feladatok és gyakorta előforduló feladat váltások • nagyméretű L 1 -re van szükség • gyakori cache hiány (cache miss) Szálváltás (erősen egyszerűsítve): Két szálat kezel; egy előtér szál és egy háttér szál. . Az előtér szál fut, amíg nem kerül sor egy hosszú ideig tartó műveletre (cache vagy IERAT hiány) Ekkor egy szálváltás történik, és a háttérben levő szál kapja meg a processzort. Miután az előző szál cache kérése kiszolgálódik, visszakapja a vezérlést. A Szálváltó puffer egyidejűleg 8 utasítást tárol a háttérszáltól, az I$ késleltetésének kiküszöbölésére A szálak prioritása megfelelő utasításokkal megváltoztatható
3. 2 Esettanulmányok 1: IBM RS 64 IV (4) Ábra 3. 2: Szálcsere cache hiány esetén IBM’s RS 64 IV processzoron Forrás: Borkenhagen J. M. et al. „A multithreaded Power. PC processor for commercial servers”, IBM J. Res. Develop. Vol. 44. No. 6. Nov. 2000, pp. 885 -898
3. 2 Esettanulmányok 2: SUN MAJC 5200 (1) Cél: Dedikált felhasználás, komoly grafikát, nagysebességű hálózatot kiszolgáló teljesítmény Mikroarchitektúra: • • • legfeljebb 4 processzor egy lapkán, minden processzor 4 FU-val (funkcionális egység) rendelkezik. 3 ugyanolyan, 1 fejlesztett mindegyik FU-nak saját logikája és regiszterkészlete van (pl. . 32 vagy 64 regs. ), a 4 FU osztozkodik egy globális regiszterkészleten, pl. 64 regs. , minden regiszter egyesített (nincs FX/FP szétbontás), minden FU bármilyen adattípust képes feldolgozni. Minden processzor 4 -szélességű VLIW és 4 -utas többszálúságra képes.
3. 2 Esettanulmányok 2: SUN MAJC 5200 (2) Ábra 3. 3: SUN MAJC 5200 áttekintő nézete Forrás: “MAJC Architecture Tutorial, ” Whitepaper, Sun Microsystems, Inc
3. 2 Esettanulmányok 2: SUN MAJC 5200 (3) Ábra 3. 4: FU-khoz hozzárendelt saját használatú, egyesített regiszter fájlok elve Forrás: “MAJC Architecture Tutorial, ” Whitepaper, Sun Microsystems, Inc
3. 2 Esettanulmányok 2: SUN MAJC 5200 (4) Szálkezelés Minden processzor a 4 funkcionális egységével 4 -utas többszálú módban üzemelhet. (a Sun ezt Vertical Multithreading-nek nevezi) 4 -utas többszálúság megvalósítása: minden szálat a 4 FU valamelyike hajtja végre („Vertical multithreading”) Szálcsere: Sikertelen cache igény esetén a processzor lementi a szál állapotát, és elkezdi feldolgozni a következő szálat Példa: Programvégrehajtás összehasonlítása 4 -utas többszálú módú processzoron egyszálas és többszálas módok között A vizsgálandó program: • • 100 utasítást tartalmaz, átlagosan 2. 5 utasítás/ciklus, 20 utasításonként jön egy cache miss (sikertelen kérés a cache tárban). A cache miss kiszolgálási ideje: 75 ciklus.
3. 2 Esettanulmányok 2: SUN MAJC 5200 (5) Ábra 3. 4: Egymás utáni cache hiányok hatása egyszálas processzoron Forrás: “MAJC Architecture Tutorial, ” Whitepaper, Sun Microsystems, Inc
3. 2 Esettanulmányok 2: SUN MAJC 5200 (6) Ábra 3. 5: Egymás utáni cache hiányok kezelése SUN MAJC 5200 processzorok Forrás: “MAJC Architecture Tutorial, ” Whitepaper, Sun Microsystems, Inc
3. 2 Esettanulmányok 3: Intel Montecito (1) Cél: Csúcsszerverek Fő különbségek az Itanium 2 és a Montecito között: • Osztott használatú L 2 cachek, • nagyméretű egyesített L 3 cache, • duplikált architekturális állapot kezelés. A kétszálúság további támogatása: • az elágazásbecslés képes a szálakat megkülönböztetni, • szálanként külön RAT, • szálanként külön ALAT (Advance Load Address Table) Szükséges plusz magterület: ~ 2 %.
3. 2 Esettanulmányok 3: Intel Montecito (2) Ábra 3. 6: Intel Itanium 2 mikroarchitektúrája Forrás: Mc. Nairy, C. , „Itanium 2”, IEEE Micro, March/April 2003, Vol. 23, No. 2, pp. 44 -55
3. 2 Esettanulmányok 3: Intel Montecito (3) Ábra 3. 7: Intel Montecito mikroarchitektúrája (ALAT: Advanced Load Address Table) Forrás: Mc. Nairy, C. , „Montecito”, IEEE Micro, March/April 2005, Vol. 25, No. 2, pp. 10 -20
3. 2 Esettanulmányok 3: Intel Montecito (4) Szálváltások: 5 eseménytípus okozhat szálváltást, mint például L 3 cache miss, programozott szálváltó utasítás. A szálváltás teljes „büntetése” : 15 ciklus Példa a szálváltásra: Ha a vezérlő logika észreveszi, hogy a szál nem halad, szálváltást fog kezdeményezni.
3. 2 Esettanulmányok 3: Intel Montecito (5) Ábra 3. 8: Összehasonlítás: kétszálas Intel Montecito vs egyszálas processzor Forrás: Mc. Nairy, C. , „Montecito”, IEEE Micro, March/April 2005, Vol. 25, No. 2, pp. 10 -20
4. 2. 2. Cell BE Ø Overview of the Cell BE Ø Processor components Ø Multithreading the PPE Ø Programming models Ø Implementation of the Cell BE
Overview of the Cell BE (1) Cell BE Objective: Speeding up game/multimedia apps. Used: In the Play. Station 3 (PS 3) and in the QS 20 Blade Server Goal: 100 times the PS 2 performance. History CELL BE: Collaborative effort from Sony, IBM and Toshiba Summer 2000: End 2000: March 2001: Spring 2004: Summer 2004: Febr. 2005: Oct. 2005: Nov. 2005: Febr. 2006: High level architectural discussions Architectural concept Design Center opened in Austin TX. Single Cell BE operational 2 -way SMP operational First technical disclosures Mercury announces Cell Blade Open Source SDK & Simulator published IBM announced Cell Blade QS 20 Cell BE at NIK May 2007: QS 20 arrives at NIK within IBM’s loan program
Overview of the Cell BE (2) Main functional units of the Cell BE • 9 cores; Ø the PPE (Power Processing Element), a dual threaded, dual issue 64 -bit Power PC compliant processor and Ø 8 SPEs (Synergistic Processing Elements), single threaded, dual issue 128 -bit SIMD processors. • the EIB (Element Interconnection Bus, an on-chip interconnetion network, • the MIC (Memory Interface Controller), a Memory Controller supporting dual Rambus XDR channels and • the BIC (Bus Interface Controller) that interfaces the Rambus Flex IO bus.
Overview of the Cell BE (3) SPE: Synergistic Procesing Element SPU: Synergistic Processor Unit SXU: Synergistic Execution Unit LS: Local Store of 256 KB SMF: Synergistic Mem. Flow Unit EIB: Element Interface Bus PPE: Power Processing Element PPU: Power Processing Unit PXU: POWER Execution Unit MIC: Memory Interface Contr. BIC: Bus Interface Contr. XDR: Rambus DRAM Figure 4. 2. 8: Block diagram of the Cell BE [4. 2. 2. 1]
Overview of the Cell BE (4) Unique features of the Cell BE a) Heterogeneous MCP rather than being a symmetrical MCP (as usual implementations) The PPE • is optimized to run a 32/64 -bit OS • controls usually the SPEs, • complies with the 64 -bit Power. PC ISA. The SPEs • are optimized to run compute intensive SIMD apps. , • operate usually under the control of the PPE, • run their individual apps. (threads), • have full access to a coherent shared memory including the memory mapped I/O-space, • can be programmed in C/C++. Contrasting the PPE and the SPEs • the PPE is more adept at control-intensive tasks and quicker in task switching, • the SPEs are more adept at compute intensive tasks and slower at task switcing.
Overview of the Cell BE (5) b) The SPEs have an unusual storage architecture, as • SPEs Ø operate in connection with a local store (LS) of 256 KB, i. e. o they fetch instructions from their private LS and o their Load/Store-instructions access their LS rather than the main store, • The LS Ø has no associated cache. • SPEs Ø access main memory (effective address space) by DMA commands, i. e. DMA commands move data and instructions between main store and the private LS, while Ø DMA commands can be batched (up to 16 commands).
Overview of the Cell BE (6) Although the PPE and the SPEs have coherent access to main memory, the Cell BE is not a traditional shared-memory multiprocessor as SPEs operate in connnection with the LS rather than with the main memory.
Processor components of the Cell BE (1) PPE (Power Processing Element) [4. 2. 2. 2] • Fully compliant 64 -bit Power processor (Architecture Specification 2. 02) • fc = 3. 2 GHz (11 FO 4 design, 23 pipeline stages). • Dual-issue, in-order superscalar, two-way (fine grained) multithreaded core. • Conventional cache architecture of 32 KB I$, 32 KB D$, 512 KB unified L 2.
Processor components of the Cell BE (2) Figure 4. 2. 9: Main functional units of the PPE [4. 2. 2. 3]
Processor components of the Cell BE (3) Main components of the PPE • IU (Instruction unit) Ø predecodes instructions while loading them from the L 2 cache to the L 1 cache, Ø fetches 4 instructions per cycle alternating between the two threads from the L 1 instr. cache into two instruction buffers (each one for each thread), Ø dispatches instructions from the two instruction buffers to the shared decode, dependency checking and issue pipeline according to the thread scheduling rules. • Microcode Engine Ø Instructions that are either difficult to implement in hardware or are rarely used can be split into a few simple Power. PC instructions and are stored in a ROM (such as Load string or several Condition Register (CR) instructions. Ø Most microcoded instructions are split into two or three microcoded instruction. Ø The Microcode Engine inserts microcoded instructions from one thread into the instruction flow with a delay of 11 clock cycles. Ø The Microcode Engine stall dispatching from the instruction buffers until the last microcode of the microcoded instruction is dispatched. Ø The next dispatch cycle belongs to the thread that did not invoke the Microcode Engine. • Shared decode, dependency checking and issue pipeline Ø Receives dispatched instructions (up to two in each cycle from the same thread), Ø it decodes them, checks for dependencies, and issues instructions for execution according to the issue rules.
Processor components of the Cell BE (6) Instruction dispatch • Moves up to two instructions either Ø Ø from one of the Instruction Buffers or the Microcode Engine (complex instructions) to the shared decode, dependency check and issue pipeline. • Instruction dispatch is governed by the dispatch rules (thread scheduling rules). • The dispatch rules take into account thread priority and stall conditions (see slide 115). • Each pipeline stage beyond the dispath point contains instructions from one thread only. Instruction decode and dependency checking Decoding of up to two instructions from the same tread in each cycle and checking for dependencies
Processor components of the Cell BE (7) Pipeline stages Units (IFAR: Instr. Fetch Addr. ) IC: Instruction cache 4 IB: Instruction buffer ibuf: Instr. Buffer 2 ID: Instruction decode IS: Instruction issue IU: Instruction Unit VSU: Vector Scalar Unit VXU: Vector Execution Unit FPU: FP Execution Unit BRU: Branch Unit XU: FX Execution Unit FXU: FX Execution Unit LSU: L/S Execution Unit Figure 4. 2. 10: Instruction flow in the PPE [4. 2. 2. 4]
Processor components of the Cell BE (11) EIB data ring for internal communication [4. 2. 2. 2] • Four 16 byte data rings, supporting multiple transfers • 96 B/cycle peak bandwidth • Over 100 outstanding requests • 300+ GByte/sec @ 3. 2 GHz
Processor components of the Cell BE (12) SPE [4. 2. 2. 2] • SPEs optimized for data-rich operation • are allocated by the PPE • SPEs are not intended to run an OS Main Components a) SPU (Synergistic Processing Unit) b) MFC (Memory Flow Controller) c) LS (Local Store) d) AUC (Atomic Unit and Cache) SPE
Processor components of the Cell BE (13) a) SPU Overview • Dual-issue superscalar RISC core supporting basically a 128 -bit SIMD ISA. • The SIMD ISA provides FX, FP and logical operations on 2 x 64 -bit, 4 x 32 -bit, 8 x 16 -bit, 16 x 8 -bit and 128 x 1 -bit data. • In connnection with the MFC the SPU support also a set of commands for - performing DMA transfers, - interprocessor messaging and - synchronization. • The SPU executes instructions from the LS (256 KB), • Instructions reference data from the 128 x 128 -bit unified register file, • The Register file fetches/delivers data from/to the LS by L/S instructions, • The SPU moves instructions and data between the main memory and the local store by requesting DMA transfers from its MFC. (Up to 16 outstanding DMA requests allowed).
Processor components of the Cell BE (14) SPU Even pipe LS Odd pipe MFC Figure 4. 2. 13: Block diagram of the SPU [4. 2. 2. 3]
Processor components of the Cell BE (15) Main components of the SPU • Instruction issue unit – instruction line buffer Ø Fetches 32 instructions per LS request from the LS into the Instruction line buffer. Ø Instruction fetching is supported by hardware prefetching. Pefetching requires 15 cycles to fill the instruction line buffer. Ø Fetched instructions are decoded and issued (up to two instructions per cycle) according to the issue rules. • Register file Ø Unified Register file of 128 registers each 128 -bit wide. • Result forwarding and staging Ø Instructions are staged in an operand staging network for up to 6 additinal cycles to achieve that all execution units write their results in the Register file in the same pipeline stage. (See Figure ccc.
Processor components of the Cell BE (16) • Execution units are organised into two pipelines. Ø The even pipeline includes o the Fixed-point unit and o the Floating-point unit. Ø The o o odd pipeline includes the Channel unit, Branch unit, Load/Store unit and the Permute unit.
Processor components of the Cell BE (26) b) Memory Flow Controller (MFC) [4. 2. 2. 2] • acts as a specialized co-processor for its associated SPU by executing autonomously its own command set and • serves as the SPU’s interface, via the EIB to main storage and other processor elements, such as other SPEs or system devices.
Processor components of the Cell BE (33) c) Local Store [4. 2. 2. 2] • Single-port SRAM cell. • Executes DMA reads/writes and instruction prefetches via 128 -Byte wide read/write ports • Executes instruction fetches and load/stores via 128 -bit read/write ports. • Asynchronous, coherent DMA commands are used to move instructions and data between the local store and system memory. • DMA transfers between the LS and the main storage are executed by the SMF’s DMA unit • A 128 -Byte long DMA read or write requires 16 processor cycles to forward data on the EIB. SPE
Processor components of the Cell BE (35) Broadband Interface Controller (BIC) [4. 2. 2. 2] • Provides a wide connection to external devices • Two configurable interfaces (50+GB/s @ 5 Gbps) Ø Configurable number of bytes Ø Coherent (BIF) and/or I/O (IOIFx) protocols • Supports two virtual channels per interface • Supports multiple system configurations Memory Interface Controller (MIC) • Dual XDRTM controller (25. 6 GB/s @ 3. 2 Gbps) • ECC support • Suspend to DRAM support
Multithreading the PPE (5) 2. Thread priorities • determines dispatch priority • four priority levels thread disabled low priority medium priority high priorith • priority levels are specified by a 2 -bit field (TP field) of the TSRL register (Thread Status Regiter Local) • Software, in particular OS software, sets thread priorities (according to the throughput requirements of the programs running in the threads. ) E. g. a foreground/background thread priority scheme can be set, to favor one thread over the other when allocating instruction dispatch slots. • A thread must be in the hypervisor or supervisor state to set its priority to high.
Multithreading the PPE (6) Usual thread priority combinations The combination high priority thread/low priority thread is not expected to be used, as in this case the PPE would never dispatch instructions from the low priority thread unless the high priority thread was unable to dispatch. Figure 4. 2. 23: Usual thread priority combinations [4. 2. 2. 4]
Multithreading the PPE (7) Example (1): Scheduling in case of the medium priority/medium priority setting Basic scheduling rules • The PPE attempts to utilize all available dispatch slots. • Thread scheduling is fair (round robin scheduling). • If a thread under consideration is unable to dispatch an instruction in a given slot, the other thread will be allowed to dispatch even if it was selected for dispatch on the previous attempt. Note: The same scheduling applies when both threads are set to high priority. Figure 4. 2. 24: Thread scheduling when both priorities are set to medium [4. 2. 2. 4]
Multithreading the PPE (8) Example (2): Scheduling in case of the low priority/medium priority setting Basic scheduling rules • The PPE attempts to utilize most available dispatch slots for the medium priority thread (this setting is appropriate to run a low-priority program in the background) • Assuming a duty cycle of 5 (TSRL[DISP_COUNT] = 5) instructions from thread 1 are dispatched on four out of five cycles while instructions from thread 0 are dispatched only on one out of five cycles. • If a thread under consideration is unable to dispatch an instruction in a given slot, the other thread will be allowed to dispatch even if it was selected for dispatch on the previous attempt. Figure 4. 2. 25: Thread scheduling when one thread runs at medium priority while the other at low priority [4. 2. 2. 4]
Multithreading the PPE (9) Example (3): Scheduling in case of the low priority/low priority setting Basic scheduling rules • The PPE attempts to dispatch only once every duty cycle (TSCR[DISP_COUNT]) cycles. (With high values of DISP-COUNT the PPE will mostly idle, which will reduce power comsuption and heat production while keepint both threads alive. ) • • Thread scheduling is fair (round robin scheduling) • If a thread under consideration is unable to dispatch an instruction in a given slot, the other thread will be allowed to dispatch even if it was selected for dispatch on the previous attempt. Assuming a duty cycle of 5, both threads are scheduled only once every 5 cycles. Figure 4. 2. 26: Thread scheduling when both priorities are set to low [4. 2. 2. 4]
Multithreading the PPE (10) 3. Single threaded/dual threaded mode of execution • In single threaded mode all resources are allocated to a single thread, this reduces the turnaround time of the thread. • Software can change the operating mode of the PPE between single threaded and dual threaded mode only in the hypervisor state.
Multithreading the PPE (11) Software controlled thread behaviour software can use various schemes to controll thread behaviour, including • enabling and suspending a thread, • • by setting thread priorities to control instruction dispatch policy, executing a special nop instruction to cause temporary dispatch blocking, • switching the state of the PPE between single threaded and multithreaded mode.
Multithreading the PPE (12) Core enhancements for multithreading • Duplicated architectural states for 32 GPRs 32 FPRs 32 Vector Registers (VRs) Condition Register (CR) Count Register (CTR) Link Register (LR) FX Exception Register (XER) FP Status and Control Register (FPSCR) Vector Status and Control Register (VSCR) Decrementer (DEC)
Multithreading the PPE (13) • Duplicated microarchitectural states for Branch History Table (BHT) with global branch history (to allow independent and simultaneous branch prediction for both threads) Internal registers associated with exceptions and interrupt handling, such as Machine State Register (MR) Machine Status Save/Restore Registers (SRR 0, SRR 1) Hipervisor Machine Status Save/Restore Registers (HSRR 0, HSRR 1) FP Status and Control Register (FPSCR) etc. (to allow concurrent exception and interrupt handling)
Multithreading the PPE (14) • Duplicated queues and arrays Segment lookaside buffer (SLB) Instruction buffer queue (Ibuf) (to allow each thread to dispatch regardles of any dispatch stall in the other thread) Link stack queue • Shared resources Hardware execution units The instruction fetch control (because the I$ has only one read port and so fetching must alternate between threads every cycle). Virtual memory mapping (as both threads always execute in the same logical partitioning context) Most large arrays and queues, such as caches that consume significant amount of chip area
Implementation of the Cell BE (1) Implemetation alternatives Figure 4. 2. 27: Cell system configuration options [4. 2. 2. 3]
Implementation of the Cell BE (2) Figure: Cell BE Blade Roadmap Source: Brochard L. , A Cell History, ” Cell Workshop, April, 2006 http: //www. irisa. fr/orap/Constructeurs/Cell%20 Short%20 Intro%20 Luigi. pdf
Implementation of the Cell BE (3) Motherboard of the Cell Blade (QS 20) Figure 4. 2. 28: Motherboard of the Cell Blade (QS 20) [4. 2. 2. 5]
4. Finoman szemcsézett többszálúság
4. Finoman szemcsézett többszálúság 4. 1 Áttekintés (1) Szálütemezés többszálú magok esetében Durván szemcs. MT Finoman szemcs. MT Szimultán MT (SMT)
4. Finoman szemcsézett többszálúság 4. 1 Áttekintés (2) Finoman szemcs. MT Round robin kiválasztó politika Skalár alapú Szuperskalár alapú VLIW alapú Prioritás alapú kiválasztó politika Skalár alapú Szuperskalár alapú SUN Ultra. SPARC T 1 (2005) (Niagara) up to 8 cores/4 T VLIW alapú
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (1) Cél: Kereskedelmi szerver alkalmazások, mint például • webkiszolgálás, • tranzakció feldolgozás, • ERP (Enterprise Resource Planning – erőforrás tervezés), • DSS (Decision Support Systems – döntéstámogató rendszer) Kereskedelmi szerver alkalmazások jellemzői: • nagy méretű adathalmazok, • szétszórt memória hivatkozások. • magas cache miss arány, • alacsony pontosságú adatfüggő elágazásbecslés. A memória késleltetési ideje erősen korlátozza a teljesítményt Többszálúsággal törekednek a memória késleltetés elrejtésére
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (2) Struktúra: • 8 skalár mag, 4 -utas többszálúsággal. • Mind a 32 szál osztozik a 4 modulos 3 MB L 2 cachen.
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (3) Ábra 4. 1: SUN Ultra. SPARC T 1 blokk diagrammja Forrás: Kongetira P. , et al. „Niagara”, IEEE Micro, March/April 2005, Vol. 25, No. 2, pp. 21 -29
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (4) Struktúra: • 8 skalár mag, 4 -utas többszálúsággal • Mind a 32 szál osztozik a 4 modulos 3 MB L 2 cachen. • 4 memória csatorna, lapkára integrált DDR 2 memória vezérlőkkel Solaris alatt fut
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (5) Ábra 4. 2: SUN Ultra. SPARC T 1 chip Forrás: www. princeton. edu/~jdonald/research/hyperthreading/romanescu_niagara. pdf
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (6) Processzor Elemek (Sparc futószalagok): • Skalár FX-egységek, 6 -elemű futószalag • minden processzor elem egy közös FP-egységet használ
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (7) Ábra 4. 3: SUN Ultra. SPARC T 1 mag mikroarchitektúrája Forrás: Kongetira P. , et al. „Niagara”, IEEE Micro, March/April 2005, Vol. 25, No. 2, pp. 21 -29
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (8) Processzor Elemek (Sparc futószalagok): • Skalár FX-egységek, 6 -elemű futószalag • minden processzor elem egy közös FP-egységet használ Egy processzor elem minden szála az alábbi erőforrásokkal rendelkezik: • PC-logika • regiszter file, • utasítás puffer, • tároló puffer. Nincs szálváltási büntetés!
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (9) Ábra 4. 4: SUN Ultra. SPARC T 1 mag mikroarchitektúrája Forrás: Kongetira P. , et al. „Niagara”, IEEE Micro, March/April 2005, Vol. 25, No. 2, pp. 21 -29
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (10) Processzor Elemek (Sparc futószalagok): • Skalár FX-egységek, 6 -elemű futószalag • minden processzor elem egy közös FP-egységet használ Egy processzor elem minden szála az alábbi erőforrásokkal rendelkezik: • PC-logika • regiszter file, • utasítás puffer, • tároló puffer. Nincs szálváltási büntetés!
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (11) Szálcsere: A szálakat utasításonként cserélhetik Szálak kiválasztása: A szálkiválasztó futószalag fokozatban a szálkiválasztó multiplexer minden órajelkor kiválasztja a futásra kész szálak közül azt, amelyik futni fog, és ez a szál kerülni a futószalagra feldolgozásra.
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (12) Ábra 4. 5: SUN Ultra. SPARC T 1 mag mikroarchitektúrája Forrás: Kongetira P. , et al. „Niagara”, IEEE Micro, March/April 2005, Vol. 25, No. 2, pp. 21 -29
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (13) Szálcsere: A szálakat utasításonként cserélhetik Szálak kiválasztása: A szálkiválasztó futószalag fokozatban a szálkiválasztó multiplexer minden órajelkor kiválasztja a futásra kész szálak közül azt, amelyik futni fog, és ez a szál kerülni a futószalagra feldolgozásra. Szálkiválasztó politika: a legrégebben futott szál elve A szálak futásra képtelenné válhatnak, ha: • hosszú idejű művelet érkezik, pl: load, elágazás, szorzás, osztás, • megáll a futószalag pl. cache miss, csapda vagy erőforrás ütközés okán. 1. Példa: • mind a 4 szál elérhető
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (14) Ábra 4. 6: Szálcserélő algoritmus a SUN Ultra. SPARC T 1 processzoron, ha minden szál elérhető Forrás: Kongetira P. , et al. „Niagara”, IEEE Micro, March/April 2005, Vol. 25, No. 2, pp. 21 -29
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (15) 2. Példa: • Csak két elérhető szál van, • spekulatív utasítás végrehajtás a betöltés után. (A betölteni kívánt adat a 3. ciklusban válik elérhetővé, amennyiben benne van a cache-ben (cache hit). Ezért a betöltés parancs kiadása után a szál blokkolódik két cikluson keresztül).
4. 2 Esettanulmány: SUN Ultra. SPARC T 1 (16) Ábra 4. 7: Szálcserélő algoritmus a SUN Ultra. SPARC T 1 processzoron, ha minden szál elérhető (A t 0 szál összeadó művelete átkerül a futószalagra, cache találatot feltételezve) Forrás: Kongetira P. , et al. „Niagara”, IEEE Micro, March/April 2005, Vol. 25, No. 2, pp. 21 -29
5. Szimultán többszálúság
5. Szimultán többszálúság 5. 1 Áttekintés (1) Szálütemezés többszálú magok esetében Durván szemcs. MT Finoman szemcs. MT Szimultán MT (SMT)
5. Szimultán többszálúság 5. 1 Áttekintés (2) Szimultán MT Skalár alapú Szuperskalár alapú Pentium 4 (2002) 2 T DEC 21464 (2003) Dual-core/2 T IBM POWER 5 (2005) Dual-core/2 T Pentium EE 840 (2005) Dual-core/2 T Pentium EE 955/965 (2005) Dual-core/2 T VLIW alapú
5. Szimultán többszálúság Az Intel az SMT-t Hyperthreading (HT) névvel illeti A Northwood alapú DP és MP szerver magokban jelentek meg (2/2002 és 3/2002) (a magok neve Prestonia és Foster MP), ezt követte az asztali Northwood mag 11/2002 -ben. MT megvlósításához szükséges többletráfordítás: • Duplikált architektúra állapot, mint például • utasítás pointer, • általános célú regiszterek, • vezérlő regiszterek, • APIC (Advanced Programable Interrupt Controller) regiszterek, • néhány további regiszter.
5. 2 Esettanulmányok 1: Intel Pentium 4 / HT (1) Ábra 5. 1. Intel Pentium 4 esetében látható a processzor erőforrások duplázottsága, így biztosítják a hyperthreading technológiát. A Hyperthreadinghez szükséges továbbá egyéb mutatók és vezérlő logika duplázása, ezek az ábrán nincsenek feltüntetve. Forrás: Koufaty D. and Marr D. T. „Hyperthreading Technology in the Netburst Microarchitecture, IEEE. Micro, Vol. 23, No. 2, March-April 2003, pp. 56 -65.
5. 2 Esettanulmányok 1: Intel Pentium 4 / HT (2) Az Intel az SMT-t Hyperthreading (HT) névvel illeti A Northwood alapú DP és MP szerver magokban jelentek meg (2/2002 és 3/2002) (a magok neve Prestonia és Foster MP), ezt követte az asztali Northwood mag 11/2002 -ben. MT megvlósításához szükséges többletráfordítás: • Duplikált architektúra állapot, mint például • utasítás pointer, • általános célú regiszterek, • vezérlő regiszterek, • APIC (Advanced Programable Interrupt Controller) regiszterek, • néhány további regiszter. • További bővítések az MT támogatására (szál mikroállapot): • TC-bejegyzések (Trace cache) megjelölése, • BHB (Branch History Buffer) duplikált, • Global History Table megjelölt, • RAS (Return Address Stack) duplikált, • Átnevező táblák duplikáltak, • ROB bejegyzések jelöltek (tagged).
5. 2 Esettanulmányok 1: Intel Pentium 4/HT (3) Ábra 5. 2: SMT futószalag Intel Pentium 4/HT processzoron Forrás: Marr T. T. et al. „Hyper-Threading Technology Architecture and Microarchitecture”, Intel Technology Journal, Vol. 06, Issue 01, Febr 14, 2002, pp. 4 -16
5. 2 Esettanulmányok 1: Intel Pentium 4 / HT (4) Az Intel az SMT-t Hyperthreading (HT) névvel illeti A Northwood alapú DP és MP szerver magokban jelentek meg (2/2002 és 3/2002) (a magok neve Prestonia és Foster MP), ezt követte az asztali Northwood mag 11/2002 -ben. MT megvlósításához szükséges többletráfordítás: • Duplikált architektúra állapot, mint például • utasítás pointer, • általános célú regiszterek, • vezérlő regiszterek, • APIC (Advanced Programable Interrupt Controller) regiszterek, • néhány további regiszter. • További fejlesztések az MT támogatására (szál mikroállapot): • TC-bejegyzések (Trace cache) megjelölése, • BHB (Branch History Buffer) duplikált, • Global History Table megjelölt, • RAS (Return Address Stack) duplikált, • Átnevező táblák duplikáltak, • ROB bejegyzések jelöltek (tagged). Szükséges lapkaméret növelés MT esetében: kevesebb, mint 5 %. Egyszálas/kétszálas mód: Egyszálas teljesítmény csökkenésének megakadályozása érdekében a megosztott erőforrások kombinálhatók.
5. 2 Esettanulmányok 2: Alpha 21464 (V 8) (1) 8 -utas superskalár, 2003 -ra volt ütemezve, de 2001 júniusában törölték az Itánium család miatt 2001 -ben az Alpha teljes intellektuális tulajdonát eladták az Intelnek Mag bővítmény 4 -utas többszálúsághoz: • Replikált szálállapotok (4 x) biztosítása: PC, architekturális regiszterek (az összevont GPR és FPR architekturális és átnevezési regiszter fájlok méretének növelésével): Alpha 21264 GPRs FPRs 80 80 Alpha 21464 512 Forrás: : Preston R. P. and all. , Design of an 8 -wide Superscalar RISC Microprocessor with Simultaneous Mltithreading”, Proc. ISSCC, 2002, pp. 334 -243
5. 2 Esettanulmányok 2: Alpha 21464 (V 8) (2) Ábra 5. 3: SMT futószalag Alpha 21464 (V 8) processzoron Forrás: Mukkherjee S. , „The Alpha 21364 and 21464 Microprocessors, ” http: //www. compaq. com
5. 2 Esettanulmányok 2: Alpha 21464 (V 8) (3) 8 -utas superskalár, 2003 -ra volt ütemezve, de 2001 júniusában törölték az Itánium család miatt 2001 -ben az Alpha teljes intellektuális tulajdonát eladták az Intelnek Mag bővítmény 4 -utas többszálúsághoz: • Replikált szálállapotok (4 x) biztosítása: PC, architekturális regiszterek (az összevont GPR és FPR architekturális és átnevezési regiszter fájlok méretének növelésével): Alpha 21264 GPRs FPRs 80 80 Alpha 21464 512 • Replikált szálállapotok (4 x) biztosítása: Register Maps, Forrás: : Preston R. P. and all. , Design of an 8 -wide Superscalar RISC Microprocessor with Simultaneous Mltithreading”, Proc. ISSCC, 2002, pp. 334 -243
5. 2 Esettanulmányok 2: Alpha 21464 (V 8) (4) Ábra 5. 4: SMT futószalag Alpha 21464 (V 8) processzoron Forrás: Mukkherjee S. , „The Alpha 21364 and 21464 Microprocessors, ” http: //www. compaq. com
5. 2 Esettanulmányok 2: Alpha 21464 (V 8) (5) 8 -utas superskalár, 2003 -ra volt ütemezve, de 2001 júniusában törölték az Itánium család miatt 2001 -ben az Alpha teljes intellektuális tulajdonát eladták az Intelnek Mag bővítmény 4 -utas többszálúsághoz: • Replikált szálállapotok (4 x) biztosítása: PC, architekturális regiszterek (az összevont GPR és FPR architekturális és átnevezési regiszter fájlok méretének növelésével): Alpha 21264 GPRs FPRs 80 80 Alpha 21464 512 • Replikált szálállapotok (4 x) biztosítása: Register Maps, Szükséges lapkaméret növelés ~ 6 %. Forrás: : Preston R. P. and all. , Design of an 8 -wide Superscalar RISC Microprocessor with Simultaneous Mltithreading”, Proc. ISSCC, 2002, pp. 334 -243
5. 2 Esettanulmányok 3: IBM POWER 5 (1) POWER 5 továbbfejlesztése POWER 4 -hez képest: • lapkára szerelt memória vezérlő,
5. 2 Esettanulmányok 3: IBM POWER 5 (2) Fabric Controller Ábra 5. 5: POWER 4 és POWER 5 rendszer struktúrák Forrás: R. Kalla, B. Sinharoy, J. M. Tendler: IBM Power 5 chip: A Dual-core multithreaded Processor, IEEE. Micro, Vol. 24, No. 2, March-April 2004, pp. 40 -47.
5. 2 Esettanulmányok 3: IBM POWER 5 (3) POWER 5 továbbfejlesztése POWER 4 -hez képest: • lapkára helyezett memória vezérlő, • elkülönített L 3/memória csatolás,
5. 2 Esettanulmányok 3: IBM POWER 5 (4) Fabric Controller Ábra 5. 6: POWER 4 és POWER 5 rendszer struktúrák Forrás: R. Kalla, B. Sinharoy, J. M. Tendler: IBM Power 5 chip: A Dual-core multithreaded Processor, IEEE. Micro, Vol. 24, No. 2, March-April 2004, pp. 40 -47.
5. 2 Esettanulmányok 3: IBM POWER 5 (5) POWER 5 továbbfejlesztése POWER 4 -hez képest: • lapkára szerelt memória vezérlő, • elkülönített L 3/memória csatolás, • kétszálú.
5. 2 Esettanulmányok 3: IBM POWER 5 (6) Ábra 5. 7: IBM POWER 5 mikroarchitektúra Forrás: Kalla R. , „IBM's POWER 5 Micro Processor Design and Methodology”, IBM Corporation, 2003
5. 2 Esettanulmányok 3: IBM POWER 5 (7) Ábra 5. 8: IBM POWER 5 Chip Forrás: Kalla R. , „IBM's POWER 5 Micro Processor Design and Methodology”, IBM Corporation, 2003
5. 2 Esettanulmányok 3: IBM POWER 5 (8) Magbővítmények többszálúsághoz: • Duplikált szálállapotok biztosítása a következőkhöz: PC, architekturális regiszterek (az összevont GPR és FPR architekturális és átnevezési regiszter fájlok méretének növelésével): POWER 4 GPR-ek FPR-ek 80 72 POWER 5 120
5. 2 Esettanulmányok 3: IBM POWER 5 (9) Ábra 5. 9: SMT futószalag IBM POWER 5 processzoron Forrás: Kalla R. , „IBM's POWER 5 Micro Processor Design and Methodology”, IBM Corporation, 2003
5. 2 Esettanulmányok 3: IBM POWER 5 (10) Magbővítmények többszálúsághoz: • Duplikált szálállapotok biztosítása a következőkhöz: PC, architekturális regiszterek (az összevont GPR és FPR architekturális és átnevezési regiszter fájlok méretének növelésével): POWER 4 GPR-ek FPR-ek 80 72 • Duplikált szálmikroállapot biztosítása a következőkhöz: Return Address Stack, Group Completion (ROB) POWER 5 120
5. 2 Esettanulmányok 3: IBM POWER 5 (11) Ábra 5. 10: SMT futószalag IBM POWER 5 processzoron Forrás: Kalla R. , „IBM's POWER 5 Micro Processor Design and Methodology”, IBM Corporation, 2003
5. 2 Esettanulmányok 3: IBM POWER 5 (12) Magbővítmények többszálúsághoz: • Duplikált szálállapotok biztosítása a következőkhöz: PC, architekturális regiszterek (az összevont GPR és FPR architekturális és átnevezési regiszter fájlok méretének növelésével): POWER 4 GPR-ek FPR-ek 80 72 POWER 5 120 • Duplikált szálmikroállapot biztosítása a következőkhöz: Return Address Stack, Group Completion (ROB) • Érzékeny, szűknek bizonyuló erőforrások bővítése (duplikálása), például Instruction Buffer, Store Queue
5. 2 Esettanulmányok 3: IBM POWER 5 (13) Ábra 5. 11: SMT futószalag IBM POWER 5 processzoron Forrás: Kalla R. , „IBM's POWER 5 Micro Processor Design and Methodology”, IBM Corporation, 2003
5. 2 Esettanulmányok 3: IBM POWER 5 (14) Magbővítmények többszálúsághoz: • Duplikált szálállapotok biztosítása a következőkhöz: PC, architekturális regiszterek (az összevont GPR és FPR architekturális és átnevezési regiszter fájlok méretének növelésével): POWER 4 GPR-ek FPR-ek 80 72 POWER 5 120 • Duplikált szálmikroállapot biztosítása a következőkhöz: Return Address Stack, Group Completion (ROB) • Érzékeny, szűknek bizonyuló erőforrások bővítése (duplikálása), például Instruction Buffer, Store Queue Szükséges lapkaméret növelés SMT-hez: ~ 10 %.
5. 2 Esettanulmányok 3: IBM POWER 5 (15) Szálak kiegyensúlyozatlan végrehajtása: (an enhancement of the single mode/dual mode thred execution model) • A szálaknak 8 prioritási szintjük van (0. . . 7), amit a HW/SW irányít, • a szálak dekódolási rátáját a hozzájuk rendelt prioritás határozza meg Ábra 5. 12: Szálak kiegyzensúlyozatlan végrehajtása IBM POWER 5 processzoron Forrás: Kalla R. , „IBM's POWER 5 Micro Processor Design and Methodology”, IBM Corporation, 2003
5. 2 Esettanulmányok 3: IBM POWER 5 (16) Fejlesztési ráfordítás: • Elméleti fázis: • Magas szintű tervezési fázis: • Megvalósítási fázis: ~ 10 ember/ 4 hónap ~ 50 ember/ 6 hónap ~ 200 ember/ 12 -18 hónap Forrás: Kalla R. , „IBM's POWER 5 Micro Processor Design and Methodology”, IBM Corporation, 2003
- Slides: 128