UNIVERSIDADE FEDERAL DE SANTA CATARINA ´ INFORMATICA E ESTAT´ ISTICA

Daniel Pereira Volpato

´ GERENCIAMENTO EXPL´ ICITO DE MEMORIA AUXILIAR A PARTIR DE ARQUIVOS-OBJETO PARA ˆ ´ MELHORIA DA EFICIENCIA ENERGETICA DE SISTEMAS EMBARCADOS

Florian´polis o 2010

Daniel Pereira Volpato

´ GERENCIAMENTO EXPL´ ICITO DE MEMORIA AUXILIAR A PARTIR DE ARQUIVOS-OBJETO PARA ˆ ´ MELHORIA DA EFICIENCIA ENERGETICA DE SISTEMAS EMBARCADOS

Disserta¸ao submetida ao Programa c˜ de P´s-Gradua¸ao em Ciˆncia da Como c˜ e puta¸ao para a obten¸ao do Grau de c˜ c˜ Mestre em Ciˆncia da Computa¸ao. e c˜ Orientador: Jos´ Lu´ Almada G¨nte ıs u zel, Dr.

Florian´polis o 2010

: il. Programa de Pós-Graduação em Ciência da Computação. 3. 2. .. I. Luís Almada Güntzel.. Inclui referências .Florianópolis. Dissertação (mestrado) . Título. Luiz Claudio Villar dos. Programa de PósGraduação em Ciência da Computação.Universidade Federal de Santa Catarina. Sistemas de memória de computadores. Arquitetura de computador. Universidade Federal de Santa Catarina. tabs. III. 142 p. CDU 681 . Daniel Pereira Gerenciamento explícito de memória auxiliar a partir de arquivos-objeto para melhoria da eficiência energética de sistemas embarcados [dissertação] / Daniel Pereira Volpato . grafs. 1. II. Centro Tecnológico. SC. orientador. Santos. 4. 2010. Ciência da computação.Catalogação na fonte pela Biblioteca Universitária da Universidade Federal de Santa Catarina V931g Volpato. Gerenciamento de memória (Computação).

.

.

.

.

pelo que sou.` A minha fam´ ılia. .

.

pela educa¸˜o. Aos amigos do Grupo de Ora¸˜o Universit´rio (GOU). Por toda a beleza. A CAPES. co pela aten¸˜o e esfor¸o empregados na revis˜o deste texto. Professor Dr. ca e pelo aux´ ılio-moradia para miss˜o de estudo na UNICAMP. ca ca Ao Professor Dr. pelo amor que me dedica e dedicou. e ılio aos colegas e amigos Alexandre K. por bolsa de quota social. Aos amigos Luiz. a ca Aos membros da banca. e a todos aqueles que acompanharam o desenrolar deste trabalho. na qual ca podemos enxergar toques de Sua m˜o e a certeza de sua presen¸a. Ao Professor Dr. ora¸˜o. pelas sugest˜es. pela convivˆncia e aux´ para o desenvolvimento deste trabalho. ılio ca Ao INE pela infraestrutura concedida. Aos Professores. e e a especialmente em sua reta final. pelo o ` custeio parcial da execu¸˜o deste trabalho. pela vida e por amar-me de modo incondicional. no 0326054.AGRADECIMENTOS A Deus. pela orienta¸˜o e ıs u ca e amizade ao longo deste mestrado. I. no ˆmbito do ca a Programa Nacional de Coopera¸˜o Acadˆmica (PROCAD). tamb´m aos meus e irm˜os (Rafael. torcida. e pela valiosa ca c a colabora¸˜o em minha forma¸˜o profissional bem como pessoal. no ˆmbito do Programa a Nacional de Microeletrˆnica (PNM). e ao CNPq. a A minha noiva. Volnei e Maria Jos´. Cesar Albenes Zeferino. T´cnicos e Funcion´rios do Departamento de e a Inform´tica e Estat´ a ıstica (INE) da UFSC. a . co Aos parceiros de grupo de pesquisa do LAPS e NIME. pela ca a amizade. processo no 136630/2008-1. no ˆmbito do Programa de Fomento ` P´s-Gradua¸˜o a a o ca (PROF). harmonia e ordem de Sua cria¸˜o que nos rodeia. a a principalmente quando n˜o lhes dediquei o tempo devido. e pela amizade j´ desde os tempos em que cursava a gradua¸˜o. Juntamente com eles. pelas importantes contribui¸˜es. Fernando Gehm Moraes e Professor Dr. Luiz Cl´udio Villar dos Santos. cr´ ca o ıticas e reflex˜es que tanto o contribu´ ıram para a melhoria da qualidade deste trabalho. Tame b´m pela paciˆncia e compreens˜o nas diversas etapas deste mestrado. Sayonara. a c Aos meus pais. moral e religiosa. pelo aux´ e colabora¸˜o. Let´ a ıcia. ` A CAPES. H´rica. Daiane. Jos´ Lu´ Almada G¨ntzel. Em particular. pela cooria enta¸˜o deste trabalho. forma¸˜o e ca ca humana. de Mendon¸a e Rafael Westphal. por aceitarem o convite para avaliar este trabalho e pelas contribui¸˜es para sua melhoria. e por tornarem a vivˆncia na universidade ca e muito mais agrad´vel. Mateus e Roberta) e a Iara pelo apoio e compreens˜o. c com os quais colaborei mais diretamente.

.

´ E uma doen¸a natural no homem acreditar c que possui a verdade. Blaise Pascal .

.

dada uma capacidade CT de uma e cache pr´-ajustada equivalente. ´ prefer´ e ıvel utilizar-se a granularidade de procedimentos ` de blocos b´sicos. . por conta da aloca¸˜o em SPM. varia o ca entre 15% a 33%. o tamanho ´timo de SPM reside em e o [CT /2. mesmo para e arquiteturas baseadas em cache contendo SPMs pequenas. a a ca a economia de energia em mem´ria. Embora t´cnicas overlay-based u ca a e (OVB) operando em n´ de c´digo-fonte possam beneficiar-se de m´ltiıvel o u plos hot spots para uma maior economia de energia. e m´dia. Subsistema de mem´ria. mostram-se evidˆncias contra-intuitivas de que. mais ca e simples. e ´ t˜o boa ou melhor do que a economia e e a reportada para abordagens OVB que operam sobre bin´rios. a economia de energia reportada por todas as t´cnicas. elas n˜o conseguem a explorar elementos de programa oriundos de bibliotecas. e at´ o momento.CT ] para 85% dos programas avaliados. a Como esta economia (ao contr´rio dos trabalhos correlatos) foi medida a ap´s o ajuste-fino das caches — quando existe menos espa¸o para o c otimiza¸˜o —. quando operam diretamente em bin´rios. frequentemente exigem hardware dedicado e `s a vezes impossibilitam a aloca¸˜o de dados. Entretanto. Mem´ria de rascunho. e e A literatura sobre SPMs parece indicar que a altera¸˜o dinˆmica de seu ca a conte´do suplanta a aloca¸˜o est´tica. Scrato chpad memory. estes resultados estimulam o uso de m´todos NOB. ca Por outro lado. exceto a a em algumas poucas aplica¸˜es que combinam elementos frequentemente co acessados e taxas de faltas relativamente altas. as abordagens OVB conduzem a a uma menor economia.RESUMO Mem´rias de rascunho (Scratchpad Memories — SPM) tornaram-se o populares em sistemas embarcados por conta de sua eficiˆncia energ´tica. e estas dever˜o ser otimizadas antes da aloca¸˜o para SPM. Gerencio amento non-overlay. Gerenciamento overlay. para a constru¸˜o de alocadores capazes de considerar elementos ca de bibliotecas e que n˜o dependam de hardware especializado. Este trabalho a ca mostra evidˆncia experimental de que. quando m´todos non-overlaye e based (NOB) s˜o utilizados para manipula¸˜o de arquivos bin´rios. Palavras-chave: Sistemas embarcados. ignora o fato de que. Finalmente. a Este trabalho tamb´m mostra que. em sistemas que possuem caches.

.

Non-overlay management. This work also shows that.CT ] for 85% of the programs under evaluation. when non-overlay based (NOB) methods are used to directly handle binaries. they cannot exploit libraries. Besides. Since the savings obtained in the present work (as opposed to related works) were measured after cache tuning — when there is less room for optimization. This work shows experimental evidence that. even for cache-based architectures containing small SPMs. Overlay management. they encourage the use of simpler NOB methods to build library-aware SPM allocators that cannot depend on dedicated hardware. except for a few applications combining frequently accessed elements and relatively high miss rates. in cachebased systems. and sometimes prevent data allocation. The literature on SPMs seems to indicate that the use of dynamic overlaying supersedes static allocation. often require dedicated hardware. the optimal SPM size lies in [CT /2. Finally. When directly operating on binaries. caches are likely to be optimized prior to SPM allocation. all saving reports published so far ignore the fact that. it shows counter-intuitive evidence that. OVB approaches lead to smaller savings.ABSTRACT Scratchpad memories (SPMs) became popular in embedded systems as energy efficiency boosters. Keywords: Embedded systems. Although overlay-based (OVB) techniques operating at source-level code might benefit from multiple hot spots for higher energy savings. the memory energy savings due to SPM allocation (from 15% to 33% on average) are as good as or better than the ones reported for OVB approaches that are also able to operate on binaries. Scratchpad memory. given the capacity CT of the equivalent pretuned cache. Memory subsystem. procedures should be preferred for allocation instead of basic blocks. .

.

. . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Figura 8 Casos que podem ocorrer no mapeamento de blocos b´sicos para SPM . . . . . . . . . . 2008) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 co Figura 10 Economia m´dia de energia e taxa m´dia de ocupa¸˜o e e ca por capacidade de SPM . . . . . . . . . . . . . . . . . . . . . 113 . . para SPMs grandes (CSPM ∼ CT ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o HENNESSY. . . . . . . . . . utilizando BBA e PRA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 a Figura 9 Impacto do ajuste-fino na economia de energia das caches de instru¸˜es e dados . . . . . . . . . . . . . . . . . . . 39 o Figura 4 Arquiteturas-alvo poss´ ıveis para o subsistema de mem´ria 41 o Figura 5 Fluxo de trabalho gen´rico para t´cnicas de aloca¸˜o em e e ca SPM . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Figura 12 Maior economia de energia. . . . 111 Figura 14 Correla¸˜o entre economia de energia e taxa de faltas ca global dos elementos candidatos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . para cada programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Figura 11 Sensibilidade da economia de energia ao dimensionamento da SPM (usando abordagem PRA) . . . . . 110 Figura 13 Capacidades de SPM que propiciam maior economia de energia . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Figura 2 Exemplo de mem´ria cache com mapeamento direto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 o Figura 3 Exemplo de mem´ria de rascunho (SPM) . . 59 Figura 7 Fluxo de trabalho da t´cnica estendida de aloca¸˜o em e ca SPM . 48 Figura 6 Mapa de mem´ria da arquitetura MIPS (PATTERSON. . . . . . . . . . . . . . . . . .LISTA DE FIGURAS Figura 1 Distribui¸˜o de energia em um processador embarcado ca (DALLY et al. . .

.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LISTA DE TABELAS Tabela 1 T´cnicas de aloca¸˜o em SPM quanto ` abordagem. . . . . . . . . . . . . . . . . . . . . . . . . . 104 Tabela 10 Ocupa¸˜o da SPM. . . . . . . . . . . . . . . 62 Tabela 2 T´cnicas de aloca¸˜o em SPM quanto aos elementos de e ca programa considerados . . . . . . . . . . . . . . . . . . . . . 97 ca Tabela 6 Percentual de acessos acomod´veis em diferentes capacia dades de uma mem´ria qualquer. . . . . . . . . . . . . . . . . . . . . . . . . 102 Tabela 9 Energia normalizada para a configura¸˜o de cache pr´ca e ajustada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . fase. . 99 o Tabela 7 Capacidade da SPM utilizada para cada configura¸˜o e ca programa . . . . . . . . . . . e ca a arquivo de entrada e arquitetura-alvo . . . . . . . . . . . . . . . . . . . . . 91 o Tabela 5 Descri¸˜o dos programas de benchmark utilizados . . . . . . . . . . . . . . . . . . . . . 63 Tabela 3 Espa¸o de projeto considerado para ajuste-fino das mec m´rias cache . 100 Tabela 8 Propriedades extra´ ıdas para caracteriza¸˜o dos prograca mas-alvo . . . . . . . . 91 o Tabela 4 Resultado do ajuste-fino das mem´rias cache. . 105 ca Tabela 11 Correla¸˜o entre economia de energia total e de sistema 141 ca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.

. . . . . 135 . . . . . . . . . . . . 135 CONTA CONFLITOS . . . . . . . . . . . . .LISTA DE ALGORITMOS 1 2 SPCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.

LISTA DE ABREVIATURAS E SIGLAS BB BBA CAM CBA CT Bloco b´sico a Basic-block allocation (aloca¸˜o de blocos b´sicos) ca a Content-addressable memory (mem´ria endere¸ada por o c conte´do) u Cache-based architectures (arquiteturas baseadas em caches) Compilation time (Tempo de compila¸˜o) ca D-cache Cache de dados DRAM EDA EVA FCA I-cache ILP IP KB MB MMU MP NOB OVB PC PR Dynamic Random Access Memory Eletronic Design Automation (automa¸˜o de projeto ca eletrˆnico) o Memory architecture under evaluation (arquitetura de mem´ria sob avalia¸˜o) o ca Fully-cached architectures (arquiteturas somente com caches) Cache de instru¸˜es co Integer Linear Programming (programa¸˜o linear inteira) ca Intellectual Property Kilo-bytes Mega-bytes Memory Management Unit (unidade de gerenciamento de mem´ria) o Mem´ria principal o non-overlay-based overlay-based Pos-compilation time (Tempo de p´s-compila¸˜o) o ca Procedimento .

PRA RAM REF SoC SPM SRAM Procedure Allocation (aloca¸˜o de procedimentos) ca Random Access Memory Reference memory architecture (arquitetura de mem´ria de o referˆncia) e System-on-Chip (sistema integrado) Scratchpad Memory (mem´ria de rascunho) o Static Random Access Memory T-cache Cache unificada equivalente TCM UNA WCET Tightly Coupled Memory (mem´ria fortemente acoplada) o Uncached architectures (arquiteturas sem cache) Worst-Case Execution Time (tempo de execu¸˜o do pior ca caso) .

Taxa de invoca¸˜o do bloco b´sico Di . ca c Matriz de caracteriza¸˜o de lucro dos elementos candidatos. Overhead de energia no espa¸o de endere¸amento da SPM c c quando aloca-se o candidato Di em SPM. Tamanho (bytes) do elemento candidato Di .LISTA DE S´ IMBOLOS M EM λM CM T αi Di σi ai mi Ei pi εi wi σextra W P X xi Uma mem´ria gen´rica. Overhead de energia quando aloca-se o candidato Di em SPM. ´ a o Latˆncia da mem´ria M (expressa em ciclos de rel´gio). o Padr˜o de acessos ` mem´ria (trace). proc ou data). Matriz de caracteriza¸˜o de espa¸o dos elementos candidatos. Lucro de energia quando aloca-se o candidato Di em SPM. Energia consumida por um acesso ao elemento candidato Di . u Taxa de faltas (miss rate) do elemento candidato Di . Denota se um candidato Di est´ ou n˜o mapeado para aloca¸˜o a a ca em SPM. ca Matriz de mapeamento de elementos em SPM. τ(Di ) Fun¸˜o que mapeia um elemento candidato Di para seu tipo ca (BB. c a Tamanho total (bytes) das instru¸˜es extras necess´rias quando co a aloca-se o candidato Di em SPM. e o o Capacidade de mem´ria M (expressa em bytes). N´mero de acessos a um elemento candidato Di . Espa¸o necess´rio quando aloca-se o candidato Di em SPM. o e Energia consumida em um unico acesso ` mem´ria M. ca a εiSPM ri . a a o i-´simo endere¸o de acesso ` mem´ria. εiMP Overhead de energia no espa¸o de endere¸amento da MP quando c c aloca-se o candidato Di em SPM. e c a o Elemento de programa candidato.

Taxa de faltas combinada da I-cache e D-cache. M´dia do n´mero de acessos dos candidatos. Fator de proporcionalidade entre EMem e ETotal . Cardinalidade de H. ignoram-se os pr´ximos θ . o Energia consumida por todo o sistema. Percentagem do n´mero de instru¸˜es de carga (load ) e escrita u co (store). e u Desvio-padr˜o do n´mero de acessos dos candidatos. ca Energia consumida pelo subsistema de mem´ria da arquitetura o de referˆncia (REF). Energia consumida pelo subsistema de mem´ria. normalizada o para a arquitetura de referˆncia (REF). e Energia consumida pelo subsistema de mem´ria da arquitetura o sob avalia¸˜o (EVA).Ni Si N´mero de invoca¸˜es devidas `s itera¸˜es do la¸o do bloco u co a co c b´sico Di . n´mero de elementos candidatos u classificados como hot spots. Tens˜o de alimenta¸˜o (volts). a (ι/θ ) Taxa de amostragem do m´todo de ajuste-fino: processa-se ι e endere¸os de mem´ria. Taxa de faltas locais da D-cache.e. i. . a u Conjunto dos elementos candidatos classificados como hot spots. c o o mI mD LS mT VDD ¯ m ¯ a σ H |H| h EN EEVA EREF EMem ETotal k Taxa de faltas locais da I-cache. a N´mero de invoca¸˜es do bloco b´sico Di a partir de outro u co a bloco b´sico. a ca Taxa de faltas global dos candidatos. Frequˆncia de ocorrˆncia dos elementos candidatos classificados e e como hot spots. e Energia consumida pelo subsistema de mem´ria.

.5 ORGANIZACAO ¸ ¸˜ ˜ EM MEMORIAS DE RASCUNHO . . . Lista de S´ ımbolos . .. . .1. . . . . . . . . . . . . . .. .1 Elementos de programa . .. . . . . . . . . . . . . . . . ... .. . . . . .2.. . ..2. .. . . .. . . . ..1 Granularidade de c´digo . . . . . . . . . . . . .. . . . . . . . .... . Arquiteturas sem cache (UNAs) . . . .4 Abordagem de aloca¸˜o . . . 2. ca . . . . . . . .. . . . . . .. .. . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .2. . .. . . . . . . . . . .. .. . . . . . .. . . o 2.. . . . . .. . .. . Arquiteturas baseadas em cache (CBAs) . . . . . . ... 1 INTRODUCAO ... .2. . . . . .. . .. . . .... . .. . . ... ... . . . . . .. . .. . . .2 CARACTERISTICAS DAS TECNICAS DE ALOCACAO . .. . . . . . ca 2. . .. . .. . . . . . . .. . . .. . .1 VISAO GERAL DO PROCESSO DE ALOCACAO . . . . . . . . . . . . . . . . . . .. . . . . .. . . .4 CONSIDERACOES SOBRE AS ABORDAGENS DE ALO¸˜ ˜ EM SPM . .. .. . . . .. . . .. .. . . . . . . . . . . . . . . . 2.. . . . .. . .. . . . .. . . . . . . .. . 1.. . . . . . ..2 Granularidade de dados . 1. . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . .. . .. .. . . .. . . .1 SISTEMAS EMBARCADOS .. . . .. . . . ... . . . . . . . . . . .. . . ¸˜ ´ ´ 2. . ¸˜ 2. . . . . . . . . . . . . . . . .. .2 O SUBSISTEMA DE MEMORIA . . . . . . . . . o Mem´ria de rascunho (SPM) . . o Mem´ria cache ..3 Fase de aloca¸˜o . . . . . . . . . . . .. .. . .1. . . . . . . . . . ..... . .. . . . ... ... . . . . . . . .. . o 1. . . . . ¸˜ ˜ DESTA DISSERTACAO . . .. . . . . . .. ... . . .. . . . .2. . . . . . .... . . . . .2 Granularidade dos elementos . . . . . .2. .. . . .2. .. . o Arquiteturas somente com caches (FCAs) . . . .. . . .. . . .2 Arquiteturas para o subsistema de mem´ria .. . . . . . . . . . . .. .3 ESCOPO DESTE TRABALHO . . . 2. . . . . . . . . . . .. .2 Origem dos elementos . . 1. .´ SUMARIO Lista de Abreviaturas e Siglas . . . . . . . . .. . . . . .. . . .. . . . .1 Principais componentes do subsistema de mem´ria . . . . . . . .. . .. . . . . . ..2. . . .. . . . . . . . . ... o Mem´ria Principal (MP) . . . .4 PRINCIPAIS CONTRIBUICOES . . . . .2.2. . . . . . . 2. . .. . . . . .. . . OTIMIZACAO ¸ 31 31 33 35 36 36 38 40 40 40 40 41 41 44 45 47 47 50 51 51 52 53 53 56 57 58 61 61 67 71 75 . 2. . . . . ˜ ´ 4 EXTENSAO DE UMA TECNICA NOB PARA IN˜ DE BLOCOS BASICOS NO ESPACO DE ´ CLUSAO ¸ ˜ . ¸˜ 1. . 2. . . . . .2. . . . . 1. . . .. . . . . .1 Tipo dos elementos . . . . . .... . ... . .. .. . .. . . . . . .. . . . . . . . .. . . .. . . . . . . . . .. . .3 O ESTADO-DA-ARTE EM ALOCACAO A PARTIR DE ´ ARQUIVOS BINARIOS . . . . . . . . .. ..2.. . . . . . . . . .. . . . . . . .. . . .. CACAO ¸ 3 O PROBLEMA-ALVO . .. . . . . . . . . . . . . . ... . . .. ... .. . . . ´ 2 ALOCACAO ¸ ˜ 2... . . . .. ´ 1. . ¸˜ 2. . . . . .. . . . .. . .. . . . . . . . . . . . ... . . . . . . . . . . .. .. . . . . . . . . . . .. . . .. . .

. . . . . . . . . . . . . . . . . . . . . 86 ´ 5. .5 IMPACTO DO AJUSTE-FINO NA ECONOMIA DE ENERGIA .2 GERACAO ¸ 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 CARACTERIZACAO DOS PROGRAMAS-ALVO . . .4. . . . .6 PATCHING DE BINARIOS . . . 98 ¸˜ ´ 6. 80 4. . . . . . . . 76 ¸˜ 4. . . .7 GERACAO ¸ IDA . . . 84 5 AJUSTE-FINO DE CACHES PARA AVALIACAO DA ¸˜ ˜ EM SPMS . . . . . . . . . . . . . . . . . . . . 82 ˜ DE SA´ 4.4. . . . . . . . . .2 IMPORTANCIA DO AJUSTE-FINO . . . . . . . . . . . . . . . . . . . .4. . . 88 ´ 5. . . . . . .4. . . . . 95 ¸˜ ˜ DOS EXPERIMENTOS .3 IMPORTANCIA DA CORRELACAO ENTRE TAMANHO ¸˜ ´ DA CACHE PRE-AJUSTADA EQUIVALENTE E TAMANHO DA SPM .2 Espa¸o necess´rio para alocar um bloco b´sico . . .1 Lucro de energia de um bloco b´sico . .1 FLUXO DE TRABALHO . . . . . . . . . . . . . . . . . . 117 ˆ 7. . . . . . . . . . . . . 93 6 VALIDACAO EXPERIMENTAL E RESULTADOS . . . . . . . . . . . . . . 96 6. . . . . . . . . 109 6. . . . . . . . . . . . . . . . . . . . 103 6. . . . . . . . . 81 a 4. . . . . . . . . . . . . . . . . . . . . . .3 Pol´ ıtica de aloca¸˜o de maior eficiˆncia energ´tica ca e e para um determinado programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.1 EVIDENCIA EXPERIMENTAL SOLIDA . . . 117 ˆ ´ 7. . . . . . . 95 ¸˜ 6. . . . . . . . 112 6. . . . . . . . . .2 O METODO SPCE . . . 88 ¸˜ ˜ DAS CACHES PRE-AJUSTADAS . . . . . . . . . . . . . . . . . . . . . . . . .1 Sensibilidade da economia ao dimensionamento da SPM . . . .7 Determina¸˜o de um escopo para utiliza¸˜o de BBA112 ca ca 6. . . . . . . . . . 85 ALOCACAO ¸ ´ 5. . . . . . . 82 ´ 4. . .2 Pol´ ıtica de aloca¸˜o de maior eficiˆncia energ´tica ca e e para uma determinada capacidade de SPM . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . .4. . . 103 6. . . . . . . . . . . . . . . . 90 ´ 5. .4. . . . . . . . . . . . . .4 ANALISE DOS RESULTADOS . . . 76 4. . . . . . . . . . . . . . . .6 Ocupa¸˜o das SPMs ´timas . . . . . . . . . . . . . . . . . 109 o 6. . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . 107 6. . . . . . . . . . . 114 ca ˜ 7 CONCLUSOES E PERSPECTIVAS .1 AS TECNICAS DE AJUSTE-FINO DE CACHES . . . . . . . . . . . . . . . .4 CARACTERIZACAO DE LUCRO E ESPACO . . . . . . . .8 Compara¸˜o com trabalhos correlatos . . . . . . . .5 MAPEAMENTO EM SPM . . . . 117 ˆ 7. . 80 ¸˜ ¸ 4.1 CONFIGURACAO EXPERIMENTAL . . . . . . . . . . . . . . . . . . . . . . . . .4 DETERMINACAO ¸ 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Correla¸˜o entre economia de energia e taxa de falca tas para SPMs grandes . . . . . . . 90 ´ 5. . . . . . . . . . . . . . . . . . . . 82 c a a 4. . .3 PROFILING DO PROGRAMA . . . . . 112 ca o 6. . 118 . . . . . . . . . .6 CALCULO DA CACHE UNIFICADA EQUIVALENTE . . . . .4. . . . . . . . . . . . . . . . .4 Capacidade ´tima da SPM . .3 IMPLEMENTACAO DO METODO SPCE .2 CARACTERIZACAO DOS ELEMENTOS . . . . .4. . . . . . . . . . . .

. .O m´todo SPCE . . . . . . . . . . . . . . . .5 POL´ ITICA DE ALOCACAO (GRANULARIDADE DE CO¸˜ DIGO) . . . . . . . . . . . . . . . . . . . 122 Referˆncias Bibliogr´ficas . . . . . . . . . . 141 . . . . . .7. . . . . . . . .2 Diretrizes para dimensionamento . . . . . . . . . 123 e a ˆ APENDICE A -. . . . . . . . . . . . . .4. 118 7. . . . . . . . . . .4 DIMENSIONAMENTO DA SPM . . . . 133 e ˆ APENDICE B -. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 PERSPECTIVAS . 121 7. . . . . . . . . .3 SPMs grandes e as taxas de faltas . . .Correla¸˜o entre economia de energia ca total e de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Impacto do dimensionamento . . . . . . . . . . . . . .5. . . . . . . . . . . . . . 120 ´ 7. . . . .5. . . . . . . . . . . 118 7. . . . . . . . . . . . . . . . . . . . . . . . . . .2 Aloca¸˜o de blocos b´sicos (BBA) . . . . . . . . . . . . . . . . . 119 7. . .4. . . .4. . . . 120 7. . . . . . . 120 ca a ´ 7. . . 120 ca 7. . .6 REAVALIACAO EXPERIMENTAL DAS TECNICAS NOB ¸˜ ´ A PARTIR DE ARQUIVOS BINARIOS . . . . . .1 Aloca¸˜o de procedimentos (PRA) . . . . . . . . . . . . . .

.

De outro. o ca Inicialmente na forma de enormes mainframes. De um lado. incorporando “computadores port´teis” a a com um poder de processamento muito superior aos mainframes de outrora. Estes dispositivos seguem evoluindo rapidamente.1 SISTEMAS EMBARCADOS Em pouco mais de duas d´cadas. transformaram-se em compactos computadores pessoais. ca a passaram por sua pr´pria revolu¸˜o.31 1 INTRODUCAO ¸˜ 1. pode-se citar: telefones celulares. e baterias com dura¸˜o satisfat´ria. por´m invis´ e ıvel. . fornos de a microondas. aeronaves (no computador de bordo. 2006): computa¸˜o acontecendo em todo o lugar (comca puta¸˜o ub´ ca ıqua). que causaram e uma verdadeira revolu¸˜o no modo de vida da sociedade contemporˆnea. telecomunica¸˜es.). conversores de TV digital. carros (no sistema de controle de freio ABS. do motor. a eletrˆnica de consumo evoluiu para muito al´m o e das calculadoras program´veis. tocadores de MP3. Paralelamente. cresce a demanda por uma maior capacidade de processamento e de armazenamento. a A miniaturiza¸˜o e a queda no pre¸o dos sistemas embarcados ca c permitiu que eles se disseminassem por todas as ´reas da vida humana. embora mantendo sua caracter´ ıstica de corresponderem a um dom´ espec´ ınio ıfico de aplica¸˜o — e. cada vez com maior capacidade de processamento. etc. chamada de “disappearing computer ” e (MARWEDEL. GPS. equipamentos m´dicos.). pois ca ca o tratam-se de sua principal fonte de alimenta¸˜o. entretenimento. o a De acordo com Marwedel (2006) e Verma e Marwedel (2007). sendo realizada em dispositivos com aparˆncia que foge do tradicional “gabinete e monitor” e cuja presen¸a e c n˜o se consegue identificar. de ajuste ao combust´ ıvel nos carros bicombust´ ıveis. sistema anti-colis˜o. de rob´tica e de muitas outras ´reas. aumentam os requisitos de portabilidade: redu¸˜o de tamanho e peso. ca co etc. do ar-condicionado. no sistema para pousos e decolagens a guiadas. por conta do processo de miniaturiza¸˜o de seus ca circuitos integrados. os computadores. etc. e tamb´m em e e produtos militares. cˆmeras digitais. a Como exemplos de produtos contendo sistemas embarcados.g. ca Estes “sistemas de processamento de informa¸˜o que est˜o incorca a porados em um produto maior e que normalmente n˜o est˜o diretamente a a vis´ ıveis ao usu´rio” s˜o chamados de sistemas embarcados e colaa a boram com esta nova tendˆncia. casas inteligentes.

de tamanho de c´digo. como teclados e mouses. Esta caracter´ a u ıstica tamb´m est´ relacie a onada com confiabilidade e com eficiˆncia. no controle de airbag de um autom´vel a o ou mesmo em usinas nucleares). de peso. disponibilidade a ca (sistema sempre operando). bot˜es de press˜o.g. ˆ Sistemas reativos. mas interfaces diferenciadas como telas sens´ ıveis ao toque. de custo. em transmiss˜es de ´udio ou v´ o a ıdeo) ou danos ao usu´rio (e. Sistemas embarcados n˜o a utilizam a interface convencional dos computadores pessoais. o a ˆ Restri¸˜es de tempo real. A eficiˆncia de um sistema embarcado deve acontecer e e em v´rios n´ a ıveis: energ´tica. contribuindo tamb´m para redu¸˜o do consumo de ca e ca energia. ˆ Eficiˆncia. ca ˆ Confiabilidade.32 pode-se classificar um sistema como embarcado quando este for dotado da maioria das caracter´ ısticas que seguem: ˆ Dedicados a uma certa aplica¸˜o. Alguns sistemas s˜o de alto-risco e necessitam a ser confi´veis (dependables) quanto a falhas. o controlador de ABS de um carro nunca c˜ tocar´ um CD de m´sica. Frequentemente. por se tratar de um quesito muito desejado pelos consumidores de dispositivos port´teis. pois possuem mem´ria limitada. realizando suas tarefas sempre com o m´ ca ınimo de recursos e utilizando frequˆncias de rel´gio e tens˜es de alimene o o ta¸˜o baixas. pois muitos s˜o alimentados por e a baterias.g. etc. que permitem controlar o ambiente. seguran¸a no funcionamento (safety). Sistemas de tempo-real s˜o aqueles co a em que a n˜o-realiza¸˜o de uma computa¸˜o em tempo h´bil causa a ca ca a ou perda de qualidade (e. A maioria dos sistemas ca embarcados realiza um conjunto pr´-determinado e dedicado de e fun¸oes. que diminuem quando e se permite a execu¸˜o de outros softwares. c n˜o causando nenhum mal caso falhe. finalmente. caso sejam confidenciais. a ˆ Interface de usu´rio dedicada. a para terem competitividade no mercado. conectados ao mundo f´ ısico por meio de sensores que coletam informa¸˜es `s quais o sistema reage. sistemas embarcados s˜o a reativos. o o de execu¸˜o. Por exemplo. inclusive por meio co a de atuadores. e. . e seguran¸a dos dados a c (security). A confiabilidade a abrange aspectos como: baix´ ıssima taxa de falhas (reliability). f´cil a e r´pida manuten¸˜o no caso de eventuais falhas.

essas caracter´ ısticas n˜o s˜o meros objetivos. m´xima potˆncia ou m´ximo tempo de co a e a execu¸˜o). Muitos sistemas embarcados misturam componentes anal´gicos e digitais. arquitetura e projeto do subsistema de e ca mem´rias (WEHMEYER. o Mais especificamente no dom´ ınio de sistemas embarcados voltados ` eletrˆnica de consumo. que podem ser otimizados.g. 2007). mas s˜o elevadas a a a a restri¸˜es de projeto (e. o 2007) (VERMA. com dois ou trˆs o o e n´ ıveis. MARWEDEL. os ca projetistas de sistemas embarcados (em particular de sistemas voltados ao consumidor) necessitam otimizar os componentes de hardware e software para garantir que estes objetivos ou restri¸˜es sejam satisfeitos. por se tratar do elemento de maior influˆncia e sobre estas caracter´ ısticas. que corresponde a uma significativa a o parcela destes sistemas e abrange produtos como celulares. tais otimiza¸˜es concentraram-se no proco cessador destes sistemas. co Durante muito tempo. No entanto. onde cada um destes espa¸os est´ associado o c a ou a uma mem´ria ou a uma hierarquia de mem´rias. o ca ´ 1. nos ultimos 30 anos. resultando em uma diferen¸a significativa de a o c desempenho.33 ˆ Sistemas h´ ıbridos. WANG. 2006) (JACOB. Por conseguinte.2 O SUBSISTEMA DE MEMORIA Por subsistema de mem´ria entende-se o conjunto dos diversos o componentes de mem´ria de um sistema embarcado. algumas das caracter´ a ısticas comentadas anteriormente destacam-se das demais. sendo consideradas mais importantes por impactarem diretamente na experiˆncia do usu´e a rio (VERMA. a velocidade dos processadores tem aumentado mais rapidamente do que a velocidade de acesso `s mem´rias. eficiˆncia a e energ´tica e previsibilidade (responsividade em tempo real). hoje em dia ´ amplamente e reconhecido que a parte mais importante no projeto de um sistema embarcado ´ a organiza¸˜o. conforme ser´ demonstrado na a pr´xima se¸˜o. 2007). tocadores de v´ ıdeo e ´udio e consoles de videogame. que neste caso devem ser satisfeitas. MARWEDEL. NG. MARWEDEL. Desde o surgimento dos circuitos integrados. S˜o elas: desempenho. Nos sistemas de prop´sito geral. o fator de crescimento o da velocidade dos processadores j´ atingiu. Em sistemas o embarcados podem coexistir espa¸os de endere¸amento disjuntos (dec c terminada faixa de endere¸os corresponde a uma mem´ria X e outra c o faixa a uma mem´ria Y ). e Em muitos projetos de sistemas embarcados. picos a ´ .

o subsistema de mem´ria ´ o e respons´vel por 50 a 70% do or¸amento total de potˆncia do sistema. as mem´rias. Analisando o gasto energ´tico relacionado apenas com um e processador embarcado. apesar da evolu¸˜o tecnol´gica ca o ter levado a transistores cada vez menores — o que deveria proporcionar acessos mais r´pidos —. NG. observa-se impacto significativo das caches neste consumo. o gargalo do desempenho de um sistema n˜o a se encontra no processador. Segars (2001) relata que o ARM920T dissipa .5 vezes superior ao das mem´rias (MACHANIK. enquanto o de um lado h´ a diminui¸˜o do tempo de acesso por MB. 2007). devido ao distinto funcionamento e projeto das mem´rias para cada sistema. Isso acontece porque. quesito de suma importˆncia em sistemas embarcados alimentados por bateria. que deveriam ficar menores e mais r´pidas. E a c e dentro do subsistema. a De acordo com Verma e Marwedel (2007). o a ca aumento da capacidade das mem´ria eleva o tempo de acesso global. Tais hierarquias s˜o posicionadas entre o processador e a mea m´ria principal. h´ uma necessidade constante por mais a a capacidade de mem´ria nos sistemas embarcados. Ou seja. o Embora em sistemas de prop´sito geral a diferen¸a de velocidade o c entre processador e mem´ria tenha sido mais acentuada do que em o sistemas embarcados. de outro. acessos mais ıvel custosos em termos de tempo de acesso e energia aos n´ ıveis superiores. onde cada n´ armazena temporariamente elementos o ıvel previamente acessados no n´ superior. ca Desse hiato entre a velocidade dos processadores e das mem´rias o decorre que o processador necessita esperar por muitos ciclos — possivelmente at´ centenas deles — para que a mem´ria lhe forne¸a os e o c dados desejados. Estas hieraro quias s˜o elaboradas utilizando mem´rias menores e mais r´pidas que a o a a mem´ria principal e. e o WANG. o Como uma mem´ria principal unica. Na o pr´tica. No entanto. evitando assim. sabe-se que este comportamento pode ser o estendido tamb´m para sistemas embarcados: o desempenho de um e sistema ´ dominado e limitado pelas lentas mem´rias (JACOB. 2002). por isso. o uso de hierarquias n˜o se mostrou suficientemente a eficiente para atacar um outro problema: o consumo de energia. do que resulta uma melhoria do tempo de acesso das mem´rias insuficiente para acompanhar o a evolu¸˜o dos processadores.34 de 2 a 2. mas no subsistema de mem´rias. Assim. de maior eficiˆncia energ´tica do que o e e estas. r´pida e grande o suficiente ´ o ´ a e invi´vel na atual tecnologia de mem´rias. a solu¸˜o encontrada pelos projetistas de sistemas embarcados tem ca sido compor hierarquias de mem´rias de modo a atenuar a diferen¸a o c de velocidade entre o processador e a mem´ria principal. est˜o a o a a se tornando mais densas e com mais capacidade. devido ao pre¸o extremamente a o c alto.

Dally et al. ´ conveniente que se revisem as o e caracter´ ısticas mais relevantes dos principais componentes de mem´ria: o mem´ria principal. 2008) 43% da sua potˆncia em caches. o o o .. com contribui¸˜o co ca majorit´ria dos arranjos de dados e de tag.35 Aritmética 6% Relógio e lógica de controle 24% Suprimento de instruções 42% Suprimento de dados 28% Caches 70% Figura 1: Distribui¸˜o de energia em um processador embarcado ca (DALLY et al. (2008) reportam. 1. que 70% do total de energia gasto pelo processador ´ oriundo e do suprimento de instru¸˜es (42%) e de dados (28%).1 Principais componentes do subsistema de mem´ria o Uma vez esclarecida a importˆncia do projeto energeticamente a consciente de um subsistema de mem´ria. ou seja. conforme e a Figura 1. Yu e Lin (2008) reportam que somente a mem´ria o externa ao circuito integrado (off-chip) consome algo entre 50 a 80% do total de energia.2. dataco intensive. e dos controladores das a caches. Ming. mem´ria cache e mem´ria de rascunho. J´ no caso de um sistema embarcado com processador RISC a voltado para aplica¸˜es de processamento de imagem.

a no entanto. comparadores e multiplexadores) que gerenciam implicitamente seu conte´do: verificam se a cache possui ou n˜o uma c´pia v´lida do bloco u a o a que cont´m a palavra de mem´ria requisitada. motivo a e e pelo qual passou a ser utilizada em sistemas embarcados. Sua c´lula ´ constru´ com tecnologia Static Random Access Memory e e ıda (SRAM). e por isso considerada a mais importante. mantendo seu conte´do armazenado. necessitando de 6 transistores por bit. pois demandam um unico transistor e ´ uma capacitˆncia de transistor por bit. A unidade m´ ınima de informa¸˜o em uma cache ´ chamada de ca e bloco. encontrada tanto externa (off-chip) o o quanto interna (on-chip) ao circuito integrado do processador e cujas c´lulas s˜o normalmente fabricadas com tecnologia Dynamic Random e a Access Memory (DRAM). Por esta tecnologia apresentar um maior custo por KB se comparada a uma DRAM. Como as cargas armazenadas a neste capacitor se perdem via corrente de fuga. ıdo o As caches foram constru´ ıdas com o prop´sito de serem transpao rentes ao usu´rio e ao compilador. sua latˆncia pode a e ser acomodada dentro de um ciclo de processador para o caso de uma cache prim´ria) e de maior eficiˆncia energ´tica do que as MPs.36 ´ MEMORIA PRINCIPAL (MP) ´ E a maior. torna-a extremamente r´pida (geralmente. uma cache geralmente n˜o possui grande capacidade de armazenamento. Isso. E o uma mem´ria de acesso aleat´rio. Para tanto. n˜o necessitando de nenhum suporte a a adicional da parte destes para que se tire proveito de seus benef´ ıcios. Seu conte´do ´ gerenciado u e implicitamente (sem interferˆncia do usu´rio) por um hardware dedicado: e a controlador de cache para permitir a transferˆncia de informa¸˜o entre e ca n´ ıveis hier´rquicos distintos e para o gerenciamento do conte´do. ou pelo menos a maior parte. u ´ MEMORIA CACHE Uma mem´ria cache (Figura 2) armazena c´pias de instru¸˜es o o co e/ou dos dados mais recentemente acessados. capaz de oferecer uma grande capacidade de armazenamento a baixo custo. contam com recursos extras de hardware (o arranjo de tags. mem´ria o ´ do sistema. E ela que armazena todo. esta tecnologia exige uma l´gica de controle mais complexa para restaurar periodicamente o (refreshment) estas cargas. ´ do c´digo e dos dados de um programa a ser executado no sistema. utilizando um conjunto e o . Est´ a u a localizada dentro do circuito integrado do processador (on-chip). sendo constitu´ de uma ou mais palavras de mem´ria.

a tag de seu endere¸o ´ comparada com a tag armazenada na c e entrada da cache para a qual este endere¸o ´ mapeado. considere-se uma cache com mapeamento direito. Caso sejam c e iguais. c a e o controlador da cache recupera o bloco ao qual esse endere¸o pertence c e armazena-o juntamente com sua tag. Quando n˜o cont´m.37 tag índice palavra Arranjo de tag Arranjo de dados sense sense MUX = acerto palavra Figura 2: Exemplo de mem´ria cache com mapeamento direto o de bits do endere¸o da palavra. as mem´rias cache s˜o evitadas em a o a sistemas de tempo real sob restri¸˜es r´ co ıgidas (hard real-time constraints) . o que se chama de acerto na cache (cache hit). embora uma mesma entrada seja compartilhada com n outros endere¸os. Sempre que o processador solicita a leitura de uma c palavra. Para ilustrar o funcionamento de uma cache. ela ´ organizada utilizando e um mapeamento n : 1 entre endere¸os de mem´ria e entradas da cache: c o um certo endere¸o de mem´ria estar´ sempre associado ` uma mesma c o a a entrada da cache. Neste caso. o que caracteriza uma falta o ıvel o na cache (cache miss). Por conta desse comportamento de dif´ previsibilidade (pois ıcil depende do padr˜o de acesso). denominado tag. a palavra requisitada est´ presente na cache e ´ devolvida para o a e processador. significa que a palavra n˜o se encontra na cache e ´ buscada a e do pr´ximo n´ da hierarquia de mem´ria. Caso sejam diferentes.

38 ou requerem an´lise cuidadosa com ferramentas sofisticadas para n˜o se a a superestimar o pior caso de tempo de execu¸˜o (worst case execution ca time — WCET ) mas obter limites superiores seguros. Devido ` ausˆncia do arranjo de tags. pois n˜o h´ u e a a a recursos adicionais de hardware. O projetista do sistema embarcado deve instrumentar o o c´digo atrav´s do uso de um framework de compila¸˜o com suporte ` o e ca a aloca¸˜o em SPM. como as mem´rias de rascunho. Contudo. interna ao circuito integrado (on-chip). ´ vantajoso gerenciar explicitae mente seu conte´do para obter uma redu¸˜o significativa no consumo u ca de energia e no tempo de execu¸˜o. pois permitem o c´lculo exato do WCET (ao contr´rio das caches). a SPM ´ mais eficiente em termos e de ´rea e energia. ´ MEMORIA DE RASCUNHO (SPM) Uma mem´ria de rascunho (Scratchpad Memory — SPM) ou o mem´ria fortemente acoplada (Tightly Coupled Memory — TCM) (Fio gura 3) ´ pequena. co Devido a especificidade dos aplicativos. ao contr´a a rio destas. ainda que isto implique em perda de ca generalidade do software. Al´m disso. semelhantemente `s caches. comparadores e multiplexadores) u consome uma certa quantia de energia. o hardware extra necess´rio ao gerenciamento ime a pl´ ıcito de conte´do da cache (tag. tem emprego certo em sistemas de tempo real. um controlador o u de SPM ou uma Memory Management Unit (unidade de gerenciamento de mem´ria) (MMU). Esta energia e e adicional pode ser evitada com outros tipos de mem´ria de gerencio amento expl´ ıcito de seu conte´do.g. como sua latˆncia ´ fixa (geralmente um ciclo do proe e e cessador). o A motiva¸˜o para seu uso adv´m do fato que os sistemas embarcaca e dos executam aplicativos espec´ ıficos (ou classes espec´ ıficas de aplica¸˜es). Todavia. que deve ser personalizado para cada sistema embarcado. o uso de SPM requer o gerenciamento a expl´ ıcito de seu espa¸o de endere¸amento atrav´s de instrumenta¸˜o c c e ca do c´digo. c c o e seu conte´do ´ gerenciado explicitamente (pelo usu´rio). disjunto da MP. u o mostradas abaixo. que pode ou n˜o ser combinado com algum suporte ca a para seu gerenciamento e/ou c´pia do conte´do — e. Al´m disso. e constru´ e ıda com tecnologia SRAM. possui um espa¸o de endere¸amento pr´prio. a a . o que pode influenciar negativamente a eficiˆncia energ´tica do sistema embarcado. dos comparadores e dos a e multiplexadores presentes nas caches.

Ao contr´rio ca a das caches. a explora¸˜o de SPMs ´ uma ´rea de pesquisa mais recente. as abordagens de aloca¸˜o (estas duas classes) e as ca diversas t´cnicas propostas na literatura ser˜o abordadas com mais e a profundidade no Cap´ ıtulo 2. ca o As t´cnicas de aloca¸˜o em SPM s˜o divididas costumeiramente e ca a em duas classes. i.e. . os trechos de programa s˜o alocados em SPM no in´ da execu¸˜o da aplica¸˜o a ıcio ca ca e s˜o mantidos l´ at´ o t´rmino da execu¸˜o. de tempo de execu¸˜o ou de ambos. ca e a N˜o se pode afirmar que existe uma t´cnica de aloca¸˜o dominante. Na segunda. os trechos a a e e ca presentes em SPM s˜o alterados em tempo de execu¸˜o. Na primeira. a aloca¸˜o de um trecho pode ocupar o mesmo ca ca espa¸o previamente alocado para outro trecho. pois a e ca depende da aplica¸˜o-alvo e da arquitetura do subsistema de mem´ria. A aloca¸˜o de c´digo c ca o e dados em SPM. de acordo com a abordagem de aloca¸˜o utilizada: nonca overlay-based (NOB) e overlay-based (OVB).39 Arranjo de dados SPM Endereço pertence ao espaço da SPM Decodificador de endereços Endereço pertence ao espaço da MP sense palavra MP Figura 3: Exemplo de mem´ria de rascunho (SPM) o A aloca¸˜o de trechos de programa em SPM ´ conduzida de ca e modo a otimizar um determinado objetivo — geralmente a redu¸˜o do ca consumo de energia. durante a a ca execu¸˜o do programa.

seja por conta de sua melhor previsibilidade em sistemas de tempo-real.2. . n˜o possuem SPMs. o sistema se beneficia da presen¸a de cache para a e c redu¸˜o do consumo de energia e tempo de execu¸˜o. Eventualmente. possuem uma ou mais SPMs. As caches podem ser unificadas (numa mesma cache s˜o colocados a instru¸˜es e dados) ou separadas (uma cache para instru¸˜es e outra co co para dados). ilustradas pela Figura 4(c). Como nas UNAs.40 1. Pode-se pensar nas UNAs c c como arquiteturas onde a SPM substitui a cache.2 Arquiteturas para o subsistema de mem´ria o Dados os componentes de mem´ria descritos acima e tendo sempre o como base a presen¸a de SPMs. localizadas em espa¸o de endere¸amento disjunto da MP.g. possuem cache(s) e SPM trabalhando conjuntamente. mesmo quando parte do c´digo ou dos dados n˜o o a ´ alocado em SPM. 4(b) e 4(c). por´m a cache continua amenizando os acessos c o e a ` MP. diferentemente ca ca das UNAs. a e e ARQUITETURAS BASEADAS EM CACHE (CBAS) Arquiteturas baseadas em cache (cache-based architectures — CBAs). a SPM ´ localizada num espa¸o de e c endere¸amento pr´prio. ilustradas pela Figura 4(b). Por conta disso. ilustradas pela Figura 4(a). seja pelo menor consumo de ´rea ou pela eficiˆncia energ´tica. ARQUITETURAS SOMENTE COM CACHES (FCAS) Arquiteturas somente com caches (fully-cached architectures — FCAs). uma delas pode estar ausente — e. pode-se imaginar c trˆs principais arquiteturas para um subsistema de mem´ria. sendo compostas a apenas por um ou mais n´ ıveis de caches entre o processador e a MP. co ARQUITETURAS SEM CACHE (UNAS) Arquiteturas sem cache (uncached architectures — UNAs). um subsistema apenas com cache de instru¸˜es e MP. como e o retratadas pelas Figuras 4(a). sem cache de dados. centro deste trabalho.

uma an´lise mais atenta das t´cnicas OVB propostas a e na literatura revela fraquezas que podem ser eventualmente contornadas por t´cnicas non-overlay-based (NOB). Neste caso. pois permite que um determinado trecho de programa seja acessado em SPM somente enquanto promove economia. a abordagem overlay-based (OVB) tem do´ minado o cen´rio das t´cnicas de aloca¸˜o em SPM. as t´cnicas OVB mostram-se superiores `s NOBs equivalenca e a tes. Por´m. e. a e ca a aptid˜o destas t´cnicas em explorar dinamicamente as propriedades a e de programa viabiliza maiores economias. manipulando arquivos bin´rios. mandat´ria em t´cnicas e ca o e de tempo de compila¸˜o. Aparentemente. a manipula¸˜o de arquivos-fonte.41 CPU Cache (a) FCA MP CPU MP SPM (b) UNA CPU Cache MP SPM (c) CBA Figura 4: Arquiteturas-alvo poss´ ıveis para o subsistema de mem´ria o 1. o e Para ser capaz de incluir bibliotecas no espa¸o de otimiza¸˜o. inviabiliza a aloca¸˜o de trechos contidos em ca ca bibliotecas. Quando operam em tempo de e compila¸˜o. uma c ca t´cnica qualquer — independente de OVB ou NOB — deve operar em e tempo de p´s-compila¸˜o. cujo c´digo-fonte dificilmente ´ disponibilizado. Contudo.3 ESCOPO DESTE TRABALHO Nos ultimos 6 anos. ceda seu lugar para outros a trechos que permitam maiores lucros. quando n˜o mais. o ca a .

identificaram-se dois fatores com consider´vel influˆncia: a e a e arquitetura-alvo e a configura¸˜o das caches. Esta escolha ´ totalmente plaus´ e e ıvel. tais t´cnicas `s vezes estabelecem uma compara¸˜o e a ca direta com uma t´cnica proposta para uma arquitetura diferente da e sua. Para uma compara¸˜o mais justa da economia obtida pelas ca t´cnicas. Logo. o presente trabalho argumenta que a configura¸˜o arbica tr´ria ou ad hoc das caches de referˆncia2 conduz a resultados superesa e 1 Tal escolha trata-se somente de limita¸˜o de escopo. Egger et al. TALLA. o e ıvel a ca o Ignorando isto. CERMAK. o e mostram-se mais naturais para arquivos bin´rios. ou se limitam a alocar apenas c´digo. alocando facilmente a c´digo e dados de bibliotecas sem a necessidade de recursos adicionais o de hardware. superestimando seus resultados — por exemplo. este trabalho adota uma CBA como sua arquitetura-alvo1 . o que n˜o ´ fact´ a e ıvel em certos sistemas. desprezando o fato de que o subsistema de a mem´ria ´ extremamente sens´ ` configura¸˜o das mem´rias cache. favorecendo ca os ganhos da UNA. ca Observou-se que as diversas t´cnicas de aloca¸˜o em SPM propose ca tas na literatura consideram arquiteturas-alvo distintas. o aparentemente superiores. A an´lise das t´cnicas de aloca¸˜o em SPM mais recentes tamb´m a e ca e evidencia uma preferˆncia por CBAs. GOLSTON. principalmente quanto ` presen¸a (CBAs) ou n˜o (UNAs) de caches. 2000. No caso das t´cnicas ca e de aloca¸˜o em SPM. Assim. As t´cnicas NOB. geralmente as arquiteturas de referˆncia n˜o possuem SPMs e ca e a a arquitetura-alvo ´ gerada adicionando-se uma SPM a arquitetura de referˆncia. (2004) (CBA) e relata ganhos de 24% em redu¸˜o de energia. Assim. 2 Uma cache de referˆncia pertence ` chamada arquitetura de referˆncia. para fins de um subsistema de mem´ria mais realista e de uma compara¸˜o mais justa com as t´cnicas o ca e mais recentes. quando comparadas com suas correspondentes OVBs. dado que a combina¸˜o de caches com SPMs est´ se tornando cada vez ca a mais comum em sistemas embarcados (MALIK. Trata-se e a e de uma arquitetura cujo consumo de energia ´ comumente utilizado como referˆncia e e para a compara¸˜o dos resultados obtidos pela arquitetura-alvo. e ` e . (2006) (UNA) compara com Angiolini et al. MOYER. contudo. 2007). o que n˜o ´ justo pois a presen¸a da cache ca a e c em uma CBA diminui o potencial de otimiza¸˜o da SPM. uma vez que a t´cnica ca e utilizada neste trabalho pode ser facilmente aplicada sobre UNAs. o presente trabalho apresenta uma reavalia¸˜o experica mental da abordagem NOB. desprezando dados. e tratam este a c a como um quesito secund´rio. de modo a verificar qual a efic´cia destas a t´cnicas mais simples na redu¸˜o do consumo de energia do subsistema e ca de mem´rias.42 as t´cnicas OVB apresentam complicadores: necessitam de hardware e dedicado.

Com isso. s˜o identificadas as caches de instru¸˜es e de dados a co de maior eficiˆncia energ´tica. o que permite avaliar a economia ca a e com respeito `s caches pr´-ajustadas. Por meio da t´cnica de ajuste-fino (cache-tuning) proposta por e Viana (2006). Tanto o n´mero de programas a o u como de casos avaliados ´ bem superior ` maioria dos relatados pelos e a demais trabalhos publicados em aloca¸˜o de SPM (de todos os trabalhos ca citados na bibliografia somente o de Falk e Kleinsorge (2009) apresenta resultados para um maior n´mero de programas). por o meio da correla¸˜o dos resultados obtidos com SPMs cujo tamanho ´ ca e parametrizado com rela¸˜o ` cache pr´-ajustada equivalente. realiza-se a aloca¸˜o de c´digo e e ca o dados para tamanhos distintos de SPM. que. ´ a que considera o maior espa¸o de otimiza¸˜o: e a e c ca . os valores de energia obtidos s˜o normalizados com rela¸˜o ` arquitetura de referˆncia. e a 4. ca a e Para a aloca¸˜o de trechos dos programas em SPM. da mesma forma como a as caches n˜o-ajustadas relatadas na literatura influenciam. a 3. gerados por meio de varia¸˜o do tamanho da SPM e da granularidade ca para divis˜o do c´digo do programa. a e Os resultados apresentados mostram que a economia obtida em CBAs pelas t´cnicas NOB que manipulam bin´rios para a inclus˜o de e a a bibliotecas no espa¸o de otimiza¸˜o pode ser t˜o boa quanto a obtida c ca a pela abordagem OVB (a qual. e e 2. Finalmente. utilizou-se ca a t´cnica NOB de Mendon¸a (2009. u Estes resultados tamb´m tra¸am diretrizes para a identifica¸˜o e c ca do tamanho ´timo de SPM (em termos de economia de energia). 2010). o qual servir´ como base para o dimensionamento da a SPM. escolhidos como subm´lu tiplos do tamanho da cache pr´-ajustada equivalente.. para comporem a arquitetura de e e referˆncia. Estima-se o tamanho de uma “cache pr´-ajustada equivalente unificada”.43 timados de economia.e. pretende-se evitar que uma SPM de tamanho fixo e arbitr´rio influencie os resultados. inclusive. Utilizando uma t´cnica NOB. ´ mais complexa). este a trabalho reporta resultados para caches pr´-ajustadas (i. Para superar tal inexatid˜o na literatura. Trata-se de e evidˆncia experimental s´lida. dentre as t´cnicas e c e at´ ent˜o propostas. inferida sobre um conjunto significativo e o de 20 programas de benchmark que totalizam 240 casos avaliados. ajustada e previamente ` aloca¸˜o em SPM) para cada programa de benchmark a ca da seguinte maneira: 1.

pode-se elencar: co e ˆ Implementa¸ao da t´cnica de ajuste-fino de mem´rias cache de c˜ e o Viana (2006). 1. a ˆ Extens˜o da t´cnica de Mendon¸a (2009.. foram publicados nos anais do IEEE Computer Society c Annual Symposium on VLSI — ISVLSI 2010 (VOLPATO et al.44 c´digo e dados globais. Os resultados tratando somente da extens˜o da t´cnica de a e Mendon¸a et al. n˜o a a ´ permitida uma granularidade mista (procedimentos e blocos b´sicos e a simultaneamente). 2010). 2011). a julgar por uma an´lise superficial da literatura.4 PRINCIPAIS CONTRIBUICOES ¸˜ Como contribui¸˜es t´cnicas deste trabalho. sob uma perspectiva de pr´-ajuste da cache. a c˜ o a como alternativa ` granularidade de procedimentos. Entretanto. incluindo aqueles oriundos de bibliotecas. e considera trechos de c´digo somente na granularidade de a o procedimentos. De maneira an´loga ` varia¸˜o do tamanho da SPM. que aparentemente estaria suplantada pela abordagem overlay-based (OVB). ˆ A no¸˜o de cache equivalente unificada para correlacionar as ca capacidades da SPM e das caches determinadas via ajuste-fino. a varia¸˜o a a ca ca da granularidade de c´digo permite que sejam tra¸adas diretrizes para a o c identifica¸˜o da melhor granularidade para um certo tamanho de SPM. Sobre esta t´cnica realizou-se uma extens˜o que permite e a o suporte ` aloca¸ao de c´digo na granularidade de blocos b´sicos. O presente trabalho tamb´m apresenta as seguintes contribuie ¸˜es cient´ co ıficas: ca e ˆ Reavalia¸˜o experimental. Esta o t´cnica opera em tempo de p´s-compila¸˜o manipulando arquivos-objeto e o ca reloc´veis. foram resumidos em artigo submetido ao Symposium on e Integrated Circuits and Systems Design — SBCCI 2011 (VOLPATO et al. para uma CBA considerando caches pr´-ajustadas. 2010) para prover suporte a e c ` granularidade de blocos b´sicos (alternativamente ` granularia a a dade de procedimentos). ca Os resultados aqui descritos. adaptada ` infraestrutura experimental.. a ˆ Evidˆncia experimental s´lida (baseada em um n´mero de prograe o u mas e de casos bem superior ` maioria dos trabalhos correlatos) a . da abordagem non-overlay-based (NOB).

e fazem-se consideca ra¸˜es sobre os principais trabalhos correlatos e suas caracter´ co ısticas. Por fim. O Cap´ ıtulo 5 aborda a necessidade do ajuste-fino de caches para cada programa. com o intuito de permitir c a escolha da granularidade de blocos b´sicos como alternativa ` de a a procedimentos. Tamb´m descreve o m´todo ca e e de ajuste-fino utilizado como infraestrutura para este trabalho e detalhes de sua implementa¸˜o. apresenta os resultados do ajuste-fino ca para um conjunto de programas de benchmark e. antes da aloca¸˜o em SPM. para servir de referˆncia a e ao dimensionamento da SPM. ca e O Cap´ ıtulo 7 mostra as conclus˜es deste trabalho. 2010). e ca descreve-se o estado-da-arte em aloca¸˜o para SPM. . bem como o algumas perspectivas para trabalhos futuros. No Cap´ ıtulo 6 s˜o abordados a configura¸˜o experimental utia ca lizada. o c´lculo de uma cache equivalente (unificada). seu prop´sito e a imensa variedade de o caracter´ ısticas relacionadas com as t´cnicas de aloca¸˜o. 1. a partir destes. No Cap´ ıtulo 3 s˜o revistos conceitos fundamentais para a formua la¸˜o do problema-alvo. e a ca valida¸˜o experimental da t´cnica. o procedimento utilizado na gera¸˜o dos experimentos. Em seguida.45 de que a abordagem NOB deveria ser adotada na constru¸˜o de ca alocadores para SPM capazes de considerar elementos de biblioteca. ca a O Cap´ ıtulo 2 apresenta em mais detalhes o processo de aloca¸˜o ca de trechos de programa em SPM. no contexto de sistemas que n˜o podem dispor de hardware a de suporte especializado. ca O Cap´ ıtulo 4 descreve a extens˜o proposta por este trabalho a a e ` t´cnica NOB de Mendon¸a (2009.5 ORGANIZACAO DESTA DISSERTACAO ¸˜ ¸˜ O restante desta disserta¸˜o est´ organizado como segue.

46 .

1. ´ oferecida uma vis˜o geral do processo e a de aloca¸˜o. O estado-da-arte destas t´cnicas ´ exposto em e e maiores detalhes. ca ˜ 2. Para o tanto. como a discutido na Se¸˜o 1. o que ´ sumarizado na forma de tabee las. uma imensa gama de t´cnicas para aloca¸˜o em SPM foram e ca propostas. e.47 ´ 2 ALOCACAO EM MEMORIAS DE RASCUNHO ¸˜ Este cap´ ıtulo trata em detalhes da aloca¸˜o em mem´rias de rasca o cunho (SPMs). portanto. Finalmente. Em seguida s˜o definidas o e ca a as diversas caracter´ ısticas que dizem respeito ` aloca¸˜o: os elementos a ca de programa. o como as caches. ´ poss´ a ca e ıvel identificar etapas comuns ` a grande maioria destas t´cnicas. Dentre estas t´cnicas. Diversas t´cnicas propostas na literatura s˜o classificadas ca e a quanto a estas caracter´ ısticas. suas entradas e sa´ ıdas est˜o representadas por elipses e os a retˆngulos simbolizam as etapas do processo. pois.1 VISAO GERAL DO PROCESSO DE ALOCACAO ¸˜ A aloca¸˜o de trechos de programa em SPM tem o objetivo ca de otimizar o sistema embarcado no seu consumo de energia. sua origem. Estes s˜o os objetivos mais usuais. tipo e granularidade. s˜o feitas considera¸˜es sobre a aloca¸˜o a co ca em SPM.2). Atingir estes objetivos exige que o software seja modificado de modo que parte dos endere¸os a serem acessados recaiam na SPM. a fase e a abordagem de aloca¸˜o. e Um fluxo de trabalho gen´rico para t´cnicas de aloca¸˜o em SPM e e ca ´ ilustrado na Figura 2. a c qual apresenta menor tempo de acesso e menor consumo de energia por acesso que os demais componentes do subsistema de mem´ria. Os pontos s´lidos indicam o in´ e o fim e o ıcio do fluxo. Primeiramente. ou ambos.1.2. seu prop´sito e a descri¸˜o das etapas que usualmente ca o ca comp˜em as t´cnicas de aloca¸˜o em SPM. tempo de acesso. s˜o capazes de considerar c´digo encapo ca a o sulado em bibliotecas. SPMs possuem melhor eficiˆncia energ´tica e ca e e de desempenho do que outros componentes do subsistema de mem´ria. enfatizam-se aquelas que s˜o o foco desta e a disserta¸˜o: t´cnicas que manipulam arquivos bin´rios (em tempo de ca e a p´s-compila¸˜o). principalmente do ponto de vista da caracter´ ıstica denominada abordagem de aloca¸˜o. a As entradas da t´cnica s˜o o conjunto de arquivos do programa e a . Apesar de bem variadas em suas caracter´ ısticas (conforme ser´ explicado na Se¸˜o 2.

48 Início Profiling Profiling Caracterização das memórias Mapeamento Mapeamento Arquivo(s) com código do programa Patching Patching Arquivo(s) conscientes de SPM Fim Figura 5: Fluxo de trabalho gen´rico para t´cnicas de aloca¸˜o em SPM e e ca .

ca ca fazem-se tamb´m necess´rios os valores de energia por acesso para cada e a componente de mem´ria. Por meio desta lista. considere-se que o objetivo da otimiza¸˜o desejada consiste na redu¸˜o do consumo de energia. bem como o custo desta aloca¸˜o (neste exemplo. deve ser tra¸ado um perfil (profile). e . ou seja. acessos a trechos ca a ca de pilha podem estar fora do alcance de uma t´cnica (JANAPSATYA. conhecidas como profile-driven. e pelo tempos de acesso e pela energia por acesso das mem´rias. Isto ca e ocorre na primeira etapa da t´cnica. pode-se dizer que os ca maiores lucros ser˜o obtidos quando alocados para SPM os trechos de a programa com maior gasto energ´tico e menor tamanho. A segunda etapa ´ o mapeamento. Para o tornar este exemplo mais realista. obtendo-se a lista de todos os endere¸os de instru¸˜es c co e dados acessados. denominada trace. caso estejam em formato ca de c´digo-fonte. e submete-se o bin´rio execut´vel a um simulador do o a a processador-alvo. idenca c tificando a contribui¸˜o energ´tica de cada trecho do programa. o o Este conjunto de caracter´ ısticas geralmente ´ composto pela capacidade. O uso de entradas com um padr˜o de acesso muito diferente das entradas a reais mais frequentes da aplica¸˜o a ser otimizada tende a n˜o trazer ca a ganhos elevados para a maioria dos casos. quando alocado em SPM. c A etapa de mapeamento procura sempre identificar o conjunto dos trechos de programa que. Utilizando as a caracter´ ısticas das mem´rias do sistema-alvo — em particular da SPM — o e as informa¸˜es obtidas pelo profiling. Tamb´m ´ e e e preciso salientar que esta sele¸˜o ocorre sempre dentro do espa¸o de ca c otimiza¸˜o da t´cnica. ca a quantidade de espa¸o de armazenamento da SPM a ser gasto). o qual consiste em determie nar quais trechos do programa ser˜o alocados para SPM. denominada de profiling . Por exemplo. e Nestas t´cnicas. calcula-se o lucro (profit) obtido co da aloca¸˜o de cada trecho de programa para a SPM (a redu¸˜o do ca ca consumo de energia). e O meio mais frequente para realiza¸˜o do profiling ´ via simuca e la¸˜o: compilam-se os arquivos de entrada. o resultado final e deriva muito da representatividade das entradas utilizadas para profiling. e que n˜o foi proposta at´ o presente momento ca e a e uma t´cnica que considere todo o c´digo (instru¸˜es e dados) da aplie o co ca¸˜o como candidato ` otimiza¸˜o. calcula-se — analiticamente ou por meio de um simulador do subsistema de mem´ria o — o gasto energ´tico de cada trecho do programa. De modo simplificado. melhor satisfa¸a c o objetivo da otimiza¸˜o.49 (em formato de c´digo-fonte ou bin´rio) e as caracter´ o a ısticas das mem´o rias que comp˜em o subsistema de mem´ria do sistema embarcado alvo. o Para otimizar o software de modo a reduzir o consumo de energia induzido por sua execu¸˜o.

o patching consiste no acr´scimo de instru¸˜es no e co c´digo. PARAMESWARAN. se em ca tempo de compila¸˜o ou de p´s-compila¸˜o. Normalmente. utilizando os mesmos o arquivos de entrada usados no profiling ou variando-os. quando as entradas s˜o arquivos bin´rios.1 e ser´ detalhado no c˜ a Cap´ ıtulo 4. mas ´ incapaz de alocar trechos de c´digo. pode ainda ser necess´rio executar novamente o compilador ou o a linkeditor. Os a arquivos de entrada. como a primeira. J´ uma outra t´cnica e a e (AVISSAR. tipo e granularidade destes elementos. ca o ca . finalmente. 2002) pode conseguir alocar estes trechos. de modo a refletir o resultado da etapa de mapeamento. Por o a a fim. descobrir suas limita¸˜es e maneiras de co sobrepˆ-las. a ca aos arquivos de entrada considerados e. aos elementos de programa. ca costuma-se submeter este bin´rio consciente de SPM a um simulador a do processador e do subsistema de mem´ria-alvo. ´ 2. para gerar o arquivo bin´rio otimizado para SPM. a Para verificar os resultados obtidos pelo processo de aloca¸˜o. a a ca ˆ a origem. quando se trabalha com c´digo-fonte. ou na c´pia ou reloca¸˜o o o o ca de trechos de c´digo. O fluxo de trabalho proposto na presente disserta¸˜o ´ uma ca e especializa¸ao do fluxo apresentado na Figura 2. ao pr´prio processo o de aloca¸˜o. Estas caracter´ ca ısticas tˆm impacto direto nos ganhos obtidos e pela aloca¸˜o. BARUA. s˜o modificados a para que os elementos mapeados para SPM sejam de fato copiados para o espa¸o de endere¸amento desta mem´ria quando da execu¸˜o do c c o ca programa. motivo pelo qual se faz necess´rio entendˆ-las para bem ca a e explorar suas potencialidades. independentemente de seu formato. ˆ a fase em que ocorre a aloca¸˜o dos elementos para SPM. 2006b) e n˜o ser˜o alocados.2 CARACTER´ ISTICAS DAS TECNICAS DE ALOCACAO ¸˜ As t´cnicas de aloca¸˜o para SPMs s˜o influenciadas por uma s´rie e ca a e de caracter´ ısticas relacionadas ` aplica¸˜o. STEWART. ina a dependentemente de seu consumo energ´tico. o As principais caracter´ ısticas que influenciam as t´cnicas de alocae ¸ao para SPM s˜o: c˜ a ˆ que elementos de programa s˜o considerados candidatos ` aloca¸˜o. e o Na ultima etapa tem lugar o patching dos arquivos de entrada ´ necess´rios.50 ´ IGNJATOVIC.

2. de todas as t´cnicas apresentadas aqui. o ca a ca maior a possibilidade de maximizar os ganhos decorrentes da aloca¸˜o. a partir deste ponto elementos de programa ser˜o referenciados simplesmente como elementos.2.1. a Por outro lado. (2009) n˜o suportam este tipo de elemento. ou se os elementos s˜o copiados ca a para a SPM no come¸o da execu¸˜o e ali permanecem at´ seu c ca e t´rmino. em globais escalares. e Estas caracter´ ısticas s˜o descritas e exemplificadas nas se¸˜es a co posteriores. (2007) e Deng et al. o o ca pode-se considerar como elementos de programa trechos que correspondam a procedimentos. pode-se considerar a como elementos de programa trechos que correspondam a vari´veis e a estruturas de dados. e portanto. os elementos de dados costumam ser categorizados. a 2. globais ca . Barua e Stewart (2002). objeto ou execut´vel). De fato.2. Por elementos de programa consideram-se trechos ca de um programa — sejam de c´digo ou de dados — que possuem um sigo nificado l´gico. para fins de aloca¸˜o em SPM. os elementos podem ser divididos em elementos de c´digo — grupos de instru¸˜es a serem executadas pelo processador o co — e elementos de dados. por exemplo. a ˆ finalmente. quanto maior a abrangˆncia dos e elementos considerados no que diz respeito ao seu tipo e origem. ca Por simplicidade. apenas as e e de Kandemir et al.1 Tipo dos elementos Quanto ao tipo. (2001). tratando-se do c´digo da aplica¸˜o.1 Elementos de programa Uma das principais caracter´ ısticas das t´cnicas de aloca¸˜o para e ca SPMs diz respeito aos elementos de programa considerados como candidatos para aloca¸˜o. maior o percentual de c´digo da aplica¸˜o candidato ` aloca¸˜o. Elementos de c´digo s˜o suportados pela grande maioria das o a t´cnicas. a abordagem de aloca¸ao — se existe reloca¸˜o de c˜ ca elementos durante a execu¸˜o. J´ tratando-se dos dados. Elementos de programa podem ser caracterizados de acordo com seu tipo e sua origem. Neste sentido.51 ˆ o tipo de arquivo de entrada utilizado (fonte. Cho et al. Avissar. Assim.

Verma. Dominguez e Barua (2006). que normalmente n˜o disponibilizam seu c´digo-fonte.2 Origem dos elementos Quanto ` sua origem. (2007) e Deng et al. Cho et al. (2009). Lee e Shin (2008) Egger et al. (2007). Ignjatovi´ e c Parameswaran (2006b) Egger. 2002a) (ANGIOLINI et al. Barua e Stewart (2002).. e As unicas t´cnicas capazes de tratar elementos de dados provenientes ´ e de bibliotecas s˜o as de Cho et al. (2007). PARAMESWARAN. 2006b) (EGGER. (2009). (2009). 2006. LEE. pois o m´ ınimo que os desenvolvedores de software disp˜em ´ do c´digo-fonte e/ou arquivos-objeto do programa. Mendon¸a (2009. Mendon¸a (2009. elementos de heap s˜o tratados pelas t´cnicas proa e postas por McIlroy. Tipo e origem s˜o caracter´ a ısticas independentes. a o mas somente uma biblioteca contendo arquivos-objeto pr´-compilados. Wehmeyer e Marwedel (2004b). i. 2010). 2004) (JANAPSATYA. elementos de pilha e elementos de heap. 2004) (JANAPSATYA. conseguem o trat´-los as t´cnicas de Angiolini et al. Dominguez e Barua (2006). (2009) a e c Janapsatya.. 2010) e Deng et al. Finalmente. (2002b). Udayakumaran. Barua e Stewart (2002). Cho et al. e Avissar.e. c Elementos de pilha s˜o manuseados pelas t´cnicas propostas por a e Avissar. Steinke et al. Wehmeyer e Marwedel (2004b). (2004) Mendon¸a et al. os elementos s˜o classificados em elementos a a de aplica¸˜o e elementos de biblioteca. PARAMESWARAN. (2001). Parameswaran e Ignjatovic (2004) Janapsatya. o e o Elementos de biblioteca geralmente s˜o de responsabilidade a de terceiros.2. uma t´ce nica que considera elementos de bibliotecas pode considerar somente elementos de c´digo ou de dados. Dickman e Sventek (2008) e Deng et al. o . 2006. 2008) (EGGER et al.1. Quando aos elementos de c´digo. ou mesmo ambos. (2010). ca Elementos de aplica¸˜o s˜o de responsabilidade do desenvolca a vedor do software sistema embarcado. Udayakumaran. (2009). IGNJATOVIC. SHIN.52 n˜o-escalares. Verma. 2010) a c e Deng et al.. Elementos de dados globais escalares e/ou n˜o-escalares s˜o consia a derados pelas t´cnicas de Kandemir et al. S˜o poucas as a a t´cnicas que n˜o apresentam nenhum suporte para este tipo de elemento e a (STEINKE et al. Todas as t´cnicas consideram e elementos desta origem. IGNJA´ TOVIC. 2.

como um conjunto de instru¸˜es menor do que um bloco b´sico ou peda¸os de um co a c vetor. para elementos de a c´digo. O patching de um elemento sob esta granularidade ´ simples. Steinke et al. sejam eles de c´digo ou de dados. c A motiva¸˜o para aloca¸˜o de granularidades de c´digo mais finas ca ca o adv´m de duas raz˜es. N˜o se fazendo necess´rio o acr´scimo a c a a e de instru¸˜es extras. de forma geral. 1975). Dominguez e Barua (2006).2. os quais s˜o maiores em tamanho do que a capacidade ca a da SPM.2. No entanto. Primeiro. a Estas duas granularidades podem ser exemplificadas pelas fronteiras de blocos b´sicos e procedimentos. a decomposi¸˜o do programa em elementos ca dar´ origem a elementos de granularidade mais fina ou mais grossa. co para que este aponte para o novo endere¸o no qual o procedimento c residir´ no espa¸o da SPM. Em segundo lugar. vetores. (2002b). como procedimentos ou o blocos b´sicos para c´digos. a o nada impede que sejam utilizadas fronteiras diferentes. respectivamente. Mendon¸a (2009. resultando num mapeamento de um-para-um entre procedimentos e elementos.2. A divis˜o dos elementos ´ simples e o a e direta. podem ser divio ´ didos de acordo com diferentes fronteiras. e bastando o ajuste do desvio das instru¸˜es que chamam o procedimento. este princ´ ıpio indica que o foco das otimiza¸˜es deve ser co os hot spots.1 Granularidade de c´digo o A granularidade dos elementos de c´digo pode ser classificada o em: granularidade de procedimentos. a a A granularidade de procedimentos ´ possivelmente a mais e natural para os elementos de c´digos.53 2. no caso de dados. 2010) e Egger et al. Udayakumaran. de blocos b´sicos. c Exemplos de t´cnicas que adotam esta granularidade s˜o Steinke e a et al. que 80% dos efeitos prov´m de 20% das causas (JURAN. Definida a fronteira. pequenos trechos de c´digo respons´veis pela maioria do o a . podem existir procedimentos com alta e o taxa de invoca¸˜o. o Princ´ ıpio de Pareto (tamb´m conhecido e como Princ´ ıpio 80-20) indica.2 Granularidade dos elementos Os elementos. (2002a). E mais usual que estas sejam fronteiras naturais do pr´prio tipo do elemento. Aplicado ` otimiza¸˜o e a ca de software. a granularidade n˜o induz nenhum overhead de co a energia ou de espa¸o. o 2. de blocos de a instru¸˜es (ou blocos l´gicos) — um sub-bloco dentro de um bloco co o b´sico — e de traces (um conjunto de blocos b´sicos subsequentes). e. (2010).

A vantagem da granularidade de BBs consiste na possibilidade de isolar os pontos mais acessados de um procedimento e aloc´-los a separadamente. de modo que um BB nunca pode ultrapassar a fronteira do procedimento ao qual pertence.54 tempo de execu¸˜o gasto para rodar o programa (JENSEN. mesmo que um procedimento altamente invocado caiba em SPM. Um a bloco b´sico (BB) ´ definido por Muchnick (1997) como “a m´xima a e a sequˆncia de instru¸˜es da qual se pode entrar apenas pela primeira e co delas e sair apenas pela ultima delas”. uma granularidade de a c´digo mais fina pode aumentar os ganhos decorrentes da aloca¸˜o em o ca SPM. A granularidade de blocos b´sicos consiste na divis˜o dos a a procedimentos em unidades menores. A determina¸˜o dos BBs ´ feita ´ ca e por meio da identifica¸˜o das primeiras instru¸oes que os comp˜em. Um l´ ıder pode ser: 1. ca c˜ o denominadas l´ ıderes. Dependendo do tipo de u c c bloco b´sico. 2. a aloca¸˜o de BBs ca o ca em SPM ser´ tratada em mais detalhes no Cap´ a ıtulo 4. denominadas blocos b´sicos. pode ser necess´rio inserir no seu fim uma instru¸˜o de a a ca desvio incondicional. Desta forma. para retornar o fluxo para a MP. quando necess´rio. A aloca¸˜o de um BB consiste na c´pia de seu conte´do da ca o u mem´ria principal (MP) para SPM e na modifica¸˜o do seu ponto de o ca entrada na MP (sua primeira instru¸˜o) por uma instru¸˜o de desvio ca ca incondicional. O alvo de um desvio (condicional ou incondicional). Como o presente trabalho tamb´m investiga o impacto da granularidade dos elementos e na redu¸˜o de energia do subsistema de mem´ria. Sua desvantagem. Nestas duas circunstˆncias. Ou ca seja. que transfira o fluxo de execu¸˜o para o endere¸o do seu ca c conte´do no espa¸o de endere¸amento da SPM. A aloca¸˜o desse a ca procedimento como um todo em SPM pode diluir o ganho que a aloca¸˜o ca desse elemento traz. pode-se evitar desperd´ ıcio do limitado espa¸o em SPM com c´digo pouco acessado. uma parcela muito pequena do seu c´digo (frequentemente um la¸o) o c pode ser a respons´vel por grande parte dos acessos. 2008). ca ca O terceiro ponto citado anteriormente indica que um BB ´ dee terminado sempre no escopo de procedimentos. O ponto de entrada de uma rotina. A instru¸˜o que segue um desvio ou retorno de fun¸˜o. por´m. a instru¸˜o de retorno o a ca para MP) causam overhead de tempo de execu¸˜o e de consumo de ca . 3. c o e ´ que as instru¸˜es adicionadas (a instru¸˜o de desvio incondicional que e co ca invoca seu c´digo na SPM e.

uma instru¸˜o. o que n˜o acontece com procedimentos. A granularidade de blocos de instru¸˜es (ou blocos l´gico o cos) permite dividir os elementos em por¸˜es ainda menores do que um co bloco b´sico: um bloco composto por. Um trace ´ uma sequˆncia linear a e e de blocos b´sicos situados numa regi˜o cont´ a a ıgua de mem´ria. 4 a 6 instru¸˜es em c´digos de matem´tica e co o a inteira. Ignjatovi´ e Parameswaran (2006b). Dominguez c e Barua (2006) e Egger. Traces meo lhoram o desempenho do processador aumentando a localidade espacial presente no programa. No cen´rio de um procedimento que a concentra um enorme n´mero de acessos em alguns BBs consecutivos u ou muito pr´ximos e que fazem parte de um mesmo trace. no m´ a ınimo. BENNETT. pode-se citar as t´ce e nicas de Angiolini et al. Por´m. ıcio ca a As t´cnicas de Banakar et al. ca 1996). mas com tamanho pequeno o bastante para ser alocado inteiramente na SPM. traces comp˜em um bloco de instru¸˜es atˆmico e que pode ser o co o alocado em outras regi˜es da mem´ria sem a necessidade de altera¸˜o de o o ca outros traces. Wehmeyer e Marwedel (2004b) . Neste caso. Janapsatya. YASUURA. 1999)). mesmo que o BB j´ esteja alocado na SPM desde o a in´ da execu¸˜o do programa. Devido ` sua caracter´ a ıstica de sempre terminar com uma instru¸˜o de desvio incondicional (TOMIYAMA. A granularidade de traces ´ uma granularidade intermedi´ria e a entre procedimentos e blocos b´sicos. A ca aloca¸˜o de blocos de instru¸˜es ocorre de maneira an´loga ` de BBs. Verma. a aloca¸˜o o ca com granularidade de trace gerar´ um menor overhead de espa¸o do a c que a aloca¸˜o de cada um destes blocos b´sicos isoladamente. Imagine que v´rios e a a elementos j´ foram mapeados para SPM. Parameswaran e Ignjatovic (2004). Udayakumaran. (2004) e Janapsatya. ca ca Como t´cnicas que usam esta granularidade. Steine ke et al. restando um espa¸o muito a c ´ pequeno. Lee e Shin (2008) utilizam esta granularidade. (2002a). ca a Exemplos de t´cnicas que utilizam esta granularidade s˜o Verma. ca co a a Essa granularidade ´ motivada pelo seguinte cen´rio. Steinke et al.55 energia sempre. considerar blocos menores pode tornar o overhead de aloca¸˜o proibitivo a ponto de predominar em rela¸˜o ao ganho. a aloca¸˜o de uma ca parcela desse BB tenderia a ser melhor do que a aloca¸˜o de outro BB ca pouco acessado. e a Wehmeyer e Marwedel (2004a). E poss´ que exista um BB muito acessado. Dependendo das caracter´ ısticas da aplica¸˜o. co SMITH. por´m maior ıvel e do que o espa¸o dispon´ c ıvel em SPM. dado que blocos b´sicos j´ s˜o geralmente e a a a muito pequenos (em m´dia. sem instru¸˜es de ponto-flutuante (ROTENBERG. (2002). a granularica dade de traces pode conseguir uma otimiza¸˜o mais ou menos eficiente ca do que a granularidade de BBs. (2002b). Janapsatya. Parameswaran e Ignjatovic (2004).

(2009) e Mendon¸a (2009. i. Nestes casos. Deng et al.56 e Ravindran et al. pois ´ a fronteira mais natural para e ca e dados. ca A granularidade plena considera os dados n˜o-escalares sempre a por completo. permitindo a aloca¸˜o de eleca mentos com mais de uma granularidade. exemplificada da seguinte maneira.. (2005). No entanto. a 2. Barua e Stewart (2002). n˜o ocorrendo aloca¸˜o parcial dos dados. e Avissar. os la¸os aninhados s˜o transformados utilizando uma t´cnica c a e denominada de loop tiling. No entanto. Steinke et al. se um procedimento o ´ alocado. 2010). limitando consideravelmente os ganhos obtidos pela granularidade plena.e. Steinke et al. algumas t´cnicas e e trabalham com granularidade mista. implicar´ na impossibilidade de aloca¸˜o de dados a ca maiores do que o tamanho da SPM. Esta ´ a abordagem utilizada e pela maioria das t´cnicas. como. As t´ce o e nicas de Steinke et al. nenhum dos BBs que o comp˜em deve ser alocado). (2002a).2. Para estes tipos de acessos. Dominguez e Barua (2006) lidam com elementos de granularidade de procedimentos e de blocos b´sicos ao mesmo tempo. quando se tratam de dados n˜o-escalares (e. (2007). que considera a divis˜o de um dado n˜oa a escalar em blocos menores e de igual tamanho (exceto eventualmente nas fronteiras do dado). principalmente em sistemas embarcados no dom´ ınio de processamento de ´udio e v´ a ıdeo. (2002b). n˜o faz sentido falar em granularidade a de dados. Ao inv´s do convencional acesso iterando e .2 Granularidade de dados Para dados escalares. a arranjos uni ou mesmo multidimensionais) ´ poss´ uma tentativa de e ıvel classifica¸˜o em granularidade plena e granularidade de blocos. Al´m das granularidades apresentadas aqui. Considerese uma matriz bidimensional. a t´cnica deve e certificar-se de que n˜o ocorram casos de aloca¸˜o m´ltipla de um mesmo a ca u trecho de c´digo sob granularidades diferentes (e. Cho et al.2. Sua vantagem a a ´ a facilidade de implementa¸˜o.g. Estes arranjos s˜o frequentemente c a a muito grandes e muito acessados. ou um dado a ca est´ inteiramente na SPM ou est´ inteiramente em MP. Dominguez e Barua (2006). por exemplo. aplica¸˜es co baseadas no acesso a arranjos multi-dimensionais presentes no interior de la¸os aninhados s˜o dominantes. com forte apelo comercial. foi proposta a granularidade de blocos (tiles) de dados.g. Para permitir que os dados sejam transferidos em blocos. Verma. Udayakumaran. c Todavia. (2002a) e Udayakumaran. Wehmeyer e Marwedel (2004b).

2010). Esta granularidade melhora a localidade de dados e permite que dados extremamente grandes sejam alocados mesmo em SPMs muito pequenas. 2. as t´cnicas o e em tempo de p´s-compila¸˜o operam justamente sobre os arquivos o ca bin´rios resultantes do processo de compila¸˜o. ou no frontend do compilador. que trae a balha com referˆncias regulares a arranjos (cujo ´ e ındice ´ computado e diretamente). para depois se iterar sobre linha e coluna. mas sim da linguagem de ca m´quina para a qual o bin´rio foi gerado. Por outro lado. por exemplo. 2010).2. exige esta o granularidade que os dados sejam copiados para a SPM em tempo de execu¸˜o. (2001). N˜o h´ dependˆncia da a ca a a e linguagem de programa¸˜o ou de compilador. e As t´cnicas que operam em tempo de compila¸˜o necessitam e ca obrigatoriamente do c´digo-fonte da aplica¸˜o. e Chen et al. e ca A n˜o-disponibilidade do c´digo-fonte das bibliotecas de terceiros nas a o t´cnicas de tempo de compila¸˜o reduz consideravelmente o espa¸o e ca c de elementos candidatos ` otimiza¸˜o (MENDONCA. (2006).57 primeiramente sobre as linhas e depois sobre as colunas (ou vice-versa). por sua pr´pria natureza. A a a a vantagem deste formato de arquivo sobre aquele ´ permitir que elementos e de dados sejam mais facilmente considerados no espa¸o de candidatos ` c a otimiza¸˜o devido ` simplicidade de identifica¸˜o e patching dos mesmos ca a ca (MENDONCA. No entanto. operando ou no pr´prio o ca o c´digo-fonte. tornando a ca ¸ . Exemplos destas t´cnicas s˜o Kandemir et al. a matriz ´ dividida em blocos e os la¸os s˜o transformados de modo e c a que se itere primeiro sobre os blocos. Estas t´cnicas podem trabalhar a a e sobre arquivos bin´rios(execut´veis ou arquivos-objeto reloc´veis). A escolha da fase de aloca¸˜o est´ diretamente o ca ca a associada com os arquivos de programa utilizados como entrada para a t´cnica. ¸ A rela¸˜o entre o arquivo de entrada e a fase de aloca¸˜o da t´cnica ca ca e tamb´m influencia diretamente os ganhos obtidos com a otimiza¸˜o. utilizando e o valor de outro arranjo). o que acarreta um certo overhead de energia e tempo de ca acesso.3 Fase de aloca¸˜o ca As t´cnicas tamb´m diferem quanto ` fase na qual o processo e e a de aloca¸˜o para a SPM ´ realizado: em tempo de compila¸˜o ou em ca e ca tempo de p´s-compila¸˜o. que lida com referˆncias irregulares a e arranjos (cujo ´ ındice ´ calculado indiretamente.

Por ultimo. Estes dois ultimos segmentos n˜o possuem tamanho fixo. que come¸a em a a c 0x10000.data e . ca ca ´ o segmento de pilha. A abordagem NOB mant´m os mesmos elementos na e SPM ao longo de toda a execu¸˜o da aplica¸ao. a fim de que possa ser executado.bss) a co s˜o carregados para o segmento de dados est´ticos. enquanto a abordagem ca c˜ OVB modifica o conte´do da SPM ao longo da execu¸˜o. Sucede imediatamente a este segmento o de dados dinˆmicos a (heap) — a serem alocados durante a execu¸˜o da aplica¸˜o. Tome-se como exemplo o a arquitetura MIPS (PATTERSON. terminado. o Na abordagem non-overlay-based (NOB) os elementos mapeados para a SPM s˜o copiados para a mesma em tempo de carga a da aplica¸˜o para a mem´ria — processo este que. dar´ ca o a sequˆncia ao in´ da execu¸˜o —. ca Para melhor entender o conceito de aloca¸˜o NOB. 2. 2008). pois ´ imposs´ ´ a e ıvel prever a quantidade de mem´ria necess´ria para estes dados em tempo o a de execu¸˜o. e permanecem na SPM durante toda e ıcio ca a execu¸˜o do programa.4 Abordagem de aloca¸˜o ca Existem essencialmente duas abordagens para efetuar o gerenciamento do conte´do da SPM: non-overlay-based (NOB) e overlayu based (OVB). por meio da u ca c´pia de elementos de c´digo e/ou dados para a SPM.2. que inicia no final do espa¸o de endere¸amento c c do programa (0x3ffffc) e cresce em sentido oposto ao anterior. ca e Isto n˜o ocorre nas t´cnicas de tempo de p´s-compila¸˜o. para a qual um poss´ ıvel mapa de mem´ria ´ descrito na Figura 6.58 imposs´ ıvel a aloca¸˜o de elementos de bibliotecas por estas t´cnicas. Os elementos o e de c´digo (geralmente contidos na se¸˜o . e os elemenc tos de dados est´ticos (geralmente presentes nas se¸˜es . HENNESSY. faz-se neca cess´rio compreender como acontece a carga de um programa para a mem´ria. que come¸a em 0x10. Antes do in´ da execuo ıcio ¸˜o de uma aplica¸˜o. ao longo ca a ca a desta disserta¸˜o n˜o ser´ utilizada tal nomenclatura para evitar amca a a biguidade com a aloca¸˜o de dados est´ticos e de dados dinˆmicos na ca a a mem´ria. seus diversos elementos devem ser carregados ca ca para os segmentos de mem´ria apropriados. ca . uma vez que a e o ca o arquivo bin´rio das bibliotecas est´ dispon´ a a ıvel. respectivamente. Apesar de uma o o nomenclatura bastante difundida denominar estas duas abordagens de “aloca¸˜o est´tica” e “aloca¸˜o dinˆmica”.text do arquivo bin´rio) s˜o o ca a a carregados para o segmento de texto.

spm). pois seriam alocados elementos que seriam necess´rios a apenas para uma determinada etapa da execu¸˜o e depois poderiam ca ser removidos da SPM. come¸ando em 0x400000. Neste exemplo c c do MIPS. mas eventualmente menor caso a SPM n˜o a a seja inteiramente ocupada na aloca¸˜o) e deve estar mapeado para um ca espa¸o de endere¸amento disjunto (exclusivo) da MP.59 0x3ffffc Segmento de pilha 0x10000 0x100 Segmento de dados dinâmicos Segmento de dados estáticos Segmento de texto Reservado Figura 6: Mapa de mem´ria da arquitetura MIPS (PATTERSON. 2008) No caso de uma aplica¸˜o consciente de SPM com aloca¸˜o ca ca NOB. os elementos de c´digo e/ou dados mapeados para SPM estar˜o o a contidos em uma se¸˜o pr´pria (e. Este segmento possui tamanho fixo (no m´ximo a igual ` capacidade da SPM. c A aloca¸˜o NOB n˜o gera nenhum overhead em termos de hardca a ware dedicado ou de espa¸o de mem´ria e consumo de energia em c o decorrˆncia da adi¸˜o de instru¸˜es para c´pia de elementos para SPM e ca co o em tempo de execu¸˜o. pode-se citar: Panda.g. liberando espa¸o para elementos das pr´ximas c o etapas. Como exemplos de trabalhos que utilizam a abordagem de aloca¸˜o NOB. Steinke et al. . Verma. no caso de programas grandes e ca bem modulares (cujo c´digo possui padr˜es de acesso que se concentram o o em determinadas regi˜es de mem´ria. . ca (2002). pode-se imaginar que este segmento encontrar-se-ia ap´s o o segmento de pilha. Wehmeyer e Marwedel (2004a). a ser carregada para o ca o segmento de SPM. Banakar et al. Dutt e Nicolau (2000). caracterizando etapas distintas o o e com pouco c´digo compartilhado entre elas). o HENNESSY. (2002b). No entanto. a efic´cia da t´cnica o a e tende a diminuir.

DICKMAN. como malloc e free da biblioteca libc. ˆ de hardware extra. u a Esse processo de aloca¸˜o e desaloca¸˜o de elementos para a ca ca SPM repete-se diversas vezes durante a execu¸˜o do programa. 2008). 2010). 2005) (MCILROY. 2006. (2004) e Mendon¸a (2009. DOMINGUEZ.. . BARUA. a escolha (mapeamento) dos elementos a serem alocados ´ feita na grande maioria das vezes em tempo de compila¸˜o ou p´se ca o compila¸˜o. 2001) (STEINKE et al. 2007) o (JANAPSATYA. Nestas t´cnicas. UDAYAKUMARAN. que precisam ser inseridas no c´digo (CHO et al. 2004b) (RAVINDRAN et al. IGNJATOVIC. SVENTEK. ˆ de fun¸˜es de gerenciamento de mem´ria dinˆmica conscientes co o a de SPM. quando ca u se tratam de elementos de c´digo ou de dados constantes (somente para o leitura). 2002a) (VERMA. 2004) (JA´ NAPSATYA. para que o conte´do atualizado do elemento n˜o se perca. c A abordagem overlay-based (OVB). J´ a desaloca¸˜o consiste o u a ca na simples sobreposi¸˜o do seu conte´do por outros elementos.60 Angiolini et al. exceto por Deng et al. ca A c´pia dos elementos para SPM pode acontecer por meio: o ˆ da inser¸˜o de instru¸˜es convencionais de load/store no c´digo ca co o (KANDEMIR et al. a aloca¸˜o de um determinado elemento consiste e ca na c´pia de seu conte´do da MP para a SPM. alocando um determinado elemento na SPM apenas ca enquanto ele ´ extremamente requisitado. padr˜o da Lina guagem C (DOMINGUEZ. IGNJATOVIC. 2010). WEHMEYER. frequentemente controlado por instru¸˜es persoco nalizadas. PARAMESWARAN. PARAMESWARAN.. e removendo-o quando n˜o e a mais.. (2009).. Quando se tratam de dados modific´veis. 2006b).. que a realiza em tempo de ca execu¸˜o. 2006) (EGGER et al. MARWEDEL. Neste sentido. aloca os elementos mapeados para SPM em tempo de execu¸˜o do programa. Vale ca a pena frisar que. A ca motiva¸˜o para tal ´ proporcionar uma melhor captura dos padr˜es de ca e o acesso da aplica¸˜o. a sobreposi¸˜o deve a ca ser precedida pela c´pia do conte´do do elemento da SPM de volta para o u a MP. c pode-se pensar na SPM como uma “cache controlada por software” (CHERITON et al. 1988).. apesar de a aloca¸˜o acontecer durante a execu¸˜o ca ca do programa. 2005) (UDAYAKUMARAN. dando espa¸o para outros elementos requisitados. BARUA. por sua vez.

Na segunda regi˜o. D e U ao lado das CBAs indicam as caches presentes na configura¸˜o: cache de instru¸˜es. dados e unificada. o bloco equivalente ´ buscado da MP. fase (em tempo de compila¸˜o e a ca — TC — e de p´s-compila¸˜o — PC). O gerenciador captura a exce¸˜o. e “Bib. ca ca tendo como foco t´cnicas OVB e NOB que operam a partir de arquivos e bin´rios (em tempo de p´s-compila¸˜o) — o que permite considerar a o ca elementos de bibliotecas como candidatos — e que consideram arquiteturas baseadas em cache (cache-based architectures — CBAs) como alvo. desta vez acessado na SPM.3 O ESTADO-DA-ARTE EM ALOCACAO A PARTIR DE ARQUI¸˜ ´ VOS BINARIOS Esta se¸˜o apresenta o estado-da-arte em aloca¸˜o para SPM. Para os eleca mentos de c´digo tamb´m ´ reportada a granularidade suportada (“PR” o e e para procedimentos e “BB” para blocos b´sicos). . com rela¸˜o aos tipos e origens (“Apl. respectivamente. Na primeira ca o regi˜o ´ colocado o c´digo a residir no espa¸o de endere¸amento da a e o c c MP. A Tabela 1 c˜ classifica as t´cnicas quanto ` abordagem. Acessos ` regi˜o cacheable a a acontecem naturalmente: se o acesso a um endere¸o na cache resulta em c falta.2. Lee e Shin (2008) propuseram uma t´cnica OVB de tempo de p´s-compila¸˜o que divide o c´digo (sob granularidade de o ca o BBs) da aplica¸˜o em duas regi˜es: cacheable e pageable. As demais t´cnicas n˜o s˜o discutidas aqui em detalhes.61 As t´cnicas de aloca¸˜o em SPM e suas caracter´ e ca ısticas apresentadas nesta se¸ao encontram-se sumarizadas nas Tabelas 1 e 2. copia a p´gina requisitada a ca a para a SPM e a execu¸˜o recome¸a no endere¸o em que havia sido ca c c interrompida. J´ acessos ` regi˜o pageable e a a a devem acontecer sempre por meio da SPM e s˜o orientados por p´ginas a a de c´digo. As siglas I. determinado o a pelo tamanho da p´gina da MMU. A granularidade para a elementos de biblioteca ´ sempre a mesma dos elementos de aplica¸˜o. a MMU sinaliza uma exce¸˜o de falta a ca de p´gina. Se a p´gina contendo o endere¸o a a c requisitado n˜o se encontra ali. ca co J´ a Tabela 2 classifica estas t´cnicas quanto aos elementos de programa a e considerados como candidatos. arquivo de entrada e arquiteturao ca alvo. embora e a a suas caracter´ ısticas j´ tenham sido comentadas na Se¸˜o 2. acessado por meio de uma mem´ria cache.” para de bibliotecas). em tempo de execu¸˜o. e ca 2. faz-se necess´rio hardware ca a extra: um gerenciador de SPM e uma MMU.” ca para elementos de aplica¸˜o. Para tanto. a o a t´cnica coloca p´ginas de c´digo que ser˜o copiadas para a SPM sob e a o a demanda. Uma p´gina de SPM possui tamanho fixo. a ca e Egger.

reloc. Parameswaran e Ignjatovic (2004) Janapsatya. fase. (2002a) Verma. por´m com foco na parti¸ao de instru¸oes e c˜ c˜ d Mesmo . (2002b) Avissar. para fins de compara¸ao deve ser considerada UNA. pois a t´cnica n˜o otimiza dados c˜ e a c Mem´ria particionada horizontalmente: uma cache e uma SPM na parti¸˜o de dados (foco do trabalho). Barua e Stewart (2002) Angiolini et al. Lee e Shin (2008) Deng et al. embora a arquitetura assuma apenas cache de instru¸˜es e co b Apesar de possuir uma cache de dados. Ignjatovi´ e Parameswaran (2006b) c Cho et al.Tabela 1: T´cnicas de aloca¸˜o em SPM quanto ` abordagem. fonte fonte fonte fonte fonte CBA (I+D ou U)a CBA (I+D) CBA (I+D) CBA (D) UNA UNA UNA UNA execut´vel a execut´vel a objeto execut´vel a execut´vel a objeto UNA UNAb CBA (I+D)c CBA (I+D)d CBA (I+D) UNA e CBA (I) 62 a A cache ´ opcional. 2010) c Este trabalho Kandemir et al. (2004) Mendon¸a (2009. (2007) Egger. (2006) Janapsatya. e outra na de instru¸oes o ca c˜ caso de c. (2009) Egger et al. obj. reloc. (2001) Steinke et al. Dominguez e Barua (2006) Chen et al. Wehmeyer e Marwedel (2004b) Udayakumaran. (2010) Abordagem NOB NOB NOB NOB NOB OVB OVB OVB OVB OVB OVB OVB OVB OVB OVB OVB Fase CT CT PC PC PC CT CT CT CT CT PC PC PC PC PC PC Arquivo de entrada fonte fonte Arquitetura de mem´ria alvo o UNA UNA execut´vel a obj. arquivo de entrada e arquitetura-alvo e ca a T´cnica e Steinke et al.

Apl. Parameswaran e Ignjatovic (2004) Janapsatya. - T´cnica e Steinke et al. Wehmeyer e Marwedel (2004b) Udayakumaran. PR e BB BB (e menor) PR ou PR ou BB Heap Apl. por meio de fun¸˜es lineares co co dados n˜o-escalares a c Realiza function outlining em la¸os muito acessados. (2009) Egger et al. (2004) Mendon¸a (2009.Tabela 2: T´cnicas de aloca¸˜o em SPM quanto aos elementos de programa considerados e ca Dados Global escalar Pilha Apl. Lee e Shin (2008) Deng et al. Dominguez e Barua (2006) Chen et al. (2006) - - - - - - - PR e BB Trace PR e BB BB (e menor) BB - - Janapsatya. Apl. Global n˜o-escalar a C´digo o Bib. Ignjatovi´ e Parameswaran c (2006b) Cho et al. transformando-os em procedimentos c 63 . (2002b) Avissar. Bib. (2007) Egger. Bib. Barua e Stewart (2002) Angiolini et al. (2002a) Verma. Apl. Bib. (2010) - - - BB PRc a Limitado b Apenas para acessos a aplica¸˜es baseadas em arranjos. (2001) Steinke et al. 2010) c Este trabalho b a Kandemir et al. Bib.

o a ca ıcio c que gera um novo problema a ser solucionado pelo m´todo: a divis˜o e a do c´digo na regi˜o pageable na menor quantidade de p´ginas poss´ o a a ıvel e com as p´ginas contendo c´digo com boa localidade espacial. o a a A mudan¸a de granularidade para procedimentos tamb´m agravou c e . como a e unidade m´ ınima de transferˆncia de c´digo entre MP e SPM pela MMU ´ e o e de uma p´gina.64 O hardware especial garante que n˜o se fa¸a necess´rio conhecer a c a o tamanho da SPM no momento da gera¸˜o do bin´rio otimizado ca a pela t´cnica. uma personaliza¸˜o deve ser feita. No entanto. por´m. ıcio c Os autores reportam um ganho m´dio de 14% em redu¸˜o de e ca consumo de energia e 16% de ganho em desempenho quando aplicam a t´cnica em uma CBA. como a t´cnica somente agrupa sob o e e uma mesma p´gina BBs oriundos de um mesmo procedimento. Se n˜o est´. ocorre a desperd´ de espa¸o. e o Tamb´m decorre dela um certo overhead para lidar com chamadas de e procedimentos via ponteiros. a outra ´ similar a uma tabela de desvios (jump a e table). mais do que isso. cont´m ca a a a e uma instru¸˜o de interrup¸˜o de software que quando executada ser´ ca ca a capturada pelo gerenciador que. porque deve-se primeiro realizar uma busca bin´ria sobre a tabela com os endere¸os de procedimentos paginados a a c fim de descobrir em qual regi˜o de mem´ria o procedimento se encontra. a A tabela de desvios elimina a necessidade de hardware extra. Isso claramente afeta a localidade u e espacial do c´digo. sua entrada cont´m a a e uma instru¸˜o de desvio incondicional para l´. (2010). a o para s´ ent˜o trat´-lo de acordo. Al´m disso. ca introduzindo-se um gerenciador em hardware. que desta vez trabalha com granularidade de procedimentos. para a o diminuir o n´mero de transferˆncias. limita o tipo dos elementos considerados para apenas c´digo. atualizar´ a entrada na tabela e a desviar´ para a SPM. Al´m disso. por sua vez. Lee e Shin (2008) foram co e sobrepujadas em Egger et al. tendo como referˆncia uma FCA. Informa¸˜es sobre as p´ginas de c´digo s˜o armazenadas co a o a em estruturas de dados em formato de tabela: uma delas cont´m o e endere¸o de cada procedimento residente na regi˜o pageable e o n´mero c a u de p´ginas que ocupa. n˜o ´ todo sistema embarcado que possui e a e uma MMU e. A cada procedimento corresponde uma entrada nessa tabela. Se o procedimento j´ est´ carregado na SPM. ´ necess´rio agrupar mais do que um BB sob uma mesma a e a p´gina. e e Algumas limita¸˜es da t´cnica de Egger. O requisito de hardware extra (MMU e gerenciador de SPM) foi substitu´ por um gerenciador implementado ıdo via software. para evitar fragmenta¸˜o e o desperd´ de espa¸o na SPM. iniciar´ a transferˆncia a e do procedimento da MP para a SPM.

tendo como alvo uma UNA e como a e . Outra t´cnica OVB que inclui elementos de c´digo oriundos de e o bibliotecas no espa¸o de otimiza¸˜o ´ a de Janapsatya. enquanto que podem ter sido carregados previamente. comparada a uma ca FCA. pela co o ´ e primeira vez o problema de particionamento de c´digo entre SPM e MP o foi modelado como um grafo. de tempo de p´s-compila¸˜o e que trabalha o ca com granularidade de blocos l´gicos. que cont´m o e a e c´digo alocado sob NOB. seu algoritmo ´ ineficiente. os a c melhores blocos para SPM s˜o selecionados e os pontos de inser¸˜o da a ca instru¸˜o especial identificados. e ca a e pela primeira vez. simulado. ca e pois usa uma heur´ ıstica global que n˜o trata de maneira adequada la¸os a c com BBs que est˜o muito distantes. evitando estas transferˆncias e a e extras. a t´cnica realiza a extra¸˜o a e ca de procedimentos a partir de la¸os (denominado function abstracting c ou function outlining). porque a ca ıcio c t´cnica n˜o realiza agrupamento de procedimentos sobre uma mesma e a p´gina.g. (2002a) necessita de a e duas instru¸˜es para a c´pia de uma unica palavra). simultaneamente OVB e NOB. ao o contr´rio de outras t´cnicas (e. a Redu¸˜o de consumo de energia de 51% e melhoria de desempenho ca de 53% s˜o relatados. No entanto. Uma instru¸˜o especialmente criada permite ativar o ca controlador da SPM e copiar um elemento inteiro de uma s´ vez. hardware real. Al´m disso. Steinke et al. obtiveram uma economia m´dia de 19% em e redu¸˜o de energia e 12% em desempenho para uma UNA (comparado ca a uma FCA). O c´digo ´ dividido em uma nova regi˜o (pinned ).65 o problema de fragmenta¸˜o e desperd´ de espa¸o na SPM. Al´m disso. Parameswac ca e ran e Ignjatovic (2004). tem-se uma t´cnica h´ e ıbrida. Elementos s˜o a e ca a alocados desta forma quando existe uma certa vantagem em execut´a los da SPM mas o overhead que adv´m da constante reposi¸˜o dos e ca elementos para a SPM ´ consider´vel. economia m´dia de 24% e em desempenho e redu¸˜o de energia para uma CBA. Os autores validaram a t´cnica sobre dois sistemas embarcados. o Foi a primeira t´cnica a propor modifica¸˜o de hardware de e ca modo a tornar a c´pia de elementos para SPM em tempo de execu¸˜o o ca mais eficiente. e Para o primeiro. Para o segundo. em m´dia. Para amenizar este problema. Por meio de an´lise de la¸o no grafo. a t´cnica apresenta resultados e e sub-´timos porque assume conservadoramente que os procedimentos o paginados sempre necessitam ser alocados na SPM. Um grande diferencial desta t´cnica com rela¸˜o `s demais ´ que. carregado para a SPM quando a aplica¸˜o ´ o ca e carregada e permanecendo l´ at´ o final da execu¸˜o.

de chamada de procedimentos co e de acesso a dados n˜o ´ um endere¸o absoluto — isso ser´ feito a e c a pelo linkeditor. Ignjatovi´ e Parameswaran (2006b) relaxac ram a necessidade de hardware especial de sua t´cnica anterior. O patching consiste unicamente a o em ajustar as entradas desta tabela que dizem respeito aos elementos mapeados para SPM. 2010) ´ uma t´cnica e c e e de tempo de p´s-compila¸˜o que trabalha com arquivos-objeto (bin´rios) o ca a reloc´veis. a t´cnica e aloca somente elementos de c´digo — quando comparada a uma FCA. A economia esperada ´ computada analitie camente e. Esta m´trica. o alvo de instru¸˜es de desvio. particularmente de dados. quanto ao tipo e origem dos elementos. ao passo o que esta considera tamb´m dados globais escalares e n˜o-escalares.66 referˆncia uma FCA. mas ca a a simb´lico. aquelas consideram somente elementos de c´digo. a ca esta t´cnica n˜o produz um arquivo bin´rio execut´vel. dentre NOBs e OVBs. realocando os elementos a e de c´digo (sob granularidade de procedimentos) e dados selecionados o para uma se¸˜o pr´pria (. c a c co Nestes. mede a correla¸˜o temporal entre dois BBs.spm). Esta t´cnica. Embora todas as t´cnicas discutidas na presente se¸˜o sejam capazes de alocar elementos e ca de biblioteca. que pode ser e a a a validado em um simulador. que e a n˜o podem ser desprezados (MENDONCA. modificando a dependˆncia simb´lica para que e o aponte para o elemento em SPM. estendida pelo presente trabalho. e e o s˜o armazenadas em tabela pr´pria. abrange um espa¸o de otimiza¸˜o maior do que as descritas c ca anteriormente. o e Eles tamb´m propuseram uma nova m´trica. ca o O patching desta t´cnica. denominada e concomitˆncia. trata-se a ¸ da t´cnica NOB com maior abrangˆncia de elementos at´ o presente e e e momento. e Janapsatya. ´ muito e e eficiente gra¸as ` presen¸a da tabela de reloca¸˜es nos arquivos-objeto. ainda que purae mente NOB. A redu¸˜o m´dia de consumo de ca e energia relatada ´ de 41% para uma arquitetura-alvo que deve ser vista e como uma UNA — pois muito embora possua cache de dados. pela a¸˜o de reloca¸˜o (que c ca ca ca dita o modo pelo qual o s´ ımbolo ´ convertido para codifica¸˜o bin´ria) e ca a e pela dependˆncia simb´lica (o nome do procedimento ou dado). portanto. visando uma sele¸˜o mais e e ca eficiente (mapeamento) dos BBs para SPM. No entanto. marcado por uma reloca¸˜o. A t´cnica modifica estes arquivos. Al´m disso. sujeita a erros. no momento da gera¸˜o do bin´rio execut´vel —. 2010). o A t´cnica proposta por Mendon¸a (2009. De fato. ´ a unica. a alocar dados e e ´ . de modo e que a c´pia de elementos poderia ser feita via software — muito embora o continuaram a utilizar a c´pia via hardware por motivo de eficiˆncia. As reloca¸˜es s˜o compostas o ca co a pelo endere¸o da instru¸˜o a ser ajustada.

DOMINGUEZ.. (2009) conseguem e isto utilizando hardware extra. que n˜o seriam de qualquer forma explor´veis no n´ de c´digo-fonte. A potencial ca economia extra em se alocar elementos encapsulados em bibliotecas. as t´cnicas OVB n˜o se mostram t˜o adequadas ca e a a para manusear bin´rios. 2002b) s˜o incapazes de mapear a elementos de bibliotecas ou de software protegido de IPs de terceiros para a SPM. tornando a complexidade extra da aloca¸˜o OVB desnecess´ria. 2002) (STEINKE et al. a Todas estas caracter´ ısticas de Mendon¸a (2009. enquanto que. ca a A aloca¸˜o NOB ´ especialmente adequada para tais aplica¸˜es com hot ca e co spots. WEHMEYER.67 de bibliotecas sem recursos extras de hardware... quando as aplica¸˜es exibem alta localidade. Vale lembrar que as t´cnicas OVB de Cho et al.4 CONSIDERACOES SOBRE AS ABORDAGENS DE ALOCACAO ¸˜ ¸˜ EM SPM Muitas aplica¸˜es foram relatadas para as quais a maioria dos co acessos ` mem´ria se concentram em um espa¸o de endere¸amento a o c c suficientemente pequeno para caber na SPM (MENICHELLI. a adi¸˜o a e ca de suporte ` granularidade de blocos b´sicos (detalhado no Cap´ a a ıtulo 4) permite buscar maiores economias de energia em sistemas com SPM pequena. 2004b) (UDAYAKUMARAN. Contudo. salvo se hardware dedicado ´ utilizado para a e suportar o gerenciamento dinˆmico da SPM (CHO et al. 2006). BARUA. nenhuma possui esta aptid˜o. 2007) (DENG a .. Quando m´ltiplos hot spots n˜o cabem ao mesmo u a tempo na SPM. co 2. 2002a) (VERMA. 2009). o e ca STEWART. MARWEDEL. Al´m disso. a abordagem NOB ´ sub-explorada quando aplicada e em c´digo-fonte: t´cnicas de tempo de compila¸˜o (AVISSAR. OLIVIERI. uma abordagem OVB de tempo de compila¸˜o conca duzir´ a uma maior economia por meio da explora¸˜o dinˆmica de a ca a propriedades de programa observ´veis no n´ de c´digo-fonte (as quais a ıvel o foram capturadas estaticamente em tempo de compila¸˜o). 2010) continuam c valendo para a extens˜o proposta neste trabalho. N˜o obstante sua reconhecida superioridade quando aplicadas em a tempo de compila¸˜o. A aloca¸˜o para SPM em tempo de compila¸˜o funciona mais ca ca naturalmente quando utilizada em conjunto com a abordagem OVB (KANDEMIR et al. a a ıvel o acaba sendo encoberta pela economia extra proveniente da aloca¸˜o ca OVB. (2007) e de Deng et al. BARUA. dentre as NOBs. 2001) (STEINKE et al.

VAHID. na presen¸a e c de caches.. 2008) ou se a aloca¸˜o em SPM ´ limitada a c´digo apenas (EGGER et al. Efetivamente. a e quando compara diretamente um m´todo NOB com um m´todo OVB e e sob exatamente o mesmo ambiente experimental. Isto parece ser uma evidˆncia que. 2006) (EGGER. 8% para dados em Cho et al. os m´todos a a e NOB podem ser quase t˜o eficazes quanto os m´todos OVB. o que ´ agravado em sistemas o e onde a cache ´ reconfigur´vel ou pr´-ajustada para uma determinada e a e aplica¸˜o (VIANA et al. Por consequˆncia. a abordagem OVB leva a uma redu¸˜o significativa ca do total de energia quando aplicada em tempo de compila¸˜o: em ca m´dia. em Steinke et al. SHIN. (2002a). IGNJATOVIC. ca e o 2010) (JANAPSATYA. para viabilizar sua maior aplica¸˜o e uma e ca pol´ ıtica de aloca¸˜o mais inclusiva. Esta redu¸˜o ´ menor quando trabalha no n´ de arquivos ca e ıvel bin´rios (em m´dia. Lee e Shin (2008) e Egger et al. Wehmeyer e Marwedel (2004b). evitando muitos acessos para a mem´ria externa. 2003). . que n˜o depende a de hardware dedicado. Por esta a o raz˜o. (2007) e 14% e 24% para c´digo em e o Egger. Dominguez e Barua (2006).. um m´todo consciente de bibliotecas ca e deve preferencialmente adotar uma abordagem NOB. uma vez que a pr´pria cache atua como alocador o dinˆmico. 34%. deve-se esperar e ganhos muito menores que aqueles reportados em Steinke et al. Por exemplo. SHIN. Dominguez e Barua (2006). o impacto de m´todos OVB ´ realmente menor do que o e e reportado para UNAs. Verma. LEE. De fato. Por a ca este motivo. Egger et al. 2009) (EGGER. quando voltados para CBAs e lidando com bin´rios. quando comparada com abordagens NOB. quando m´todos OVB tˆm como alvo arquiteturas e e com caches. 2006) (ZHANG. (2010) quando comparado com a e FCAs). respectivamente. tais alocadores de SPM que n˜o consideram e a a mem´ria cache superestimam o lucro. em sistemas com caches pr´-otimizadas.68 et al. visto que arquivos-objeto limitam a manipula¸˜o das proprieca dades de programa necess´rias para o gerenciamento da sobreposi¸˜o a ca de elementos. Para UNAs. 2004). 21% em Egger et al. PARAMESWARAN. Wehmeyer e Marwedel (2004b) e Udayakumaran. Al´m disso. 30%. desde que n˜o negligencie a aloca¸˜o de dados a ca na SPM. e 31%. (2010). em Verma. LEE. em e Udayakumaran. a economia de energia total reportada ´ marginal (em e m´dia. quando comparada com FCAs. (2010) reporta essencialmente os mesmos ganhos para mais de metade dos programas avaliados. quando comparado com FCAs). ca Zhang e Vahid (2003) reportam ganhos de 40% por meio do simples ajuste de parˆmetros da cache para a aplica¸˜o (sem uma SPM).. (2002a).

Como o objetivo deste trabalho n˜o ´ propor uma nova t´cnica a e e mas reavaliar quantitativamente a bem-conhecida abordagem NOB utilizando a perspectiva da pesquisa recente no ajuste-fino das caches (cache tuning) (ZHANG. . VAHID. at´ onde se tem not´ e ıcia. ser˜o a emprestadas no¸˜es de Angiolini et al. Embora tal configura¸˜o e ca experimental com um tamanho fixo de cache emule um caso pr´tico (a a otimiza¸˜o de c´digo para mem´rias embarcadas preconcebidas). isto ca o o n˜o provˆ uma base para o dimensionamento de mem´rias customizaa e o das ou configur´veis (TALLA. 2003) (VIANA et al. GOLSTON.69 Infelizmente. por´m e e a e definido por alguma outra m´trica qualquer. MOYER. descrita no ca Cap´ ıtulo 3. (2004). 2008).. 2007) (MALIK. Mendon¸a (2010) e co c Volpato et al. 2000). a CERMAK. (2010) para a formula¸˜o do problema-alvo. todos os trabalhos em aloca¸˜o de SPM negligenciam o pr´-ajuste de cache: eles reportam ca e resultados normalizados para uma cache de referˆncia cujo tamanho e ou ´ fixo para todos os programas do benchmark ou ´ vari´vel.

70 .

. MUDGE.. etc. A energia consumida para acessar uma posi¸˜o de M.). uma cache de o instru¸˜es. Dado o tamanho σi de um elemento Di . sua faixa de posi¸˜es varia co entre um endere¸o-limite inferior αi at´ um endere¸o-limite superior c e c αi + σi − 1.3.4. ´ ca e definida como a energia m´dia gasta na leitura ou na escrita daquela e posi¸˜o. Trace de mem´ria. usaremos M para denominar um componente gen´rico de mem´ria. ca A latˆncia de uma mem´ria. onde αi o denota o i-´simo endere¸o. ´ seu tamanho. . CM .) ou um contˆiner a e de instru¸˜es (um procedimento. 1997). Um elemento de ca a ca programa candidato. ´ definida como o tempo gasto e o e para acessar uma de suas posi¸˜es.. e o o uma mem´ria cache de instru¸˜es ou de dados (I-cache e D-cache. Dado ca um trace T e um elemento candidato Di . αn ) que representa uma sequˆncia de endere¸os sucessivos.. uma vari´vel. Defini¸˜o 3. especificado o e em bytes. ´ um contˆiner de dados (uma e e constante. Um trace T ´ uma tupla (α1 . EM . co o A capacidade de uma mem´ria. um bloco b´sico. e c acessados no subsistema de mem´ria (UHLIG. co A partir deste ponto. Taxa de faltas de um elemento candidato. e c Defini¸˜o 3.1. Elemento candidato ` aloca¸˜o. denominado por Di . Defini¸˜o 3. o co respectivamente) ou uma SPM. sua taxa de faltas ´ o n´mero e u de vezes em que ele n˜o ´ encontrado na cache para todas as referˆncias a e e . uma unica instru¸˜o. ca o e α2 . expressado em ciclos de rel´gio. N´ mero de acessos de um elemento candidato. e uma SPM. co a ´ ca etc. o n´mero de acessos ` u a mem´ria em T que recaem na faixa de posi¸˜es de Di ´: o co e ai = ∀α|α∈T ∑ δα .. λM . uma estrutura de dados. onde: δα = 1 0 se αi ≤ α < αi + σi caso contr´rio a Defini¸˜o 3..2. uma cache de dados. αi . o qual pode ser a mem´ria principal (MP).71 3 O PROBLEMA-ALVO Considere-se uma arquitetura baseada em cache (cache-based architecture — CBA) contendo uma mem´ria principal. ca u Dado um trace T e um elemento candidato Di .

ca a MENDONCA. Di . Quando Di ´ um bloco b´sico.8. ¸ e a decorre εi > 0. Sejam D1 . uma vez que nee nhuma instru¸˜o extra se faz necess´ria (ANGIOLINI et al.e.. 2010). O c´lculo de σextra ser´ detalhado na a a a Se¸˜o 4.1. Dn os elementos candidatos acessados por . Quando Di ´ um procedimento ou um dado.. Caracteriza¸˜o de espa¸o dos elementos candica ca c datos.6. i.4. ca e pois n˜o se fazem necess´rias instru¸˜es extras (ANGIOLINI et al. para que o conte´do do elemento seja u acessado no espa¸o de endere¸amento da SPM. c c Quando Di ´ um procedimento ou um dado. . onde Ecache = EI-cache quando Di ´ um contˆiner de c´digo e Ecache = e e o ED-cache . onde: φα = 1 0 se Di n˜o se encontra na cache a caso contr´rio a mi = ai Defini¸˜o 3.72 a ele em T .7. O ca lucro de energia de um elemento candidato Di quando mapeado para a SPM ´ calculado por: e pi = ai × (Ei − ESPM ) − εi . Energia consumida em um acesso a um eleca mento candidato. Lucro (profit) de energia de um candidato. ca c a O espa¸o wi .: ∀α|α∈T ∑ φα . onde εi ´ o overhead de energia associado com as instru¸˜es extras que e co desviam incondicionalmente o fluxo de execu¸˜o da MP para a SPM e. a Defini¸˜o 3... tem-se wi = σi . tem-se εi = 0. a a co MENDONCA. a ser detalhado na Se¸˜o 4. em bytes. 2010).. ¸ Defini¸˜o 3..5.. . caso contr´rio.4. necess´rio para alocar um elemento Di em SPM c a ´ e wi = σi + σextra .2. A energia consumida por um acesso a um candidato Di no espa¸o de endere¸amento da MP ´: c c e Ei = Ecache + mi × (EMP + Ecache ).. 2004. ca depois. de volta para a primeira. 2004. Espa¸o necess´rio para um elemento candidato. ca Defini¸˜o 3. onde σextra ´ o tamanho total das instru¸˜es extras necess´rias para e co a direcionar o fluxo de controle para aquele elemento quando Di ´ um e bloco b´sico alocado em SPM.

os elementos de programa candidatos devem o e ser caracterizados em termos de seus tamanhos... 1972). Sua caracteriza¸˜o de espa¸o ´ dada por uma o ca c e matriz-linha W = [w1 . a otimiza¸˜o ser´ feita ca a capturando um padr˜o t´ a ıpico de acessos. Sejam D1 . expresso em bytes. ca Como o n´mero de acessos aos elementos depende da computa¸˜o u ca dos algoritmos utilizados no software embarcado. Problema-alvo de Otimiza¸˜o: Dados um conjunto de elementos ca candidatos Di .. wi . xn ]−1 . . Defini¸˜o 3.. Dn os elementos candidatos acessados por um c´digo embarcado. xi . Essa possibilidade levar´ a diferentes instˆncias do a a problema de otimiza¸˜o... em ca a tempo pseudo-polinomial (PAPADIMITRIOU. 1981).9. por tratar-se de um problema NP-completo.10. ou equivalentemente. Um ca mapeamento para a uma SPM ´ representado por uma matriz-coluna X = e [x1 .... . Mapeamento de elementos para a SPM. c c O problema geral de otimiza¸˜o consiste em determinar quais eleca mentos de programa ser˜o mapeados para a SPM. pn ]....73 um c´digo embarcado.... .. . . encontre a aloca¸ao X que maximize a fun¸˜o c˜ ca lucro p(X) = P × X tal que W × X ≤ CSPM A solu¸˜o do Problema-alvo de Otimiza¸˜o por meio de t´cnicas ca ca e exatas pode resultar em tempos de execu¸˜o proibitivos para casos de ca uso reais. de modo a minimizar a uma fun¸˜o custo. Caracteriza¸˜o de lucro dos elementos candidaca ca tos. pi . Sua caracteriza¸˜o de lucro ´ denotada por uma o ca e matriz-linha P = [p1 . Defini¸˜o 3.. wn ].. Di . conforme formalizado abaixo... ca ca O objetivo pode ser minimizar o tempo de acesso total ` mem´ria ou o a o consumo de energia. maximizar uma fun¸˜o lucro.. O problema-alvo pode ser reformulado como um problema cl´ssico a de otimiza¸˜o combinat´ria chamado Problema Bin´rio da Mochila (0–1 ca o a Knapsack Problem) (KARP.. onde xi = 1 significa que um elemento Di ´ mapeado e para o espa¸o de endere¸amento da SPM e xi = 0 significa que Di ´ c c e mapeado para o espa¸o de endere¸amento (disjunto) da MP. caracterizados por W e P. caracterizado por um trace de mem´ria T . e um padr˜o de acesso capa turado por um trace T . Al´m disso. . o problema tamb´m e ca e pode ser resolvido idealmente por meio de Programa¸˜o Dinˆmica. O Problema-alvo ´ solucionado utilizando o algoritmo MINKNAP e . Embora muitos m´todos utilizem Programa¸˜o Linear Inteira (ILP). onde pi ´ o lucro pela aloca¸˜o do e ca elemento Di em SPM... onde wi significa o espa¸o necess´rio c a para alocar o elemento Di em SPM. . .

1997). 2010). c . que foi estendida por este trabalho. da mesma forma que a t´cnica de Mena e don¸a (2009. que garante solu¸˜o ´tima e eficiente para o Proca o blema Bin´rio da Mochila.74 (PISINGER.

o O ajuste-fino das caches — fundamento da reavalia¸˜o das t´cca e nicas NOBs proposta por este trabalho —. O caso ´ determinado ca a e verificando algumas caracter´ ısticas: se possui ou n˜o instru¸˜o de a ca desvio. a t´cnica de Mendon¸a somente realiza o ca e c aloca¸˜o de procedimentos (procedure allocation — PRA). de modo a habilitar a aloca¸˜o de blocos b´sicos (basic-block ca a allocation — BBA). permite uma an´lise mais realista da economia obtida. a a e c 2010). o Para permitir a explora¸˜o da granularidade de elementos de c´ca o digo. optou-se por avaliar tamb´m o impacto da varia¸ao da e c˜ granularidade dos elementos de c´digo na abordagem NOB. e se o e bloco constitui um la¸o. Para a tornar isto poss´ ıvel. ca u taxa de faltas e o custo energ´tico para o acesso aos candidatos e BBs. manipula arquivos-objeto reloc´veis em tempo de a p´s-compila¸˜o. c ˆ adapta¸˜o do profiler para que este compute o n´mero de acessos. 2010) considera como e c candidatos elementos de c´digo e dados globais est´ticos (escalares e o a n˜o-escalares). como alternativa ` PRA.75 ˜ ´ 4 EXTENSAO DE UMA TECNICA NOB PARA ˜ DE BLOCOS BASICOS NO ESPACO DE ´ INCLUSAO ¸ ˜ OTIMIZACAO ¸ A t´cnica proposta por Mendon¸a (2009. ca ˆ modifica¸˜o do mecanismo de patching para que os BBs mapeados em SPM sejam alocados nesta quando do in´ da execu¸˜o do ıcio ca programa. impea dindo que fatores secund´rios influenciem nesta economia. foi necess´rio realizar uma extens˜o na t´cnica de Mendon¸a (2009. ca co o a para a demarca¸˜o dos blocos. a A extens˜o implementada para que o c´digo possa ser dividido na a o granularidade de blocos b´sicos (BBs) contemplou os seguintes aspectos: a ˆ identifica¸˜o das instru¸˜es de desvio condicional no c´digo bin´rio. Entretanto. . por utilizar ca a granularidade de procedimentos para definir as fronteiras entre os elementos de c´digo. se o desvio ´ condicional ou incondicional. caso sim. quando precede a aloca¸˜o ca em SPM. ˆ adapta¸˜o da caracteriza¸˜o de espa¸o e de lucro dos candidatos ca ca c para levar em conta os candidatos BBs. ca ˆ identifica¸˜o do caso de cada bloco b´sico. Aproveitando a desta facilidade. particularmente aqueles originados de bibliotecas.

apea e nas uma granularidade. ´ considerada por vez e como fronteira para os elementos de c´digo. c o O lado direito de cada figura (` direita da seta) ilustra os espa¸os de a c endere¸amento disjuntos. A Figura 7 mostra o fluxo o a de trabalho da t´cnica estendida.76 ´ E importante esclarecer que na vers˜o estendida da t´cnica. Alguns passos c c s˜o necess´rios. como descrito a seguir. A t´cnica estendida permite manipular dados est´ticos (escalares e a e vetores) e c´digo (ou procedimentos ou BBs). A identifica¸˜o de o ca elementos de dados est´ticos e procedimentos ´ direta. 8(c) e 8(d) ilustram as caracter´ ısticas que permitem distinguir os BBs segundo quatro casos: . o 4. O processo ´ uma especializa¸˜o da t´cnica co e ca e ilustrativa explicada na Se¸˜o 2. 8(b). 8(c) e 8(d).1 FLUXO DE TRABALHO Dados uma aplica¸˜o. um nodo tecnol´gico e um subsistema ca o de mem´ria pr´-especificado. ap´s o mapeamento daquele BB para SPM. O lado esquerdo de cada figura (` esquerda da seta) mostra a fronteira a de um BB (em borda destacada) e as instru¸˜es que o sucedem no espa¸o co c de endere¸amento da mem´ria principal (MP) antes do mapeamento. quatro diferentes a o casos podem ocorrer.1. 8(b). os quais podem compreender bibliotecas a est´ticas. algumas poucas propriedades de programa s˜o a a extra´ ıdas destes arquivos para permitir a otimiza¸ao pretendida. c o As instru¸˜es de desvio condicional e incondicional est˜o negritadas. BBs ou procedimentos.2 CARACTERIZACAO DOS ELEMENTOS ¸˜ O ponto de entrada do fluxo de trabalho ´ um conjunto de e arquivos-objeto reloc´veis. Neste passo. Entretanto. a saber. A tarefa mais elaborada desse passo consiste na identifica¸˜o dos ca elementos de programa. tanto para habilitar este mapeamento como para refletia a lo no c´digo execut´vel consciente de SPM. c˜ o conjunto de elementos de programa candidatos (Di ) e seus tamanhos (σi ). As etapas deste fluxo s˜o detalhadas e a nas se¸˜es subsequentes. como retratado pelas Figuras 8(a). o objetivo ultimo da extens˜o realizada o e ´ a permanece o mesmo da t´cnica original: produzir um arquivo execut´vel e a relocado. co a O lado esquerdo das Figuras 8(a). ca 4. de maneira que o melhor conjunto de elementos de programa seja mapeado para o espa¸o de endere¸amento da SPM. a e quando BBs s˜o escolhidos como elementos de c´digo.

i. o . a ˆ Caso II (Figura 8(b)). O BB termina com um desvio incondicional. O BB n˜o cont´m nenhuma instru¸˜o de a e ca desvio.77 Arquivosobjeto reloc. ele forma uma estrutura e o de la¸o. Este caso ocorre geralmente com c´digo que inicializa o vari´veis ou armazena/recupera contextos. O BB termina termina com um desvio condicional cujo alvo ´ o pr´prio BB. (patched) Relocação e linkedição Arquivo executável (relocado) Figura 7: Fluxo de trabalho da t´cnica estendida de aloca¸˜o em SPM e ca ˆ Caso I (Figura 8(a)).e. (originais) Relocação e linkedição Caracterização dos elementos Arquivo executável (original) Caracterização dos componentes de memória Ccache CSPM CSPM {Di} {σ } i {Di} {Di} CMM Estimativa de latência e energia Ecache ESPM EMM λcache λSPM λMM T Profiling {mi} {ai} {Si} {ri} Caracterização de custo e lucro P W Mapeamento Xótimo Patching Arquivosobjeto reloc. Isto ´ tipicamente induzido por estruturas de sele¸˜o de e ca m´ltipla escolha (case/switch) e estruturas de sele¸˜o se-sen~o u ca a (if-else) com m´ltiplas condi¸˜es. Isto ´ frequentemente induzido por estruturas de repeti¸˜o c e ca p´s-testada (do-while) sem estruturas condicionais aninhadas. u co ˆ Caso III (Figura 8(c)).

. Acréscimo de espaço em SPM: 2 palavras (a) Caso I Antes do mapeamento MP i Depois do mapeamento MP i SPM s Instrução 0 Instrução 1 ..... Instrução n-2 i+n­1 i+n Instrução n-1 Instrução n i+n­1 i+n Instrução n-1 Instrução n s+n­1 s+n s+n+1 Instrução n-1 j (i+n) nop . j (i+n+k) i+n­1 Instrução n-1 . Instrução n+k nop i+n+k i+n+k Acréscimo de espaço em SPM: 0 palavras (d) Caso IV Figura 8: Casos que podem ocorrer no mapeamento de blocos b´sicos a para SPM CASE IV: Branch (out) . $1.. Instrução n-3 beq $0. beq $0... Acréscimo de espaço em SPM: 2 palavras (c) Caso III Antes do mapeamento MP i Depois do mapeamento MP i Instrução 0 Instrução 1 . Instrução n+k s+n­1 i+n­1 Instrução n-1 . i+n+k js nop . Instrução n-2 s SPM Instrução 0 Instrução 1 .. Instrução n-3 s SPM Instrução 0 Instrução 1 .... $1.. . Instrução n+k s+n­1 Instrução n-1 i+n+k i+n+k Acréscimo de espaço em SPM: 0 palavras (b) Caso II Antes do mapeamento MP i Depois do mapeamento MP i Instrução 0 Instrução 1 ... i+n+k Instrução n-1 .78 Antes do mapeamento MP i Depois do mapeamento MP i Instrução 0 Instrução 1 ... $1..... Instrução n-3 j (i+n-2) i+n­2 i+n­1 beq $0.. $1. j (i+n+k) js nop . j (i+n+k) Instrução 0 Instrução 1 .... $1.. Instrução n+k i+n­1 Instrução n-1 .. Instrução n-2 js nop ..... beq $0. beq $0.. i s SPM Instrução 0 Instrução 1 .... ... s i+n­1 i+n Instrução n-1 Instrução n i+n­1 i+n Instrução n-1 Instrução n s+n­1 s+n s+n+1 Instrução n-1 j (i+n) nop .... i js nop .

como muitas c arquiteturas possuem desvios adiados (delayed branches). Estes ajustes est˜o explicados em a maiores detalhes a seguir. seu c´digo ´ replicado e o e no espa¸o de endere¸amento da SPM. No espa¸o de endere¸amento da MP. E importante perceber que. o que aumenta levemente seu tamanho e. e Por simplicidade. somente a r´plica de c c e seu conte´do n˜o ´ suficiente para que o BB possa ser acessado a u a e partir da SPM. ˆ Casos I e III: requerem a inser¸˜o de desvio incondicional (jump) ca no final do BB. 8(c) e 8(d). estas consistem basicamente a em possuir um desvio incondicional que salta de volta para a posi¸˜o ca adequada no espa¸o de endere¸amento da MP. o ponto de entrada de um BB c c (i.79 ˆ Caso IV (Figura 8(d)). eventualmente. Contudo. co No espa¸o de endere¸amento da SPM. a ca Quando um BB ´ mapeado para SPM. isso depender´ da taxa de invoca¸˜o. 8(b).e. Ajustes fazem-se necess´rios em suas posi¸˜es no espa¸o a co c de endere¸amento da MP e. Isso ocorre comumente quando os la¸os se e c estendem por mais de um BB (por exemplo. delay slots s˜o preenchidos com instru¸˜es de n˜oa co a opera¸˜o (nop). em estruturas de repeti¸˜o para com estruturas condicionais se-sen~o aninhadas). Evidentemente. ca a Como la¸os tendem a ser executados diversas vezes. O BB termina com um desvio condicional cujo alvo ´ outro BB. embora as mudan¸as c c c necess´rias dependam do caso do BB. os BBs que c recaem nos Casos III e IV aparentam ser candidatos mais promissores para mapeamento em SPM quando comparados `queles que recaem nos a Casos I e II. ` direita da seta c˜ a a nas Figuras 8(a). no espa¸o da SPM. As c c posi¸oes que necessitam de ajuste est˜o hachurados. sua primeira instru¸˜o) ´ substitu´ por um desvio incondicional ca e ıdo (jump) para a posi¸˜o (digamos. instru¸˜es de um BB precedente). s) do c´digo do BB no espa¸o de ca o c ´ endere¸amento da SPM.g. embora pudessem ser preenchidos com instru¸˜es uteis ca co ´ (e. por conseguinte. c a ˆ Caso IV: o desvio condicional final ´ transformado em um desvio e incondicional cujo alvo ´ a posi¸˜o daquele desvio no espa¸o de e ca c . o espa¸o necess´rio. os delay slots devem ser considerados sempre que um desvio incondicional ´ adicionado. Estes ajustes tem os c c seguintes impactos: ˆ Caso II: n˜o necessita de mudan¸as pois o c´digo original j´ a c o a termina com um desvio incondicional (e seus alvos n˜o necessitam a de ajuste nos deslocamentos porque s˜o codificados como endere¸os a c absolutos).

conforme as Defini¸˜es 3. Por meio da execu¸˜o deste execut´vel.3 PROFILING DO PROGRAMA Submetem-se os arquivos-objeto reloc´veis ao ligador para realizar a a reloca¸˜o e edi¸˜o de referˆncias. c o A solu¸˜o adotada no Caso IV tem como intuito reduzir o overhead ca de espa¸o na SPM.3 e 3. Seja τ uma fun¸˜o que mapeia cada elemento de programa Di ca para um tipo de elemento. Dada a energia m´dia e a latˆncia m´dia de cada componente e e e (EMP . como tamb´m a adi¸˜o de dois desvios incondie ca cionais (um para o alvo do desvio condicional e outro para a primeira instru¸˜o ap´s a sa´ do BB). λMP .8. data} .). Ecache .4. Ccache . ca a determina-se o trace T . CSPM ) e outros parˆmetros de configura¸˜o (n´mero de portas. λcache . tal que: τ : D → {BB. Dado o trace T . ca o tal como as capacidades dos componentes (CMP . do que resulta um arquivo execut´vel ca ca e a utilizado para fins de profiling.4 CARACTERIZACAO DE LUCRO E ESPACO ¸˜ ¸ Para um dado nodo tecnol´gico. u conforme as Defini¸˜es 3. embora ocasione aumento na energia gasta no espa¸o de enc dere¸amento da MP pelo acesso ` instru¸˜o de desvio condicional. a caracteriza¸˜o de lucro requer o ca a estimativa de energia consumida (ou do atraso) por acesso para cada componente do subsistema de mem´ria.80 endere¸amento da mem´ria principal. respectivamente. a caracteriza¸ao do lucro e o c˜ igualmente leva em conta a configura¸˜o do subsistema de mem´ria.9 co e 3. permitindo assim que mais elementos sejam mac peados. para cada elemento de programa candidato Di . associatividade da cache. Al´m disso. λSPM ). o profiler calcula seu n´mero de acessos ai e sua taxa de faltas mi . etc. Se c a ca decid´ ıssemos pela execu¸˜o do desvio condicional no espa¸o de enca c dere¸amento da SPM. ca o ıda 4. proc. ESPM . seria necess´rio n˜o apenas uma mudan¸a no c a a c deslocamento do desvio. a ca u tamanho de bloco. j´ que a o e a energia m´dia depende dos padr˜es de acesso. co 4. a caracteriza¸˜o de lucro e a de ca espa¸o consistem em encontrar um lucro (pi ) e um espa¸o (wi ) para cada c c elemento candidato (Di ) mapeado para SPM.

4. sua taxa de e c invoca¸ao pode ser escrita como ri = Ni + Si . o overhead ´ sempre nulo. e Para facilitar a visualiza¸˜o do quanto cada espa¸o de endeca c re¸amento (MP e SPM) contribui para o overhead εi . onde Ni denota o n´mero c˜ u de invoca¸˜es devido `s itera¸˜es do la¸o e Si representa o n´mero de co a co c u vezes que o BB ´ alcan¸ado partindo de um outro BB. respectivamente. o n´mero de vezes que seu ponto de entrada ca u ´ acessado). um procedimento ou a um dado est´tico. seu c´lculo leva em considera¸˜o a energia a ca gasta acessando as instru¸˜es de desvio incondicional (e seus respectivos co delay slots) adicionadas: um desvio da MP para a SPM e outro no caminho oposto. respectivamente. tem-se que o lucro de energia obtido em mapear ca um elemento para a SPM ´ dado por pi = ai × (Ei − ESPM ) − εi . a 4. digamos Dk .6. este pode ser c subdividido nas seguintes componentes: εi = εiMP + εiSPM . data}.81 onde BB.1 Lucro de energia de um bloco b´sico a Da Defini¸˜o 3. Considerando os casos de BBs apresentados na Se¸˜o 4. e . Quando τ(Di ) = {proc.2) Quando τ(Di ) = BB.e.1) εiSPM = se τ(Di ) = BB sob os Casos I e III caso contr´rio a (4. Quando τ(Di ) = BB sob o Caso III (la¸o). tal e c que k = i. c Seja s o n´mero de delay slots na arquitetura alvo e ri a taxa de u invoca¸˜o do BB Di (i. proc e data significam um bloco b´sico. onde εiMP e εiSPM representam os overheads de energia nos espa¸os de c endere¸amento da MP e da SPM.2. os ca overheads podem ser escritos como:   (1 + s) ∗ ri ∗ Ei (1 + s) ∗ Si ∗ Ei εiMP =  2 ∗ (1 + s) ∗ ri ∗ Ei (1 + s) ∗ ri ∗ ESPM 0 se τ(Di ) = BB sob os Casos I e II se τ(Di ) = BB sob o Caso III se τ(Di ) = BB sob o Caso IV (4.

e a 4.82 4. o e ´ A etapa de mapeamento procede da mesma forma que na t´cnica e de Mendon¸a (2009. adota-se um eficiente algoritmo de programa¸˜o dinˆmica ca a conhecido como MINKNAP (PISINGER. temos que o espa¸o ocupado em SPM quando ca c da aloca¸˜o de Di ´: wi = σi + σextra . 1997). . nenhuma instru¸˜o ca adicional ´ necess´ria. expressos em bytes. Comparando esta equa¸˜o com a Figura 8.5 MAPEAMENTO EM SPM Este passo consiste em resolver o Problema de Otimiza¸˜o Alvo.2 Espa¸o necess´rio para alocar um bloco b´sico c a a Da Defini¸˜o 3. os tamanhos de uma instru¸˜o a ca de desvio incondicional (jump) e de uma instru¸˜o de n˜o-opera¸˜o ca a ca (nop). os arquivos reloc´veis originais s˜o o a a alterados (patching) de modo a refletir o mapeamento consciente de SPM.7. fica claro que apenas ca dois casos de BBs necessitam de espa¸o extra na SPM. Para o direcionamento do espa¸o da MP para o da SPM c n˜o se tem acr´scimo de instru¸˜es. ca e Da mesma forma que para o lucro. um mapeamento ´timo de elementos para SPM (Xotimo ) ´ encontrado. c ´ 4. Neste trabalho.6 PATCHING DE BINARIOS Dado o mapeamento ´timo. respectivamente. 2010).4. ca para o qual existem muitos algoritmos propostos na literatura. a Para um candidato Di . o espa¸o extra necess´rio para sua aloca¸˜o c a ca em SPM ´ dado por: e σextra = σ jmp + s × σnop 0 se τ(Di ) = BB sob os Casos I e III caso contr´rio a (4. Para os outros c dois casos. em bytes. pois as pr´prias posi¸˜es do BB na a e co o co MP s˜o utilizadas. pode-se compreender σextra como um overhead de espa¸o.3) onde σ jmp e σnop s˜o. Como resultado. devido `s instru¸˜es extras que c a co direcionam o fluxo de controle do espa¸o de endere¸amento da SPM c c para o da MP. bem como para procedimentos e dados.

Durante reloca¸˜o e co ca linkedi¸˜o. de acordo com os casos c ilustrados na Figura 8. devido `s facilidades providas pelas reloca¸˜es a a co (MENDONCA. Ao a co fazer isso. o c´digo do BB ´ ajustado tanto no espa¸o o o o e c de endere¸amento da MP como no da SPM. uma vez que ele poderia ser ´ atingido por BBs distintos e n˜o necessariamente pelo situado em uma a faixa de posi¸˜es vizinhas. O patching ´ realizado no n´ de arquivos-objeto reloc´veis e e ıvel a cada arquivo contendo um elemento de programa mapeado para SPM necessita de ajustes.83 O esfor¸o para realizar o patching aumenta quando elementos de c c´digo s˜o divididos de procedimentos em BBs. ca O patching de elementos de dados e de procedimentos ´ realizado e . o patching de um BB n˜o ´ simples. decidiu-se por copiar o BB para a SPM. na ordem de MBs). que posteriormente ser´ realocado o ca a para o espa¸o de endere¸amento da SPM. Note que o desperd´ de espa¸o de mem´ria total ıcio c o ocupado pelos BBs originais ´ marginal. Ao inv´s disso. Ap´s a c´pia. Embora um a e BB possua um unico ponto de entrada. Uma vez que o endere¸o final de cada se¸˜o c ca (no arquivo execut´vel) ´ desconhecido antes do tempo de liga¸˜o. Cada BB mapeado para SPM tem seu c´digo o copiado para uma se¸˜o de SPM exclusiva (e. e em c c ca editar a tabela de s´ ımbolos de cada arquivo-objeto.bb0) criada no ca arquivo. alguns KB). conforme ilustrado na Figura 8). Cada referˆncia simb´lica resultante corresponde a ca e o uma entrada na tabela de reloca¸˜es do arquivo. mantendo a seu c´digo na MP (apenas sobreescrevendo a posi¸˜o inicial por uma inso ca tru¸˜o de desvio incondicional e as posi¸˜es seguintes que correspondem ca co aos delay slots por n˜o-opera¸˜es. necessitaria potencialmente do patching de co muitos deslocamentos de desvios condicionais no c´digo.spm. Sempre que um BB ´ copiado. atribui-se uma referˆncia simb´lica para a e e o posi¸˜o desejada. todas as referˆncias nesta tabela s˜o substitu´ ca e a ıdas por endere¸os efetivos. o a e ca alvo dos desvios incondicionais que redirecionam para e do espa¸o de c endere¸amento da SPM n˜o podem ser codificados como endere¸os c a c absolutos. . ¸ O patching de um procedimento consiste basicamente em mover seu c´digo para uma se¸˜o de SPM. que ´ muito menor do que o da MP e (tipicamente. pois est´ atrelado ao tamanho e a da SPM (tipicamente. evita-se visitar os desvios condicionais que requerem ajuste de deslocamento. No entanto. em tempo de liga¸˜o. o Por esta raz˜o.g. 2010). o patching o a em arquivos-objeto reloc´veis tende a ser mais eficiente do que em a arquivos execut´veis. entradas de reloca¸˜es que c e co originalmente apontavam para ele s˜o redirecionadas para apontarem a para sua nova se¸˜o de SPM. Por outro lado.

mescla todas as se¸˜es de SPM (. ciente de SPM) corrige cada referˆncia simb´lica. a . a o ligador (instrumentado com um script modificado.spm. dando origem ao c c arquivo execut´vel otimizado. c 4.84 conforme descrito por Mendon¸a (2010).*) e o co e as realoca para o espa¸o de endere¸amento de SPM.7 GERACAO DE SA´ ¸˜ IDA Depois que todos os arquivos-objeto s˜o submetidos ao patching.

elas e a a a ca consomem mais energia. a e ca e SPM acaba por absorver boa parte da energia consumida pelas caches. pois espera-se que sejam alocados em SPM justamente os elementos de programa com maior taxa de faltas na cache (que. Para certos programas. No entanto. ´ de se esperar que este ajuste acabe a a e aumentando o total de energia consumida no subsistema de mem´ria. supondo que a taxa de faltas na cache antes do o aumento de capacidade j´ era muito pr´xima de zero. o a que n˜o aconteceria se a cache tivesse sido ajustada ` aplica¸˜o. (2010) de 21%. i.e. a a ca Considerando primeiramente t´cnicas OVB tendo arquiteturas e sem cache (UNAs) como arquitetura-alvo. e FCAs como arquitetura de referˆncia. diminuir os acessos ` MP. o Quando a aloca¸˜o em SPM despreza o impacto da(s) cache(s) ca no subsistema de mem´ria. Imagine um subsistema de mem´ria composto por o I-cache e MP. pois ca e absorveu parte do consumo de energia de uma cache n˜o-ajustada. o qual est´ sendo ajustado para uma dada aplica¸˜o. Steinke et al. (2002a) reportam uma economia m´dia e e de energia de 30%. Essa varia¸˜o no consumo de energia pode ser explicada pelo ca seguinte exemplo. Como as caches de referˆncia n˜o foram pr´-ajustadas.85 5 AJUSTE-FINO DE CACHES PARA AVALIACAO DA ¸˜ ˜ EM SPMS ALOCACAO ¸ O subsistema de mem´rias de uma arquitetura somente com o caches (FCA) ou de uma arquitetura baseada em cache (CBA) ´ muito e sens´ ` configura¸˜o das caches que o comp˜em. pode-se deduzir que a economia resultante da aloca¸˜o em SPM ´ superestimada. aumentar a energia consumida por acesso. Zhang e Vahid (2003) reportam uma economia de 40% pelo simples ajuste de parˆmetros em uma cache configur´vel para a aplica¸˜oa a ca alvo. Vahid e Najjar (2005) obtiveram diferen¸as de energia de quase 60% pela simples varia¸˜o do tamanho c ca de bloco de uma cache de dados. a resultando em redu¸˜o da energia total consumida no subsistema de ca mem´ria. Verma e Marwedel (2007) de 20% e Egger et al. Se as o e caches da arquitetura de referˆncia n˜o est˜o ajustadas ` aplica¸˜o. o n´mero a o u de acessos ` MP j´ era pequeno. Tal sensibilidade ıvel a ca o acarreta grande impacto no total de energia consumida pelo subsistema. a economia obtida ´ superestimada. Quando e ca a t´cnica de aloca¸˜o em SPM ´ aplicada sobre a arquitetura-alvo. induzem maior consumo de energia na cache e na MP). Zhang. elevando assim o consumo de energia da arquitetura de referˆncia utilizada para normaliza¸˜o dos resultados. por isso. mas ao mesmo tempo. e a e . Um a ca aumento na capacidade da cache pode. Disto. por exemplo.

evidenciando o real impacto da t´cnica sobre o programa otimizado. (2004) (CBA). Por exemplo. Egger. ´ 5.1 AS TECNICAS DE AJUSTE-FINO DE CACHES As t´cnicas de ajuste-fino das mem´rias cache (cache-tuning) e o procuram estimar o comportamento de um determinado espa¸o de c projeto de caches para uma aplica¸˜o. (2010) relatam.86 o ganho da aloca¸˜o em SPM est´ superestimado. (2007) relatam a economia m´dia de energia de 8% para dados. Egger et al. (2006) (UNA) relatam uma economia de energia de 24% sobre Angiolini et al. ca Por conta disso. respectivamente. Dependendo da t´cnica. verdadeiramente significativos. Em sistemas com ca a caches pr´-otimizadas. pois a presen¸a de cache em uma CBA diminui o potencial a e c de otimiza¸˜o da SPM. as principais t´cnicas de ajuste-fino e . e a Al´m disso. ca As principais t´cnicas de ajuste-fino de mem´rias cache s˜o enue o a meradas em Viana (2006). A captura c˜ a do padr˜o de acesso da aplica¸˜o ´ feita pelo processamento do seu trace a ca e de execu¸˜o. este ca e espa¸o de projeto pode corresponder a uma ou a diversas configura¸˜es. Tal otimiza¸˜o dos ca parˆmetros da cache pode ser feita por meio de t´cnicas de ajuste-fino a e de caches (cache-tuning). faz-se necess´ria a escolha apropriada da configua ra¸˜o das caches da arquitetura-alvo. favorecendo os ganhos da UNA. superestimando os resultados. pois a as caches tamb´m n˜o foram otimizadas. sim. para cada programa. algumas t´cnicas ignoram as diferen¸as entre as e e c arquiteturas-alvo e estabelecem uma compara¸˜o direta com uma t´cnica ca e proposta para uma arquitetura diferente da sua. deve-se esperar ganhos muito menores que aqueles e reportados. Quando as arquiteturas-alvo s˜o CBAs. de modo que os resultados obtidos ca n˜o sejam mascarados por conta de uma determinada configura¸˜o. o que n˜o ´ justo. c e ca optou-se por estimar. A seguir. as caches de instru¸˜es e co de dados que resultam no menor consumo de energia. e Para evitar que a escolha arbitr´ria dos parˆmetros das caches a a de uma CBA favore¸a os ganhos obtidos atrav´s da aloca¸˜o em SPM. 14% e 24% para c´digo. Lee e Shin (2008) e e Egger et al. Cho et al. c co obtidas pela varia¸ao de um ou mais parˆmetros da cache. a ca mas. Desta forma ´ e poss´ avaliar adequadamente o impacto da granularidade de c´digo ıvel o e do tamanho da SPM no consumo de energia. o Os ganhos s˜o menores mas — pode-se supor — superestimados.

87 de caches s˜o descritas muito brevemente. 1995) (CONTE. ´ . ´ SMITH. co Na tentativa de solucionar este problema. co e por´m. 2003) (JANAPSATYA. mas apenas adaptar uma das a e existentes. permitem a avalia¸˜o de uma unica configura¸˜o de cache por e ca ´ ca vez e s˜o demasiadamente lentas. uma vez que neste trabalho a n˜o se pretende propor nova t´cnica.. ca Outro grupo de t´cnicas simula n˜o apenas o comportamento e a da cache mas sua intera¸˜o com o processador. TRAIGER. 1989) (SUGUMAR. sendo um ou mais fixos. sendo os principais: capacidade da cache. caso em a e a que possivelmente se far´ necess´ria mais de uma simula¸˜o para a a a ca cobertura de todo o espa¸o de projeto considerado. 2006. c Para o ajuste-fino das mem´rias cache a serem utilizadas na o configura¸˜o experimental. por meio da simula¸˜o ca ca da cache simultaneamente ` execu¸˜o do programa. PARAMESWARAN. VAHID.. utilizando tamb´m o trace ´ e de endere¸os. 2003). nesta ordem (ZHANG. GORDON-ROSS et al.. o comc e portamento de acertos e faltas para uma dada configura¸˜o. 2007. por este levar em considera¸˜o os trˆs parˆmetros enumerados ca e a anteriormente em uma passagem unica. VIANA et al. o que torna seu uso proibitivo para a a explora¸˜o de um espa¸o de projeto contendo centenas ou at´ mesmo ca c e milhares de configura¸˜es de caches diferentes. optou-se por implementar e utilizar o m´todo ca e SPCE (VIANA. 2008). ABRAHAM. GORDON-ROSS et al. denominadas de t´cnicas de e e passagem unica (MATTSON.. Estes dois grupos de t´cnicas. 2008). Estas t´cnicas s˜o mais interessantes. HWU. O conjunto de configura¸˜es de caches a ser simulado ´ c co e determinado pela restri¸˜o quanto aos valores m´ximos e m´ ca a ınimos de alguns parˆmetros da cache. PADUA. 1970) (HILL. GECSEI. IGNJA´ TOVIC. que simulam. a tamanho de bloco e associatividade. Por´m. realizada por um a ca simulador de conjunto de instru¸˜es. 2007. diversos autores propuseram um terceiro grupo de t´cnicas. VIANA et al. 2006a) (VIANA. a grande maioria das t´cnicas n˜o permite a varia¸˜o e e a ca simultˆnea destes trˆs parˆmetros. pois permitem a simula¸˜o e a ca de um conjunto de caches de uma unica vez. ao contexto da infraestrutura experimental. 2006. HIRSCH. 1998) (CASCAVAL. a partir de uma sequˆncia de acessos. As t´cnicas mais simples s˜o aquelas dirigidas pelo trace de e a endere¸os.

Viana n˜o apresenta nenhum algoritmo e os a poucos exemplos demonstram-se insuficientes para preencher as lacunas deixadas pelo algoritmo descrito em seus outros trabalhos.. para cada endere¸o αi do trace.1).88 ´ 5.. Utilizando um o conjunto de mais de 30 parˆmetros de entrada para a caracteriza¸˜o da mem´ria a ca o desejada. 2006). valores de energia s˜o computadas para cada configura¸˜o de cache. o que ´ usado para a determina¸˜o de acerto u e ca ou falta para o acesso. 2007) (VIANA et al. o m´todo SPCE idene tifica. 2006) (GORDONıvel ROSS et al. Uma vez que o trace todo foi analisado. e u ca e uma pilha armazenando os endere¸os j´ processados auxilia no c´lculo c a a do n´mero de conflitos. SPM e DRAM.. (2007) e Viana et al. ca Para esta implementa¸˜o do m´todo de Viana. Em sua tese de ca doutorado (VIANA. Uma estrutura de tabela em m´ltiplas camadas armazena u o n´mero de acertos computados ao longo da execu¸˜o da t´cnica. Por exemplo. diversas dificulca e dades tiveram que ser vencidas. 2008). e fornecido ` ferramenta ca a por comunica¸˜o entre processos. enumerados anteriormente. o algoritmo mostrado em Gordon-Ross et al. a configura¸˜o de melhor eficiˆncia energ´tica ´ ca e e e selecionada. todas as configura¸˜es poss´ c co ıveis dentro do espa¸o de projeto para as quais o acesso ao endere¸o resulta c c em acerto. e a o . usando a ca estimativas de energia obtidas do pacote CACTI 5.31 (THOZIYOOR et al. tamanho m´ a ınimo e m´ximo de a bloco e maior grau de associatividade permitido). e e ´ 5. foi feita uma implementa¸˜o ca do m´todo SPCE como um programa standalone C++.2 O METODO SPCE Dados um trace de mem´ria e restri¸˜es de espa¸o de projeto o co c (tamanho m´ ınimo e m´ximo de cache. As restri¸˜es de e co espa¸o de projeto s˜o passadas como argumentos via linha de comando. energ´ticos e de ´rea desta mem´ria. Finalmente. o modelo do CACTI permite a estimativa de uma s´rie de atributos e temporais. Mais detalhes sobre o m´todo SPCE encontram-se no Apˆndice A. c a O trace de endere¸os ´ obtido via simulador (modelo execut´vel) para o c e a processador-alvo MIPS (descrito na Se¸˜o 6. 2008) combinado com o n´mero de acertos e faltas derivados da u tabela.3 IMPLEMENTACAO DO METODO SPCE ¸˜ Com base na literatura dispon´ (VIANA. (2008) n˜o apresenta ina sumos suficientes para viabilizar sua implementa¸˜o. Estas lacunas somente foram preenchidas por meio de 1 CACTI ´ um modelo f´ e ısico de mem´rias cache.

89 dedu¸˜o e compara¸˜o com os exemplos apresentados. 1998). ´ a velocidade de execu¸˜o. que s˜o programas extremamente pequenos e r´pidos. ca a 1993) e uma acelera¸˜o de quase 2 vezes com rela¸˜o ` uma heur´ ca ca a ıstica de ajuste-fino (ZHANG.e. 2008) em rela¸˜o ` ferramenta Dinero2 (HILL et al. Dentre estas taxas. Para n˜o comprometer de nenhuma maneira a estimativa do m´a e 2 Dinero ´ uma conhecida ferramenta dirigida por trace para o c´lculo das taxas e a de acertos e faltas de uma determinada configura¸˜o de cache. A aplica¸˜o sobre a a ca programas mais realistas (como os relatados na Se¸˜o 6. e c a assim sucessivamente. independentemente da taxa considerada. Os e e ca autores relatam em Viana et al. pode ser enquadrada como t´cnica de c u e ajuste-fino de passagens m´ltiplas (uma para cada cache a ser avaliada). uma enorme gama de endere¸os distintos c s˜o processados e necessitam ser armazenados em uma pilha. VAHID. Viana (2006) prop˜e duas alco o ternativas: uma amostragem (ι/θ ) do trace de endere¸os. Para a primeira sugest˜o. e o ι = 64/θ = 2048 ´ a que apresenta o melhor resultado. a ca A explica¸˜o para tal aumento no tempo de execu¸˜o ´ porque. os θ seguintes s˜o ignorados. Exemplos ca destes tempos s˜o apresentados no final desta se¸˜o. ca ca e para programas muito grandes. 2005). Para alguns e programas de benchmark relatados. (2008) uma acelera¸˜o de quase 15 vezes ca (VIANA et al. s˜o c a processados ι endere¸os sequenciais. ι = 16/θ = 512 e ι = 64/θ = 2048) conduz a resultados m´dios que diferem por apenas 4% do valor ´timo. e e a a e revela que a explica¸˜o para tal rapidez encontra-se nos programasca alvo escolhidos. a Para contornar estas limita¸˜es..1 do presente ca trabalho) demanda um tempo de execu¸˜o muito maior. O m´todo ´ experimentado sobre um conjunto de e e 9 programas do benchmark Powerstone (SCOTT et al. ca A op¸˜o adotada pelo presente trabalho n˜o foi nem uma nem ca a outra. dependendo do tamanho da pilha.. u . A causa a n˜o foi identificada pelos autores at´ o presente momento. passa a falsa sensa¸˜o de que a ca e ca t´cnica ´ extremamente r´pida. Uma an´lise mais detalhada. ou o limite do tamanho da pilha. o uso de amostragem levou a erros consider´veis. NAJJAR. contudo. Para a explora¸˜o de ca ca espa¸o de projeto contendo m´ltiplas caches. aliado ao baixo tempo de execu¸˜o m´dio (120s). Uma a opera¸˜o de busca ´ realizada para cada endere¸o acessado. a e Para a segunda sugest˜o. Gordon-Ross et al. i. Viana (2006) n˜o apresenta valores a a fact´ ıveis nem o erro causado por esta restri¸˜o. por´m. ca ca Um problema que atinge n˜o s´ o m´todo SPCE.. mas todos a o e os m´todos de ajuste-fino de caches. Isso tudo. o que pode ca e c tomar um tempo consider´vel. (2007) relatam que a a amostragem de apenas 3% do total de endere¸os (usando as taxas c ι = 4/θ = 128.

5 IMPACTO DO AJUSTE-FINO NA ECONOMIA DE ENERGIA O algoritmo de ajuste-fino permite a estimativa do consumo de energia de cada uma das caches do espa¸o de projeto considerado.90 todo. Estes resultados corroboram a necessidade do ajuste- . co respectivamente. expressa em bytes (B). o ajuste-fino de certos programas levou muito tempo. c Determinando-se as caches de melhor e pior eficiˆncia energ´tica — i. 2001) para o nodo tecnol´gico (technology node) CMOS de 90nm. onde os tamanhos de cache e de bloco s˜o expressados em bytes. a economia de energia obtida pelo ajuste-fino foi de e 88% para a I-cache e de 80% para a D-cache.1. ca ca 5. O tamanho de bloco variou entre 8B e 32B. considerou-se desde o mapeamento direto (1) at´ 8-vias. ´ poss´ e ıvel normalizar o consumo das primeiras sobre o das ultimas e estimar o ´ impacto do ajuste-fino de caches na economia de energia para o espa¸o c de projeto considerado.1. variou entre 1K e 8K. co a associatividade. descrita em maiores detalhes na Se¸˜o 6. para o programa basicmath. Por exemplo. apresentado na Figura 9. o ajuste da I-cache levou 2 dias e 15 horas. Mais sobre os programas-alvo e a a configura¸˜o experimental utilizada encontra-se na Se¸˜o 6. tamanho de bloco). e e menor e maior consumo de energia — para cada programa. e A Tabela 4 apresenta os parˆmetros de configura¸˜o obtidos a ca do ajuste-fino das caches de instru¸˜es (I-cache) e dados (D-cache) co para cada programa-alvo do benchmark MiBench (GUTHAUS et al. A maior redu¸˜o foi obtida ca para a I-cache do programa basicmath (pr´ximo de 100%). Mesmo assim.. As o configura¸˜es s˜o representadas por uma tupla (capacidade da cache. optou-se por paralelizar o algoritmo utilizando diretivas OpenMP.e. respectivamente. A capacidade e a e da SPM. As menores o redu¸˜es foram obtidas para a D-cache de FFT e IFFT : 38% e 37%. 3 dias e 15 horas. E. e quase 19 horas. para a associatividade. com todos os valores permitidos para cada e um dos trˆs parˆmetros considerados pela t´cnica SPCE. o ajuste-fino da I-cache e da D-cache demoraram. a u ca ´ 5.4 DETERMINACAO DAS CACHES PRE-AJUSTADAS ¸˜ O espa¸o de projeto considerado para o pr´-ajuste das mem´rias c e o cache ´ ilustrado na Tabela 3. e o da D-cache levou 12 horas. Para o programa fft. Estes tempos foram medidos em uma m´quina com quatro-n´cleos. Em m´dia.

1w) (8K. 8 . 8 .1w) CT 32K 2K 16K 16K 4K 16K 32K 16K 16K 16K 16K 32K 2K 8K 32K 32K 8K 8K 8K 16K .1w) (1K.1w) (2K. 8 .1w) (4K. 8 .1w) (4K. 8 .1w) (8K.2w) (1K.1w) (4K. 8 . 8 . 8 .1w) (1K.2w) (1K. 8 .2w) (8K. 8 . 8 . 8 .2w) (4K.1w) (1K.2w) (8K.2w) (2K. a Capacidade (B) Tamanho de bloco (B) Associatividade 1K 8 1 2 2K 16 4 4K 8K 32 8 Tabela 4: Resultado do ajuste-fino das mem´rias cache o Configura¸˜o ca Programa basicmath bitcount qsort susan edges susan smoothing cjpeg stringsearch dijkstra blowfish enc blowfish dec rijndael enc rijndael dec sha crc32 fft ifft adpcm code adpcm decode gsm toast gsm untoast I-cache (4K.2w) (8K. 8 .1w) (2K. 8 . 8 . 8 .2w) (8K. 8 .16.2w) (4K.1w) (4K. 8 .16.16.1w) D-cache (1K.1w) (4K. 8 .1w) (2K. 8 .16.1w) (4K. 8 . 8 .16.1w) (1K.91 Tabela 3: Espa¸o de projeto considerado para ajuste-fino das mem´rias c o cache Min.16.1w) (4K. 8 . 8 .1w) (8K.2w) (8K. 8 .1w) (8K.2w) (8K. 8 . 8 .16.1w) (1K. 8 . M´x.2w) (1K.1w) (2K.2w) (4K. 8 .16.2w) (1K. 8 . 8 . 8 .1w) (1K.4w) (1K.2w) (4K.2w) (2K.

D-cache 92 Figura 9: Impacto do ajuste-fino na economia de energia das caches de instru¸˜es e dados co .I-cache Maior economia .Maior economia de energia (normalizada para a configuração de pior eficiência energética) 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% 100% Maior economia .

a mT = kI kD kT = mI ×CI . Sejam mI and mD as taxas de faltas locais da I-cache e D-cache. = mT ×CT As constantes kI . i.4. dividido pelo e u n´mero total de acessos para ler instru¸˜es ou ler/escrever dados: u co mI + LS × mD (5. tem-se kT = kI + kD . o pr´-ajuste a ca e diminui o espa¸o de otimiza¸˜o a ser explorado pela aloca¸˜o em SPM.1) 1 + LS Por simplicidade. Tal capacidade. Seja LS a fra¸˜o do n´mero de instru¸˜es executadas ca u co que representam instru¸˜es de carga (load ) e escrita (store).6 CALCULO DA CACHE UNIFICADA EQUIVALENTE Para correlacionar as capacidades da SPM e das caches pr´e ajustadas. kD e kT podem ser interpretadas como a m´dia e do n´mero de bytes transferidos de ou para a MP. ocasionado mais acessos aos n´ ıveis superiores da hierarquia de mem´ria. respectivamente.4. co a a taxa de faltas combinada ´ o n´mero total de faltas. denotada por CT . o que leva a: CT = CI × mI +CD × mD mT (5. ´ conveniente definir a capacidade de uma cache unificada e equivalente (T-cache). s˜o certamente ca o a menores do que aquelas avaliadas em sistemas com caches n˜o-ajustadas. Como a T-cache u deve transferir a mesma quantia de bytes que I-cache e D-cache juntas. como ser´ mostrado na Se¸˜o 6. = mD ×CD . equivalente em termos de taxa de faltas `quelas a previamente ajustadas. a que acabam por consumir mais energia por acesso e sofrem mais faltas.93 fino previamente ` aloca¸˜o em SPM. o Para alguns casos.e. ıda a ca Assim sendo. medidas ap´s o ajuste-fino. Ent˜o. c ca ca ´ 5. uma quantia consider´vel dessa economia — sen˜o toda ela a a — teria sido atribu´ intuitiva e indevidamente ` aloca¸˜o em SPM. ´ calculada e como segue.2. Em sistemas sem o pr´-ajuste a ca e das caches. considera-se que a taxa de faltas e a capacidade de uma cache s˜o inversamente proporcionais. ´ preciso ter sempre em mente que as economias e apresentadas na Se¸˜o 6.2) .

obtidas a partir das Equa¸˜es 5.2 para co cada programa. .94 A ultima coluna da Tabela 4 descreve as capacidades das caches ´ equivalentes unificadas.1 e 5.

que previne otimiza¸˜es que rea ca co sultem em aumento do tamanho de c´digo. com exce¸˜o de barramentos de o ca interconex˜o. Os arquivos-objeto reloc´veis foram produzidos utilizando o coma pilador cruzado (cross-compiler ) gcc (vers˜o 4. Alexandre Keunecke I. uma SPM. utilizou-se da seguinte infraeso trutura.4. de Mendon¸a e Daniel Pereira Volpato. A compila¸˜o co a ca utilizou o parˆmetro de otimiza¸˜o -Os. caches de instru¸˜o e de dados (n´ ca ıvel 1) e. o profiler e o modelo parametriz´vel do subsistema de mem´ria1 . como Deng et al. o qual serviu de entrada para os seguintes artefac tos computacionais: o algoritmo de ajuste-fino. Para gerar o os arquivos execut´veis a partir dos reloc´veis. pr´pria para sistemas embarcados. a o Como o modelo execut´vel do processador (descrito abaixo) n˜o suporta a a instru¸˜es de ponto-flutuante. Os principais parˆmetros desta mem´ria s˜o: CMM = 128MB. O a o modelo execut´vel do processador MIPS (um simulador do conjunto de a instru¸˜es gerado pela ADL ArchC (RIGO et al. uma implementa¸˜o reduzida da ca biblioteca padr˜o da linguagem C. a Como MP..1 CONFIGURACAO EXPERIMENTAL ¸˜ Para a avalia¸˜o do impacto do pr´-ajuste das mem´rias cache. (2009). c . opcionalmente. Egger. (2006). utilizou-se o linkeditor a a ld dispon´ no pacote GNU Binutils (BINUTILS. a o a 1 Ferramenta implementada por Rafael Westphal. 2007). a qual ´ a mesma de outros trabae lhos. do suba sistema de mem´ria como um todo. ca e o bem como da granularidade de c´digo.1) combinado com a a biblioteca newlib (RedHat Inc. assumiu-se o uso de uma mem´ria off-chip Micron o MT48H8M16LF low-power SDRAM. uma escolha apropriada para o sistema embarcados com capacidade limitada de mem´ria. 2004)) gera o trace de co endere¸os acessados.95 6 VALIDACAO EXPERIMENTAL E RESULTADOS ¸˜ 6. 2010). Lee e Shin (2006) e Egger et al. ıvel O ambiente de simula¸˜o utilizado consistiu de um modelo execa cut´vel do processador e um modelo do subsistema de mem´ria. Este modelo (pr´-validado) a o e permitiu a composi¸˜o de distintas arquiteturas (do subsistema de meca m´ria). utilizou-se a biblioteca soft-float para co emular estas instru¸˜es por outras de matem´tica inteira. Tamb´m permitiu a estimativa do consumo e de energia dinˆmica de cada componente — por conseguinte. utilizando os seguintes componentes: uma mem´ria principal o o (MP) externa (off-chip).

o Os experimentos foram realizados em uma m´quina com procesa sador Intel Xeon E5430 (quad-core) 2. do mesmo benchmark. para um nodo tecnol´gico de 90nm.. ´ apresentado na segunda coluna da Tabela 6. rodando o sistema operacional Ubuntu GNU/Linux (kernel 2. a largura de banda da MP e a largura do barramento de interconex˜o a da MP com o processador s˜o do mesmo tamanho do bloco das caches. empregouo ca se uma FCA (com I-cache. (2009). Kannan et al. 8V. quando compilado na infraestrutura mencionada anteriora mente. . 2008). (2007). Os parˆmetros e a de entrada aplicados em cada programa foram retirados dos casos de teste correspondentes.e. a No caso de a I-cache e a D-cache possu´ ırem tamanhos de bloco diferentes.31. adotou-se uma referˆncia particular para a e 2 Apesar de a t´cnica utilizada ser capaz de realizar a aloca¸˜o em SPM para todos e ca os benchmarks propostos.2 GERACAO DOS EXPERIMENTOS ¸˜ O conjunto de programas-alvo consistiu-se de 20 programas pertences a todas as seis classes de aplica¸˜es do benchmark Mibench co (GUTHAUS et al. Os valores o de energia e latˆncia modelados foram os mesmos relatados naqueles e trabalhos — os quais. Lee e Shin (2008) e Egger et al. o Considera-se que a MP ´ organizada como uma mem´ria larga — e o i. Esta organiza¸˜o permite que um bloco seja ca transferido das caches sempre de uma unica vez. D-cache e MP externa) como arquitetura de mem´ria de referˆncia (reference memory architecture . Ao cono e tr´rio dos trabalhos anteriores. coincidentemente. 32-bit). a infraestrutura de compilador cruzado (cross-compiler ) e simulador de conjunto de instru¸oes utilizada impediu o profiling de alguns dos c˜ programas do benchmark Mibench (GUTHAUS et al. considera-se o maior deles. 2001)2 . A rela¸˜o dos programas bem como uma ca breve descri¸˜o de sua fun¸˜o s˜o apresentados na Tabela 5. Para fins de normaliza¸˜o. O tamaca ca a nho do arquivo execut´vel de cada programa (inclu´ a ıdas as bibliotecas est´ticas). os parˆmetros dependentes de o a tecnologia (consumo de energia por acesso e tempo de acesso) foram obtidos atrav´s do modelo f´ e ısico de mem´rias CACTI 5. avaliou-se a energia consumida por duas arquiteturas de mem´ria distintas. Egger.6. Para cada programa.. e barramento da mem´ria operando a 100MHz. 6.3 (THOZIYOOR o et al. sem a necessidade de ´ acessos extras ` MP. (2010) para uma mem´ria diferente.66GHz com 4GB de mem´ria o principal.REF).96 VDD =1. a Para as mem´rias cache e SPM. 2001)... s˜o tamb´m os mesmos adoa e tados por Cho et al. denominados large.

Usa o cifrador blowfish para criptografar blocos. exceto que trata-se da descodifica¸ao. Usa o cifrador rijndael para criptografar blocos. c˜ Codifica uma amostra de voz usando o padr˜o GSM (Global Standard for Mobile). a Codifica uma amostra de voz usando a Modula¸ao Diferencial Adaptativa por C´digo de Pulsos c˜ o (ADPCM). Aplica a Transformada R´pida de Fourier sobre um arranjo de dados. a Aplica o algoritmo de Dijkstra para caminho de custo m´ ınimo sobre um grafo grande. a Aplica a Inversa da Transformada R´pida de Fourier sobre um arranjo de dados. exceto que trata-se da descodifica¸ao. sem suporte usual de hardware em sistemas embarcados. a e e Usa o modo para bordas. c˜ a Procura por certas palavras em frases. Usa o cifrador rijndael para descriptografar blocos. O mesmo que o anterior. Pacote para reconhecimento de bordas e cantos em imagens de ressonˆncia magn´tica do c´rebro. c˜ c˜ Usa o algoritmo quick sort para ordenar um grande arranjo de strings. Usa o cifrador blowfish para descriptografar blocos.Tabela 5: Descri¸˜o dos programas de benchmark utilizados ca Programa Descri¸˜o ca basicmath bitcount qsort susan (edges) susan (smoothing) jpeg stringsearch dijkstra blowfish (enc) blowfish (dec) rijndael (enc) rjindael (dec) sha crc32 FFT IFFT ADPCM (enc) ADPCM (dec) GSM (toast) GSM (untoast) S´rie de c´lculos matem´ticos simples. O mesmo que o anterior. c˜ 97 . exceto que utiliza o modo de suaviza¸ao. e a a Testa as opera¸oes de manipula¸ao de bits do processador. a O mesmo que o anterior. Aplica o algoritmo de dispers˜o (hashing) SHA (Secure Hash Algorithm). a Realiza uma Verifica¸ao de Redundˆncia C´ c˜ a ıclica (Cyclic Redundancy Check ) sobre um arquivo. sem sensibilidade ` caixa (case insensitive). c˜ Compacta¸ao de imagens usando o algoritmo JPEG de compress˜o com perda de dados.

a simples avalia¸˜o da economia m´dia para um conjunto de programas qualquer ca e seria muito limitada e question´vel. 1997). Como arquitetura de mem´ria sob avalia¸˜o o ca (memory architecture under evaluation .3 CARACTERIZACAO DOS PROGRAMAS-ALVO ¸˜ Como o impacto da aloca¸˜o em SPM na redu¸˜o de energia ´ ca ca e fortemente dependente das propriedades dos programas-alvo.EVA). deve-se correlatar a economia ca obtida da aloca¸˜o em SPM com propriedades do programa. e Para cada programa. 1 CT . Para uma avalia¸˜o apropriada. uma vez que os resultados poderiam a ser influenciados pela escolha desse conjunto. utilizou-se uma CBA que consiste na adi¸˜o de uma SPM ` REF. determinadas pelo dimensionamento da co capacidade da SPM (CSPM ) como m´ltiplo da capacidade (CT ) da cache u 1 equivalente unificada (T-cache): 16 CT . empregou-se a abordagem NOB descrita nos Cap´ ıtulos 3 e 4. 1 CT .2. ´ Os valores claramente indicam que os programas apresentam hot . de modo ca a fornecer informa¸ao util aos arquitetos de projeto e desenvolvedores c˜ ´ de ferramentas de automa¸˜o de projeto eletrˆnico (Eletronic design ca o automation — EDA). Para cada programa. com parˆmetros de cache pr´-ajustados a e conforme a Tabela 4. Para encontrar tais mapeamentos. O 8 4 2 valor de CSPM para cada programa ´ apresentado na Tabela 7. ca A primeira propriedade extra´ a partir de profiling foi o percenıda tual de acessos que s˜o acomod´veis em uma determinada capacidade.98 cada programa de benchmark. os mapeamentos ´timos foram procurados o sob dois cen´rios distintos — aloca¸˜o de procedimentos (procedure a ca allocation .PRA) ou aloca¸˜o de blocos b´sicos (basic blocks allocation ca a BBA) — e para as 6 diferentes capacidades de SPM. independentemente de sua origem (da aplica¸˜o ou de a ca bibliotecas). a A solu¸˜o ´tima do Problema Alvo de Otimiza¸˜o (formalizado ca o ca no Cap´ ıtulo 3) foi encontrada pelo algoritmo MinKnap (PISINGER. 6. a SPM coexiste com ca a as caches pr´-ajustadas e a MP externa. Para extrair estas propriedades de programa. e que n˜o necessita de hardware dedicado.e. a qual considera como candidatos tanto elementos de c´digo como o dados est´ticos. i. 1 CT . a a como mostram as ultimas cinco colunas da Tabela 6. CT e 2CT . submeteram-se todos os programas selecionados ao profiler para os dados de entrada mencionados na Se¸˜o 6. foram e avaliadas 6 varia¸˜es da CBA.

4% 76.0% 97.9% 99.8% 54.0% 94.4% 76.5% 95.3% 99.4% 98.0% 96.0% 96.9% 44.4% 96.0% 46.0% 34.1% 68.9% 78.2% 97.7% 100.2% 98.3% 94.3% 99.5% 100.2% 67.9% 78.0% 95.3% 65.1% 96.5% 98.4% 88.0% 88.4% 65.4% 75.5% 94.4% 93.5 1 2 4 8 basicmath bitcount qsort susan (edges) susan (smoothing) cjpeg stringsearch dijkstra blowfish (enc) blowfish (dec) rijndael (enc) rijndael (dec) sha crc32 fft ifft adpcm (enc) adpcm (dec) gsm (toast) gsm (untoast) M´dia e .2% 93.1% 40.8% 97.0% 84.2% 68.5% 99.6% 91.2% 88.0% 98.5% 29.0% 99.9% 58.7% 86.5% 96.4% 94.8% 99.9% 31.9% 72.7% 100.5% 99.0% 98.0% 90.0% 100.7% 29.5% 66.6% 91.3% 99 Programa 0.Tabela 6: Percentual de acessos acomod´veis em diferentes capacidades de uma mem´ria qualquer a o Capacidade da mem´ria (KB) o Tamanho 138KB 114KB 170KB 193KB 193KB 241KB 128KB 176KB 38KB 38KB 143KB 143KB 116KB 112KB 147KB 147KB 112KB 112KB 177KB 177KB 172KB 66.4% 100.5% 93.7% 53.0% 100.3% 97.7% 52.8% 90.8% 88.9% 82.9% 95.3% 100.0% 70.4% 95.2% 92.8% 100.0% 98.0% 94.9% 97.9% 91.6% 44.0% 93.2% 94.8% 85.5% 72.8% 95.3% 100.0% 100.3% 72.0% 57.5% 98.0% 99.5% 88.4% 98.9% 94.5% 54.3% 97.9% 57.5% 64.6% 34.6% 93.6% 85.1% 75.2% 88.

100 Tabela 7: Capacidade da SPM utilizada para cada configura¸˜o e ca programa CSPM (B) Programa basicmath bitcount qsort susan (edges) susan (smoothing) jpeg stringsearch dijkstra blowfish (enc) blowfish (dec) rijndael (enc) rjindael (dec) sha crc32 FFT IFFT ADPCM (enc) ADPCM (dec) GSM (toast) GSM (untoast) CT 16 2K 128 1K 1K 256 1K 2K 1K 1K 1K 1K 2K 128 512 2K 2K 512 512 512 1K CT 8 4K 256 2K 2K 512 2K 4K 2K 2K 2K 2K 4K 256 1K 4K 4K 1K 1K 1K 2K CT 4 8K 512 4K 4K 1K 4K 8K 4K 4K 4K 4K 8K 512 2K 8K 8K 2K 2K 2K 4K CT 2 16K 1K 8K 8K 2K 8K 16K 8K 8K 8K 8K 16K 1K 4K 16K 16K 4K 4K 4K 8K CT 32K 2K 16K 16K 4K 16K 32K 16K 16K 16K 16K 32K 2K 8K 32K 32K 8K 8K 8K 16K 2CT 64K 4K 32K 32K 8K 32K 64K 32K 32K 32K 32K 64K 4K 16K 64K 64K 16K 16K 16K 32K .

1 e reportada ¯ ca na segunda coluna da Tabela 8. Outra propriedade extra´ foi a taxa de faltas global dos canıda didatos (m) para cada programa. s˜o relatados e a a i∈H i=1 nas demais colunas da Tabela 8. avaliaram-se os elementos cujo n´mero de acessos ´ muito superior ao n´mero m´dio u e u e de acessos. respectivamente. por exemplo. Para identica a ficar os elementos considerados hot spots de um programa. Para 16 dos 20 programas analisados. outro assumindo blocos b´sicos (BBA). do tamanho e do programa. para outra implementa¸˜o da biblioteca libc (que n˜o a newlib) ca a e para um menor conjunto de programas. pelo o menos 90% dos acessos poderiam acontecer no espa¸o de endere¸amento c c de uma SPM de 4KB. Como a taxa m´dia de faltas dos BBs e que formam um procedimento deve ser equivalente ` taxa de faltas do a pr´prio procedimento.2.2) O n´mero absoluto de hot spots (|H|) e sua frequˆncia de ocoru e rˆncia. onde a e σ s˜o. que o programa crc32 exibe a maior frequˆncia de hot spots combinado com uma das menores taxas de e .e. Pode ser observado. como estes trechos frequentemente acessados podem ser alocados em SPMs de capacidade relativamente pequena. e a u H = {Di | ai > a + 3σ } ¯ n (6. conforme a Equa¸˜o 6. sem a necessidade de alterar dinamicamente sua aloca¸˜o. Estas evidˆncias a e s˜o confirmados por tabela similar exibida em Menichelli e Olivieri a (2009). a ca ¯ a m´dia e o desvio padr˜o do n´mero de acessos. para cada um dos cen´rios. estes ca resultados indicam que programas contendo hot spots n˜o apenas s˜o a a bastante comuns.3%. Em outras palavras.1) Para capturar as propriedades dependentes das granularidades de c´digo. Diante da variedade de programas e dom´ ınios de aplica¸˜o. i.101 spots. m ´ independente da granularidade de c´digo o ¯ e o selecionada. m= ¯ (∑n ai × mi ) i=1 (∑n ai ) i=1 (6. pois concentram a maior parte dos acessos em uma capacidade muito pequena de mem´ria. o que corresponde a 2. ca a Tabela 6 apresenta evidˆncias de que a aloca¸˜o NOB ´ provavelmente e ca e uma abordagem pragm´tica para muitos programas. dada pela Equa¸˜o 6. em m´dia. realizou-se profiling adicional para dois cen´rios distintos: o a um assumindo procedimentos (PRA) como elementos candidatos para aloca¸˜o em SPM. h = ( ∑ ai )/( ∑ ai ).

1% 45.5% 31.10% 5.8% 93.6% 46.32% 0.4% 61.8% 93. .7% 76.00% 1.6% 61.7% 65.2% 69.3% 57.09% 2.7% 46.54% 0.7% 72.5% 37.5% 65.50% 2.1% 60.45% 0.7% 85.3% 24.09% 2.6% Taxa de faltas global dos candidatos.03% 2.2% 95.7% 89.98% 2.6% 62.5% 65.75% 8. N´mero de elementos candidatos classificados como hot u spots.10% 0.0% 42.0% 98.9% 84.00% |H| 11 8 8 12 1 14 2 5 2 2 4 3 7 4 11 11 7 6 3 11 h 47.5% 38.88% 2.3% 63. Frequˆncia de ocorrˆncia dos elementos candidatos clase e sificados como hot spots.5% 71.9% 57.59% 2.6% 79.0% 66.42% 0.6% |H| 4 2 4 2 1 4 1 1 2 2 1 1 1 1 4 4 1 1 2 1 h 62.102 Tabela 8: Propriedades extra´ ıdas para caracteriza¸˜o dos programasca alvo BBA PRA Programa basicmath bitcount qsort susan (edges) susan (smoothing) cjpeg stringsearch dijkstra blowfish (enc) blowfish (dec) rijndael (enc) rijndael (dec) sha crc32 fft ifft adpcm (enc) adpcm (dec) gsm (toast) gsm (untoast) onde: m: ¯ |H|: h: m ¯ 5.8% 64.7% 84.1% 95.40% 0.5% 67.22% 0.84% 1.9% 92.28% 5.8% 62.0% 56.

a economia variou bastante com o tamanho da SPM. e de 25.1 Sensibilidade da economia ao dimensionamento da SPM Olhando-se simplesmente para a m´dia calculada para o conjunto e de programas. Apesar de mostrar uma frequˆncia igualmente alta de hot spots.4. A (taxa de) ocupa¸˜o da SPM pode ser determinada a ca partir dos valores normalizados. normalizado para sua cae c pacidade (wN = wEVA /CSPM ).103 faltas. a economia n˜o varia tanto de acordo com o tamanho a da SPM. ´ dada por o e e EN = EEVA /EREF . O aumento de economia proporcionado pelo dimensionamento da SPM para estes programas. e apresentada na Tabela 9. a qual ca ca pode ser determinada a partir dos valores normalizados (economia = (1 − EN ) × 100). 39 e 94 pontos percentuais. Como ser´ mostrado na Se¸˜o 6. para os programas stringsearch.4 ANALISE DOS RESULTADOS A energia consumida pelo subsistema de mem´ria em cada caso. conforme varia-se o o tamanho da SPM. 39. uma das maiores taxas de faltas. taxa de faltas. Entretanto. foram avaliados 240 casos (20 programas × 6 capacidades de SPM × 2 cen´rios de a aloca¸˜o. respectivamente. ´ apresentado na Tabela 10 para estes e mesmos casos. Os valores m´ ınimo e m´ximo de economia m´dia observada a e foram de 15% a 33% para PRA. que apresenta a menor e a maior economia. ´. e de 17% a 30% para BBA. etc. taxa de ocupa¸˜o ca ca da SPM. susan (smoothing) e adpcm (dec). A economia corresponde a uma redu¸˜o de energia. a Diversos aspectos destes resultados — relacionados ao dimensionamento da SPM. o normalizada para a arquitetura de mem´ria de referˆncia. e o programa sha apresenta. — s˜o analisados nas se¸˜es subsequentes. sha. ´ 6. Todos os valores de energia reportados referem-se apenas ao subsistema de mem´ria (e n˜o a valores totais do sistema). i. pol´ ıtica de aloca¸˜o. . Ao todo. conforme pode ser observado na Figura 10. ca Os valores m´dios de economia de energia e taxa de ocupa¸˜o para e ca cada capacidade de SPM s˜o apresentados graficamente na Figura 10. a co 6.4. seus distintos n´ a ca ıveis de localidade conduzem a padr˜es de economia muito diferentes. o a Tamb´m o espa¸o ocupado em SPM. contudo. Esses e os demais valores s˜o a ilustrados na Figura 11. ocupa¸˜o = wN × 100.e. usando abordagem PRA.

33 0.04 0.40 0.72 0.11 0.99 0.67 .76 0.95 0.73 0.05 0.72 0.79 0.91 0.92 0.97 0.72 0.04 0.49 0.87 0.87 1.84 0.68 0.40 0.11 0.11 0.00 0.98 1.70 0.92 0.92 0.86 0.79 0.30 0.39 0.92 0.78 0.78 0.84 0.75 1.69 0.86 0.71 0.45 0.85 0.95 0.79 0.88 0.28 0.49 0.78 0.69 0.88 0.99 0.89 0.10 0.79 0.10 0.99 0.90 0.91 0.04 0.92 0.73 0.91 0.52 0.40 0.05 0.99 0.67 0.00 0.83 0.72 0.06 0.69 CT 2CT 0.Tabela 9: Energia normalizada para a configura¸˜o de cache pr´-ajustada ca e EN (BBA) Programa CT 0.96 0.78 0.99 0.73 0.84 0.76 M´dia e 0.87 1.10 1.78 0.70 0.63 0.73 0.79 0.75 0.99 0.83 0.92 0.47 0.80 0.73 0.86 1.64 0.93 CT 8 0.78 0.96 0.70 basicmath bitcount qsort susan (edges) susan (smoothing) cjpeg stringsearch dijkstra blowfish (enc) blowfish (dec) rijndael (enc) rijndael (dec) sha crc32 fft ifft adpcm (enc) adpcm (dec) gsm (toast) gsm (untoast) CT 16 0.91 0.93 0.95 0.09 0.91 0.72 0.81 0.80 EN (PRA) 104 CT 4 0.40 0.92 0.78 0.27 0.84 0.58 0.00 0.99 0.91 0.55 0.21 0.97 0.71 CT 16 0.79 0.80 0.29 0.44 0.91 0.99 0.06 0.56 0.23 0.22 0.87 0.99 0.04 0.93 0.01 0.75 2CT 0.97 0.23 0.91 0.69 0.95 0.90 0.89 0.92 0.28 0.45 1.83 0.88 0.10 0.92 0.83 0.69 CT 2 0.84 0.93 0.99 0.68 0.95 0.99 0.05 0.78 0.81 0.44 0.85 CT 8 0.93 0.91 0.98 0.22 0.87 0.95 0.78 0.04 0.89 0.86 0.75 CT 2 0.92 1.99 0.49 0.99 0.84 0.88 0.79 0.69 0.92 0.95 0.95 0.97 0.84 0.08 0.83 0.80 0.79 0.87 CT 4 0.92 0.96 0.99 0.30 0.90 0.93 0.99 0.73 0.81 0.40 0.45 0.10 0.86 0.83 0.78 0.79 0.91 0.71 0.99 0.66 0.91 0.84 0.99 0.83 0.92 0.92 0.72 0.00 0.72 0.83 0.85 0.20 0.96 0.91 0.96 0.70 0.87 0.74 0.91 0.48 0.90 0.00 0.92 0.49 0.94 0.97 0.86 0.85 0.99 0.99 0.28 0.78 0.66 0.87 0.94 0.95 0.99 0.71 0.

Tabela 10: Ocupa¸˜o da SPM ca wN (PRA) CT 0,81 1,00 0,45 0,80 1,00 1,00 0,13 0,63 0,57 0,64 0,97 0,56 1,00 0,72 0,71 0,68 0,69 0,70 1,00 1,00 0,95 0,75 0,52 1,00 1,00 0,98 0,99 0,40 1,00 0,91 0,32 1,00 0,68 0,07 0,31 0,28 0,31 0,47 0,27 1,00 0,30 0,36 0,34 0,34 0,35 1,00 0,62 2CT CT 1,00 1,00 1,00 1,00 1,00 1,00 0,39 1,00 0,90 0,90 1,00 0,70 1,00 1,00 1,00 1,00 0,77 0,77 1,00 1,00 0,92 2CT 0,75 1,00 0,99 0,69 1,00 1,00 0,19 0,84 0,43 0,45 0,55 0,35 1,00 0,49 0,65 0,64 0,39 0,39 1,00 0,83 0,68

Programa

basicmath bitcount qsort susan (edges) susan (smoothing) jpeg stringsearch dijkstra blowfish (enc) blowfish (dec) rijndael (enc) rjindael (dec) sha crc32 FFT IFFT ADPCM (enc) ADPCM (dec) GSM (toast) GSM (untoast) 1,00 0,98

CT 16 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 CT 8 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 CT 4 1,00 1,00 1,00 1,00 1,00 1,00 0,61 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 CT 2 1,00 1,00 1,00 1,00 1,00 1,00 0,27 1,00 1,00 0,78 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 CT 16 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 CT 8 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 CT 4 1,00 1,00 1,00 1,00 1,00 1,00 0,79 1,00 1,00 1,00 0,88 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 CT 2 1,00 1,00 1,00 1,00 1,00 1,00 0,79 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00

105

M´dia e

1,00

Economia de energia sobre a referência Ocupação normalizada para capacidade da SPM 90% 80% 70% 60% 50% 40% 30% 20% 10% 0%

100%

Ct/16

Ct/8 Ocupação (PRA)

Ct/4

Ct/2 Capacidade da SPM Economia de energia (PRA)

Ct

2Ct

Ocupação (BBA)

Economia de energia (BBA)

106

Figura 10: Economia m´dia de energia e taxa m´dia de ocupa¸˜o por capacidade de SPM e e ca

107

usando abordagem PRA, obtidas pelo dimensionamento da SPM, bem como a diferen¸a m´dia, cujo valor ´ de aproximadamente 18%. c e e Atrai muita aten¸˜o o resultado da aloca¸˜o para o programa ca ca adpcm (dec), cujas economias m´ ınima e m´xima observadas sob PRA a s˜o de 2% e 96%. Isto pode ser explicado pelo seguinte: adpcm (dec) a cont´m uma estrutura de dados (sbuf) frequentemente acessada na e MP por conta de sua alta taxa de faltas (msbu f = 0.999) e seu grande n´mero de acessos (asbu f = 13305600), sendo respons´vel por 95% da u a energia consumida pelo sistema de mem´ria da REF. Uma vez que o o tamanho de sbuf ´ maior do que a capacidade das menores SPMs e (CT /16 < CT /8 < σsbu f = 2000B), a economia resultante ´ marginal. T˜o e a logo essa estrutura possa ser alocada nas SPMs maiores, a economia torna-se extremamente alta. Estes resultados mostram o qu˜o sens´ a ıvel ao dimensionamento da SPM alguns programas podem ser. 6.4.2 Pol´ ıtica de aloca¸˜o de maior eficiˆncia energ´tica para ca e e uma determinada capacidade de SPM Para um determinado tamanho de SPM, PRA e BBA conduzem essencialmente ` mesma economia m´dia. Todavia, dentre todos os a e casos avaliados, PRA conduz ` maior economia na maioria (61%) a deles, BBA em 20%, e ambas empatam nos 19% restantes. Alguns casos particulares merecem coment´rios. a De um lado, para o programa sha, as economias de BBA prevalecem para todos os tamanhos de SPM. Isto pode ser explicado da seguinte maneira. Sob PRA, ´ imposs´ alocar os dois procedimene ıvel tos mais acessados (sha update e sha transform) nas SPMs menores (CT /16 < CT /8 < σsha update < σsha trans f orm ). Entretanto, sob BBA, os BBs mais acessados destes procedimentos cabem nestas SPMs pequenas, permitindo maiores economias. Para as SPMs maiores, uma estrutura de dados muito acessada (W) participa da aloca¸˜o: como ambas as ca pol´ ıticas podem aloc´-la, ambas conseguem economias maiores. Embora a PRA possa agora mapear sha update e sha transform para as SPMs maiores, BBA ainda consegue melhores resultados porque uma pequena fra¸˜o do c´digo destes procedimentos reside em hot spots: sob BBA os ca o BBs que correspondem ao c´digo pouco acessado s˜o substitu´ o a ıdos por outros BBs com maior lucro. Por outro lado, para o programa crc32 praticamente n˜o ocorre a economia, independentemente de capacidade da SPM e de pol´ ıtica de

100% 80% 60% 40% 20% Diferença média 0% -20% -40% Menor economia (PRA) Maior economia (PRA) 108 Figura 11: Sensibilidade da economia de energia ao dimensionamento da SPM (usando abordagem PRA) .

´ o unico e ´ programa para o qual BBA resultou em maior economia do que PRA (cujo comportamento foi explicado anteriormente). 6.3 Pol´ ıtica de aloca¸˜o de maior eficiˆncia energ´tica para ca e e um determinado programa A Figura 12 mostra a maior economia de energia obtida para cada um dos programas de benchmark considerados. as duas pol´ ıticas resultaram no mesmo valor de economia de energia.4. os 14 programas apresentados a seguir.05%. devido ao ajuste-fino das ca a e caches. mI = 0. CT ]. uma parcela dessa economia teria sido a e atribu´ indevidamente ` aloca¸˜o em SPM. Se as caches ca n˜o tivessem sido pr´-ajustadas. o programa crc32 experimentou uma economia ca de energia de 94% para a I-cache e de 88% para a D-cache pelo ajutefino das caches. Alguns poucos programas obtiveram maior redu¸˜o de consumo ca . o que impossibilita maiores ganhos via aloca¸˜o em SPM. PRA resultou em menor consumo de energia para 70% de todos os programas. ıda a ca 6. ou seja. O ajuste-fino diminuiu a taxa de faltas das caches. em 2 destes (susan (smoothing) e gsm (toast)) a capacidade que permitiu uma maior redu¸˜o do consumo de energia foi ca de 2CT . Mesmo descartando-se o efeito devido aos elementos n˜o-aloc´veis (de pilha e de heap). a configura¸˜o REF exibe uma taxa de faltas extremamente ca baixa (mD = 0. conforme mostrado pela Figura 13.09%). Dos 3 programas restantes. Conforme ca apresentado na Se¸˜o 5. O primeiro programa apresentado. Para os 5 programas seguintes. A raz˜o ´ que.109 aloca¸˜o (BBA ou PRA). utilizando as duas pol´ ıticas de aloca¸˜o suportadas. sha. e no outro programa (adpcm (enc)) foi de CT /4. a capacidade de SPM que levou ao menor consumo de energia reside no intervalo [CT /2.5.4.4 Capacidade ´tima da SPM o Em 85% dos programas (17/20). e dentro de todo o intervalo consideca rado ([CT /16. o qual pode ser usado como “regra de ouro” para o dimensionamento da SPM em CBAs.09%). 2CT ]). a taxa de faltas dos a a candidatos continua pequena (m = 0. ¯ O efeito do pr´-ajuste das caches aqui ´ interessant´ e e ıssimo: a otimiza¸˜o induzida pelo ajuste-fino deixa pouqu´ ca ıssimo espa¸o c para uma economia adicional via aloca¸˜o em SPM.

Maior economia de energia (normalizada) 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% BBA PRA Figura 12: Maior economia de energia. para cada programa 110 . utilizando BBA e PRA.

al´m disso. para ambas as pol´ ıticas de aloca¸˜o. levando ca a ainda assim a uma economia satisfat´ria.111 20 18 Quantidade de programas ntidade 16 14 12 10 8 6 4 2 0 [Ct/16. e Al´m disso. Ct/2] [Ct/2. Entre ca estas capacidades ocorre aumento significativo de economia de energia para os programas sha e adpcm (decode). 2Ct] Capacidade da SPM Figura 13: Capacidades de SPM que propiciam maior economia de energia de energia tamb´m para SPMs de capacidade pequena ([CT /16. e Entretanto. percebe-se que quando a capacidade da SPM passa e de CT /8 para CT /4 ocorre o maior aumento m´dio de economia de e energia. o . a economia e de energia destes programas n˜o varia muito com o dimensionamento da a SPM. Da capacidade de SPM de CT /4 para o intervalo da capacidade ´tima. Esta capacidade pode ser usada como regra para sistemas embarcados com restri¸˜o de ´rea. estas capacidades pequenas podem ser descartadas do espa¸o de c projeto da SPM. a economia de energia varia o pouco (2% para BBA e 5% para PRA). Ct/4] [Ct/4. pois todos estes programas apresentaram consumo equivalente para SPMs de capacidades maiores. Como. esta maior redu¸˜o de energia n˜o foi exclusividade destas ca a capacidades. em torno de 8%. Isto permite que maiores economias de energia sejam obtidas. Ct] [Ct.CT /8]). para sistemas que executem mais de um programa. em m´dia.

ao contr´rio de PRA. a economia de energia foi medida usando a pol´ ıtica de aloca¸˜o PRA.6 Ocupa¸˜o das SPMs ´timas ca o Dentro do intervalo contendo a maioria das capacidades ´timas de o SPM para cada programa ([CT /2. cujo limiar nulo (εi = 0) frequentemente a permite aloca¸˜o completa (apesar do lucro marginal de muitos dos ca procedimentos alocados).CT ]). ca Para os 10 programas com menor m.7 Determina¸˜o de um escopo para utiliza¸˜o de BBA ca ca Tal subpovoamento em SPMs grandes indica que BBA pode valer a pena em arquiteturas com SPMs pequenas. apresentada na Figura 14. A explica¸˜o ¯ e e ca para este comportamento ´ que. especialmente para programas com taxa de faltas relativamente alta. 6.4. para SPMs grandes. e e A chave para este fenˆmeno ´ a localidade. ¯ e e enquanto nos 10 programas com maior m. exceto para elementos faltando frequentemente nas caches (para os quais mi × EMP ´ maior. menor a utiliza¸˜o da SPM sob BBA. quando a SPM e a cache equivalente e tem tamanhos compar´veis.6). como ESPM ∼ Ecache . Esta . Sob BBA e SPMs grandes. porque o overhead ca de um candidato (εi ) pode ser visto como um limiar de lucro (pi > 0 ⇒ ai × (Ei − ESPM ) > εi na Defini¸˜o 3. PRA utiliza as capacidades quase ao m´ximo. conforme indicado pelas e Defini¸˜es 3. a economia m´dia ´ de 23%. ca este limiar s´ pode ser atingido por alguns BBs com alta taxa de o faltas.4.5 e 3.4. e de modo que uma maior taxa de faltas permite maior economia.112 6.6. 96% da SPM ´ ocupada sob PRA e 85% sob BBA. digamos CSPM ∼ CT . a m´dia ´ de 43%. 6. os lucros tornam-se marginais (CSPM ∼ a CT ⇒ Ecache − ESPM ∼ 0). ´ poss´ observar e ıvel uma correla¸˜o entre a economia de energia e a taxa de faltas global ca dos candidatos. Para esta capacidade de SPM.5 Correla¸˜o entre economia de energia e taxa de faltas ca para SPMs grandes Considere-se o comportamento de programas para SPMs grandes. Quanto menor a o e taxa de faltas. a aloca¸˜o ca em SPM ´ dominada por elementos frequentemente acessados na MP. Novamente. enquanto BBA resulta em SPMs menos povoadas: a em m´dia. co Em suma.

para SPMs ca grandes (CSPM ∼ CT ) Taxa de faltas global dos candidatos 20% 113 .100% 9% 8% 7% 6% 5% 4% 3% 2% 1% 0% 10% 90% 80% 70% 60% 50% 40% 30% Economia de energia normalizada 10% 0% Economia de energia Taxa de faltas global (m) _ Figura 14: Correla¸˜o entre economia de energia e taxa de faltas global dos elementos candidatos.

pois a ela n˜o disponibiliza um modelo com precis˜o de ciclos (cycle-accurate) a a do processador. como segue. implementa¸˜o ca para sistemas embarcados da biblioteca libc utilizada. uso ou n˜o de a emula¸˜o de ponto-flutuante. foram tomadas algumas medidas para c amenizar o problema de uma compara¸˜o direta. BBA consegue melhor economia para e 3 programas (sha. como implementa¸˜o da libc para sistemas embarcados.114 evidˆncia pode ser refor¸ada a partir de outra perspectiva. por este ser amplamente ca difundido. escolheu-se o ca pacote newlib (conforme descrito na Se¸˜o 6. gsm (toast)). A infraestrutura experimental utilizada ca n˜o permite que se estime a energia total consumida pelo sistema. a percentagem de casos com energia m´ ınima por configura¸˜o cresce de 20% para 28%.4. e o Para contornar esta limita¸˜o e permitir que os resultados de ca energia do subsistema de mem´ria (EMem ) deste trabalho sejam compao rados aos resultados de energia total do sistema (ETotal ) apresentados na literatura. Logo. tipo de MP (on-chip ou off-chip).8 Compara¸˜o com trabalhos correlatos ca Estabelecer uma compara¸˜o direta com outros trabalhos exige ca uma configura¸˜o experimental equivalente. Al´m disso. algumas destas diferen¸as n˜o puderam ser amenizadas c a pela configura¸˜o experimental. Por exemplo. ca Apesar destas diferen¸as. Outras destas vari´veis n˜o puderam ser equiparadas devido ca a a ao pouco detalhamento na descri¸˜o da configura¸˜o experimental da ca ca grande maioria dos trabalhos correlatos. e c Dentro do intervalo [CT /16. ca 6.CT /4]. 2CT ]. Contudo. o que raramente ´ vi´vel em ca e a trabalhos que envolvem muitas vari´veis como: conjunto de instru¸˜es a co (ISA) do processador. quando CSPM ´ limitada para [CT /16.3) . a infraestrutura experimental permite que seja mensurado apenas o consumo energ´tico do subsistema de mem´ria. susan (smoothing). Para tais vari´veis.1).1). como a utiliza¸˜o de ca ca uma MP tamb´m utilizada nos trabalhos correlatos (como descrito na e Se¸˜o 6. considerou-se um fator de proporcionalidade k dado por: k= EMem ETotal (6. do e primeiro para o segundo intervalo. BBA resulta na melhor economia de energia somente para um programa. etc. sempre que poss´ ca ıvel. buscou-se a uma configura¸˜o usual e realista. Contudo.

e e a A economia m´dia de mem´ria obtida por este trabalho varia entre e o 15% a 33% para 6 capacidades distintas de SPM.. Ou seja. Dominguez e Barua (2006) mostram-se inferiores. que s˜o de a 8%. CHO et al. ao contr´rio dos trabalhos correlatos. 14% e 24%. a 2004. quando comparados com as t´cnicas OVB propostas para arquiteturas sem cache (UNAs) de e Verma. o que permite a compara¸˜o direta entre EMem e ETotal sem ca preju´ ızos quanto `s conclus˜es da´ derivadas. Estes resultados s˜o a melhores do que a economia total relatada pelas t´cnicas OVB de Cho e et al. a aloca¸ao em SPM induz economia e c˜ semelhante no consumo de energia do subsistema de mem´ria e do o processador. Wehmeyer e Marwedel (2004b) e Udayakumaran. mas que operam ca e em c´digo-fonte. EGGER. 2010) permitiu estimar 0. estabeleceu-se uma compara¸˜o com t´cnicas tamca e b´m propostas para CBAs e que tamb´m operam em arquivos bin´rios. e . Isto ´ explicado porque economias e estimadas para UNAs tornam-se superestimativas para CBAs devido ` a interferˆncia das caches. ca Uma compara¸˜o com t´cnicas OVB para CBAs. o pr´a ca a e ajuste das caches diminui o impacto da aloca¸˜o em SPM. EGGER et al. E. respectivamente.115 A an´lise de diversos trabalhos correlatos (ANGIOLINI et al. (2007). os a resultados de economia de mem´ria relatados por este trabalho s˜o o a medidos em um subsistema de mem´ria cujas caches foram ajustadas o previamente ` aloca¸˜o em SPM. SHIN. relatam uma economia total de 30%. Finalmente. 2007. revela que a economia de mem´ria m´dia deste trabalho o o e ´ t˜o boa quanto a economia destas t´cnicas. (2010). conforme j´ foi mostrado.. 2008. LEE. Egger. por e a e exemplo. 01. (2002a). conforme apresentado em mais detalhes no Apˆndice B. Deve-se ressaltar que. 98 ≤ k ≤ 1. Steinke et al. os resultados deste trabalho.. a o ı Assim sendo. Lee e Shin (2008) e Egger et al.

116 .

O resultado das configura¸˜es pr´-ajustadas atesta a co e afirma¸˜o feita por Zhang e Vahid (2003) de que os parˆmetros mais ca a . e que t˜o somente uma cache a bem ajustada seria suficiente para prover uma economia de energia bastante satisfat´ria. Tais e ca conclus˜es s˜o v´lidas apenas para arquiteturas com SPM baseadas em o a a cache (CBAs). Todas estas conclus˜es s˜o detalhadas nas a ca o a Se¸˜es 7. ca Dentre todos os trabalhos reportados na literatura at´ o momento. n˜o podendo ser aplicadas para arquiteturas sem caches a (UNAs) antes de maiores estudos. ca ˆ ´ 7. bem como dos 240 casos ca avaliados. de acordo ca a com os resultados obtidos.1 EVIDENCIA EXPERIMENTAL SOLIDA O grande n´mero de casos avaliados permite derivar conclus˜es a u o partir de evidˆncias experimentais s´lidas.117 ˜ 7 CONCLUSOES E PERSPECTIVAS Este cap´ ıtulo apresenta conclus˜es globais sobre a reavalia¸˜o o ca experimental das t´cnicas NOB. e apenas o trabalho de Falk e Kleinsorge (2009) apresenta resultados para um maior n´mero de programas. Outro indicativo desta necessidade ´ a consider´vel varia¸˜o nos e a ca parˆmetros das configura¸˜es de caches pr´-ajustadas pelo algoritmo a co e de ajuste-fino. apresentadas na Se¸˜o 7. Tal fato. apresentadas conclus˜es sobre o a o ajuste-fino das mem´rias cache e o impacto de sua utiliza¸˜o como etapa o ca anterior ` aloca¸˜o em SPM. O cap´ co ıtulo encerra-se com perspectivas para trabalhos futuros. O conjunto de 20 programas e o de benchmark utilizados para experimenta¸˜o. realizada por esta disserta¸˜o. Tamb´m faz considera¸˜es sobre o e co dimensionamento da SPM (para as 6 capacidades de SPM consideradas) e a pol´ ıtica de aloca¸˜o (procedimentos ou blocos b´sicos). ainda. por si. constituem n´mero bem superior ` maioria dos relatados u a pelos demais trabalhos de aloca¸˜o em SPM encontrados na literatura.1 a 7.6.2 IMPORTANCIA DO AJUSTE-FINO A economia marginal obtida por alguns programas mostra que a SPM ´ in´cua em alguns casos espec´ e o ıficos. comprova a necessidade do ajusteo fino das caches no processo de melhoria da eficiˆncia energ´tica de um e e sistema embarcado. S˜o. u ˆ 7.7.

1 Impacto do dimensionamento Neste trabalho. de 4 vias.4 DIMENSIONAMENTO DA SPM 7. englobando todos os valores de tamanho poss´ ıveis no espa¸o c de projeto. 7. Houve predom´ ınio das configura¸˜es com co mapeamento direto. a capacidade da SPM (CSPM ) foi dimensionada como um m´ltiplo da capacidade da cache pr´-ajustada equivalente u e (CT ). O tamanho de bloco variou pouco: 16 dos 20 programas (tanto para instru¸˜es como para dados) tiveram suas caches ajustadas para um co tamanho de bloco de 8 bytes. a maior economia m´dia foi a e . 2 CT . Os programas restantes foram ajustados para 16 bytes e nenhum dos programas para 32 bytes. A associatividade das caches teve varia¸˜o um pouco maior do ca que o tamanho de bloco. embora algumas caches tenham sido ajustadas como associativas de 2 duas e. CT e 2CT O c´lculo da economia m´dia de energia para cada um destes 6 a e tamanhos de SPM (considerando os programas do benchmark MiBench) mostrou que a diferen¸a entre a maior e a menor economia m´dia de c e energia foi consider´vel.4. No caso de BBA. A capacidade de ambas as caches (I-cache e D-cache) variou bastante. 4 CT . sem o predom´ ınio de nenhum valor. 8 CT . Isto permitiu que as e co conclus˜es pudessem ser feitas sobre capacidades da SPM diretamente o relacionadas com uma propriedade dos programas-alvo.3 IMPORTANCIA DA CORRELACAO ENTRE TAMANHO DA ¸˜ ´ CACHE PRE-AJUSTADA EQUIVALENTE E TAMANHO DA SPM Teve fundamental importˆncia a fixa¸˜o das capacidades de SPM a ca como m´ltiplos da capacidade da cache equivalente unificada (sobre u as caches pr´-ajustadas de dados e instru¸˜es). Isto evita que uma sele¸˜o particular de programas ou de tamanhos ca de SPM possa influenciar a generalidade da an´lise dos resultados a experimentais. a taxa de faltas. algumas poucas. seis tamanhos distintos de SPM foram considerados: 1 1 1 1 16 CT . a finalmente. ˆ 7. Ao todo. pela associatividade.118 importantes s˜o o tamanho da cache. seguido pelo tamanho de bloco e.

nos casos em que a capacidade ´tima de SPM n˜o se encontra neste o a intervalo. sha. enquanto no melhor caso ca a redu¸˜o foi de 96%. . Conforme observado nos resultados. ca 7. para permitir um compromisso satisfat´rio entre ´rea no circuito integrado e o a economia de energia. Quando o sistema embarcado tiver restri¸˜o severa de ´rea. ızo a e e 1 A priori esta conclus˜o pode parecer paradoxal quando confrontada com a a literatura. o intervalo ca a o [CT /16. o dimensionamento proporcionou uma melhora ainda mais significativa na redu¸˜o de consumo de energia.4.CT ]. destacam-se os programas stringsearch. Neste intervalo obteve-se a maior redu¸˜o de conca sumo de energia para 17 dos 20 programas-alvo. o paradoxo n˜o se configura. onde SPMs maiores levam a um maior consumo de energia. sem c preju´ ` eficiˆncia energ´tica do sistema. as SPMs conseguem acomodar os elementos de baixa localidade que a cache n˜o conseguiria a acomodar. ele a o pode ser utilizado como ponto de partida para explora¸˜o de redu¸˜o ca ca de consumo de energia pelo dimensionamento da SPM. Para CBAs. ca Sob pol´ ıtica PRA. a maior economia foi de 33% (CSPM = CT ). ao passo que a menor foi de 17% (CSPM = CT /16). para o qual houve redu¸˜o de energia de apenas 2% no pior caso. os resultados observados sustentam que. Para alguns programas.119 de 30% (CSPM = CT ). a economia praticamente dobrou com o aumento da capacidade da SPM1 . Contudo. Ou seja. Al´m disso. ele pode ser utilizado como diretriz para o dimensionamento de SPMs visando a maior redu¸˜o de energia poss´ ca ıvel.CT /8] pode ser descartado do espa¸o de projeto de CBAs. o programa adpcm (dec). contudo. notadamente. Para PRA. ela certamente encontrar-se-´ pr´xima dele. uma ca a SPM com capacidade de CT /4 pode ser adotada como diretriz. para uma e determina¸˜o mais r´pida da capacidade ´tima da SPM. visto que a maioria dos trabalhos a correlatos tratam de arquiteturas-alvo somente com SPM (UNAs). susan (smoothing) e. e portanto. Assim.2 Diretrizes para dimensionamento O pr´-ajuste das mem´rias cache permitiu a identifica¸˜o do e o ca intervalo de capacidades de SPM que levam `s maiores redu¸˜es de a co energia: [CT /2. ao passo que a menor foi de 15% (CSPM = CT /16).

. os programas e a com maior taxa de faltas apresentaram maior economia de energia.1 Aloca¸˜o de procedimentos (PRA) ca Os resultados comprovam que a pol´ ıtica de aloca¸˜o de maior ca eficiˆncia energ´tica ´ PRA. CSPM ∼ CT ). c˜ 7. permitindo maior economia em 61% dos casos e empatando em 19% deles. conduzem a uma maior economia de energia. em m´dia. em m´dia. quando somados. Estes lucros. 2CT ]. [CT /16. resultados equivalentes e a PRA. Para estes casos. que consomem a a a grande quantidade de energia. encontraram-se evidˆncias de que e isto geralmente n˜o ocorre: em m´dia. 2CT ]. embora. Em termos de eficiˆncia energ´tica.3 SPMs grandes e as taxas de faltas A correla¸˜o entre economia de energia e taxa de faltas foi inca vestigada para SPMs grandes (i. Adicionalmente. ´ 7.4. desta forma. i. a aloca¸˜o de candidatos e ca com grande taxa de faltas evitar´ v´rios acessos ` MP. PRA obteve maior redu¸ao de energia que BBA para 70% dos programas. Por outro lado. Este comportamento ´ esperado pois. Entretanto. Averiguou-se que a economia de energia ´ proporcional ` taxa de faltas. ainda que marginal. percebe-se que BBA apresentou maior economia de energia somente para o programa sha.5 POL´ ITICA DE ALOCACAO (GRANULARIDADE DE CODIGO) ¸˜ 7.5.5. o limiar de lucro (overhead ) nulo de PRA. Analisando-se os resultados de energia para o intervalo de SPM [CT /16. ao mesmo tempo que leva a uma ocupa¸˜o muito maior do espa¸o em SPM. De modo e geral.e. considerando-se cada programa com SPM no intervalo [CT /16. restringindo o . os resultados de econoe e e e mia m´dia sejam apenas levemente superiores aos de BBA.CT /4]). permite a ca c aloca¸˜o de v´rios elementos com lucros muit´ ca a ıssimo pequenos. Surpreendeu a eficiˆncia de PRA sobre SPMs pequenas (digae mos.e. as duas pol´ a e ıticas mostraram-se equivalentes.2 Aloca¸˜o de blocos b´sicos (BBA) ca a A pol´ ıtica BBA apresentou.120 7. PRA mostrou-se superior a e e BBA para uma determinada capacidade de SPM. a intui¸˜o diria que BBA deca veria suplantar PRA.

fazem da e abordagem NOB uma escolha pragm´tica para a aloca¸˜o de SPMs a a ca partir de bin´rios. a Como as caches foram dimensionadas previamente ` aloca¸˜o a ca em SPM. O limiar de lucro de BBA impede que candidatos de lucro muito pequeno sejam alocados. susan (smoothing) e gsm (toast). e e apresentando maior economia m´dia para CSPM = CT /16. de 15% a 33% para SPMs com capacidade entre e [CT /16. Sua simplicidade.121 intervalo para [CT /16. para CBAs. mostrando que possuem uma aplica¸˜o efetiva para viabilizar um maior espa¸o ca c de otimiza¸˜o (incluindo elementos de bibliotecas) para a redu¸˜o de ca ca energia em sistemas que n˜o fazem uso de hardware dedicado para a gerenciamento de SPM. mesmo para e SPMs grandes. Neste caso.6 REAVALIACAO EXPERIMENTAL DAS TECNICAS NOB A PAR´ TIR DE ARQUIVOS BINARIOS A economia obtida sob uma abordagem NOB que considera bibliotecas foi. Os resultados permitiram identificar o escopo de maior eficiˆne cia energ´tica para BBA como sendo a uni˜o de SPMs pequenas com e a programas-alvo que apresentam o seguinte comportamento: elementos candidatos frequentemente acessados que exibem taxas de faltas relativamente altas. Em especial. observase que BBA teve uma eficiˆncia energ´tica levemente superior a PRA. pode-se afirmar que as economias obtidas resultam unica e ´ exclusivamente da aloca¸˜o em SPM.CT /4] (o que equivale a SPMs pequenas). 2CT ]. ca ´ ¸˜ 7.6). Esta economia ´ melhor ou t˜o boa quanto aquelas repore a tadas por abordagens OVB que manipulam bin´rios. pode-se verificar que a abordagem NOB n˜o est´ ultrapassada. . em m´dia. ca Diante de tudo isso. a combinada com sua independˆncia de hardware dedicado. o lucro da aloca¸˜o destes elementos ulca trapassa o limiar de lucro da pol´ ıtica BBA (apresentado na Se¸˜o 6. resultando em uma menor ocupa¸˜o da SPM.4. e neste intervalo BBA apresenta maior economia para 3 programas — sha. BBA possui uma vantagem sobre PRA. ca resultando em maior economia. Al´m disso. Os resultados obtidos ap´s o ajuste-fino das a a o caches reabilitam a abordagem NOB diante das OVBs.

o que deve proporcionar uma maior economia de energia. outra possibilidade seria a e incluir o suporte a dados dinˆmicos. assim concedendo a PRA as vantagens de BBA sobre SPMs pequenas. Para que possa ser manc a tida a caracter´ ıstica da t´cnica de n˜o-uso de hardware dedicado.7 PERSPECTIVAS Na an´lise da literatura sobre aloca¸˜o em SPMs. continuariam sendo manipulados c´digo e a o dados est´ticos. 2006) (EGGER et al. Deste modo. 2010). a Esta t´cnica mista parece ainda mais promissora quando combie nada com a aloca¸˜o de c´digo sob BBA. BAc RUA. a quando dados dinˆmicos s˜o inclu´ a a ıdos no espa¸o de otimiza¸˜o. teriaa ıvel o se uma t´cnica de tempo misto: em tempo de compila¸˜o (arquivos-fonte) e ca seriam manipulados os dados dinˆmicos. e no tempo de p´s-compila¸˜o a o ca (arquivos-objeto reloc´veis)..122 7. permitindo que mais dados dinˆmicos sejam alocados em a SPM. vislumbra-se a avalia¸˜o ca do uso de extra¸˜o de procedimentos a partir de la¸os no contexto da ca c t´cnica NOB desta disserta¸˜o. Como um dos trabalhos futuros. o menor c ca povoamento da SPM (resultante do limiar de aloca¸˜o de BBA) ´ muito ca e conveniente. conforme proposto por Mena don¸a (2009. e ca Para aumentar a efic´cia da t´cnica. foram identia ca ficadas duas t´cnicas que fazem extra¸˜o de procedimentos (function e ca outlining) a partir de la¸os (UDAYAKUMARAN. Para a aloca¸˜o de c´digo. DOMINGUEZ. . 2010) (ainda n˜o implementado). estes e a dados dever˜o ser tratados em n´ de c´digo-fonte. Entretanto. Isto permite que BBs frequentemente acessados (cujo limiar de lucro ´ maior do que zero) sejam transformados e em procedimentos frequentemente acessados (com limiar de lucro igual a zero). ca o ca o BBA geralmente parece n˜o valer a pena frente a PRA.

1. Automation and Test in Europe. USA: ACM. 2006.l. A. 2003. M. Compilers. NY.n. n. D. 150–159. AVISSAR. In: Proc. HIRSCH. D. BARUA.]. n. ACM. Dynamic Data Scratchpad Memory Management for a Memory Subsystem with an MMU.n. of the International Conference on Compilers. p. et al. [S. 195–206. CHERITON. 2007. refinements and performance evaluation. A Post-Compiler Approach to Scratchpad Mapping of Code. <http://www. New York. HWU. . BANAKAR. BINUTILS. 1. NY. PADUA. 2002. p. 931–936. p. New York. G. An Optimal Memory Allocation Scheme for Scratch-Pad-Based Embedded Systems. In: Proc. of the ACM SIGPLAN/SIGBED Conference on Languages. p. O.123 ˆ ´ REFERENCIAS BIBLIOGRAFICAS ANGIOLINI.. [S. 1998. R. 6–26. F.org/software/binutils>. The vmp multiprocessor: initial experience. Dynamic scratch-pad memory management for irregular array access patterns. USA: ACM. 73–78. and Synthesis for Embedded Systems (CASES). New York. G.: s. The GNU Binutils Website. In: Proc.-M. In: Proceedings of the 15th Annual International Symposium on Computer Architecture. CHEN.: s. 2002.]. [S. 1988. p.]. 714–720. [S. CONTE.. p.gnu. IEEE Transactions on Computers. A. R. et al. STEWART. CASCAVAL.n. v. of the Conference on Design. D.l.. Combining trace sampling with single pass methods for efficient cache simulation. M. Scratchpad memory: design alternative for cache on-chip memory in embedded systems. Estimating cache misses and locality using stack distances.. v. H. W.. 259–267.l. In: Proceedings of the 17th annual international conference on Supercomputing.: s. USA. T. 2004. Architecture. 6. et al. CHO. NY. 2007. In: CODES ’02: Proceedings of the tenth international symposium on Hardware/software codesign. and Tools for Embedded Systems (LCTES). C.n. ACM Transactions on Embedded Computing Systems (TECS). 410–421. 47. p.: s. et al.l. p.]. W. ISSN 0018-9340. et al.

124

DALLY, W. et al. Efficient Embedded Computing. IEEE Computer, v. 41, n. 7, p. 27–32, July 2008. ISSN 0018-9162. DENG, N. et al. A Novel Adaptive Scratchpad Memory Management Strategy. In: Proc. of the IEEE International Conference on Embedded and Real-Time Computing Systems and Applications. [S.l.: s.n.], 2009. p. 236–241. DOMINGUEZ, A.; UDAYAKUMARAN, S.; BARUA, R. Heap Data Allocation for Scratch-Pad Memory in Embedded Memories. Journal of Embedded Computing, IOS Press, Amsterdam, The Netherlands, v. 1, n. 4, p. 521–540, 2005. EGGER, B. Dynamic Scratchpad Memory Management based on Post-Pass Optimization. Tese (Doutorado) — Seoul National University, Feb 2008. EGGER, B. et al. A dynamic code placement technique for scratchpad memory using postpass optimization. In: Proc. of the International conference on Compilers, architecture and synthesis for embedded systems. [S.l.: s.n.], 2006. p. 223–233. EGGER, B.; LEE, J.; SHIN, H. Scratchpad Memory Management for Portable Systems with a Memory Management Unit. In: Proc. of the ACM & IEEE International Conference on Embedded Software. [S.l.: s.n.], 2006. p. 321–330. EGGER, B.; LEE, J.; SHIN, H. Dynamic Scratchpad Memory Management for Code in Portable Systems with an MMU. ACM Transactions Embedded Computer Systems, ACM, New York, NY, USA, v. 7, n. 2, p. 1–38, 2008. EGGER, B. et al. Scratchpad Memory Management Techniques for Code in Embedded Systems without an MMU. IEEE Transactions on Computers, v. 59, n. 8, p. 1047–1062, 2010. FALK, H.; KLEINSORGE, J. C. Optimal Static WCET-aware Scratchpad Allocation of Program Code. In: Proc. of the Design Automation Conference. [S.l.: s.n.], 2009. p. 732–737. GORDON-ROSS, A. et al. A one-shot configurable-cache tuner for improved energy and performance. In: Proceedings of the conference on Design, Automation and Test in Europe. San Jose, CA, USA: EDA Consortium, 2007. p. 755–760.

125

GUTHAUS, M. et al. MiBench: A Free, Commercially Representative Embedded Benchmark Suite. In: Proc. of the IEEE International Workshop on Workload Characterization. Washington, DC, USA: IEEE Computer Society, 2001. p. 3–14. HILL, M. D. et al. Wisconsin architectural research tool set. SIGARCH Comput. Archit. News, ACM, New York, NY, USA, v. 21, p. 8–10, September 1993. HILL, M. D.; SMITH, A. J. Evaluating associativity in cpu caches. IEEE Transactions on Computers, IEEE Computer Society, Washington, DC, USA, v. 38, n. 12, p. 1612–1630, 1989. JACOB, B.; NG, S.; WANG, D. Memory Systems: Cache, DRAM, Disk. Morgan Kaufmann Publishers Inc. San Francisco, CA, USA, 2007. ´ JANAPSATYA, A.; IGNJATOVIC, A.; PARAMESWARAN, S. Finding optimal l1 cache configuration for embedded systems. In: Proceedings of the 2006 Asia and South Pacific Design Automation Conference. Piscataway, NJ, USA: IEEE Press, 2006. p. 796–801. ´ JANAPSATYA, A.; IGNJATOVIC, A.; PARAMESWARAN, S. A novel instruction scratchpad memory optimization method based on concomitance metric. In: ASP-DAC ’06: Proceedings of the 2006 conference on Asia South Pacific design automation. Piscataway, NJ, USA: IEEE Press, 2006. p. 612–617. JANAPSATYA, A.; PARAMESWARAN, S.; IGNJATOVIC, A. Hardware/software Managed Scratchpad Memory for Embedded System. In: Proc. of the IEEE/ACM International conference on Computer-aided design. [S.l.: s.n.], 2004. p. 370–377. JENSEN, D. Developing System-on-Chips with Moore, Amdahl, Pareto and Ohm. In: IEEE International Conference on Electro/Information Technology. [S.l.: s.n.], 2008. p. 13–18. JURAN, J. The non-pareto principle; mea culpa. Quality Progress, v. 8, n. 5, p. 8–9, 1975. KANDEMIR, M. et al. Dynamic management of scratch-pad memory space. Design Automation Conference, 2001. Proceedings, p. 690–695, 2001. ISSN 0738-100X.

126

KANNAN, A. et al. A Software Solution for Dynamic Stack Management on Scratch pad Memory. In: Proc. of the Asia and South Pacific Design Automation Conference. [S.l.: s.n.], 2009. p. 612–617. KARP, K. M. Reducibility among Combinatorial Problems. In: Complexity of Computer Computations. [S.l.]: Plenum Press, 1972. MACHANIK, P. Approaches to addressing the memory wall. Brisbane, Nov. 2002. MALIK, A.; MOYER, B.; CERMAK, D. The M-CORE(TM) M340 Unified Cache Architecture. In: Proc. of the IEEE International Conference on Computer Design. [S.l.: s.n.], 2000. p. 577. MARWEDEL, P. Embedded System Design. [S.l.]: Springer Verlag, 2006. MATTSON, R. L.; GECSEI, D. R. S. J.; TRAIGER, I. L. Evaluation techniques for storage hierarchies. IBM Systems Journal, v. 9, n. 2, p. 78–117, 1970. MCILROY, R.; DICKMAN, P.; SVENTEK, J. Efficient Dynamic Heap Allocation of Scratch-Pad Memory. In: Proc. of the 7th ACM International Symposium on Memory Management. [S.l.: s.n.], 2008. p. 31–40. MENDONCA, A. K. I. Aloca¸˜o de dados e de c´digo em mem´rias ¸ ca o o embarcadas: uma abordagem p´s-compila¸˜o. Disserta¸˜o (Mestrado o ca ca em Ciˆncia da Computa¸˜o) — Programa de P´s-Gradua¸˜o em e ca o ca Ciˆncia da Computa¸˜o, Universidade Federal de Santa Catarina, e ca Florian´polis, 2010. o MENDONCA, A. K. I. et al. Mapping data and code into scratchpads ¸ from relocatable binaries. In: Proceedings of the 2009 IEEE Computer Society Annual Symposium on VLSI. Washington, DC, USA: IEEE Computer Society, 2009. p. 157–162. MENICHELLI, F.; OLIVIERI, M. Static Minimization of Total Energy Consumption in Memory Subsystem for Scratchpad-Based Systems-on-Chips. IEEE Transactions on VLSI, v. 17, n. 2, p. 161–171, February 2009. ISSN 1063-8210. MING, L.; YU, Z.; LIN, S. An alternative choice of scratch-pad memory for energy optimization in embedded system. In: IEEE International Conference on Networking, Sensing and Control. [S.l.: s.n.], 2008. p. 1641–1647.

http://sources. USA. 758–767. HENNESSY. 145–150. n. PATTERSON. n. E. San Francisco. DUTT. San Francisco. off-chip memory: the data partitioning problem in embedded processor-based systems. p. et al. Advanced compiler design and implementation. Reducing energy consumption by dynamic copying of instructions onto onchip memory. ACM. S. 765–768. 45.: s. ed. ACM Trans. USA. 3.com/newlib/.. Designing the low-power m*core architecture. ACM. New York. RAVINDRAN. v. v. S. PANDA. 48. 1998. H. p. of the International .]. CA. USA. Operations Research. International Solid-State Circuits Conference.l. [S. et al. On the complexity of integer programming. R. 28. S. 179–190. Compiler managed dynamic instruction placement in a low-power code cache. PISINGER. DC. New York. C. Autom. RedHat Inc. Computer Organization and Design: The Hardware/Software Interface. A trace cache microarchitecture and evaluation. Washington. ROTENBERG. USA: Morgan Kaufmann Publishers Inc. SCOTT. n.. v.n. 4. BENNETT. 1997. 2000.. P. J. A Minimal Algorithm for the 0-1 Knapsack Problem. 5. Electron. of the 16th Symposium on Computer Architecture and High Performance Computing (SBAC-PAD). 2010. Washington. NY. RIGO. [S. A. IEEE Computer Society. In: Proc. IEEE Transactions on Computers. p. Newlib. NICOLAU. In: CGO ’05: Proceedings of the international symposium on Code generation and optimization. 2. SEGARS.: s.. STEINKE.]. et al. ACM. PAPADIMITRIOU. L. Syst. In: Proc. E.127 MUCHNICK. R. USA: Morgan Kaufmann Publishers Inc. J. S. 2005.. A. D. v.n. CA.l. et al. 66–73.. 2008. 111–120. p. Des. Tutorial 4: Low-Power Design Techniques for Microprocessors. 4. S. J. In: Proc. NY. On-chip vs.. 682–704.redhat. p. Feb. 1997. J. ArchC: A SystemC-Based Architecture Description Language. 2001.. 1981. N. D. DC. D. A. S. USA: IEEE Computer Society. p. 2004. SMITH. IEEE Power Driven Microarchitecture Workshop. Feb 1999. p.

213–218. p. 1996. 2004. Advanced Memory Optimization Techniques for Low-Power Embedded Processors. Washington. ACM. DC. Dynamic overlay of scratchpad memory for energy minimization. Cache-aware scratchpad allocation algorithm. UHLIG. 21264. WEHMEYER. GOLSTON. S. USA: ACM. 29. 96. MARWEDEL. CACTI 5.. VERMA. 32–56. [S.. H. NY. L. In: Proceedings of the Conference on Design. 128–170. 1997.l. N. YASUURA. M. MUDGE. p. ABRAHAM. n. H. IEEE Computer Society. VERMA. 1st. VERMA. A. ACM. USA. v. 2002. MARWEDEL. New York. Washington. Trace-Driven Memory Simulation: a Survey. Optimal code placement of embedded software for instruction caches. S.. DOMINGUEZ. USA: IEEE Computer Society. Set-associative cache simulation using generalized binomial trees. 5. ed. 2008.]: Springer Publishing Company. v. 13. 1. In: CODES+ISSS ’04: Proceedings of the 2nd IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis. 2. v.128 Symposium on System Synthesis. Incorporated. S.. 2. 53–61. 472–511. 2006. p. ACM Computing Surveys. . New York. p. abr. 2007. 2007. Assigning program and data objects to scratchpad for energy reduction. p. USA. M. ACM Transactions on Computer Systems. n. et al. WEHMEYER. [S.1. D. P. S. v. M. A. T. USA. p. NY. BARUA. A.l. NY. USA: IEEE Computer Society. MARWEDEL. Automation and Test in Europe. P. P. R. DC. 2002. p. NY. et al. L. v. USA: ACM. R. n.. CA. European Design and Test Conference. 40. p. ACM. New York. 104–109. 0. TALLA. 409.. SUGUMAR. USA.. THOZIYOOR. UDAYAKUMARAN.. 2004. G. Dynamic allocation for scratch-pad memory using compile-time decisions.]. p. automation and test in Europe. 1995. New York. TOMIYAMA. J. Computer. Using DaVinci Technology for Digital Video Devices.. Los Alamitos. ACM Transactions on Embedded Computing Systems (TECS). In: DATE ’04: Proceedings of the conference on Design. New York. STEINKE.. NY.. R.

ZHANG. ACM.. 164–170. C. p. 3. C. LYSECKY. May 2005. ACM Transactions on Embedded Computing Systems. VAHID. NY.l. VIANA.].: s. 71–76. P. USA. ACM Transactions on Embedded Computer Systems.129 VIANA. [S.1145/993396. F. VIANA. 2008.: s. In: Proc. L. Cache Configuration Exploration on Prototyping Platforms. <http://doi. et al. 407–425. [S. VAHID.. et al. p. A post-compiling approach that exploits code granularity in scratchpads to improve energy efficiency. p. 2006. ZHANG. C. 695–700. P. Cache-tuning-aware allocation from binaries: a fresh perspective on scratchpad usage. New York. ZHANG. A self-tuning cache architecture for embedded systems.org/10. submetido. [S. p.l. VAHID. A highly configurable cache for low energy embedded systems.l. USA: IEEE Computer Society. 363–387. Washington. ACM. 2003. NAJJAR.n. 2010. et al.]: ACM. A Methodology to Explore Memory Hierarchy Architectures for Embedded Systems. F.n. ISSN 1074-6005. p. In: Proceedings of the 2010 IEEE Computer Society Annual Symposium on VLSI. VOLPATO. v. VOLPATO. . R.. MARWEDEL.acm. In: Proceedings of the Design Automation Conference. of the IEEE International Workshop on Rapid Systems Prototyping. P. 127–132. WEHMEYER. Fast. D.l. F. v.. NY. New York. 24th Symposium on Integrated Circuits and Systems Design (SBCCI’11). D. USA.. [S. efficient and predictable memory accesses: optimization algorithms for memory architecture aware compilation. September 2006. May 2004. A table-based method for single-pass cache optimization. Tese (Doutorado) — Universidade Federal de Pernambuco. p.. 2006. P. 4. P. DC. P.993405>. In: Proceedings of the 18th ACM Great Lakes Symposium on VLSI. W.]. Configurable cache subsetting for fast cache tuning. 2011. et al.]: Springer.

130 .

ˆ APENDICE A -.O m´todo SPCE e .

.

133

O m´todo SPCE realiza o ajuste-fino, a partir dos endere¸os do e c programa, para um conjunto de caches e em uma unica passada. As ´ entradas do m´todo s˜o um trace T , um conjunto de parˆmetros que e a a delimitam o espa¸o de projeto de caches, o deslocamento (offset) de c palavra w da arquitetura do processador, e algumas estruturas de dados. O trace T cont´m a sequˆncia de endere¸os acessados no subsise e c tema de mem´ria para um programa qualquer, conforme a Defini¸˜o 3.1. o ca O tipo de endere¸o (instru¸˜es, dados ou ambos) contido no trace dec co terminar´ qual a cache sendo ajustada (cache de instru¸˜es, de dados a co ou unificada). O espa¸o de projeto (design space) de caches ´ delimitado c e pelos parˆmetros smin , smax , bmin , bmax , amax , que representam, respectivaa ¯ mente, o n´mero m´ u ınimo e m´ximo de conjuntos que uma cache pode a possuir, o tamanho m´ ınimo e m´ximo de um bloco de cache (em bytes) a e o maior grau de associatividade permitido. O menor grau de associatividade considerado pelo m´todo ´ sempre amin = 1, o que configura e e ¯ uma cache com mapeamento direto. Al´m destas entradas, o m´todo utiliza duas estruturas de dados: e e uma estrutura de matriz tridimensional, denominada Tabela de Conflitos, e uma pilha de endere¸os, apresentados pelas defini¸˜es que seguem. c co Defini¸˜o A.1. Pilha de endere¸os. Uma pilha de endere¸os P ca c c ´ uma tupla (p1 , p2 , ..., pi , ... pn ) que armazena uma sequˆncia de e e endere¸os de bloco processados (derivados dos endere¸os de T ) durante c c a execu¸˜o do m´todo SPCE, onde pi denota o i-´simo endere¸o de ca e e c bloco armazenado num dado momento. Seu topo ´ indicado por pn , e e sua base por p1 . As caracter´ ısticas do m´todo SPCE s˜o tais que cada e a endere¸o armazenado ´ unico. c e´ Uma pilha P ´ uma extens˜o da pilha LIFO (last in, first out) e a convencional. A opera¸˜o de inser¸˜o ´ realizada da maneira tradicional, ca ca e i.e. um elemento novo ´ empilhado (no topo da pilha). Todavia, a e opera¸˜o de remo¸˜o permite que um elemento seja retirado de qualquer ca ca posi¸˜o da pilha, ao inv´s de somente do topo. ca e Defini¸˜o A.2. Configura¸˜o de cache. Uma configura¸˜o de cache, ca ca ca denotada por (ai , si , bi ), representa uma cache com grau de associatividade ai , si conjuntos e tamanho de bloco bi (em bytes), tal que sua capacidade ´ dada por C = si × bi × ai , expressa em bytes. e Defini¸˜o A.3. Tabela de Conflitos. Uma Tabela de Conflitos K ca ´ uma matriz tridimensional Kamax ×smax ×bmax , onde amax matrizes bidie ¯ ¯ mensionais s˜o formadas de smax linhas e bmax colunas. Cada c´lula a e da tabela, denotada por Kai ,si ,bi , est´ relacionada a uma configura¸˜o a ca ¯

134

(ai , si , bi ), de modo a proporcionar o cˆmputo do n´mero de acertos o u desta configura¸˜o. ca O funcionamento do m´todo SPCE consiste em descobrir, para e cada configura¸˜o de cache (ai , bi , si ) do espa¸o de projeto, quantos ca c acertos ocorreram para a sequˆncia de endere¸os acessados informada e c por T . Isto consiste, em ultima instˆncia, em determinar se cada acesso ´ a a um dado endere¸o αi induz um acerto ou uma falta na cache. c Para tanto, quando processa αi , o m´todo procura calcular o n´e u mero de conflitos (κ) no conjunto da cache para o qual αi est´ mapeado, a ocorridos desde o ultimo acesso a este mesmo endere¸o, digamos αh , ´ c onde αh = αi | h ∈ N, 1 < h < i. Obtido κ, calcula-se o menor grau de associatividade da cache necess´rio para que o acesso ao endere¸o αi resulte em acerto, denotado a c por a . Se, desde o ultimo acesso ` αi , n˜o houve nenhum conflito ¯ ´ a a em sua entrada na cache (κ = 0), ent˜o um acerto ocorrer´ para uma a a cache com mapeamento direto ou qualquer grau de associatividade (a = 1 ∴ ai ≥ 1). Se, no entanto, houve um conflito (κ = 1), isto significa ¯ ¯ que αi n˜o estar´ mais presente se a cache em quest˜o operar sob a a a mapeamento direto. Contudo, caso a cache seja associativa de pelo menos duas vias (a = 2 ∴ ai ≥ 2), o endere¸o que conflitaria com αi ¯ ¯ c pode ser acomodado juntamente com ele no mesmo conjunto da cache, de modo que o acesso resultaria em um acerto. De forma an´loga, para a dois conflitos (κ = 1), uma cache associativa de quatro ou mais vias (a = 4 ∴ ai ≥ 4) seria necess´ria para garantir um acerto. Em outras ¯ ¯ a palavras, uma cache de grau de associatividade ai consegue suportar ¯ at´ κ − 1 conflitos por conjunto sem que haja uma falta. e O c´lculo de κ e a ´ feito para todas as configura¸˜es de caches a ¯ e co formadas a partir de varia¸˜es no tamanho de bloco b e no n´mero co u de conjuntos s. Ap´s a determina¸˜o da associatividade a para uma o ca ¯ configura¸˜o com parˆmetros bi e si , sabe-se que toda cache (ai , bi , si ) | ca a ai ≥ a resultar´ em acerto. ¯ ¯ a Finalmente, calcula-se o n´mero de faltas como sendo o compleu mento do n´mero de acertos com rela¸˜o ao total de endere¸os acessados, u ca c e, a partir do n´mero de faltas, pode ser estimado o consumo de energia u de cada configura¸˜o (ai , bi , si ). ca A.1 PROCESSAMENTO DOS ENDERECOS DO TRACE T ¸ O Algoritmo 1 apresenta o procedimento principal do m´todo e SPCE. O m´todo funciona processando cada endere¸o αi de T (linha 1) e c

135

Algoritmo 1 SPCE Entrada(s): T , smin , smax , bmin , bmax , amax , w, P, K ¯ 1: para todo αi ∈ T fa¸a c 2: end ⇐ shift right(αi , w) 3: para bi = bmax at´ bmin fa¸a e c 4: endbloco ⇐ shift right(end, log2 (bi )) 5: se endbloco ∈ P ent˜o a 6: para si = smin at´ smax , onde si ∈ {n2 | n ∈ N, smin ≤ n ≤ smax } e fa¸a c 7: κ ⇐ CONTA CONFLITOS(P, si , endbloco ) 8: se κ ≤ amax ent˜o ¯ a 9: a ⇐ m´ltiplo de 2 que sucede κ ¯ u 10: Ka ,si ,bi ⇐ Ka ,si ,bi + 1 ¯ ¯ 11: fim se 12: fim para 13: Mova endbloco para o topo de P 14: sen˜o { endbloco ∈ P } a / 15: Empilhe endbloco em P 16: fim se 17: fim para 18: fim para

Algoritmo 2 CONTA CONFLITOS Entrada(s): P, si , endbloco Sa´ ıda(s): κ 1: κ ⇐ 0 2: c ⇐ endbloco mod si 3: para pi = pn at´ p1 fa¸a e c 4: se pi = endbloco ent˜o a 5: retorne κ 6: fim se 7: c ⇐ pi mod si 8: se c = c ent˜o a 9: κ ⇐ κ +1 10: fim se 11: fim para 12: retorne κ

Inicialmente. A sa´ do algoritmo ´ o n´mero de conflitos ıda e u ocorridos. cada endere¸o pi contido na pilha P ´ processado (linha 3). Neste caso. ele ´ simplesmente empilhado em P (linhas 14 e 15) e e parte-se para o pr´ximo endere¸o (αi+1 ). o c Entretanto. c Se o endere¸o de bloco n˜o est´ na pilha P de endere¸os j´ c a a c a processados. o c ´ A. ´ calculada a quantidade de a e conflitos (κ) ocorridos desde o ultimo acesso ao endere¸o αi . o valor de retorno ´ inicializado. αi+1 . e Elimina-se o deslocamento de bloco de cache do endere¸o (linha 4). e onde a mod b representa o resto da divis˜o a inteira de a por b. ´ realizado o o seguinte processamento. este procedimento recebe como entradas a pilha P e o n´mero de u conjuntos da cache (si ). para um endere¸o de bloco endbloco (derivado c de αi ). αi ´ movido de sua atual posi¸˜o em P para o topo e ca (linha 13). denotado por c. Ent˜o. pode ser que o maior grau de associatividade (amax ) ¯ considerado no espa¸o de projeto n˜o seja grande o suficiente para c a acomodar os κ conflitos e garantir que o acesso ` αi resulte em acerto a (o que ´ verificado na linha 8). c dando origem ao endere¸o de bloco (endbloco ). Primeiramente. Ent˜o. e Finalmente. Al´m do endere¸o de ´ e c bloco. Determina-se o e conjunto da cache para o qual αi est´ mapeado. a c e .2 CONTABILIZACAO DO NUMERO DE CONFLITOS EM UM ¸˜ CONJUNTO O Algoritmo 2 detalha o procedimento de contagem do n´mero de u conflitos em um conjunto. ocorridos deste o ultimo acesso a endbloco .136 da seguinte maneira. e a ¯ e o e c´lula correspondente na Tabela de Conflitos ´ incrementada de um e e (linhas 9 e 10). nenhuma c´lula da Tabela e e de Conflitos ´ incrementada. O Algoritmo 2 apresenta o c´lculo a do n´mero de conflitos de maneira detalhada. para cada tamanho de conjunto si . κ ´ arredondado para a pr´xima potˆncia de dois. u Para obter o menor grau de associatividade que garante um acerto na cache (a ). elimina-se o deslocamento (offset) de palavra w do endere¸o αi : αi deslocado bit-a-bit w vezes para a c direita ´ armazenado em end (linha 2). denotado por κ. e parte-se para o pr´ximo endere¸o. se o endere¸o de bloco encontra-se na pilha P (linha 5). Contudo. na respectiva ´ c entrada de αi na cache (linhas 6 e 7). para cada tamanho de e a bloco bi (linha 3). onde a c ∈ N | 1 ≤ c ≤ si (linha 2). c ent˜o.

bi × Ecache ) com ¯ o consumo decorrente das faltas ( f altasai ..bi × (Ecache + EMP )).si .1) (A.bi = |T | − acertosai . Como ¯ modelo f´ ısico de mem´rias. utilizamos uma adapta¸˜o do esquema apreo ca sentado por Zhang. a o ca c quantidade de acertos e de faltas de cada configura¸˜o pode ser calculada ca a partir da Tabela de Conflitos K e do n´mero de endere¸os processados u c (dado pela cardinalidade de T ). que consistiu na totaliza¸˜o ca do consumo de energia decorrente dos acertos (acertosai . e Finalmente. conforme mostram as Equa¸˜es A.137 partindo do topo (pn ) para a base (p1 ).Caso pi e endbloco (e. ´ ´ A.3 CALCULO DO NUMERO DE ACERTOS E ESTIMATIVA DE ENERGIA Ap´s a execu¸˜o do Algoritmo 1 para cada endere¸o αi de T . o n´mero de conflitos ´ retornado pelo algoritmo u e (linha 12). caso este conjunto seja o mesmo para pi e αi .bi ¯ ¯ A estimativa de energia ´ feita a partir do n´mero de acertos e fale u tas.2) f altasai . portanto.si . como segue: 1.Ent˜o.si . e a 2. c a 3. αi ) correspondam a um mesmo bloco de cache. foi utilizado o CACTI (THOZIYOOR et al. . o 2008).1 co e A.bi = ¯ j=amin =1 ¯ ∑ K j. Neste trabalho.Caso contr´rio. um conflito a ´ contabilizado (linhas 8 e 9). este algoritmo chegou ao fim. determina-se o conjunto c da cache para o qual o endere¸o pi est´ mapeado (linha 7). fazendo-se uso de um modelo f´ ısico de mem´rias para estimar o cono sumo de energia por acesso para os diversos componentes do subsistema de mem´ria.bi (A. Vahid e Lysecky (2004).si .2: ai ¯ acertosai .si . e o n´mero de u conflitos ´ retornado (linhas 4 e 5).si .

138 .

Correla¸˜o entre economia de energia total ca e de sistema .ˆ APENDICE B -.

.

Egger Egger et al.988 M´dia e . Para cada trabalho correlato (primeira coluna). finalmente. conforme a Equa¸˜o 6. a localiza¸ao da mem´ria c˜ o principal quanto ao circuito integrado do processador (terceira coluna).997 0. (2004) (2007) (2008) (2010) ARMv7 ARM9E-S ARM926EJ-S ARM1136JF-S on-chip off-chip off-chip off-chip 0. s˜o a apresentados o processador (segunda coluna). o valor de k (´ltima coluna). neste trabalho. ´ dado por: ca e k= EMem ETotal A Tabela 11 apresenta os valores de k calculados. cabe relembrar que este trabalho utiliza um processador da arquitetura MIPS e uma mem´ria principal off-chip. Frente aos valores apreu sentados.141 A correla¸˜o entre a economia de energia total (ETotal ) e a energia ca do subsistema de mem´ria (EMem ) pode ser capturada por um fator de o proporcionalidade k que.966 1. a partir dos resultados apresentados por trabalhos anteriores da literatura de SPM.980 0.3. o Tabela 11: Correla¸˜o entre economia de energia total e de sistema ca Mem´ria o Referˆncia Processador Principal e k Angiolini et al.010 0. Cho et al. e.

142 .

Sign up to vote on this title
UsefulNot useful