Cache Prestatie & Energieverbruik
Overzicht
Voorbeelden energieverbruik Cache
Overzicht Voorbeelden energieverbruik Cache Redenen hoog energieverbruik
Overzicht Voorbeelden energieverbruik Cache Redenen hoog energieverbruik Verbeteringen prestatie/energieverbruik
Energieverbruik Cache ProcessorKloksnelheidTotaal vermogen Aandeel cache Intel Pentium Pro 200Mhz 35W14% (I-cache)
Energieverbruik Cache ProcessorKloksnelheidTotaal vermogen Aandeel cache Intel Pentium Pro 200Mhz 35W14% (I-cache) DEC Alpha 21164PC 433Mhz 32,5W25% (L1,L2)
Energieverbruik Cache ProcessorKloksnelheidTotaal vermogen Aandeel cache Intel Pentium Pro 200Mhz 35W14% (I-cache) DEC Alpha 21164PC 433Mhz 32,5W25% (L1,L2) DEC StrongARM SA %
Redenen hoge energieverbruik: Executie snelheid processor afhankelijk van snelheid cache
Redenen hoge energieverbruik: Executie snelheid processor afhankelijk van snelheid cache Beslaat een groot deel van het chipoppervlak
Probleemstelling Hoe kan het energieverbruik van cache verbeterd worden zonder dat de prestaties achteruit gaan?
Verbeteren prestaties en energieverbruik cache
Doelmatiger cache:
Verbeteren prestaties en energieverbruik cache Doelmatiger cache: Effectiviteit verhogen Hardware
Verbeteren prestaties en energieverbruik cache Doelmatiger cache: Effectiviteit verhogen Hardware Efficiency verhogen Hardware + compiler
Effectiviteit verhogen Gebruik maken van twee data eigenschappen:
Effectiviteit verhogen Gebruik maken van twee data eigenschappen: 1.Tijd localiteit 2.Ruimtelijke localiteit
Effectiviteit verhogen Gebruik maken van twee data eigenschappen: 1.Tijd localiteit 2.Ruimtelijke localiteit Selective Temperal and Aggressive Spatial cache (STAS)
Selective Temperal and Aggressive Spatial (STAS)
Data addres for CPU Data from/to CPU
Selective Temperal and Aggressive Spatial (STAS) TagData Direct mapped cache Data addres for CPU small block Data from/to CPU
Selective Temperal and Aggressive Spatial (STAS) TagData Direct mapped cache Data addres for CPU small block Data from/to CPU Tag CAM Spatial buffer Hit Bit Dirty Bit Large block small block
Selective Temperal and Aggressive Spatial (STAS) TagData Direct mapped cache Data addres for CPU small block Data from/to CPU Tag CAM Spatial buffer Hit Bit Dirty Bit Large block small block Decoder
Selective Temperal and Aggressive Spatial (STAS) TagData Direct mapped cache Data addres for CPU small block Direct-Mapped cache Hit Data from/to CPU Tag CAM Spatial buffer hit Hit Bit Dirty Bit Large block small block Decoder Data word
Selective Temperal and Aggressive Spatial (STAS) TagData Data addres for CPU small block Direct-Mapped cache Hit Data from/to CPU Tag CAM Spatial buffer hit Hit Bit Dirty Bit Large block small block Decoder Data word Off chip memory Direct mapped cache
Selective Temperal and Aggressive Spatial (STAS) TagData Data addres for CPU small block Direct-Mapped cache Hit Data from/to CPU Tag CAM Spatial buffer hit Hit Bit Dirty Bit Large block small block Decoder Data word Off chip memory Direct mapped cache
Resultaten STAS Dezelfde prestaties als conventionele direct mapped cache met slechts 25% van het oorspronkelijke oppervlak
Resultaten STAS Dezelfde prestaties als conventionele direct mapped cache met slechts 25% van het oorspronkelijke oppervlak effectiviteit cache veel hoger
Effeciency verhogen Zowel hardware als compiler aanpassen, zodat tijdens loops de i-cache geen onnodig werk doet
Effeciency verhogen Zowel hardware als compiler aanpassen, zodat tijdens loops de i-cache geen onnodig werk doet Extra L-cache, zodat tijdens een loop de i-cache uitgeschakeld wordt.
Effeciency verhogen Zowel hardware als compiler aanpassen, zodat tijdens loops de i-cache geen onnodig werk doet Extra L-cache, zodat tijdens een loop de i-cache uitgeschakeld wordt. Compiler die de plaatsing van de data in het L- cache regelt.
Compiler
Een instructie wordt geplaatst in de L-cache als het tot een Basic block behoort:
Compiler Een instructie wordt geplaatst in de L-cache als het tot een Basic block behoort: Do 100 i=1, n B1; #basic block if (error) then error handling; B2; # basic block 100 continue
Compiler(2) Twee optimalisatie fasen
Compiler(2) Twee optimalisatie fasen Function inlining Block placement
L-cache Data path I-cache
L-cache Data path I-cache L-cache Tag L-cache Data
L-cache Data path I-cache L-cache Tag L-cache Data 32 – bit Logic comp. 32 – bit MUX I-cache bus Blocked part L-cache hit PC
Resultaten L-cache + compiler Energiebesparing van wel 80% mogelijk, dit is sterk afhankelijk van het soort programma en de grootte van het L-cache.
Conclusie Doelmatiger cache reduceert het energie verbruik sterk zonder dat de prestaties achteruit gaan.
Literatuur A selective temporal and aggressive spatial cache system based on time interval Jung-Hoon Lee, Jang-Soo Lee, and Shin-Dug Kim Dep. Of Computer Science, Yonsei University Seoul, Korea, 2000 Architectural and Compiler Techniques for Energy Reduction in High-Performance Mircoprocessors Nikolaos Bellas, Ibrahim N. Hajj, Constantine D. Polychronopoulus, and George Stamoulis, 2000