1 / 94

Többszálú Processzorok

Többszálú Processzorok. Sima Dezső 2008 őszi félév. (Ver. 2.0).  Sima Dezső, 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.

zonta
Download Presentation

Többszálú Processzorok

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Többszálú Processzorok Sima Dezső 2008 őszi félév (Ver. 2.0)  SimaDezső, 2007

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

  3. 1. Bevezetés

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

  5. 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ásaegyszálú processzoron időosztással Program/OS többszálú futtatásatöbbszálú processzoron átfedébenvagy párhuzamosan Több szál kezelése egyidejűlegaz operációs rendszer által Több szál kezelése egyidejűlega processzor által Többszálú OS Többszálú processzor A szálak között gyors kontextusváltás szükséges.

  6. 1. Bevezetés (3) MTcore Core Core L2/L3 L2/L3 L3/Memory L3/Memory Többszálú processzorok megvalósítási lehetőségei Többmagos processzorok Többszálú magok (SMP: Symmetric MultiprocessingCMP: Chip Multiprocessing) Chip

  7. 1. Bevezetés (4) Szoftver többszálúság követelményei: Több szálállapot nyilvántartása/kezelése az OS által (PC, FX/FP architekturális regiszterek, állapot regiszterek) Szükséges többletráfordítás többszálú magok esetén: • Több szálállapot 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 fenntartása, például: regiszterátnevezések nyilvántartása, RAS (Return Address Stack), ROB stb. • Érzékeny, szűknek bizonyuló erőforrások bővítése, például: utasítás puffer, store queue stb. méretének a növelése

  8. 1. Bevezetés (5)

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

  10. Soros-, többfeladatos-, és többszálú programozás elve P1 P1 P1 fork() CreateThread() T1 exec() Create Process() P2 T2 fork() T3 P2 P2 T4 Process / Thread Management Example T5 P3 exec() T6 join() P3

  11. Multiprocessing és multithreading megvalósítása OS Support Performance Level Software Development

  12. 2. Áttekintés

  13. 2. Áttekintés (1) 2.1 Szálak ütemezése 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, éstö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

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

  15. 2. Áttekintés (2) Szálütemezés többszálú magok esetében Durván szemcs. MT

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

  17. 2. Áttekintés (3) Szálütemezés többszálú magok esetében Durván szemcs. MT Finoman szemcs. MT

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

  19. 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)

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

  21. 2. MCP-k áttekintése (1) 8CST QCMT QCST 1/06 5/05 DCMT Pentium EE 840 Pentium EE 955/965 (Smithfield) (Presler) 90 nm/2*103 mm2 65 nm/2*81 mm2 230 mtrs./130 W 2*188 mtrs./130 W 2-way MT/core 2-way MT/core DCST 1Q 2Q 3Q 4Q 1Q 2Q 3Q 4Q 2005 2006 Ábra 2.6: Intel többmagosprocesszor családjai

  22. 2. MCP-k áttekintése (2) 8CST QCMT QCST 6/06 10/05 DCMT Xeon 5000 Xeon DP 2.8 (Dempsey) (Paxville DP) 65 nm/2*81 mm2 90 nm/2*135 mm2 2*188 mtrs./95/130 W 2*169 mtrs./135 W 2-way MT/core 2-way MT/core DCST 1Q 2Q 1Q 2Q 3Q 4Q 3Q 4Q 2006 2005 Ábra 2.7.: Intel kétmagos Xeon DP-családja

  23. 2. MCP-k áttekintése (3) 8CST QCMT QCST 11/05 8/06 DCMT Xeon 7000 Xeon 7100 (Paxville MP) (Tulsa) 90 nm/2*135 mm2 65 nm/435 mm2 2*169 mtrs./95/150 W 1328 mtrs./95/150 W 2-way MT/core 2-way MT/core DCST 1Q 2Q 1Q 2Q 3Q 4Q 3Q 4Q 2006 2005 Ábra 2.8.: Intel kétmagos Xeon MP-családja

  24. 2. MCP-k áttekintése (4) 8CST QCMT QCST 7/06 DCMT 9x00 (Montecito) 90 nm/596 mm2 1720 mtrs./104 W 2-way MT/core DCST 1Q 2Q 1Q 2Q 3Q 4Q 3Q 4Q 2006 2005 Ábra 2.9.: Intel kétmagos EPIC alapú szerver családja

  25. 2. MCP-k áttekintése (5) ~ ~ ~ ~ ~ ~ 2006 8CST Cell BE 90 nm/221 mm2 234 mtrs./95 W (PPE:2-way MT) (SSEs: no MT) QCMT QCST 5/04 DCMT 10/05 2007 POWER5 POWER5+ POWER6 130 nm/389 mm2 90 nm/230 mm2 65 nm/341 mm2 276 mtrs./80W (est.) 750 mtrs./~100W 276 mtrs./70 W 2-way MT/core 2-way MT/core 2-way MT/core DCST 3Q 4Q 3Q 4Q 1Q 2Q 3Q 4Q 1Q 2Q 1Q 2Q 3Q 4Q 2001 2002 2004 2006 2007 Ábra 2.10.: IBM többmagos szerver családjai

  26. 2. MCP-k áttekintése (6) ~ ~ 11/2005 2007 8CMT UltraSPARC T1 UltraSPARC T2 (Niagara) (Niagara II) 65 nm/342 mm2 90 nm/379 mm2 72 W (est.) 279 mtrs./63 W 8-way MT/core 4-way MT/core 8CST 2008 QCMT APL SPARC64 VII (Jupiter) 65 nm/464 mm2 ~120 W 2-way MT/core QCST 2007 DCMT APL SPARC64 VI (Olympus) 90 nm/421 mm2 540 mtrs./120 W 2-way MT/core DCST 1Q 2Q 3Q 4Q 1Q 2Q 3Q 4Q 1Q 2Q 1Q 2Q 3Q 4Q 3Q 2005 2004 2007 2008 Ábra 2.11.: Sun és Fujitsu többmagos szerver családjai

  27. 2. MCP-k áttekintése (7) 5/05 8CMT XLR 5xx 90 nm/~220 mm2 333 mtrs./10-50 W 4-way MT/core 8CST QCMT QCST DCMT DCST 1Q 2Q 1Q 2Q 3Q 4Q 3Q 4Q 2005 2006 Ábra 2.12.: RMI többmagos XLR-családja (skalár RISC)

  28. 2.2. Többszálú processzorok áttekintése (1) Mögöttes mag(ok) Skalár mag(ok) Szuperskalár mag(ok) VLIW mag(ok) SUN UltraSPARC T1 (2005)(Niagara) up to 8 cores, 4 threads IBM RS64 IV (2000) (SStar) 2-way Pentium 4 (2002) 2-way DEC 21464 (2003) Dual-core/2-way IBM POWER5 (2005) Dual-core/2-way Pentium EE 840 (2005) Dual-core/2-way Pentium EE 955/965 (2005) Dual-core/2-way SUN MAJC 5200 (2000) Quad-core/4-way (dedicated use) Intel Montecito (2006?) Dual-core/2-way

  29. 3. Durván szemcsézett többszálúság

  30. 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)

  31. 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ú VLIW alapú IBM RS64 IV (2000) (SStar) 2T SUN MAJC 5200 (2000) Quad-core/4T (dedicated use) Intel Montecito (2006?) Dual-core/2T

  32. 3.2 Esettanulmányok 1: IBM RS 64 IV (1) Mikroarchitekúra 4-utas szuperskalár, kétszálas IBM iSeries és pSeries 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

  33. 3.2 Esettanulmányok 1: IBM RS 64 IV (2) 6XX bus IERAT: Effective to real address translation cache (2x64 entries) Ábra 3.1: IBM’s RS 64 IV mikroarchitektúra Forrás: Borkenhagen J.M. et al. „A multithreaded PowerPC processor for commercial servers”, IBM J.Res.Develop. Vol. 44. No. 6. Nov. 2000, pp. 885-898

  34. 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ű L1-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ó

  35. 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 PowerPC processor for commercial servers”, IBM J.Res.Develop. Vol. 44. No. 6. Nov. 2000, pp. 885-898

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

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

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

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

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

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

  42. 3.2 Esettanulmányok 3: Intel Montecito (1) Csúcsszerverek Cél: Fő különbségek az Itanium2 és a Montecito között: • Osztott használatú L2 cachek, • nagyméretű egyesített L3 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 megjelölni, • 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 %.

  43. 3.2 Esettanulmányok 3: Intel Montecito (2) Ábra 3.6: Intel Itanium 2 mikroarchitektúrája Forrás: McNairy, C., „Itanium 2”, IEEE Micro, March/April 2003, Vol. 23, No. 2, pp. 44-55

  44. 3.2 Esettanulmányok 3: Intel Montecito (3) Ábra 3.7: Intel Montecito mikroarchitektúrája (ALAT: Advanced Load Address Table) Forrás: McNairy, C., „Montecito”, IEEE Micro, March/April 2005, Vol. 25, No. 2, pp. 10-20

  45. 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 L3 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.

  46. 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: McNairy, C., „Montecito”, IEEE Micro, March/April 2005, Vol. 25, No. 2, pp. 10-20

  47. 4. Finoman szemcsézett többszálúság

  48. 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)

  49. 4. Finoman szemcsézett többszálúság 4.1 Áttekintés (2) Finoman szemcs. MT Round robin kiválasztó politika Prioritás alapú kiválasztó politika Skalár alapú Szuperskalár alapú Skalár alapú VLIW alapú Szuperskalár alapú VLIW alapú SUN UltraSPARC T1 (2005)(Niagara) up to 8 cores/4T

  50. 4.2 Esettanulmány: SUN UltraSPARC T1 (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

More Related