Table Of ContentJorge Mamoru Kobayashi
Entropy: Algoritmo de Substituição de Linhas
de Cache inspirado na Entropia da
Informação
Dissertação apresentada à Escola
Politécnica da Universidade de São
Paulo para obtenção do Título de Mestre
emEngenhariaElétrica.
SãoPaulo
2010
Jorge Mamoru Kobayashi
Entropy: Algoritmo de Substituição de Linhas
de Cache inspirado na Entropia da
Informação
Dissertação apresentada à Escola
Politécnica da Universidade de São
Paulo para obtenção do Título de Mestre
emEngenhariaElétrica.
Áreadeconcentração:
SistemasDigitais
Orientador:
Prof. Dr. Mario Donato Marino
SãoPaulo
2010
Aosmeusfilhos,PedroeMarina,porcompreenderemminhaausênciaantesmesmo
desaberemosignificadodestapalavra.
ÀminhaesposaMárcia,pordocementesuportarospioresmomentosdestajornada.
Aosmeuspais,JorgeeNilza,pormeensinaremqueoconhecimentoéalgoeternoe
sóeleconstróialiberdade.
Àsminhasirmãs,MaykoeMarisa,porcuidarematodotempodoirmãomenor.
Agradecimentos
AgradeçoaoProf. Dr. MárioDonatoMarinopelovotodeconfiançaconcedidoamim
quando aceitou orientar este trabalho. Pela intensa dedicação e entusiasmo com esta
pesquisa. Pelas palavras de motivação e pelo rigor quando foi necessário. Seu senso
dedeverasercumpridoéumexemploqueirámuitoalémdoslimitesdestetrabalho.
Agradeço ao Prof. Dr. Jorge Kinoshita e ao Prof. Dr. Siang Wun Song pelos
cuidadososcomentáriosecorreçõesduranteoprocessosdequalificação.
Ao amigo Evaldo Horn de Oliveira, pelo incentivo e apoio para que eu iniciasse e
levasseadianteestetrabalhoquandoasregrasdiziamquenãoseriapossível.
AoscolegasdolaboratórioLAHPC-LaboratoryofArchitectureandHighPerfor-
mance Computing, em especial Darlon Vasata, Charles Rodamilans, Filipe Scoton e
ArthurBaruchipelaajudaemdiversasocasiões.
AoProf. Dr. HenriqueSchützerDelNero(inmemoriam)quelançouacentelhae,
semperceber,plantouumaideiaemumamente.
Resumo
Estetrabalhoapresentaumestudosobreoproblemadesubstituiçãodelinhasdecache
emmicroprocessadores. InspiradonoconceitodeEntropiadaInformaçãopropostoem
1948porClaudeE.Shannon,estetrabalhopropõeumanovaheurísticadesubstituição
delinhasdecache. Seuobjetivoécapturareexplorarmelhoralocalidadedereferência
dosprogramasediminuirataxademissrateduranteaexecuçãodosprogramas.
Oalgoritmoproposto,Entropy,utilizaaheurísticadeentropiadainformaçãopara
estimar as chances de uma linha ou bloco de cache ser referenciado após ter sido
carregado na cache. Uma nova função de decaimento de entropia foi introduzida no
algoritmo, otimizando seu funcionamento. Dentre os resultados obtidos, o Entropy
conseguiureduzirematé50,41%omissrateemrelaçãoaoalgoritmoLRU.
O trabalho propõe, ainda, uma implementação em hardware com complexidade
e custo computacional comparáveis aos do algoritmo LRU. Para uma memória cache
de segundo nível com 2-Mbytes e 8-way associative, a área adicional requerida é da
ordemde0,61%debitsadicionais.
OalgoritmopropostofoisimuladonoSimpleScalarecomparadocomoalgoritmo
LRU utilizando-seosbenchmarksSPECCPU2000.
Palavras-chave: Localidade,Processador,Linhadecache,LRU,EntropiadaInfor-
mação,SimpleScalar
Abstract
Thisworkpresentsastudyaboutcachelinereplacementproblemformicroprocessors.
InspiredintheInformationEntropyconceptstatedbyClaudeE.Shannonin1948,this
work proposes a novel heuristic to replace cache lines in microprocessors. The major
goal is to capture the referential locality of programs and to reduce the miss rate for
cacheaccessduringprogramsexecution.
The proposed algorithm, Entropy, employs that new entropy heuristic to estimate
the chances of a cache line to be referenced after it has been loaded into cache. A
novel decay function has been introduced to optimize its operation. Results show that
Entropycouldreducemissrateupto50.41%incomparisontoLRU.
Thisworkalsoproposesahardwareimplementationwhichkeepscomputationand
complexitycostscomparabletothemostemployedalgorithm,LRU.Toa2-Mbytesand
8-wayassociativecachememory,therequiredstorageareais0.61%ofthecachesize.
TheEntropyalgorithmwassimulatedusingSimpleScalarISAsimulatorandcom-
paredtoLRU usingSPECCPU2000benchmarkprograms.
Keywords: Locality, Processor, Cache line, LRU, Information Entropy, SimpleS-
calar
Sumário
ListadeFiguras
ListadeTabelas
ListadeAbreviaturaseSiglas
Glossário 15
1 Introdução 1
1.1 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.1 RecursosEmpregados . . . . . . . . . . . . . . . . . . . . . 15
1.4 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2 OProblemadeSubstituiçãodeLinhasdeCacheemProcessadores 18
3 LocalidadeeMecanismosdeSubstituiçãodeLinhasdeCache 25
3.1 LocalidadeTemporal . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 LocalidadeEspacial . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 AlgoritmoFIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 AlgoritmoLRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5 AlgoritmoRandom . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4 EstadodaArte 38
5 EntropiadaInformação 45
5.1 AlgoritmoEntropy . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.2 ImplementaçãoemHardware . . . . . . . . . . . . . . . . . . . . . . 58
6 SimuladorSimpleScalar 63
7 MetodologiaDetalhadaeResultados 68
7.1 BenchmarksSPECCPU2000 . . . . . . . . . . . . . . . . . . . . . . 70
7.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8 ConclusõeseTrabalhosFuturos 88
8.1 TrabalhosFuturos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
ReferênciasBibliográficas 91
Lista de Figuras
2.1 BranchStraightening . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1 Cacheorganizadoemblocos . . . . . . . . . . . . . . . . . . . . . . 28
3.2 CacheSetFIFORegisterRing . . . . . . . . . . . . . . . . . . . . . 30
3.3 CacheFIFO-LocalidadeTemporalCurta . . . . . . . . . . . . . . . 31
3.4 CacheFIFO-LocalidadeTemporalLonga . . . . . . . . . . . . . . 32
3.5 CacheFIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.6 CacheLRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.7 CacheRandomBlockDiagram-Inspiradaem(HILL,1987) . . . . . 36
5.1 EntropiadaInformação . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2 CacheEntropy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3 Entropygraphicbeforeandafteradjusts . . . . . . . . . . . . . . . . . . 50
5.4 CacheEntropysetseestruturasauxiliares . . . . . . . . . . . . . . . 53
5.5 FuncionamentodoEntropy . . . . . . . . . . . . . . . . . . . . . . . 56
5.6 FuncionamentodoLRU . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.7 CasofavorávelaoEntropy . . . . . . . . . . . . . . . . . . . . . . . 57
5.8 CasodesfavorávelaoEntropy . . . . . . . . . . . . . . . . . . . . . 57
5.9 ExemplodeatualizaçãodaEntropylookuptabledurantefuncionamento 60
5.10 DiagramadeBlocosdeCachecomEntropy . . . . . . . . . . . . . . 62
6.1 EstruturadoSimuladorSimpleScalar . . . . . . . . . . . . . . . . . . 64
6.2 CacheSimpleScalar . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.1 RelativemissrateLRUversusEntropy . . . . . . . . . . . . . . . . . 73
7.2 MissrateforEquake . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.3 MissrateforArt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
7.4 MissrateforAmmp . . . . . . . . . . . . . . . . . . . . . . . . . . 77
7.5 MissrateforApplu . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.6 MissrateforCrafty . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.7 MissrateforFma3d . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.8 MissrateforMesa . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.9 MissrateforTwolf . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.10 MissrateforEon . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.11 MissrateforApsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
7.12 MissrateforGzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
7.13 MissrateforBzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
7.14 Missrateforgcc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.15 MissrateforLucas . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.16 MissrateforMgrid . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
7.17 MissrateforVpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Description:Este trabalho apresenta um estudo sobre o problema de substituição de linhas de cache em microprocessadores. Inspirado no conceito de Entropia