Cache: Prestatie en Energieverbruik

advertisement
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
Download