Cache Prestatie & Energieverbruik Overzicht Overzicht • Voorbeelden energieverbruik Cache Overzicht • Voorbeelden energieverbruik Cache • Redenen hoog energieverbruik Overzicht • Voorbeelden energieverbruik Cache • Redenen hoog energieverbruik • Verbeteringen prestatie/energieverbruik Energieverbruik Cache Processor Kloksnelheid Totaal vermogen Aandeel cache Intel Pentium Pro 200Mhz 35W 14% (I-cache) Energieverbruik Cache Processor Kloksnelheid Totaal vermogen Aandeel cache Intel Pentium Pro 200Mhz 35W 14% (I-cache) DEC Alpha 21164PC 433Mhz 32,5W 25% (L1,L2) Energieverbruik Cache Processor Kloksnelheid Totaal vermogen Aandeel cache Intel Pentium Pro 200Mhz 35W 14% (I-cache) DEC Alpha 21164PC 433Mhz 32,5W 25% (L1,L2) DEC StrongARM SA110 27% 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 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) Selective Temperal and Aggressive Spatial (STAS) Data addres for CPU Data from/to CPU Selective Temperal and Aggressive Spatial (STAS) Data addres for CPU Tag Data Direct mapped cache small block Data from/to CPU Selective Temperal and Aggressive Spatial (STAS) Data addres for CPU Tag Data Direct mapped cache Spatial buffer Tag Dirty Bit Hit Bit CAM small block Data from/to CPU small block Large block Selective Temperal and Aggressive Spatial (STAS) Data addres for CPU Tag Data Direct mapped cache Spatial buffer Tag Decoder Dirty Bit Hit Bit CAM small block Data from/to CPU small block Large block Selective Temperal and Aggressive Spatial (STAS) Data addres for CPU Tag Data Direct mapped cache Spatial buffer Tag Dirty Bit Hit Bit CAM small block Direct-Mapped cache Hit Decoder Spatial buffer hit Data from/to CPU small block Large block Data word Selective Temperal and Aggressive Spatial (STAS) Data addres for CPU Tag Data Direct mapped cache Spatial buffer Tag Dirty Bit Hit Bit CAM small block Direct-Mapped cache Hit Decoder Spatial buffer hit Data from/to CPU small block Large block Data word Off chip memory Selective Temperal and Aggressive Spatial (STAS) Data addres for CPU Tag Data Direct mapped cache Spatial buffer Tag Dirty Bit Hit Bit CAM small block Direct-Mapped cache Hit Decoder Spatial buffer hit Data from/to CPU small block Large block Data word Off chip memory 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 Lcache regelt. Compiler 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 L-cache Tag L-cache Data I-cache L-cache Data path L-cache hit Blocked part 32 – bit Logic comp. L-cache Tag 32 – bit MUX I-cache bus L-cache Data PC I-cache 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