Architektúra, cache irıl lesz szó? Alapfogalmak Adat cache tervezési terének alapkomponensei Koschek Vilmos Fejlıdés vkoschek@vonalkodhu Teljesítmény Teljesítmény növelése Technológia Architektúra (mem) Nagyobb memória agasabb frekvencia Bitszám növelése CACHE tár VT DRA,FP,EDO,SD,DDR emória tömbök i a probléma? CPU - memória 8Hz > 5 ns 5 Hz -> ns 5 Hz -> ns i a megoldás? Gyorsabb áramkörök (SRA, DRA) Asszociatív tár Cache Nagyméretű, gyors, olcsó memória 4 Régebben wait state egoldás Gyors memóriát a CPU lapkára (lassú bus)! DE! CPU gyártása nem gazdaságos Lapka nem lehet tetszıleges mérető És a valóság? Cache elve CPU CACHE OPT Egy rövid idıintervallum alatt a memóriahivatkozások a teljes A leggyakrabban használt adatokat a cacheben tartjuk memória it csak teszi ezt egy lehetővé? kis részét Lokalitási érintik elv! Nagy, lassú Kicsi, gyors Térbeli lokalitás (köv cím) Idıbeli lokalitás (ciklus) 5 6
Számoljunk T c : OPT ciklus idı = 8 ns T cache : Cache = ns P t : Találati arány = 98% Átlagos elérési idő: P t x T cache + (-P t ) x T c,98 x ns + (-,98) x 8 ns =,4 ns 8 ns <->,4 ns!!!!! Fıtár és a cache aktualizálása Átíró (write through) Egyszerre, azonnal Lassú Visszaíró (write back) Blokkcserénél, más eszköz kéri az adatot Bonyolultabb Késleltetett írás (burst write) Amikor lehet, visszaírja Amíg nem írja vissza, nem engedett mást a memóriához 7 8 A memória hierarchia lehetséges alternatívái az adat cache szempontjából P Adat L Utasítás L: 6-64K L: 5 L: n x B L L Rendszer memória az adat cache szempontjából 9 L Az adat cache tervezési terének alapkomponensei Adat cache architektúra Black box jellemzők és funkciók, pl: Írás és olvasási eljárások hibavédelem Adat cache tervezési tere Adat cache mikroarchitektúra Belső struktúra Szervezés tagging schema Cache line felépítése CPU és Cache hány porton kapcsolódik Bankok száma űveletek CPU-cache összekapcsolása Cache line mérete Adatszélesség CPU-cache párhuzamosság Cache órajel Szervezés Közvetlen leképzéső (direct mapped) Csoport asszociatív (n-way set associative) bites cím Valid Dirty Közvetlen leképzéső TAG LINE W B 4 6 CÍ V D TAG 7 6 5 4 Cache line: bájt, 8 szó, 4 bájt Bejegyzés: 48 éret: x48 = 64K Cache miss 47
65568 Közvetlen leképzéső Szókiolvasás, továbbítás Címek összehasonlítása Probléma Cache line 6 64 95 47 6554 6555 48 6556 65567 49 65568 65599 5 656 656 495 4 7 64K 64K Párhuzamosan -> gyors Külön az adat és a kód Összeütközés, de ritkán -4 utas - Cache line: 6bájt, 4x4 szó - 6 x 6 x 4 = 496 - Bonyolultabb =4 címet kell ell =melyiket kell eldobni? + 6 + + 6 6 Csoport asszociatív V D TAG V D TAG 6 6 V D TAG V D TAG 68 TAG LINE W B 68 4 Szervezés, példák apped: Alpha 64A, 64, 64 (Compaq/DEC) UltraSparc I, II (Sun) way Pentium Pentium Pro Athlon (AD) 4 way UltraSparc III Pentium II Pentium III 8 way PowerPC6 (PowerPC) Cache line szerkezete, példák apped - Alpha 64A ory Entry Valid: Adat paritás szavanként (4 bájt) :8 Tag paritás: Tag: Data bájt n-way set associative Pentium Pro ( utas) LRU Data: bájt, Data: bájt Dir, Dir TAG: 4 T-ECC: 6 (Tag Error Correction Code) D-ECC: (Data Error Correction Code) ESI: (odified Exclusive Shared Invalid) 5 6 CPU és cache kapcsolata Off-chip Rendszer buszon keresztül Korai scalar processzorok Nagy hozzáférési idı, Kicsi sávszélesség Dedikált buszon keresztül Gyors HP PA8 On-chip CPU lapkán Gyors belsı busz Superscalar processzor Cache méret (on-chip) Nagy méret > nagy találati arány -> nagy teljesítmény Különböző, a geometriai méretekből adódó késleltetés Chip méret fizikai korlátja 8K: Alpha64, Pentium, PPro, P4 (L 56K/5K) 6K: PII, PIII K: K6 64K: Athlon : HP PA 85 7 8
Cache line mérete Illeszkedik a CPU által használt adattípusokhoz bájt: Pentium, PII, PIII, PPro Adatszélesség a CPU és a Cache között CPU P Adat cache L Ha van! L 64 bájt: Pentium 4, Alpha 64 8 bájt / port Nagy adatforgalom, szűk keresztmetszet (burst átvitel) 8 bájt: Power, Power 4 9 8 bájt Alpha 64 Pentium PPro PII PIII (,5 mikron) 6 bájt Alpha 64 Alpha 66 UltraSparc I UltraSparc II bájt PIII (,8 mikron) P4 Intel 86 External L cache Intel 486 L, external L cache L cache bus bus L cache L cache split L, external L cache coupled L cache Intel Pentium AD K5 AD K6 Intel PPro Pentium II (exp endocino) Pentium III (,5 mikr) AD Athlon (K7, K75 cores) L cache bus bus L cache 4 4
Pentium II (endocino core) Pentium III (,8 mikr) Pentium 4 Athlon (Thunderbird core) Athlon 4 Duron (Spitfire core) L cache L cache bus L cache, external L cache Pentium 4 original design K-III L cache bus L cache 5 6 L cache, direct coupled L cache Itanium External L Split L External L Cache fejlıdése Coupled L L External L Coupled L L cache L Split L cache bus L L Externel coupled Externel coupled x/86 IA/ 86 486 Pentium Pentium (opt) PPro, PII (kivéve endocino) PIII (5 mikr) PII (endocino) PIII (8mikr) P4 P4 ori IA/64 IA-64 7 8 ITTTTTTTTTTTTTT! Tantárgy neve, kódja:architektúraévfolyam: A vizsga napja A vizsga Ea ax hallgatói (hónap, nap) (kezdete és Vizsgaterem létszám vége) ájus 8, 7: 6 perc Audmax 8 Június 8, 7: 6 perc Audmax 8 Június 5, 6 perc Audmax 8 7: http://nikbmfhu/broczko/tantargyhtm Tantárgy neve, kódja:c++évfolyam: A vizsga napja A vizsga Ea ax hallgatói (hónap, nap) (kezdete és Vizsgaterem létszám vége) ájus 8, 8: 8 perc Június 8, 8: 8 perc Június 5, 8 perc 8: egszakítási rendszer 9 Koschek Vilmos 5