Vous êtes sur la page 1sur 144

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

Florianpolis o 2010

Daniel Pereira Volpato

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

Dissertaao submetida ao Programa c de Ps-Graduaao em Cincia da Como c e putaao para a obtenao do Grau de c c Mestre em Cincia da Computaao. e c Orientador: Jos Lu Almada Gnte s u zel, Dr.

Florianpolis o 2010

Catalogao na fonte pela Biblioteca Universitria da Universidade Federal de Santa Catarina

V931g Volpato, Daniel Pereira Gerenciamento explcito de memria auxiliar a partir de arquivos-objeto para melhoria da eficincia energtica de sistemas embarcados [dissertao] / Daniel Pereira Volpato ; orientador, Lus Almada Gntzel. - Florianpolis, SC, 2010. 142 p.: il., grafs., tabs. Dissertao (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnolgico. Programa de Ps-Graduao em Cincia da Computao. Inclui referncias . 1. Cincia da computao. 2. Arquitetura de computador. 3. Sistemas de memria de computadores. 4. Gerenciamento de memria (Computao). I. Santos, Luiz Claudio Villar dos. II. Universidade Federal de Santa Catarina. Programa de PsGraduao em Cincia da Computao. III. Ttulo. CDU 681

` A minha fam lia, pelo que sou.

AGRADECIMENTOS

A Deus, pela vida e por amar-me de modo incondicional. Por toda a beleza, harmonia e ordem de Sua criao que nos rodeia, na qual ca podemos enxergar toques de Sua mo e a certeza de sua presena. a c Aos meus pais, Volnei e Maria Jos, pela educao, formao e ca ca humana, moral e religiosa. Juntamente com eles, tambm aos meus e irmos (Rafael, Mateus e Roberta) e a Iara pelo apoio e compreenso, a a principalmente quando no lhes dediquei o tempo devido. a A minha noiva, Hrica, pelo amor que me dedica e dedicou. Tame bm pela pacincia e compreenso nas diversas etapas deste mestrado, e e a especialmente em sua reta final. Ao Professor Dr. Jos Lu Almada Gntzel, pela orientao e s u ca e amizade ao longo deste mestrado, pelas importantes contribuies, co pela ateno e esforo empregados na reviso deste texto, e pela valiosa ca c a colaborao em minha formao profissional bem como pessoal. ca ca Ao Professor Dr. Luiz Cludio Villar dos Santos, pela cooria entao deste trabalho, pelas sugestes, cr ca o ticas e reflexes que tanto o contribu ram para a melhoria da qualidade deste trabalho, e pela amizade j desde os tempos em que cursava a graduao. a ca Aos membros da banca, Professor Dr. Fernando Gehm Moraes e Professor Dr. Cesar Albenes Zeferino, por aceitarem o convite para avaliar este trabalho e pelas contribuies para sua melhoria. co Aos parceiros de grupo de pesquisa do LAPS e NIME, pela convivncia e aux para o desenvolvimento deste trabalho. Em particular, e lio aos colegas e amigos Alexandre K. I. de Mendona e Rafael Westphal, c com os quais colaborei mais diretamente. Aos amigos do Grupo de Orao Universitrio (GOU), pela ca a amizade, torcida, orao, e por tornarem a vivncia na universidade ca e muito mais agradvel. Aos amigos Luiz, Sayonara, Daiane, Let a cia, e a todos aqueles que acompanharam o desenrolar deste trabalho. Aos Professores, Tcnicos e Funcionrios do Departamento de e a Informtica e Estat a stica (INE) da UFSC, pelo aux e colaborao. lio ca Ao INE pela infraestrutura concedida. ` A CAPES, no mbito do Programa de Fomento ` Ps-Graduao a a o ca (PROF), por bolsa de quota social, e ao CNPq, no mbito do Programa a Nacional de Microeletrnica (PNM), processo no 136630/2008-1, pelo o ` custeio parcial da execuo deste trabalho. A CAPES, no mbito do ca a Programa Nacional de Cooperao Acadmica (PROCAD), no 0326054, ca e pelo aux lio-moradia para misso de estudo na UNICAMP. a

E uma doena natural no homem acreditar c que possui a verdade.

Blaise Pascal

RESUMO Memrias de rascunho (Scratchpad Memories SPM) tornaram-se o populares em sistemas embarcados por conta de sua eficincia energtica. e e A literatura sobre SPMs parece indicar que a alterao dinmica de seu ca a contedo suplanta a alocao esttica. Embora tcnicas overlay-based u ca a e (OVB) operando em n de cdigo-fonte possam beneficiar-se de mltivel o u plos hot spots para uma maior economia de energia, elas no conseguem a explorar elementos de programa oriundos de bibliotecas. Entretanto, quando operam diretamente em binrios, as abordagens OVB conduzem a a uma menor economia, frequentemente exigem hardware dedicado e `s a vezes impossibilitam a alocao de dados. ca Por outro lado, a economia de energia reportada por todas as tcnicas, e at o momento, ignora o fato de que, em sistemas que possuem caches, e estas devero ser otimizadas antes da alocao para SPM. Este trabalho a ca mostra evidncia experimental de que, quando mtodos non-overlaye e based (NOB) so utilizados para manipulao de arquivos binrios, a a ca a economia de energia em memria, por conta da alocao em SPM, varia o ca entre 15% a 33%, e mdia, e to boa ou melhor do que a economia e e a reportada para abordagens OVB que operam sobre binrios. a Como esta economia (ao contrrio dos trabalhos correlatos) foi medida a aps o ajuste-fino das caches quando existe menos espao para o c otimizao , estes resultados estimulam o uso de mtodos NOB, mais ca e simples, para a construo de alocadores capazes de considerar elementos ca de bibliotecas e que no dependam de hardware especializado. a Este trabalho tambm mostra que, dada uma capacidade CT de uma e cache pr-ajustada equivalente, o tamanho timo de SPM reside em e o [CT /2,CT ] para 85% dos programas avaliados. Finalmente, mostram-se evidncias contra-intuitivas de que, mesmo para e arquiteturas baseadas em cache contendo SPMs pequenas, prefer e vel utilizar-se a granularidade de procedimentos ` de blocos bsicos, exceto a a em algumas poucas aplicaes que combinam elementos frequentemente co acessados e taxas de faltas relativamente altas. Palavras-chave: Sistemas embarcados. Subsistema de memria. Scrato chpad memory. Memria de rascunho. Gerenciamento overlay. Gerencio amento non-overlay.

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

LISTA DE FIGURAS

Figura 1 Distribuio de energia em um processador embarcado ca (DALLY et al., 2008) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Figura 2 Exemplo de memria cache com mapeamento direto . . . 37 o Figura 3 Exemplo de memria de rascunho (SPM) . . . . . . . . . . . . . . 39 o Figura 4 Arquiteturas-alvo poss veis para o subsistema de memria 41 o Figura 5 Fluxo de trabalho genrico para tcnicas de alocao em e e ca SPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Figura 6 Mapa de memria da arquitetura MIPS (PATTERSON; o HENNESSY, 2008) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Figura 7 Fluxo de trabalho da tcnica estendida de alocao em e ca SPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Figura 8 Casos que podem ocorrer no mapeamento de blocos bsicos para SPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 a Figura 9 Impacto do ajuste-fino na economia de energia das caches de instrues e dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 co Figura 10 Economia mdia de energia e taxa mdia de ocupao e e ca por capacidade de SPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Figura 11 Sensibilidade da economia de energia ao dimensionamento da SPM (usando abordagem PRA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Figura 12 Maior economia de energia, utilizando BBA e PRA, para cada programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Figura 13 Capacidades de SPM que propiciam maior economia de energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Figura 14 Correlao entre economia de energia e taxa de faltas ca global dos elementos candidatos, para SPMs grandes (CSPM CT ) . 113

LISTA DE TABELAS

Tabela 1 Tcnicas de alocao em SPM quanto ` abordagem, fase, e ca a arquivo de entrada e arquitetura-alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Tabela 2 Tcnicas de alocao em SPM quanto aos elementos de e ca programa considerados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Tabela 3 Espao de projeto considerado para ajuste-fino das mec mrias cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 o Tabela 4 Resultado do ajuste-fino das memrias cache. . . . . . . . . . . 91 o Tabela 5 Descrio dos programas de benchmark utilizados . . . . . . 97 ca Tabela 6 Percentual de acessos acomodveis em diferentes capacia dades de uma memria qualquer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 o Tabela 7 Capacidade da SPM utilizada para cada configurao e ca programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Tabela 8 Propriedades extra das para caracterizao dos prograca mas-alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Tabela 9 Energia normalizada para a configurao de cache prca e ajustada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Tabela 10 Ocupao da SPM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 ca Tabela 11 Correlao entre economia de energia total e de sistema 141 ca

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

LISTA DE ABREVIATURAS E SIGLAS BB BBA CAM CBA CT Bloco bsico a Basic-block allocation (alocao de blocos bsicos) ca a Content-addressable memory (memria endereada por o c contedo) u Cache-based architectures (arquiteturas baseadas em caches) Compilation time (Tempo de compilao) 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 (automao de projeto ca eletrnico) o Memory architecture under evaluation (arquitetura de memria sob avaliao) o ca Fully-cached architectures (arquiteturas somente com caches) Cache de instrues co Integer Linear Programming (programao linear inteira) ca Intellectual Property Kilo-bytes Mega-bytes Memory Management Unit (unidade de gerenciamento de memria) o Memria principal o non-overlay-based overlay-based Pos-compilation time (Tempo de ps-compilao) o ca Procedimento

PRA RAM REF SoC SPM SRAM

Procedure Allocation (alocao de procedimentos) ca Random Access Memory Reference memory architecture (arquitetura de memria de o referncia) e System-on-Chip (sistema integrado) Scratchpad Memory (memria de rascunho) o Static Random Access Memory

T-cache Cache unificada equivalente TCM UNA WCET Tightly Coupled Memory (memria fortemente acoplada) o Uncached architectures (arquiteturas sem cache) Worst-Case Execution Time (tempo de execuo do pior ca caso)

LISTA DE S IMBOLOS M EM M CM T i Di i ai mi Ei pi i wi extra W P X xi Uma memria genrica. o e Energia consumida em um unico acesso ` memria M. a o Latncia da memria M (expressa em ciclos de relgio). e o o Capacidade de memria M (expressa em bytes). o Padro de acessos ` memria (trace). a a o i-simo endereo de acesso ` memria. e c a o Elemento de programa candidato. Tamanho (bytes) do elemento candidato Di . Nmero de acessos a um elemento candidato Di . u Taxa de faltas (miss rate) do elemento candidato Di . Energia consumida por um acesso ao elemento candidato Di . Lucro de energia quando aloca-se o candidato Di em SPM. Overhead de energia quando aloca-se o candidato Di em SPM. Espao necessrio quando aloca-se o candidato Di em SPM. c a Tamanho total (bytes) das instrues extras necessrias quando co a aloca-se o candidato Di em SPM. Matriz de caracterizao de espao dos elementos candidatos. ca c Matriz de caracterizao de lucro dos elementos candidatos. ca Matriz de mapeamento de elementos em SPM.

Denota se um candidato Di est ou no mapeado para alocao a a ca em SPM. (Di ) Funo que mapeia um elemento candidato Di para seu tipo ca (BB, proc ou data). iMP Overhead de energia no espao de endereamento da MP quando c c aloca-se o candidato Di em SPM. Overhead de energia no espao de endereamento da SPM c c quando aloca-se o candidato Di em SPM. Taxa de invocao do bloco bsico Di . ca a

iSPM ri

Ni Si

Nmero de invocaes devidas `s iteraes do lao do bloco u co a co c bsico Di . a

Nmero de invocaes do bloco bsico Di a partir de outro u co a bloco bsico. a (/ ) Taxa de amostragem do mtodo de ajuste-fino: processa-se e endereos de memria, ignoram-se os prximos . 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. Taxa de faltas locais da D-cache. Percentagem do nmero de instrues de carga (load ) e escrita u co (store). Taxa de faltas combinada da I-cache e D-cache. Tenso de alimentao (volts). a ca Taxa de faltas global dos candidatos. Mdia do nmero de acessos dos candidatos. e u Desvio-padro do nmero de acessos dos candidatos. a u Conjunto dos elementos candidatos classificados como hot spots. Cardinalidade de H, i.e. nmero de elementos candidatos u classificados como hot spots. Frequncia de ocorrncia dos elementos candidatos classificados e e como hot spots. Energia consumida pelo subsistema de memria, normalizada o para a arquitetura de referncia (REF). e Energia consumida pelo subsistema de memria da arquitetura o sob avaliao (EVA). ca Energia consumida pelo subsistema de memria da arquitetura o de referncia (REF). e Energia consumida pelo subsistema de memria. o Energia consumida por todo o sistema. Fator de proporcionalidade entre EMem e ETotal .

SUMARIO Lista de Abreviaturas e Siglas . . . . . . . . . . . . . . . . . . . . . . . . . Lista de S mbolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 INTRODUCAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 SISTEMAS EMBARCADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 O SUBSISTEMA DE MEMORIA . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Principais componentes do subsistema de memria . o Memria Principal (MP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Memria cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Memria de rascunho (SPM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 1.2.2 Arquiteturas para o subsistema de memria . . . . . . . . o Arquiteturas somente com caches (FCAs) . . . . . . . . . . . . . . . . . . . . . Arquiteturas sem cache (UNAs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arquiteturas baseadas em cache (CBAs) . . . . . . . . . . . . . . . . . . . . . . .......................................................... 1.3 ESCOPO DESTE TRABALHO . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 PRINCIPAIS CONTRIBUICOES . . . . . . . . . . . . . . . . . . . . . . . . DESTA DISSERTACAO . . . . . . . . . . . . . . . . 1.5 ORGANIZACAO EM MEMORIAS DE RASCUNHO . . . . . 2 ALOCACAO 2.1 VISAO GERAL DO PROCESSO DE ALOCACAO . . . . . . . . 2.2 CARACTERISTICAS DAS TECNICAS DE ALOCACAO . . 2.2.1 Elementos de programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1.1 Tipo dos elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1.2 Origem dos elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Granularidade dos elementos . . . . . . . . . . . . . . . . . . . . . . . 2.2.2.1 Granularidade de cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 2.2.2.2 Granularidade de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3 Fase de alocao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ca 2.2.4 Abordagem de alocao . . . . . . . . . . . . . . . . . . . . . . . . . . . . ca .......................................................... 2.3 O ESTADO-DA-ARTE EM ALOCACAO A PARTIR DE ARQUIVOS BINARIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 CONSIDERACOES SOBRE AS ABORDAGENS DE ALO EM SPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CACAO 3 O PROBLEMA-ALVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 EXTENSAO DE UMA TECNICA NOB PARA IN DE BLOCOS BASICOS NO ESPACO DE CLUSAO .................................... 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

4.1 FLUXO DE TRABALHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.2 CARACTERIZACAO DOS ELEMENTOS . . . . . . . . . . . . . . . . 76 4.3 PROFILING DO PROGRAMA . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.4 CARACTERIZACAO DE LUCRO E ESPACO . . . . . . . . . . . . 80 4.4.1 Lucro de energia de um bloco bsico . . . . . . . . . . . . . . . 81 a 4.4.2 Espao necessrio para alocar um bloco bsico . . . . . 82 c a a 4.5 MAPEAMENTO EM SPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.6 PATCHING DE BINARIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 DE SA 4.7 GERACAO IDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5 AJUSTE-FINO DE CACHES PARA AVALIACAO DA EM SPMS . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ALOCACAO 5.1 AS TECNICAS DE AJUSTE-FINO DE CACHES . . . . . . . . . 86 5.2 O METODO SPCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 5.3 IMPLEMENTACAO DO METODO SPCE . . . . . . . . . . . . . . . 88 DAS CACHES PRE-AJUSTADAS . . . . . 90 5.4 DETERMINACAO 5.5 IMPACTO DO AJUSTE-FINO NA ECONOMIA DE ENERGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 5.6 CALCULO DA CACHE UNIFICADA EQUIVALENTE . . . . 93 6 VALIDACAO EXPERIMENTAL E RESULTADOS . . 95 6.1 CONFIGURACAO EXPERIMENTAL . . . . . . . . . . . . . . . . . . . 95 DOS EXPERIMENTOS . . . . . . . . . . . . . . . . . . . . . 96 6.2 GERACAO 6.3 CARACTERIZACAO DOS PROGRAMAS-ALVO . . . . . . . . . 98 6.4 ANALISE DOS RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . 103 6.4.1 Sensibilidade da economia ao dimensionamento da SPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 6.4.2 Pol tica de alocao de maior eficincia energtica ca e e para uma determinada capacidade de SPM . . . . . . . . 107 6.4.3 Pol tica de alocao de maior eficincia energtica ca e e para um determinado programa . . . . . . . . . . . . . . . . . . . . 109 6.4.4 Capacidade tima da SPM . . . . . . . . . . . . . . . . . . . . . . . . . 109 o 6.4.5 Correlao entre economia de energia e taxa de falca tas para SPMs grandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.4.6 Ocupao das SPMs timas . . . . . . . . . . . . . . . . . . . . . . . . 112 ca o 6.4.7 Determinao de um escopo para utilizao de BBA112 ca ca 6.4.8 Comparao com trabalhos correlatos . . . . . . . . . . . . . . 114 ca 7 CONCLUSOES E PERSPECTIVAS . . . . . . . . . . . . . . . . . 117 7.1 EVIDENCIA EXPERIMENTAL SOLIDA . . . . . . . . . . . . . . . . 117 7.2 IMPORTANCIA DO AJUSTE-FINO . . . . . . . . . . . . . . . . . . . . . 117 7.3 IMPORTANCIA DA CORRELACAO ENTRE TAMANHO DA CACHE PRE-AJUSTADA EQUIVALENTE E TAMANHO DA SPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

7.4 DIMENSIONAMENTO DA SPM . . . . . . . . . . . . . . . . . . . . . . . . 118 7.4.1 Impacto do dimensionamento . . . . . . . . . . . . . . . . . . . . . . 118 7.4.2 Diretrizes para dimensionamento . . . . . . . . . . . . . . . . . . . 119 7.4.3 SPMs grandes e as taxas de faltas . . . . . . . . . . . . . . . . . . 120 7.5 POL ITICA DE ALOCACAO (GRANULARIDADE DE CO DIGO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 7.5.1 Alocao de procedimentos (PRA) . . . . . . . . . . . . . . . . . 120 ca 7.5.2 Alocao de blocos bsicos (BBA) . . . . . . . . . . . . . . . . . 120 ca a 7.6 REAVALIACAO EXPERIMENTAL DAS TECNICAS NOB A PARTIR DE ARQUIVOS BINARIOS . . . . . . . . . . . . . . . . . . 121 7.7 PERSPECTIVAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Referncias Bibliogrficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 e a APENDICE A -- O mtodo SPCE . . . . . . . . . . . . . . . . . . . . . 133 e APENDICE B -- Correlao entre economia de energia ca total e de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

31

1 INTRODUCAO 1.1 SISTEMAS EMBARCADOS Em pouco mais de duas dcadas, os computadores, que causaram e uma verdadeira revoluo no modo de vida da sociedade contempornea, ca a passaram por sua prpria revoluo. o ca Inicialmente na forma de enormes mainframes, transformaram-se em compactos computadores pessoais, cada vez com maior capacidade de processamento, por conta do processo de miniaturizao de seus ca circuitos integrados. Paralelamente, a eletrnica de consumo evoluiu para muito alm o e das calculadoras programveis, incorporando computadores portteis a a com um poder de processamento muito superior aos mainframes de outrora, embora mantendo sua caracter stica de corresponderem a um dom espec nio fico de aplicao e.g. telecomunicaes, entretenimento, ca co etc. Estes dispositivos seguem evoluindo rapidamente. De um lado, cresce a demanda por uma maior capacidade de processamento e de armazenamento. De outro, aumentam os requisitos de portabilidade: reduo de tamanho e peso, e baterias com durao satisfatria, pois ca ca o tratam-se de sua principal fonte de alimentao. ca Estes sistemas de processamento de informao que esto incorca a porados em um produto maior e que normalmente no esto diretamente a a vis veis ao usurio so chamados de sistemas embarcados e colaa a boram com esta nova tendncia, chamada de disappearing computer e (MARWEDEL, 2006): computao acontecendo em todo o lugar (comca putao ub ca qua), porm invis e vel, sendo realizada em dispositivos com aparncia que foge do tradicional gabinete e monitor e cuja presena e c no se consegue identificar. a A miniaturizao e a queda no preo dos sistemas embarcados ca c permitiu que eles se disseminassem por todas as reas da vida humana. a Como exemplos de produtos contendo sistemas embarcados, pode-se citar: telefones celulares, cmeras digitais, tocadores de MP3, fornos de a microondas, conversores de TV digital, carros (no sistema de controle de freio ABS, do motor, de ajuste ao combust vel nos carros bicombust veis, do ar-condicionado, GPS, etc.), aeronaves (no computador de bordo, sistema anti-coliso, no sistema para pousos e decolagens a guiadas, etc.), equipamentos mdicos, casas inteligentes, e tambm em e e produtos militares, de robtica e de muitas outras reas. o a De acordo com Marwedel (2006) e Verma e Marwedel (2007),

32

pode-se classificar um sistema como embarcado quando este for dotado da maioria das caracter sticas que seguem:
Dedicados a uma certa aplicao. A maioria dos sistemas ca embarcados realiza um conjunto pr-determinado e dedicado de e funoes. Por exemplo, o controlador de ABS de um carro nunca c tocar um CD de msica. Esta caracter a u stica tambm est relacie a onada com confiabilidade e com eficincia, que diminuem quando e se permite a execuo de outros softwares. ca Confiabilidade. Alguns sistemas so de alto-risco e necessitam a ser confiveis (dependables) quanto a falhas. A confiabilidade a abrange aspectos como: baix ssima taxa de falhas (reliability); fcil a e rpida manuteno no caso de eventuais falhas; disponibilidade a ca (sistema sempre operando); segurana no funcionamento (safety), c no causando nenhum mal caso falhe; e segurana dos dados a c (security), caso sejam confidenciais. Eficincia. A eficincia de um sistema embarcado deve acontecer e e em vrios n a veis: energtica, pois muitos so alimentados por e a baterias; de tamanho de cdigo, pois possuem memria limitada; o o de execuo, realizando suas tarefas sempre com o m ca nimo de recursos e utilizando frequncias de relgio e tenses de alimene o o tao baixas, contribuindo tambm para reduo do consumo de ca e ca energia; de peso, por se tratar de um quesito muito desejado pelos consumidores de dispositivos portteis; e, finalmente, de custo, a para terem competitividade no mercado. Sistemas reativos. Frequentemente, sistemas embarcados so a reativos, conectados ao mundo f sico por meio de sensores que coletam informaes `s quais o sistema reage, inclusive por meio co a de atuadores, que permitem controlar o ambiente.

a Interface de usurio dedicada. Sistemas embarcados no a utilizam a interface convencional dos computadores pessoais, como teclados e mouses, mas interfaces diferenciadas como telas sens veis ao toque, botes de presso, etc. o a
Restries de tempo real. Sistemas de tempo-real so aqueles co a em que a no-realizao de uma computao em tempo hbil causa a ca ca a ou perda de qualidade (e.g. em transmisses de udio ou v o a deo) ou danos ao usurio (e.g. no controle de airbag de um automvel a o ou mesmo em usinas nucleares).

33

Sistemas h bridos. Muitos sistemas embarcados misturam componentes analgicos e digitais. o

Mais especificamente no dom nio de sistemas embarcados voltados ` eletrnica de consumo, que corresponde a uma significativa a o parcela destes sistemas e abrange produtos como celulares, tocadores de v deo e udio e consoles de videogame, algumas das caracter a sticas comentadas anteriormente destacam-se das demais, sendo consideradas mais importantes por impactarem diretamente na experincia do usue a rio (VERMA; MARWEDEL, 2007). So elas: desempenho, eficincia a e energtica e previsibilidade (responsividade em tempo real). e Em muitos projetos de sistemas embarcados, essas caracter sticas no so meros objetivos, que podem ser otimizados, mas so elevadas a a a a restries de projeto (e.g. mxima potncia ou mximo tempo de co a e a execuo), que neste caso devem ser satisfeitas. Por conseguinte, 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 restries sejam satisfeitos. co Durante muito tempo, tais otimizaes concentraram-se no proco cessador destes sistemas, por se tratar do elemento de maior influncia e sobre estas caracter sticas. No entanto, hoje em dia amplamente e reconhecido que a parte mais importante no projeto de um sistema embarcado a organizao, arquitetura e projeto do subsistema de e ca memrias (WEHMEYER; MARWEDEL, 2006) (JACOB; NG; WANG, o 2007) (VERMA; MARWEDEL, 2007), conforme ser demonstrado na a prxima seo. o ca 1.2 O SUBSISTEMA DE MEMORIA Por subsistema de memria entende-se o conjunto dos diversos o componentes de memria de um sistema embarcado. Em sistemas o embarcados podem coexistir espaos de endereamento disjuntos (dec c terminada faixa de endereos corresponde a uma memria X e outra c o faixa a uma memria Y ), onde cada um destes espaos est associado o c a ou a uma memria ou a uma hierarquia de memrias, com dois ou trs o o e n veis. Desde o surgimento dos circuitos integrados, a velocidade dos processadores tem aumentado mais rapidamente do que a velocidade de acesso `s memrias, resultando em uma diferena significativa de a o c desempenho. Nos sistemas de propsito geral, o fator de crescimento o da velocidade dos processadores j atingiu, nos ultimos 30 anos, picos a

34

de 2 a 2,5 vezes superior ao das memrias (MACHANIK, 2002). o Embora em sistemas de propsito geral a diferena de velocidade o c entre processador e memria tenha sido mais acentuada do que em o sistemas embarcados, devido ao distinto funcionamento e projeto das memrias para cada sistema, sabe-se que este comportamento pode ser o estendido tambm para sistemas embarcados: o desempenho de um e sistema dominado e limitado pelas lentas memrias (JACOB; NG; e o WANG, 2007). Isso acontece porque, apesar da evoluo tecnolgica ca o ter levado a transistores cada vez menores o que deveria proporcionar acessos mais rpidos , h uma necessidade constante por mais a a capacidade de memria nos sistemas embarcados. Ou seja, enquanto o de um lado h a diminuio do tempo de acesso por MB, de outro, o a ca aumento da capacidade das memria eleva o tempo de acesso global. Na o prtica, as memrias, que deveriam ficar menores e mais rpidas, esto a o a a se tornando mais densas e com mais capacidade, do que resulta uma melhoria do tempo de acesso das memrias insuficiente para acompanhar o a evoluo dos processadores. ca Desse hiato entre a velocidade dos processadores e das memrias o decorre que o processador necessita esperar por muitos ciclos possivelmente at centenas deles para que a memria lhe fornea os e o c dados desejados. Assim, o gargalo do desempenho de um sistema no a se encontra no processador, mas no subsistema de memrias. o Como uma memria principal unica, rpida e grande o suficiente o a e invivel na atual tecnologia de memrias, devido ao preo extremamente a o c alto, a soluo encontrada pelos projetistas de sistemas embarcados tem ca sido compor hierarquias de memrias de modo a atenuar a diferena o c de velocidade entre o processador e a memria principal. Estas hieraro quias so elaboradas utilizando memrias menores e mais rpidas que a o a a memria principal e, por isso, de maior eficincia energtica do que o e e estas. Tais hierarquias so posicionadas entre o processador e a mea mria principal, onde cada n armazena temporariamente elementos o vel previamente acessados no n superior, evitando assim, acessos mais vel custosos em termos de tempo de acesso e energia aos n veis superiores. No entanto, o uso de hierarquias no se mostrou suficientemente a eficiente para atacar um outro problema: o consumo de energia, quesito de suma importncia em sistemas embarcados alimentados por bateria. a De acordo com Verma e Marwedel (2007), o subsistema de memria o e responsvel por 50 a 70% do oramento total de potncia do sistema. E a c e dentro do subsistema, observa-se impacto significativo das caches neste consumo. Analisando o gasto energtico relacionado apenas com um e processador embarcado, Segars (2001) relata que o ARM920T dissipa

35

Aritmtica 6%

Relgio e lgica de controle 24%

Suprimento de instrues 42%

Suprimento de dados 28%

Caches 70%
Figura 1: Distribuio de energia em um processador embarcado ca (DALLY et al., 2008) 43% da sua potncia em caches. Dally et al. (2008) reportam, conforme e a Figura 1, que 70% do total de energia gasto pelo processador oriundo e do suprimento de instrues (42%) e de dados (28%), com contribuio co ca majoritria dos arranjos de dados e de tag, e dos controladores das a caches. J no caso de um sistema embarcado com processador RISC a voltado para aplicaes de processamento de imagem, ou seja, dataco intensive, Ming, Yu e Lin (2008) reportam que somente a memria o externa ao circuito integrado (off-chip) consome algo entre 50 a 80% do total de energia. 1.2.1 Principais componentes do subsistema de memria o Uma vez esclarecida a importncia do projeto energeticamente a consciente de um subsistema de memria, conveniente que se revisem as o e caracter sticas mais relevantes dos principais componentes de memria: o memria principal, memria cache e memria de rascunho. o o o

36

MEMORIA PRINCIPAL (MP) E a maior, e por isso considerada a mais importante, memria o do sistema. E ela que armazena todo, ou pelo menos a maior parte, do cdigo e dos dados de um programa a ser executado no sistema. E o uma memria de acesso aleatrio, encontrada tanto externa (off-chip) o o quanto interna (on-chip) ao circuito integrado do processador e cujas clulas so normalmente fabricadas com tecnologia Dynamic Random e a Access Memory (DRAM), capaz de oferecer uma grande capacidade de armazenamento a baixo custo, pois demandam um unico transistor e uma capacitncia de transistor por bit. Como as cargas armazenadas a neste capacitor se perdem via corrente de fuga, esta tecnologia exige uma lgica de controle mais complexa para restaurar periodicamente o (refreshment) estas cargas, mantendo seu contedo armazenado. u MEMORIA CACHE Uma memria cache (Figura 2) armazena cpias de instrues o o co e/ou dos dados mais recentemente acessados. Seu contedo gerenciado u e implicitamente (sem interferncia do usurio) por um hardware dedicado: e a controlador de cache para permitir a transferncia de informao entre e ca n veis hierrquicos distintos e para o gerenciamento do contedo. Est a u a localizada dentro do circuito integrado do processador (on-chip). Sua clula constru com tecnologia Static Random Access Memory e e da (SRAM), necessitando de 6 transistores por bit. Por esta tecnologia apresentar um maior custo por KB se comparada a uma DRAM, uma cache geralmente no possui grande capacidade de armazenamento. Isso, a no entanto, torna-a extremamente rpida (geralmente, sua latncia pode a e ser acomodada dentro de um ciclo de processador para o caso de uma cache primria) e de maior eficincia energtica do que as MPs, motivo a e e pelo qual passou a ser utilizada em sistemas embarcados. A unidade m nima de informao em uma cache chamada de ca e bloco, sendo constitu de uma ou mais palavras de memria. do o As caches foram constru das com o propsito de serem transpao rentes ao usurio e ao compilador, no necessitando de nenhum suporte a a adicional da parte destes para que se tire proveito de seus benef cios. Para tanto, contam com recursos extras de hardware (o arranjo de tags, comparadores e multiplexadores) que gerenciam implicitamente seu contedo: verificam se a cache possui ou no uma cpia vlida do bloco u a o a que contm a palavra de memria requisitada, utilizando um conjunto e o

37

tag

ndice

palavra Arranjo de tag Arranjo de dados

sense

sense MUX

= acerto

palavra

Figura 2: Exemplo de memria cache com mapeamento direto o

de bits do endereo da palavra, denominado tag. Quando no contm, c a e o controlador da cache recupera o bloco ao qual esse endereo pertence c e armazena-o juntamente com sua tag. Para ilustrar o funcionamento de uma cache, considere-se uma cache com mapeamento direito. Neste caso, ela organizada utilizando e um mapeamento n : 1 entre endereos de memria e entradas da cache: c o um certo endereo de memria estar sempre associado ` uma mesma c o a a entrada da cache, embora uma mesma entrada seja compartilhada com n outros endereos. Sempre que o processador solicita a leitura de uma c palavra, a tag de seu endereo comparada com a tag armazenada na c e entrada da cache para a qual este endereo mapeado. Caso sejam c e iguais, a palavra requisitada est presente na cache e devolvida para o a e processador, o que se chama de acerto na cache (cache hit). Caso sejam diferentes, significa que a palavra no se encontra na cache e buscada a e do prximo n da hierarquia de memria, o que caracteriza uma falta o vel o na cache (cache miss). Por conta desse comportamento de dif previsibilidade (pois cil depende do padro de acesso), as memrias cache so evitadas em a o a sistemas de tempo real sob restries r co gidas (hard real-time constraints)

38

ou requerem anlise cuidadosa com ferramentas sofisticadas para no se a a superestimar o pior caso de tempo de execuo (worst case execution ca time WCET ) mas obter limites superiores seguros. Alm disso, o hardware extra necessrio ao gerenciamento ime a pl cito de contedo da cache (tag, comparadores e multiplexadores) u consome uma certa quantia de energia, o que pode influenciar negativamente a eficincia energtica do sistema embarcado. Esta energia e e adicional pode ser evitada com outros tipos de memria de gerencio amento expl cito de seu contedo, como as memrias de rascunho, u o mostradas abaixo. MEMORIA DE RASCUNHO (SPM) Uma memria de rascunho (Scratchpad Memory SPM) ou o memria fortemente acoplada (Tightly Coupled Memory TCM) (Fio gura 3) pequena, interna ao circuito integrado (on-chip), e constru e da com tecnologia SRAM, semelhantemente `s caches. Contudo, ao contra a rio destas, possui um espao de endereamento prprio, disjunto da MP, c c o e seu contedo gerenciado explicitamente (pelo usurio), pois no h u e a a a recursos adicionais de hardware. Devido ` ausncia do arranjo de tags, dos comparadores e dos a e multiplexadores presentes nas caches, a SPM mais eficiente em termos e de rea e energia. Todavia, o uso de SPM requer o gerenciamento a expl cito de seu espao de endereamento atravs de instrumentao c c e ca do cdigo. O projetista do sistema embarcado deve instrumentar o o cdigo atravs do uso de um framework de compilao com suporte ` o e ca a alocao em SPM, que pode ou no ser combinado com algum suporte ca a para seu gerenciamento e/ou cpia do contedo e.g. um controlador o u de SPM ou uma Memory Management Unit (unidade de gerenciamento de memria) (MMU). o A motivao para seu uso advm do fato que os sistemas embarcaca e dos executam aplicativos espec ficos (ou classes espec ficas de aplicaes). co Devido a especificidade dos aplicativos, vantajoso gerenciar explicitae mente seu contedo para obter uma reduo significativa no consumo u ca de energia e no tempo de execuo, ainda que isto implique em perda de ca generalidade do software, que deve ser personalizado para cada sistema embarcado. Alm disso, como sua latncia fixa (geralmente um ciclo do proe e e cessador), tem emprego certo em sistemas de tempo real, pois permitem o clculo exato do WCET (ao contrrio das caches). a a

39

Arranjo de dados

SPM

Endereo pertence ao espao da SPM

Decodificador de endereos
Endereo pertence ao espao da MP

sense

palavra

MP
Figura 3: Exemplo de memria de rascunho (SPM) o

A alocao de trechos de programa em SPM conduzida de ca e modo a otimizar um determinado objetivo geralmente a reduo do ca consumo de energia, de tempo de execuo ou de ambos. Ao contrrio ca a das caches, a explorao de SPMs uma rea de pesquisa mais recente. ca e a No se pode afirmar que existe uma tcnica de alocao dominante, pois a e ca depende da aplicao-alvo e da arquitetura do subsistema de memria. ca o As tcnicas de alocao em SPM so divididas costumeiramente e ca a em duas classes, de acordo com a abordagem de alocao utilizada: nonca overlay-based (NOB) e overlay-based (OVB). Na primeira, os trechos de programa so alocados em SPM no in da execuo da aplicao a cio ca ca e so mantidos l at o trmino da execuo. Na segunda, os trechos a a e e ca presentes em SPM so alterados em tempo de execuo, i.e. durante a a ca execuo do programa, a alocao de um trecho pode ocupar o mesmo ca ca espao previamente alocado para outro trecho. A alocao de cdigo c ca o e dados em SPM, as abordagens de alocao (estas duas classes) e as ca diversas tcnicas propostas na literatura sero abordadas com mais e a profundidade no Cap tulo 2.

40

1.2.2 Arquiteturas para o subsistema de memria o Dados os componentes de memria descritos acima e tendo sempre o como base a presena de SPMs, centro deste trabalho, pode-se imaginar c trs principais arquiteturas para um subsistema de memria, como e o retratadas pelas Figuras 4(a), 4(b) e 4(c). ARQUITETURAS SOMENTE COM CACHES (FCAS) Arquiteturas somente com caches (fully-cached architectures FCAs), ilustradas pela Figura 4(a), no possuem SPMs, sendo compostas a apenas por um ou mais n veis de caches entre o processador e a MP. As caches podem ser unificadas (numa mesma cache so colocados a instrues e dados) ou separadas (uma cache para instrues e outra co co para dados). Eventualmente, uma delas pode estar ausente e.g. um subsistema apenas com cache de instrues e MP, sem cache de dados. co ARQUITETURAS SEM CACHE (UNAS) Arquiteturas sem cache (uncached architectures UNAs), ilustradas pela Figura 4(b), possuem uma ou mais SPMs, localizadas em espao de endereamento disjunto da MP. Pode-se pensar nas UNAs c c como arquiteturas onde a SPM substitui a cache, seja por conta de sua melhor previsibilidade em sistemas de tempo-real, seja pelo menor consumo de rea ou pela eficincia energtica. a e e ARQUITETURAS BASEADAS EM CACHE (CBAS) Arquiteturas baseadas em cache (cache-based architectures CBAs), ilustradas pela Figura 4(c), possuem cache(s) e SPM trabalhando conjuntamente. Como nas UNAs, a SPM localizada num espao de e c endereamento prprio, porm a cache continua amenizando os acessos c o e a ` MP. Por conta disso, mesmo quando parte do cdigo ou dos dados no o a alocado em SPM, o sistema se beneficia da presena de cache para a e c reduo do consumo de energia e tempo de execuo, diferentemente ca ca das UNAs.

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 memria o 1.3 ESCOPO DESTE TRABALHO Nos ultimos 6 anos, a abordagem overlay-based (OVB) tem do minado o cenrio das tcnicas de alocao em SPM. Aparentemente, a e ca a aptido destas tcnicas em explorar dinamicamente as propriedades a e de programa viabiliza maiores economias, pois permite que um determinado trecho de programa seja acessado em SPM somente enquanto promove economia, e, quando no mais, ceda seu lugar para outros a trechos que permitam maiores lucros. Contudo, uma anlise mais atenta das tcnicas OVB propostas a e na literatura revela fraquezas que podem ser eventualmente contornadas por tcnicas non-overlay-based (NOB). Quando operam em tempo de e compilao, as tcnicas OVB mostram-se superiores `s NOBs equivalenca e a tes. Porm, a manipulao de arquivos-fonte, mandatria em tcnicas e ca o e de tempo de compilao, inviabiliza a alocao de trechos contidos em ca ca bibliotecas, cujo cdigo-fonte dificilmente disponibilizado. o e Para ser capaz de incluir bibliotecas no espao de otimizao, uma c ca tcnica qualquer independente de OVB ou NOB deve operar em e tempo de ps-compilao, manipulando arquivos binrios. Neste caso, o ca a

42

as tcnicas OVB apresentam complicadores: necessitam de hardware e dedicado, o que no fact a e vel em certos sistemas, ou se limitam a alocar apenas cdigo, desprezando dados. As tcnicas NOB, contudo, o e mostram-se mais naturais para arquivos binrios, alocando facilmente a cdigo e dados de bibliotecas sem a necessidade de recursos adicionais o de hardware. Assim, o presente trabalho apresenta uma reavaliao experica mental da abordagem NOB, de modo a verificar qual a eficcia destas a tcnicas mais simples na reduo do consumo de energia do subsistema e ca de memrias, quando comparadas com suas correspondentes OVBs, o aparentemente superiores. Para uma comparao mais justa da economia obtida pelas ca tcnicas, identificaram-se dois fatores com considervel influncia: a e a e arquitetura-alvo e a configurao das caches. ca Observou-se que as diversas tcnicas de alocao em SPM propose ca tas na literatura consideram arquiteturas-alvo distintas, principalmente quanto ` presena (CBAs) ou no (UNAs) de caches, e tratam este a c a como um quesito secundrio, desprezando o fato de que o subsistema de a memria extremamente sens ` configurao das memrias cache. o e vel a ca o Ignorando isto, tais tcnicas `s vezes estabelecem uma comparao e a ca direta com uma tcnica proposta para uma arquitetura diferente da e sua, superestimando seus resultados por exemplo, Egger et al. (2006) (UNA) compara com Angiolini et al. (2004) (CBA) e relata ganhos de 24% em reduo de energia, o que no justo pois a presena da cache ca a e c em uma CBA diminui o potencial de otimizao da SPM, favorecendo ca os ganhos da UNA. A anlise das tcnicas de alocao em SPM mais recentes tambm a e ca e evidencia uma preferncia por CBAs. Esta escolha totalmente plaus e e vel, dado que a combinao de caches com SPMs est se tornando cada vez ca a mais comum em sistemas embarcados (MALIK; MOYER; CERMAK, 2000; TALLA; GOLSTON, 2007). Logo, para fins de um subsistema de memria mais realista e de uma comparao mais justa com as tcnicas o ca e mais recentes, este trabalho adota uma CBA como sua arquitetura-alvo1 . Assim, o presente trabalho argumenta que a configurao arbica trria ou ad hoc das caches de referncia2 conduz a resultados superesa e
1 Tal escolha trata-se somente de limitao de escopo, uma vez que a tcnica ca e utilizada neste trabalho pode ser facilmente aplicada sobre UNAs. 2 Uma cache de referncia pertence ` chamada arquitetura de referncia. Trata-se e a e de uma arquitetura cujo consumo de energia comumente utilizado como referncia e e para a comparao dos resultados obtidos pela arquitetura-alvo. No caso das tcnicas ca e de alocao em SPM, geralmente as arquiteturas de referncia no possuem SPMs e ca e a a arquitetura-alvo gerada adicionando-se uma SPM a arquitetura de referncia. e ` e

43

timados de economia. Para superar tal inexatido na literatura, este a trabalho reporta resultados para caches pr-ajustadas (i.e., ajustada e previamente ` alocao em SPM) para cada programa de benchmark a ca da seguinte maneira: 1. Por meio da tcnica de ajuste-fino (cache-tuning) proposta por e Viana (2006), so identificadas as caches de instrues e de dados a co de maior eficincia energtica, para comporem a arquitetura de e e referncia; e e 2. Estima-se o tamanho de uma cache pr-ajustada equivalente unificada, o qual servir como base para o dimensionamento da a SPM. Com isso, pretende-se evitar que uma SPM de tamanho fixo e arbitrrio influencie os resultados, da mesma forma como a as caches no-ajustadas relatadas na literatura influenciam; a 3. Utilizando uma tcnica NOB, realiza-se a alocao de cdigo e e ca o dados para tamanhos distintos de SPM, escolhidos como submlu tiplos do tamanho da cache pr-ajustada equivalente; e a 4. Finalmente, os valores de energia obtidos so normalizados com relao ` arquitetura de referncia, o que permite avaliar a economia ca a e com respeito `s caches pr-ajustadas. a e Os resultados apresentados mostram que a economia obtida em CBAs pelas tcnicas NOB que manipulam binrios para a incluso de e a a bibliotecas no espao de otimizao pode ser to boa quanto a obtida c ca a pela abordagem OVB (a qual, inclusive, mais complexa). Trata-se de e evidncia experimental slida, inferida sobre um conjunto significativo e o de 20 programas de benchmark que totalizam 240 casos avaliados, gerados por meio de variao do tamanho da SPM e da granularidade ca para diviso do cdigo do programa. Tanto o nmero de programas a o u como de casos avaliados bem superior ` maioria dos relatados pelos e a demais trabalhos publicados em alocao de SPM (de todos os trabalhos ca citados na bibliografia somente o de Falk e Kleinsorge (2009) apresenta resultados para um maior nmero de programas). u Estes resultados tambm traam diretrizes para a identificao e c ca do tamanho timo de SPM (em termos de economia de energia), por o meio da correlao dos resultados obtidos com SPMs cujo tamanho ca e parametrizado com relao ` cache pr-ajustada equivalente. ca a e Para a alocao de trechos dos programas em SPM, utilizou-se ca a tcnica NOB de Mendona (2009, 2010), que, dentre as tcnicas e c e at ento propostas, a que considera o maior espao de otimizao: e a e c ca

44

cdigo e dados globais, incluindo aqueles oriundos de bibliotecas. Esta o tcnica opera em tempo de ps-compilao manipulando arquivos-objeto e o ca relocveis, e considera trechos de cdigo somente na granularidade de a o procedimentos. Sobre esta tcnica realizou-se uma extenso que permite e a o suporte ` alocaao de cdigo na granularidade de blocos bsicos, a c o a como alternativa ` granularidade de procedimentos. Entretanto, no a a permitida uma granularidade mista (procedimentos e blocos bsicos e a simultaneamente). De maneira anloga ` variao do tamanho da SPM, a variao a a ca ca da granularidade de cdigo permite que sejam traadas diretrizes para a o c identificao da melhor granularidade para um certo tamanho de SPM. ca Os resultados aqui descritos, para uma CBA considerando caches pr-ajustadas, foram resumidos em artigo submetido ao Symposium on e Integrated Circuits and Systems Design SBCCI 2011 (VOLPATO et al., 2011). Os resultados tratando somente da extenso da tcnica de a e Mendona et al. foram publicados nos anais do IEEE Computer Society c Annual Symposium on VLSI ISVLSI 2010 (VOLPATO et al., 2010). 1.4 PRINCIPAIS CONTRIBUICOES Como contribuies tcnicas deste trabalho, pode-se elencar: co e
Implementaao da tcnica de ajuste-fino de memrias cache de c e o Viana (2006), adaptada ` infraestrutura experimental. a Extenso da tcnica de Mendona (2009, 2010) para prover suporte a e c ` granularidade de blocos bsicos (alternativamente ` granularia a a dade de procedimentos). A noo de cache equivalente unificada para correlacionar as ca capacidades da SPM e das caches determinadas via ajuste-fino.

O presente trabalho tambm apresenta as seguintes contribuie es cient co ficas: ca e Reavaliao experimental, sob uma perspectiva de pr-ajuste da cache, da abordagem non-overlay-based (NOB), que aparentemente estaria suplantada pela abordagem overlay-based (OVB), a julgar por uma anlise superficial da literatura. a
Evidncia experimental slida (baseada em um nmero de prograe o u mas e de casos bem superior ` maioria dos trabalhos correlatos) a

45

de que a abordagem NOB deveria ser adotada na construo de ca alocadores para SPM capazes de considerar elementos de biblioteca, no contexto de sistemas que no podem dispor de hardware a de suporte especializado. 1.5 ORGANIZACAO DESTA DISSERTACAO O restante desta dissertao est organizado como segue. ca a O Cap tulo 2 apresenta em mais detalhes o processo de alocao ca de trechos de programa em SPM, seu propsito e a imensa variedade de o caracter sticas relacionadas com as tcnicas de alocao. Em seguida, e ca descreve-se o estado-da-arte em alocao para SPM, e fazem-se consideca raes sobre os principais trabalhos correlatos e suas caracter co sticas. No Cap tulo 3 so revistos conceitos fundamentais para a formua lao do problema-alvo. ca O Cap tulo 4 descreve a extenso proposta por este trabalho a a e ` tcnica NOB de Mendona (2009, 2010), com o intuito de permitir c a escolha da granularidade de blocos bsicos como alternativa ` de a a procedimentos. O Cap tulo 5 aborda a necessidade do ajuste-fino de caches para cada programa, antes da alocao em SPM. Tambm descreve o mtodo ca e e de ajuste-fino utilizado como infraestrutura para este trabalho e detalhes de sua implementao. Por fim, apresenta os resultados do ajuste-fino ca para um conjunto de programas de benchmark e, a partir destes, o clculo de uma cache equivalente (unificada), para servir de referncia a e ao dimensionamento da SPM. No Cap tulo 6 so abordados a configurao experimental utia ca lizada, o procedimento utilizado na gerao dos experimentos, e a ca validao experimental da tcnica. ca e O Cap tulo 7 mostra as concluses deste trabalho, bem como o algumas perspectivas para trabalhos futuros.

46

47

2 ALOCACAO EM MEMORIAS DE RASCUNHO Este cap tulo trata em detalhes da alocao em memrias de rasca o cunho (SPMs). Primeiramente, oferecida uma viso geral do processo e a de alocao, seu propsito e a descrio das etapas que usualmente ca o ca compem as tcnicas de alocao em SPM. Em seguida so definidas o e ca a as diversas caracter sticas que dizem respeito ` alocao: os elementos a ca de programa, sua origem, tipo e granularidade; a fase e a abordagem de alocao. Diversas tcnicas propostas na literatura so classificadas ca e a quanto a estas caracter sticas, o que sumarizado na forma de tabee las. Dentre estas tcnicas, enfatizam-se aquelas que so o foco desta e a dissertao: tcnicas que manipulam arquivos binrios (em tempo de ca e a ps-compilao), e, portanto, so capazes de considerar cdigo encapo ca a o sulado em bibliotecas. O estado-da-arte destas tcnicas exposto em e e maiores detalhes. Finalmente, so feitas consideraes sobre a alocao a co ca em SPM, principalmente do ponto de vista da caracter stica denominada abordagem de alocao. ca 2.1 VISAO GERAL DO PROCESSO DE ALOCACAO A alocao de trechos de programa em SPM tem o objetivo ca de otimizar o sistema embarcado no seu consumo de energia, tempo de acesso, ou ambos. Estes so os objetivos mais usuais, pois, como a discutido na Seo 1.2.1, SPMs possuem melhor eficincia energtica e ca e e de desempenho do que outros componentes do subsistema de memria, o como as caches. Atingir estes objetivos exige que o software seja modificado de modo que parte dos endereos a serem acessados recaiam na SPM, a c qual apresenta menor tempo de acesso e menor consumo de energia por acesso que os demais componentes do subsistema de memria. Para o tanto, uma imensa gama de tcnicas para alocao em SPM foram e ca propostas. Apesar de bem variadas em suas caracter sticas (conforme ser explicado na Seo 2.2), poss a ca e vel identificar etapas comuns ` a grande maioria destas tcnicas. e Um fluxo de trabalho genrico para tcnicas de alocao em SPM e e ca ilustrado na Figura 2.1. Os pontos slidos indicam o in e o fim e o cio do fluxo, suas entradas e sa das esto representadas por elipses e os a retngulos simbolizam as etapas do processo. a As entradas da tcnica so o conjunto de arquivos do programa e a

48

Incio

Profiling Profiling

Caracterizao das memrias

Mapeamento Mapeamento

Arquivo(s) com cdigo do programa

Patching Patching
Arquivo(s) conscientes de SPM

Fim

Figura 5: Fluxo de trabalho genrico para tcnicas de alocao em SPM e e ca

49

(em formato de cdigo-fonte ou binrio) e as caracter o a sticas das memo rias que compem o subsistema de memria do sistema embarcado alvo. o o Este conjunto de caracter sticas geralmente composto pela capacidade, e pelo tempos de acesso e pela energia por acesso das memrias. Para o tornar este exemplo mais realista, considere-se que o objetivo da otimizao desejada consiste na reduo do consumo de energia, ou seja, ca ca fazem-se tambm necessrios os valores de energia por acesso para cada e a componente de memria. o Para otimizar o software de modo a reduzir o consumo de energia induzido por sua execuo, deve ser traado um perfil (profile), idenca c tificando a contribuio energtica de cada trecho do programa. Isto ca e ocorre na primeira etapa da tcnica, denominada de profiling . e O meio mais frequente para realizao do profiling via simuca e lao: compilam-se os arquivos de entrada, caso estejam em formato ca de cdigo-fonte, e submete-se o binrio executvel a um simulador do o a a processador-alvo, obtendo-se a lista de todos os endereos de instrues c co e dados acessados. Por meio desta lista, denominada trace, calcula-se analiticamente ou por meio de um simulador do subsistema de memria o o gasto energtico de cada trecho do programa. e Nestas tcnicas, conhecidas como profile-driven, o resultado final e deriva muito da representatividade das entradas utilizadas para profiling. O uso de entradas com um padro de acesso muito diferente das entradas a reais mais frequentes da aplicao a ser otimizada tende a no trazer ca a ganhos elevados para a maioria dos casos. A segunda etapa o mapeamento, o qual consiste em determie nar quais trechos do programa sero alocados para SPM. Utilizando as a caracter sticas das memrias do sistema-alvo em particular da SPM o e as informaes obtidas pelo profiling, calcula-se o lucro (profit) obtido co da alocao de cada trecho de programa para a SPM (a reduo do ca ca consumo de energia), bem como o custo desta alocao (neste exemplo, ca a quantidade de espao de armazenamento da SPM a ser gasto). c A etapa de mapeamento procura sempre identificar o conjunto dos trechos de programa que, quando alocado em SPM, melhor satisfaa c o objetivo da otimizao. De modo simplificado, pode-se dizer que os ca maiores lucros sero obtidos quando alocados para SPM os trechos de a programa com maior gasto energtico e menor tamanho. Tambm e e e preciso salientar que esta seleo ocorre sempre dentro do espao de ca c otimizao da tcnica, e que no foi proposta at o presente momento ca e a e uma tcnica que considere todo o cdigo (instrues e dados) da aplie o co cao como candidato ` otimizao. Por exemplo, acessos a trechos ca a ca de pilha podem estar fora do alcance de uma tcnica (JANAPSATYA; e

50

IGNJATOVIC; PARAMESWARAN, 2006b) e no sero alocados, ina a dependentemente de seu consumo energtico. J uma outra tcnica e a e (AVISSAR; BARUA; STEWART, 2002) pode conseguir alocar estes trechos, mas incapaz de alocar trechos de cdigo, como a primeira. e o Na ultima etapa tem lugar o patching dos arquivos de entrada necessrios, de modo a refletir o resultado da etapa de mapeamento. Os a arquivos de entrada, independentemente de seu formato, so modificados a para que os elementos mapeados para SPM sejam de fato copiados para o espao de endereamento desta memria quando da execuo do c c o ca programa. Normalmente, o patching consiste no acrscimo de instrues no e co cdigo, quando se trabalha com cdigo-fonte, ou na cpia ou relocao o o o ca de trechos de cdigo, quando as entradas so arquivos binrios. Por o a a fim, pode ainda ser necessrio executar novamente o compilador ou o a linkeditor, para gerar o arquivo binrio otimizado para SPM. a Para verificar os resultados obtidos pelo processo de alocao, ca costuma-se submeter este binrio consciente de SPM a um simulador a do processador e do subsistema de memria-alvo, utilizando os mesmos o arquivos de entrada usados no profiling ou variando-os. O fluxo de trabalho proposto na presente dissertao uma ca e especializaao do fluxo apresentado na Figura 2.1 e ser detalhado no c a Cap tulo 4. 2.2 CARACTER ISTICAS DAS TECNICAS DE ALOCACAO As tcnicas de alocao para SPMs so influenciadas por uma srie e ca a e de caracter sticas relacionadas ` aplicao, aos elementos de programa, a ca aos arquivos de entrada considerados e, finalmente, ao prprio processo o de alocao. Estas caracter ca sticas tm impacto direto nos ganhos obtidos e pela alocao, motivo pelo qual se faz necessrio entend-las para bem ca a e explorar suas potencialidades, descobrir suas limitaes e maneiras de co sobrep-las. o As principais caracter sticas que influenciam as tcnicas de alocae ao para SPM so: c a
que elementos de programa so considerados candidatos ` alocao; a a ca a origem, tipo e granularidade destes elementos; a fase em que ocorre a alocao dos elementos para SPM, se em ca tempo de compilao ou de ps-compilao; ca o ca

51

o tipo de arquivo de entrada utilizado (fonte, objeto ou executvel); a finalmente, a abordagem de alocaao se existe relocao de c ca elementos durante a execuo, ou se os elementos so copiados ca a para a SPM no comeo da execuo e ali permanecem at seu c ca e trmino. e

Estas caracter sticas so descritas e exemplificadas nas sees a co posteriores. 2.2.1 Elementos de programa Uma das principais caracter sticas das tcnicas de alocao para e ca SPMs diz respeito aos elementos de programa considerados como candidatos para alocao. Por elementos de programa consideram-se trechos ca de um programa sejam de cdigo ou de dados que possuem um sigo nificado lgico. Assim, por exemplo, tratando-se do cdigo da aplicao, o o ca pode-se considerar como elementos de programa trechos que correspondam a procedimentos. J tratando-se dos dados, pode-se considerar a como elementos de programa trechos que correspondam a variveis e a estruturas de dados. Elementos de programa podem ser caracterizados de acordo com seu tipo e sua origem. Neste sentido, quanto maior a abrangncia dos e elementos considerados no que diz respeito ao seu tipo e origem, maior o percentual de cdigo da aplicao candidato ` alocao, e portanto, o ca a ca maior a possibilidade de maximizar os ganhos decorrentes da alocao. ca Por simplicidade, a partir deste ponto elementos de programa sero referenciados simplesmente como elementos. a 2.2.1.1 Tipo dos elementos Quanto ao tipo, os elementos podem ser divididos em elementos de cdigo grupos de instrues a serem executadas pelo processador o co e elementos de dados. Elementos de cdigo so suportados pela grande maioria das o a tcnicas. De fato, de todas as tcnicas apresentadas aqui, apenas as e e de Kandemir et al. (2001), Avissar, Barua e Stewart (2002), Cho et al. (2007) e Deng et al. (2009) no suportam este tipo de elemento. a Por outro lado, os elementos de dados costumam ser categorizados, para fins de alocao em SPM, em globais escalares, globais ca

52

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

53

2.2.2 Granularidade dos elementos Os elementos, sejam eles de cdigo ou de dados, podem ser divio didos de acordo com diferentes fronteiras. E mais usual que estas sejam fronteiras naturais do prprio tipo do elemento, como procedimentos ou o blocos bsicos para cdigos, e, vetores, no caso de dados. No entanto, a o nada impede que sejam utilizadas fronteiras diferentes, como um conjunto de instrues menor do que um bloco bsico ou pedaos de um co a c vetor. Definida a fronteira, a decomposio do programa em elementos ca dar origem a elementos de granularidade mais fina ou mais grossa. a Estas duas granularidades podem ser exemplificadas pelas fronteiras de blocos bsicos e procedimentos, respectivamente, para elementos de a cdigo. o 2.2.2.1 Granularidade de cdigo o A granularidade dos elementos de cdigo pode ser classificada o em: granularidade de procedimentos, de blocos bsicos, de blocos de a instrues (ou blocos lgicos) um sub-bloco dentro de um bloco co o bsico e de traces (um conjunto de blocos bsicos subsequentes). a a A granularidade de procedimentos possivelmente a mais e natural para os elementos de cdigos. A diviso dos elementos simples e o a e direta, resultando num mapeamento de um-para-um entre procedimentos e elementos. O patching de um elemento sob esta granularidade simples, e bastando o ajuste do desvio das instrues que chamam o procedimento, co para que este aponte para o novo endereo no qual o procedimento c residir no espao da SPM. No se fazendo necessrio o acrscimo a c a a e de instrues extras, a granularidade no induz nenhum overhead de co a energia ou de espao. c Exemplos de tcnicas que adotam esta granularidade so Steinke e a et al. (2002a), Steinke et al. (2002b), Udayakumaran, Dominguez e Barua (2006), Mendona (2009, 2010) e Egger et al. (2010). c A motivao para alocao de granularidades de cdigo mais finas ca ca o advm de duas razes. Primeiro, podem existir procedimentos com alta e o taxa de invocao, os quais so maiores em tamanho do que a capacidade ca a da SPM. Em segundo lugar, o Princ pio de Pareto (tambm conhecido e como Princ pio 80-20) indica, de forma geral, que 80% dos efeitos provm de 20% das causas (JURAN, 1975). Aplicado ` otimizao e a ca de software, este princ pio indica que o foco das otimizaes deve ser co os hot spots, pequenos trechos de cdigo responsveis pela maioria do o a

54

tempo de execuo gasto para rodar o programa (JENSEN, 2008). Ou ca seja, mesmo que um procedimento altamente invocado caiba em SPM, uma parcela muito pequena do seu cdigo (frequentemente um lao) o c pode ser a responsvel por grande parte dos acessos. A alocao desse a ca procedimento como um todo em SPM pode diluir o ganho que a alocao ca desse elemento traz. Nestas duas circunstncias, uma granularidade de a cdigo mais fina pode aumentar os ganhos decorrentes da alocao em o ca SPM. A granularidade de blocos bsicos consiste na diviso dos a a procedimentos em unidades menores, denominadas blocos bsicos. Um a bloco bsico (BB) definido por Muchnick (1997) como a mxima a e a sequncia de instrues da qual se pode entrar apenas pela primeira e co delas e sair apenas pela ultima delas. A determinao dos BBs feita ca e por meio da identificao das primeiras instruoes que os compem, ca c o denominadas l deres. Um l der pode ser: 1. O ponto de entrada de uma rotina; 2. O alvo de um desvio (condicional ou incondicional); 3. A instruo que segue um desvio ou retorno de funo. ca ca O terceiro ponto citado anteriormente indica que um BB dee terminado sempre no escopo de procedimentos, de modo que um BB nunca pode ultrapassar a fronteira do procedimento ao qual pertence. A alocao de um BB consiste na cpia de seu contedo da ca o u memria principal (MP) para SPM e na modificao do seu ponto de o ca entrada na MP (sua primeira instruo) por uma instruo de desvio ca ca incondicional, que transfira o fluxo de execuo para o endereo do seu ca c contedo no espao de endereamento da SPM. Dependendo do tipo de u c c bloco bsico, pode ser necessrio inserir no seu fim uma instruo de a a ca desvio incondicional, para retornar o fluxo para a MP. Como o presente trabalho tambm investiga o impacto da granularidade dos elementos e na reduo de energia do subsistema de memria, a alocao de BBs ca o ca em SPM ser tratada em mais detalhes no Cap a tulo 4. A vantagem da granularidade de BBs consiste na possibilidade de isolar os pontos mais acessados de um procedimento e aloc-los a separadamente. Desta forma, pode-se evitar desperd cio do limitado espao em SPM com cdigo pouco acessado. Sua desvantagem, porm, c o e que as instrues adicionadas (a instruo de desvio incondicional que e co ca invoca seu cdigo na SPM e, quando necessrio, a instruo de retorno o a ca para MP) causam overhead de tempo de execuo e de consumo de ca

55

energia sempre, mesmo que o BB j esteja alocado na SPM desde o a in da execuo do programa, o que no acontece com procedimentos. cio ca a As tcnicas de Banakar et al. (2002), Steinke et al. (2002b), Steine ke et al. (2002a), Janapsatya, Parameswaran e Ignjatovic (2004), Janapsatya, Ignjatovi e Parameswaran (2006b), Udayakumaran, Dominguez c e Barua (2006) e Egger, Lee e Shin (2008) utilizam esta granularidade. A granularidade de blocos de instrues (ou blocos lgico o cos) permite dividir os elementos em pores ainda menores do que um co bloco bsico: um bloco composto por, no m a nimo, uma instruo. A ca alocao de blocos de instrues ocorre de maneira anloga ` de BBs. ca co a a Essa granularidade motivada pelo seguinte cenrio. Imagine que vrios e a a elementos j foram mapeados para SPM, restando um espao muito a c pequeno. E poss que exista um BB muito acessado, porm maior vel e do que o espao dispon c vel em SPM. Neste caso, a alocao de uma ca parcela desse BB tenderia a ser melhor do que a alocao de outro BB ca pouco acessado, mas com tamanho pequeno o bastante para ser alocado inteiramente na SPM. Porm, dado que blocos bsicos j so geralmente e a a a muito pequenos (em mdia, 4 a 6 instrues em cdigos de matemtica e co o a inteira, sem instrues de ponto-flutuante (ROTENBERG; BENNETT; co SMITH, 1999)), considerar blocos menores pode tornar o overhead de alocao proibitivo a ponto de predominar em relao ao ganho. ca ca Como tcnicas que usam esta granularidade, pode-se citar as tce e nicas de Angiolini et al. (2004) e Janapsatya, Parameswaran e Ignjatovic (2004). A granularidade de traces uma granularidade intermediria e a entre procedimentos e blocos bsicos. Um trace uma sequncia linear a e e de blocos bsicos situados numa regio cont a a gua de memria. Traces meo lhoram o desempenho do processador aumentando a localidade espacial presente no programa. Devido ` sua caracter a stica de sempre terminar com uma instruo de desvio incondicional (TOMIYAMA; YASUURA, ca 1996), traces compem um bloco de instrues atmico e que pode ser o co o alocado em outras regies da memria sem a necessidade de alterao de o o ca outros traces. Dependendo das caracter sticas da aplicao, a granularica dade de traces pode conseguir uma otimizao mais ou menos eficiente ca do que a granularidade de BBs. No cenrio de um procedimento que a concentra um enorme nmero de acessos em alguns BBs consecutivos u ou muito prximos e que fazem parte de um mesmo trace, a alocao o ca com granularidade de trace gerar um menor overhead de espao do a c que a alocao de cada um destes blocos bsicos isoladamente. ca a Exemplos de tcnicas que utilizam esta granularidade so Verma, e a Wehmeyer e Marwedel (2004a), Verma, Wehmeyer e Marwedel (2004b)

56

e Ravindran et al. (2005). Alm das granularidades apresentadas aqui, algumas tcnicas e e trabalham com granularidade mista, permitindo a alocao de eleca mentos com mais de uma granularidade. Nestes casos, a tcnica deve e certificar-se de que no ocorram casos de alocao mltipla de um mesmo a ca u trecho de cdigo sob granularidades diferentes (e.g. se um procedimento o alocado, nenhum dos BBs que o compem deve ser alocado). As tce o e nicas de Steinke et al. (2002b), Steinke et al. (2002a) e Udayakumaran, Dominguez e Barua (2006) lidam com elementos de granularidade de procedimentos e de blocos bsicos ao mesmo tempo. a 2.2.2.2 Granularidade de dados Para dados escalares, no faz sentido falar em granularidade a de dados. No entanto, quando se tratam de dados no-escalares (e.g. a arranjos uni ou mesmo multidimensionais) poss uma tentativa de e vel classificao em granularidade plena e granularidade de blocos. ca A granularidade plena considera os dados no-escalares sempre a por completo, no ocorrendo alocao parcial dos dados, i.e., ou um dado a ca est inteiramente na SPM ou est inteiramente em MP. Sua vantagem a a a facilidade de implementao, pois a fronteira mais natural para e ca e dados. No entanto, implicar na impossibilidade de alocao de dados a ca maiores do que o tamanho da SPM. Esta a abordagem utilizada e pela maioria das tcnicas, como, por exemplo, Steinke et al. (2002a), e Avissar, Barua e Stewart (2002), Verma, Wehmeyer e Marwedel (2004b), Udayakumaran, Dominguez e Barua (2006), Cho et al. (2007), Deng et al. (2009) e Mendona (2009, 2010). c Todavia, principalmente em sistemas embarcados no dom nio de processamento de udio e v a deo, com forte apelo comercial, aplicaes co baseadas no acesso a arranjos multi-dimensionais presentes no interior de laos aninhados so dominantes. Estes arranjos so frequentemente c a a muito grandes e muito acessados, limitando consideravelmente os ganhos obtidos pela granularidade plena. Para estes tipos de acessos, foi proposta a granularidade de blocos (tiles) de dados, que considera a diviso de um dado noa a escalar em blocos menores e de igual tamanho (exceto eventualmente nas fronteiras do dado). Para permitir que os dados sejam transferidos em blocos, os laos aninhados so transformados utilizando uma tcnica c a e denominada de loop tiling, exemplificada da seguinte maneira. Considerese uma matriz bidimensional. Ao invs do convencional acesso iterando e

57

primeiramente sobre as linhas e depois sobre as colunas (ou vice-versa), a matriz dividida em blocos e os laos so transformados de modo e c a que se itere primeiro sobre os blocos, para depois se iterar sobre linha e coluna. Esta granularidade melhora a localidade de dados e permite que dados extremamente grandes sejam alocados mesmo em SPMs muito pequenas. No entanto, por sua prpria natureza, exige esta o granularidade que os dados sejam copiados para a SPM em tempo de execuo, o que acarreta um certo overhead de energia e tempo de ca acesso. Exemplos destas tcnicas so Kandemir et al. (2001), que trae a balha com referncias regulares a arranjos (cujo e ndice computado e diretamente), e Chen et al. (2006), que lida com referncias irregulares a e arranjos (cujo ndice calculado indiretamente, por exemplo, utilizando e o valor de outro arranjo). 2.2.3 Fase de alocao ca As tcnicas tambm diferem quanto ` fase na qual o processo e e a de alocao para a SPM realizado: em tempo de compilao ou em ca e ca tempo de ps-compilao. A escolha da fase de alocao est diretamente o ca ca a associada com os arquivos de programa utilizados como entrada para a tcnica. e As tcnicas que operam em tempo de compilao necessitam e ca obrigatoriamente do cdigo-fonte da aplicao, operando ou no prprio o ca o cdigo-fonte, ou no frontend do compilador. Por outro lado, as tcnicas o e em tempo de ps-compilao operam justamente sobre os arquivos o ca binrios resultantes do processo de compilao. No h dependncia da a ca a a e linguagem de programao ou de compilador, mas sim da linguagem de ca mquina para a qual o binrio foi gerado. Estas tcnicas podem trabalhar a a e sobre arquivos binrios(executveis ou arquivos-objeto relocveis). A a a a vantagem deste formato de arquivo sobre aquele permitir que elementos e de dados sejam mais facilmente considerados no espao de candidatos ` c a otimizao devido ` simplicidade de identificao e patching dos mesmos ca a ca (MENDONCA, 2010). A relao entre o arquivo de entrada e a fase de alocao da tcnica ca ca e tambm influencia diretamente os ganhos obtidos com a otimizao. e ca A no-disponibilidade do cdigo-fonte das bibliotecas de terceiros nas a o tcnicas de tempo de compilao reduz consideravelmente o espao e ca c de elementos candidatos ` otimizao (MENDONCA, 2010), tornando a ca

58

imposs vel a alocao de elementos de bibliotecas por estas tcnicas. ca e Isto no ocorre nas tcnicas de tempo de ps-compilao, uma vez que a e o ca o arquivo binrio das bibliotecas est dispon a a vel. 2.2.4 Abordagem de alocao ca Existem essencialmente duas abordagens para efetuar o gerenciamento do contedo da SPM: non-overlay-based (NOB) e overlayu based (OVB). A abordagem NOB mantm os mesmos elementos na e SPM ao longo de toda a execuo da aplicaao, enquanto a abordagem ca c OVB modifica o contedo da SPM ao longo da execuo, por meio da u ca cpia de elementos de cdigo e/ou dados para a SPM. Apesar de uma o o nomenclatura bastante difundida denominar estas duas abordagens de alocao esttica e alocao dinmica, respectivamente, ao longo ca a ca a desta dissertao no ser utilizada tal nomenclatura para evitar amca a a biguidade com a alocao de dados estticos e de dados dinmicos na ca a a memria. o Na abordagem non-overlay-based (NOB) os elementos mapeados para a SPM so copiados para a mesma em tempo de carga a da aplicao para a memria processo este que, terminado, dar ca o a sequncia ao in da execuo , e permanecem na SPM durante toda e cio ca a execuo do programa. ca Para melhor entender o conceito de alocao NOB, faz-se neca cessrio compreender como acontece a carga de um programa para a memria, a fim de que possa ser executado. Antes do in da execuo cio o de uma aplicao, seus diversos elementos devem ser carregados ca ca para os segmentos de memria apropriados. Tome-se como exemplo o a arquitetura MIPS (PATTERSON; HENNESSY, 2008), para a qual um poss vel mapa de memria descrito na Figura 6. Os elementos o e de cdigo (geralmente contidos na seo .text do arquivo binrio) so o ca a a carregados para o segmento de texto, que comea em 0x10, e os elemenc tos de dados estticos (geralmente presentes nas sees .data e .bss) a co so carregados para o segmento de dados estticos, que comea em a a c 0x10000. Sucede imediatamente a este segmento o de dados dinmicos a (heap) a serem alocados durante a execuo da aplicao. Por ultimo, ca ca o segmento de pilha, que inicia no final do espao de endereamento c c do programa (0x3ffffc) e cresce em sentido oposto ao anterior. Estes dois ultimos segmentos no possuem tamanho fixo, pois imposs a e vel prever a quantidade de memria necessria para estes dados em tempo o a de execuo. ca

59

0x3ffffc

Segmento de pilha

0x10000 0x100

Segmento de dados dinmicos Segmento de dados estticos Segmento de texto Reservado

Figura 6: Mapa de memria da arquitetura MIPS (PATTERSON; o HENNESSY, 2008)

No caso de uma aplicao consciente de SPM com alocao ca ca NOB, os elementos de cdigo e/ou dados mapeados para SPM estaro o a contidos em uma seo prpria (e.g. .spm), a ser carregada para o ca o segmento de SPM. Este segmento possui tamanho fixo (no mximo a igual ` capacidade da SPM, mas eventualmente menor caso a SPM no a a seja inteiramente ocupada na alocao) e deve estar mapeado para um ca espao de endereamento disjunto (exclusivo) da MP. Neste exemplo c c do MIPS, pode-se imaginar que este segmento encontrar-se-ia aps o o segmento de pilha, comeando em 0x400000. c A alocao NOB no gera nenhum overhead em termos de hardca a ware dedicado ou de espao de memria e consumo de energia em c o decorrncia da adio de instrues para cpia de elementos para SPM e ca co o em tempo de execuo. No entanto, no caso de programas grandes e ca bem modulares (cujo cdigo possui padres de acesso que se concentram o o em determinadas regies de memria, caracterizando etapas distintas o o e com pouco cdigo compartilhado entre elas), a eficcia da tcnica o a e tende a diminuir, pois seriam alocados elementos que seriam necessrios a apenas para uma determinada etapa da execuo e depois poderiam ca ser removidos da SPM, liberando espao para elementos das prximas c o etapas. Como exemplos de trabalhos que utilizam a abordagem de alocao NOB, pode-se citar: Panda, Dutt e Nicolau (2000), Banakar et al. ca (2002), Steinke et al. (2002b), Verma, Wehmeyer e Marwedel (2004a),

60

Angiolini et al. (2004) e Mendona (2009, 2010). c A abordagem overlay-based (OVB), por sua vez, aloca os elementos mapeados para SPM em tempo de execuo do programa. A ca motivao para tal proporcionar uma melhor captura dos padres de ca e o acesso da aplicao, alocando um determinado elemento na SPM apenas ca enquanto ele extremamente requisitado, e removendo-o quando no e a mais, dando espao para outros elementos requisitados. Neste sentido, c pode-se pensar na SPM como uma cache controlada por software (CHERITON et al., 1988). Nestas tcnicas, a alocao de um determinado elemento consiste e ca na cpia de seu contedo da MP para a SPM. J a desalocao consiste o u a ca na simples sobreposio do seu contedo por outros elementos, quando ca u se tratam de elementos de cdigo ou de dados constantes (somente para o leitura). Quando se tratam de dados modificveis, a sobreposio deve a ca ser precedida pela cpia do contedo do elemento da SPM de volta para o u a MP, para que o contedo atualizado do elemento no se perca. u a Esse processo de alocao e desalocao de elementos para a ca ca SPM repete-se diversas vezes durante a execuo do programa. Vale ca a pena frisar que, apesar de a alocao acontecer durante a execuo ca ca do programa, a escolha (mapeamento) dos elementos a serem alocados feita na grande maioria das vezes em tempo de compilao ou pse ca o compilao, exceto por Deng et al. (2009), que a realiza em tempo de ca execuo. ca A cpia dos elementos para SPM pode acontecer por meio: o
da insero de instrues convencionais de load/store no cdigo ca co o (KANDEMIR et al., 2001) (STEINKE et al., 2002a) (VERMA; WEHMEYER; MARWEDEL, 2004b) (RAVINDRAN et al., 2005) (UDAYAKUMARAN; DOMINGUEZ; BARUA, 2006) (EGGER et al., 2006, 2010); de hardware extra, frequentemente controlado por instrues persoco nalizadas, que precisam ser inseridas no cdigo (CHO et al., 2007) o (JANAPSATYA; PARAMESWARAN; IGNJATOVIC, 2004) (JA NAPSATYA; IGNJATOVIC; PARAMESWARAN, 2006b); de funes de gerenciamento de memria dinmica conscientes co o a de SPM, como malloc e free da biblioteca libc, padro da Lina guagem C (DOMINGUEZ; UDAYAKUMARAN; BARUA, 2005) (MCILROY; DICKMAN; SVENTEK, 2008).

61

As tcnicas de alocao em SPM e suas caracter e ca sticas apresentadas nesta seao encontram-se sumarizadas nas Tabelas 1 e 2. A Tabela 1 c classifica as tcnicas quanto ` abordagem, fase (em tempo de compilao e a ca TC e de ps-compilao PC), arquivo de entrada e arquiteturao ca alvo. As siglas I, D e U ao lado das CBAs indicam as caches presentes na configurao: cache de instrues, dados e unificada, respectivamente. ca co J a Tabela 2 classifica estas tcnicas quanto aos elementos de programa a e considerados como candidatos, com relao aos tipos e origens (Apl. ca para elementos de aplicao, e Bib. para de bibliotecas). Para os eleca mentos de cdigo tambm reportada a granularidade suportada (PR o e e para procedimentos e BB para blocos bsicos). A granularidade para a elementos de biblioteca sempre a mesma dos elementos de aplicao. e ca 2.3 O ESTADO-DA-ARTE EM ALOCACAO A PARTIR DE ARQUI VOS BINARIOS Esta seo apresenta o estado-da-arte em alocao para SPM, ca ca tendo como foco tcnicas OVB e NOB que operam a partir de arquivos e binrios (em tempo de ps-compilao) 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. As demais tcnicas no so discutidas aqui em detalhes, embora e a a suas caracter sticas j tenham sido comentadas na Seo 2.2. a ca e Egger, Lee e Shin (2008) propuseram uma tcnica OVB de tempo de ps-compilao que divide o cdigo (sob granularidade de o ca o BBs) da aplicao em duas regies: cacheable e pageable. Na primeira ca o regio colocado o cdigo a residir no espao de endereamento da a e o c c MP, acessado por meio de uma memria cache. Na segunda regio, a o a tcnica coloca pginas de cdigo que sero copiadas para a SPM sob e a o a demanda, em tempo de execuo. Para tanto, faz-se necessrio hardware ca a extra: um gerenciador de SPM e uma MMU. Acessos ` regio cacheable a a acontecem naturalmente: se o acesso a um endereo na cache resulta em c falta, o bloco equivalente buscado da MP. J acessos ` regio pageable e a a a devem acontecer sempre por meio da SPM e so orientados por pginas a a de cdigo. Uma pgina de SPM possui tamanho fixo, determinado o a pelo tamanho da pgina da MMU. Se a pgina contendo o endereo a a c requisitado no se encontra ali, a MMU sinaliza uma exceo de falta a ca de pgina. O gerenciador captura a exceo, copia a pgina requisitada a ca a para a SPM e a execuo recomea no endereo em que havia sido ca c c interrompida, desta vez acessado na SPM.

Tabela 1: Tcnicas de alocao em SPM quanto ` abordagem, fase, arquivo de entrada e arquitetura-alvo e ca a
Tcnica e Steinke et al. (2002b) Avissar, Barua e Stewart (2002) Angiolini et al. (2004) Mendona (2009, 2010) c Este trabalho Kandemir et al. (2001) Steinke et al. (2002a) Verma, Wehmeyer e Marwedel (2004b) Udayakumaran, Dominguez e Barua (2006) Chen et al. (2006) Janapsatya, Parameswaran e Ignjatovic (2004) Janapsatya, Ignjatovi e Parameswaran (2006b) c Cho et al. (2007) Egger, Lee e Shin (2008) Deng et al. (2009) Egger et al. (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 memria alvo o

UNA UNA

executvel a obj. reloc. obj. reloc. fonte fonte fonte fonte fonte

CBA (I+D ou U)a CBA (I+D) CBA (I+D)

CBA (D) UNA UNA UNA UNA

executvel a executvel a objeto executvel a executvel a objeto

UNA UNAb CBA (I+D)c CBA (I+D)d CBA (I+D) UNA e CBA (I)

62

a A cache opcional, embora a arquitetura assuma apenas cache de instrues e co b Apesar de possuir uma cache de dados, para fins de comparaao deve ser considerada UNA, pois a tcnica no otimiza dados c e a c Memria particionada horizontalmente: uma cache e uma SPM na partio de dados (foco do trabalho), e outra na de instruoes o ca c caso de c, porm com foco na partiao de instruoes e c c d Mesmo

Tabela 2: Tcnicas de alocao em SPM quanto aos elementos de programa considerados e ca


Dados Global escalar Pilha Apl. Bib. Apl. Bib. Apl. PR e BB BB (e menor) PR ou PR ou BB Heap Apl. Bib. Apl. Bib. Global no-escalar a Cdigo o Bib. -

Tcnica e

Steinke et al. (2002b) Avissar, Barua e Stewart (2002)

Angiolini et al. (2004) Mendona (2009, 2010) c Este trabalho b a

Kandemir et al. (2001) Steinke et al. (2002a) Verma, Wehmeyer e Marwedel (2004b) Udayakumaran, Dominguez e Barua (2006) Chen et al. (2006) -

PR e BB Trace PR e BB BB (e menor) BB

Janapsatya, Parameswaran e Ignjatovic (2004) Janapsatya, Ignjatovi e Parameswaran c (2006b) Cho et al. (2007) Egger, Lee e Shin (2008) Deng et al. (2009) Egger et al. (2010) -

BB PRc

a Limitado

b Apenas

para acessos a aplicaes baseadas em arranjos, por meio de funes lineares co co dados no-escalares a c Realiza function outlining em laos muito acessados, transformando-os em procedimentos c

63

64

O hardware especial garante que no se faa necessrio conhecer a c a o tamanho da SPM no momento da gerao do binrio otimizado ca a pela tcnica. No entanto, no todo sistema embarcado que possui e a e uma MMU e, mais do que isso, uma personalizao deve ser feita, ca introduzindo-se um gerenciador em hardware. Alm disso, como a e unidade m nima de transferncia de cdigo entre MP e SPM pela MMU e o e de uma pgina, necessrio agrupar mais do que um BB sob uma mesma a e a pgina, para evitar fragmentao e o desperd de espao na SPM, o a ca cio c que gera um novo problema a ser solucionado pelo mtodo: a diviso e a do cdigo na regio pageable na menor quantidade de pginas poss o a a vel e com as pginas contendo cdigo com boa localidade espacial, para a o diminuir o nmero de transferncias. Isso claramente afeta a localidade u e espacial do cdigo. Alm disso, como a tcnica somente agrupa sob o e e uma mesma pgina BBs oriundos de um mesmo procedimento, ocorre a desperd de espao. cio c Os autores reportam um ganho mdio de 14% em reduo de e ca consumo de energia e 16% de ganho em desempenho quando aplicam a tcnica em uma CBA, tendo como referncia uma FCA. e e Algumas limitaes da tcnica de Egger, Lee e Shin (2008) foram co e sobrepujadas em Egger et al. (2010), que desta vez trabalha com granularidade de procedimentos. O requisito de hardware extra (MMU e gerenciador de SPM) foi substitu por um gerenciador implementado do via software. Informaes sobre as pginas de cdigo so armazenadas co a o a em estruturas de dados em formato de tabela: uma delas contm o e endereo de cada procedimento residente na regio pageable e o nmero c a u de pginas que ocupa; a outra similar a uma tabela de desvios (jump a e table). A cada procedimento corresponde uma entrada nessa tabela. Se o procedimento j est carregado na SPM, sua entrada contm a a e uma instruo de desvio incondicional para l. Se no est, contm ca a a a e uma instruo de interrupo de software que quando executada ser ca ca a capturada pelo gerenciador que, por sua vez, iniciar a transferncia a e do procedimento da MP para a SPM, atualizar a entrada na tabela e a desviar para a SPM. a A tabela de desvios elimina a necessidade de hardware extra, porm, limita o tipo dos elementos considerados para apenas cdigo. e o Tambm decorre dela um certo overhead para lidar com chamadas de e procedimentos via ponteiros, porque deve-se primeiro realizar uma busca binria sobre a tabela com os endereos de procedimentos paginados a a c fim de descobrir em qual regio de memria o procedimento se encontra, a o para s ento trat-lo de acordo. o a a A mudana de granularidade para procedimentos tambm agravou c e

65

o problema de fragmentao e desperd de espao na SPM, porque a ca cio c tcnica no realiza agrupamento de procedimentos sobre uma mesma e a pgina. Para amenizar este problema, a tcnica realiza a extrao a e ca de procedimentos a partir de laos (denominado function abstracting c ou function outlining). Alm disso, a tcnica apresenta resultados e e sub-timos porque assume conservadoramente que os procedimentos o paginados sempre necessitam ser alocados na SPM, enquanto que podem ter sido carregados previamente. Um grande diferencial desta tcnica com relao `s demais que, e ca a e pela primeira vez, tem-se uma tcnica h e brida, simultaneamente OVB e NOB. O cdigo dividido em uma nova regio (pinned ), que contm o e a e cdigo alocado sob NOB, carregado para a SPM quando a aplicao o ca e carregada e permanecendo l at o final da execuo. Elementos so a e ca a alocados desta forma quando existe uma certa vantagem em executa los da SPM mas o overhead que advm da constante reposio dos e ca elementos para a SPM considervel, evitando estas transferncias e a e extras. Os autores validaram a tcnica sobre dois sistemas embarcados. e Para o primeiro, simulado, obtiveram uma economia mdia de 19% em e reduo de energia e 12% em desempenho para uma UNA (comparado ca a uma FCA). Para o segundo, hardware real, economia mdia de 24% e em desempenho e reduo de energia para uma CBA, comparada a uma ca FCA. Outra tcnica OVB que inclui elementos de cdigo oriundos de e o bibliotecas no espao de otimizao a de Janapsatya, Parameswac ca e ran e Ignjatovic (2004), de tempo de ps-compilao e que trabalha o ca com granularidade de blocos lgicos. o Foi a primeira tcnica a propor modificao de hardware de e ca modo a tornar a cpia de elementos para SPM em tempo de execuo o ca mais eficiente. Uma instruo especialmente criada permite ativar o ca controlador da SPM e copiar um elemento inteiro de uma s vez, ao o contrrio de outras tcnicas (e.g. Steinke et al. (2002a) necessita de a e duas instrues para a cpia de uma unica palavra). Alm disso, pela co o e primeira vez o problema de particionamento de cdigo entre SPM e MP o foi modelado como um grafo. Por meio de anlise de lao no grafo, os a c melhores blocos para SPM so selecionados e os pontos de insero da a ca instruo especial identificados. No entanto, seu algoritmo ineficiente, ca e pois usa uma heur stica global que no trata de maneira adequada laos a c com BBs que esto muito distantes. a Reduo de consumo de energia de 51% e melhoria de desempenho ca de 53% so relatados, em mdia, tendo como alvo uma UNA e como a e

66

referncia uma FCA. e Janapsatya, Ignjatovi e Parameswaran (2006b) relaxac ram a necessidade de hardware especial de sua tcnica anterior, de modo e que a cpia de elementos poderia ser feita via software muito embora o continuaram a utilizar a cpia via hardware por motivo de eficincia. o e Eles tambm propuseram uma nova mtrica, visando uma seleo mais e e ca eficiente (mapeamento) dos BBs para SPM. Esta mtrica, denominada e concomitncia, mede a correlao temporal entre dois BBs. No entanto, a ca esta tcnica no produz um arquivo binrio executvel, que pode ser e a a a validado em um simulador. A economia esperada computada analitie camente e, portanto, sujeita a erros. A reduo mdia 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, a tcnica e aloca somente elementos de cdigo quando comparada a uma FCA. o A tcnica proposta por Mendona (2009, 2010) uma tcnica e c e e de tempo de ps-compilao que trabalha com arquivos-objeto (binrios) o ca a relocveis. A tcnica modifica estes arquivos, realocando os elementos a e de cdigo (sob granularidade de procedimentos) e dados selecionados o para uma seo prpria (.spm). ca o O patching desta tcnica, particularmente de dados, muito e e eficiente graas ` presena da tabela de relocaes nos arquivos-objeto. c a c co Nestes, o alvo de instrues de desvio, de chamada de procedimentos co e de acesso a dados no um endereo absoluto isso ser feito a e c a pelo linkeditor, no momento da gerao do binrio executvel , mas ca a a simblico, marcado por uma relocao. As relocaes so compostas o ca co a pelo endereo da instruo a ser ajustada, pela ao de relocao (que c ca ca ca dita o modo pelo qual o s mbolo convertido para codificao binria) e ca a e pela dependncia simblica (o nome do procedimento ou dado), e e o so armazenadas em tabela prpria. O patching consiste unicamente a o em ajustar as entradas desta tabela que dizem respeito aos elementos mapeados para SPM, modificando a dependncia simblica para que e o aponte para o elemento em SPM. Esta tcnica, estendida pelo presente trabalho, ainda que purae mente NOB, abrange um espao de otimizao maior do que as descritas c ca anteriormente, quanto ao tipo e origem dos elementos. Embora todas as tcnicas discutidas na presente seo sejam capazes de alocar elementos e ca de biblioteca, aquelas consideram somente elementos de cdigo, ao passo o que esta considera tambm dados globais escalares e no-escalares, que e a no podem ser desprezados (MENDONCA, 2010). De fato, trata-se a da tcnica NOB com maior abrangncia de elementos at o presente e e e momento. Alm disso, a unica, dentre NOBs e OVBs, a alocar dados e e

67

de bibliotecas sem recursos extras de hardware. Vale lembrar que as tcnicas OVB de Cho et al. (2007) e de Deng et al. (2009) conseguem e isto utilizando hardware extra, enquanto que, dentre as NOBs, nenhuma possui esta aptido. a Todas estas caracter sticas de Mendona (2009, 2010) continuam c valendo para a extenso proposta neste trabalho. Alm disso, a adio a e ca de suporte ` granularidade de blocos bsicos (detalhado no Cap a a tulo 4) permite buscar maiores economias de energia em sistemas com SPM pequena, quando as aplicaes exibem alta localidade. co 2.4 CONSIDERACOES SOBRE AS ABORDAGENS DE ALOCACAO EM SPM Muitas aplicaes foram relatadas para as quais a maioria dos co acessos ` memria se concentram em um espao de endereamento a o c c suficientemente pequeno para caber na SPM (MENICHELLI; OLIVIERI, 2009), tornando a complexidade extra da alocao OVB desnecessria. ca a A alocao NOB especialmente adequada para tais aplicaes com hot ca e co spots. Contudo, a abordagem NOB sub-explorada quando aplicada e em cdigo-fonte: tcnicas de tempo de compilao (AVISSAR; BARUA; o e ca STEWART, 2002) (STEINKE et al., 2002b) so incapazes de mapear a elementos de bibliotecas ou de software protegido de IPs de terceiros para a SPM. A alocao para SPM em tempo de compilao funciona mais ca ca naturalmente quando utilizada em conjunto com a abordagem OVB (KANDEMIR et al., 2001) (STEINKE et al., 2002a) (VERMA; WEHMEYER; MARWEDEL, 2004b) (UDAYAKUMARAN; DOMINGUEZ; BARUA, 2006). Quando mltiplos hot spots no cabem ao mesmo u a tempo na SPM, uma abordagem OVB de tempo de compilao conca duzir a uma maior economia por meio da explorao dinmica de a ca a propriedades de programa observveis no n de cdigo-fonte (as quais a vel o foram capturadas estaticamente em tempo de compilao). A potencial ca economia extra em se alocar elementos encapsulados em bibliotecas, que no seriam de qualquer forma explorveis no n de cdigo-fonte, a a vel o acaba sendo encoberta pela economia extra proveniente da alocao ca OVB. No obstante sua reconhecida superioridade quando aplicadas em a tempo de compilao, as tcnicas OVB no se mostram to adequadas ca e a a para manusear binrios, salvo se hardware dedicado utilizado para a e suportar o gerenciamento dinmico da SPM (CHO et al., 2007) (DENG a

68

et al., 2009) (EGGER; LEE; SHIN, 2006) (EGGER; LEE; SHIN, 2008) ou se a alocao em SPM limitada a cdigo apenas (EGGER et al., ca e o 2010) (JANAPSATYA; PARAMESWARAN; IGNJATOVIC, 2004). Por consequncia, para viabilizar sua maior aplicao e uma e ca pol tica de alocao mais inclusiva, um mtodo consciente de bibliotecas ca e deve preferencialmente adotar uma abordagem NOB, que no depende a de hardware dedicado, desde que no negligencie a alocao de dados a ca na SPM. Para UNAs, a abordagem OVB leva a uma reduo significativa ca do total de energia quando aplicada em tempo de compilao: em ca mdia, 34%, em Verma, Wehmeyer e Marwedel (2004b), e 31%, em e Udayakumaran, Dominguez e Barua (2006), quando comparada com abordagens NOB; 30%, em Steinke et al. (2002a), quando comparada com FCAs. Esta reduo menor quando trabalha no n de arquivos ca e vel binrios (em mdia, 21% em Egger et al. (2010) quando comparado com a e FCAs), visto que arquivos-objeto limitam a manipulao das proprieca dades de programa necessrias para o gerenciamento da sobreposio a ca de elementos. Alm disso, tais alocadores de SPM que no consideram e a a memria cache superestimam o lucro, o que agravado em sistemas o e onde a cache reconfigurvel ou pr-ajustada para uma determinada e a e aplicao (VIANA et al., 2006) (ZHANG; VAHID, 2003). Por exemplo, ca Zhang e Vahid (2003) reportam ganhos de 40% por meio do simples ajuste de parmetros da cache para a aplicao (sem uma SPM). Por a ca este motivo, em sistemas com caches pr-otimizadas, deve-se esperar e ganhos muito menores que aqueles reportados em Steinke et al. (2002a), Verma, Wehmeyer e Marwedel (2004b) e Udayakumaran, Dominguez e Barua (2006). Efetivamente, quando mtodos OVB tm como alvo arquiteturas e e com caches, a economia de energia total reportada marginal (em e mdia, 8% para dados em Cho et al. (2007) e 14% e 24% para cdigo em e o Egger, Lee e Shin (2008) e Egger et al. (2010), respectivamente, quando comparado com FCAs). Isto parece ser uma evidncia que, na presena e c de caches, o impacto de mtodos OVB realmente menor do que o e e reportado para UNAs, uma vez que a prpria cache atua como alocador o dinmico, evitando muitos acessos para a memria externa. Por esta a o razo, quando voltados para CBAs e lidando com binrios, os mtodos a a e NOB podem ser quase to eficazes quanto os mtodos OVB. De fato, a e quando compara diretamente um mtodo NOB com um mtodo OVB e e sob exatamente o mesmo ambiente experimental, Egger et al. (2010) reporta essencialmente os mesmos ganhos para mais de metade dos programas avaliados.

69

Infelizmente, at onde se tem not e cia, todos os trabalhos em alocao de SPM negligenciam o pr-ajuste de cache: eles reportam ca e resultados normalizados para uma cache de referncia cujo tamanho e ou fixo para todos os programas do benchmark ou varivel, porm e e a e definido por alguma outra mtrica qualquer. Embora tal configurao e ca experimental com um tamanho fixo de cache emule um caso prtico (a a otimizao de cdigo para memrias embarcadas preconcebidas), isto ca o o no prov uma base para o dimensionamento de memrias customizaa e o das ou configurveis (TALLA; GOLSTON, 2007) (MALIK; MOYER; a CERMAK, 2000). Como o objetivo deste trabalho no propor uma nova tcnica 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, 2003) (VIANA et al., 2008), sero a emprestadas noes de Angiolini et al. (2004), Mendona (2010) e co c Volpato et al. (2010) para a formulao do problema-alvo, descrita no ca Cap tulo 3.

70

71

3 O PROBLEMA-ALVO Considere-se uma arquitetura baseada em cache (cache-based architecture CBA) contendo uma memria principal, uma cache de o instrues, uma cache de dados, e uma SPM. co A partir deste ponto, usaremos M para denominar um componente genrico de memria, o qual pode ser a memria principal (MP), e o o uma memria cache de instrues ou de dados (I-cache e D-cache, o co respectivamente) ou uma SPM. A energia consumida para acessar uma posio de M, EM , ca e definida como a energia mdia gasta na leitura ou na escrita daquela e posio. ca A latncia de uma memria, M , definida como o tempo gasto e o e para acessar uma de suas posies, expressado em ciclos de relgio. co o A capacidade de uma memria, CM , seu tamanho, especificado o e em bytes. Definio 3.1. Trace de memria. Um trace T uma tupla (1 , ca o e 2 , ..., i , ... n ) que representa uma sequncia de endereos sucessivos, e c acessados no subsistema de memria (UHLIG; MUDGE, 1997), onde i o denota o i-simo endereo. e c Definio 3.2. Elemento candidato ` alocao. Um elemento de ca a ca programa candidato, denominado por Di , um continer de dados (uma e e constante, uma varivel, uma estrutura de dados, etc.) ou um continer a e de instrues (um procedimento, um bloco bsico, uma unica instruo, co a ca etc.). Dado o tamanho i de um elemento Di , sua faixa de posies varia co entre um endereo-limite inferior i at um endereo-limite superior c e c i + i 1. Definio 3.3. N mero de acessos de um elemento candidato. ca u Dado um trace T e um elemento candidato Di , o nmero de acessos ` u a memria em T que recaem na faixa de posies de Di : o co e ai =

|T

, onde: =

1 0

se i < i + i caso contrrio a

Definio 3.4. Taxa de faltas de um elemento candidato. Dado ca um trace T e um elemento candidato Di , sua taxa de faltas o nmero e u de vezes em que ele no encontrado na cache para todas as referncias a e e

72

a ele em T , i.e.:
|T

, onde: = 1 0
se Di no se encontra na cache a caso contrrio a

mi =

ai

Definio 3.5. Energia consumida em um acesso a um eleca mento candidato. A energia consumida por um acesso a um candidato Di no espao de endereamento da MP : c c e Ei = Ecache + mi (EMP + Ecache ), onde Ecache = EI-cache quando Di um continer de cdigo e Ecache = e e o ED-cache , caso contrrio. a Definio 3.6. Lucro (profit) de energia de um candidato. O ca lucro de energia de um elemento candidato Di quando mapeado para a SPM calculado por: e pi = ai (Ei ESPM ) i , onde i o overhead de energia associado com as instrues extras que e co desviam incondicionalmente o fluxo de execuo da MP para a SPM e, ca depois, de volta para a primeira, para que o contedo do elemento seja u acessado no espao de endereamento da SPM. c c Quando Di um procedimento ou um dado, uma vez que nee nhuma instruo extra se faz necessria (ANGIOLINI et al., 2004; ca a MENDONCA, 2010), tem-se i = 0. Quando Di um bloco bsico, e a decorre i > 0, a ser detalhado na Seo 4.4.1. ca Definio 3.7. Espao necessrio para um elemento candidato. ca c a O espao wi , em bytes, necessrio para alocar um elemento Di em SPM c a e wi = i + extra , onde extra o tamanho total das instrues extras necessrias para e co a direcionar o fluxo de controle para aquele elemento quando Di um e bloco bsico alocado em SPM. O clculo de extra ser detalhado na a a a Seo 4.4.2. Quando Di um procedimento ou um dado, tem-se wi = i , ca e pois no se fazem necessrias instrues extras (ANGIOLINI et al., 2004; a a co MENDONCA, 2010). Definio 3.8. Caracterizao de espao dos elementos candica ca c datos. Sejam D1 , ..., Di , ..., Dn os elementos candidatos acessados por

73

um cdigo embarcado. Sua caracterizao de espao dada por uma o ca c e matriz-linha W = [w1 , ..., wi , ..., wn ], onde wi significa o espao necessrio c a para alocar o elemento Di em SPM, expresso em bytes. Definio 3.9. Caracterizao de lucro dos elementos candidaca ca tos. Sejam D1 , ..., Di , ..., Dn os elementos candidatos acessados por um cdigo embarcado. Sua caracterizao de lucro denotada por uma o ca e matriz-linha P = [p1 , ..., pi , ..., pn ], onde pi o lucro pela alocao do e ca elemento Di em SPM. Definio 3.10. Mapeamento de elementos para a SPM. Um ca mapeamento para a uma SPM representado por uma matriz-coluna X = e [x1 , ..., xi , ..., xn ]1 , onde xi = 1 significa que um elemento Di mapeado e para o espao de endereamento da SPM e xi = 0 significa que Di c c e mapeado para o espao de endereamento (disjunto) da MP. c c O problema geral de otimizao consiste em determinar quais eleca mentos de programa sero mapeados para a SPM, de modo a minimizar a uma funo custo, ou equivalentemente, maximizar uma funo lucro. ca ca O objetivo pode ser minimizar o tempo de acesso total ` memria ou o a o consumo de energia. Essa possibilidade levar a diferentes instncias do a a problema de otimizao. ca Como o nmero de acessos aos elementos depende da computao u ca dos algoritmos utilizados no software embarcado, a otimizao ser feita ca a capturando um padro t a pico de acessos, caracterizado por um trace de memria T . Alm disso, os elementos de programa candidatos devem o e ser caracterizados em termos de seus tamanhos. O problema-alvo pode ser reformulado como um problema clssico a de otimizao combinatria chamado Problema Binrio da Mochila (01 ca o a Knapsack Problem) (KARP, 1972), conforme formalizado abaixo. Problema-alvo de Otimizao: Dados um conjunto de elementos ca candidatos Di , caracterizados por W e P, e um padro de acesso capa turado por um trace T , encontre a alocaao X que maximize a funo c ca lucro p(X) = P X tal que W X CSPM A soluo do Problema-alvo de Otimizao por meio de tcnicas ca ca e exatas pode resultar em tempos de execuo proibitivos para casos de ca uso reais, por tratar-se de um problema NP-completo. Embora muitos mtodos utilizem Programao Linear Inteira (ILP), o problema tambm e ca e pode ser resolvido idealmente por meio de Programao Dinmica, em ca a tempo pseudo-polinomial (PAPADIMITRIOU, 1981). O Problema-alvo solucionado utilizando o algoritmo MINKNAP e

74

(PISINGER, 1997), que garante soluo tima e eficiente para o Proca o blema Binrio da Mochila, da mesma forma que a tcnica de Mena e dona (2009, 2010), que foi estendida por este trabalho. c

75

4 EXTENSAO DE UMA TECNICA NOB PARA DE BLOCOS BASICOS NO ESPACO DE INCLUSAO OTIMIZACAO A tcnica proposta por Mendona (2009, 2010) considera como e c candidatos elementos de cdigo e dados globais estticos (escalares e o a no-escalares), particularmente aqueles originados de bibliotecas. Para a tornar isto poss vel, manipula arquivos-objeto relocveis em tempo de a ps-compilao. Entretanto, a tcnica de Mendona somente realiza o ca e c alocao de procedimentos (procedure allocation PRA), por utilizar ca a granularidade de procedimentos para definir as fronteiras entre os elementos de cdigo. o O ajuste-fino das caches fundamento da reavaliao das tcca e nicas NOBs proposta por este trabalho , quando precede a alocao ca em SPM, permite uma anlise mais realista da economia obtida, impea dindo que fatores secundrios influenciem nesta economia. Aproveitando a desta facilidade, optou-se por avaliar tambm o impacto da variaao da e c granularidade dos elementos de cdigo na abordagem NOB. o Para permitir a explorao da granularidade de elementos de cca o digo, foi necessrio realizar uma extenso na tcnica de Mendona (2009, a a e c 2010), de modo a habilitar a alocao de blocos bsicos (basic-block ca a allocation BBA), como alternativa ` PRA. a A extenso implementada para que o cdigo possa ser dividido na a o granularidade de blocos bsicos (BBs) contemplou os seguintes aspectos: a
identificao das instrues de desvio condicional no cdigo binrio, ca co o a para a demarcao dos blocos; ca identificao do caso de cada bloco bsico. O caso determinado ca a e verificando algumas caracter sticas: se possui ou no instruo de a ca desvio; caso sim, se o desvio condicional ou incondicional; e se o e bloco constitui um lao; c adaptao do profiler para que este compute o nmero de acessos, ca u taxa de faltas e o custo energtico para o acesso aos candidatos e BBs; adaptao da caracterizao de espao e de lucro dos candidatos ca ca c para levar em conta os candidatos BBs;

ca modificao do mecanismo de patching para que os BBs mapeados em SPM sejam alocados nesta quando do in da execuo do cio ca programa.

76

E importante esclarecer que na verso estendida da tcnica, apea e nas uma granularidade, BBs ou procedimentos, considerada por vez e como fronteira para os elementos de cdigo. o 4.1 FLUXO DE TRABALHO Dados uma aplicao, um nodo tecnolgico e um subsistema ca o de memria pr-especificado, o objetivo ultimo da extenso realizada o e a permanece o mesmo da tcnica original: produzir um arquivo executvel e a relocado, de maneira que o melhor conjunto de elementos de programa seja mapeado para o espao de endereamento da SPM. Alguns passos c c so necessrios, tanto para habilitar este mapeamento como para refletia a lo no cdigo executvel consciente de SPM. A Figura 7 mostra o fluxo o a de trabalho da tcnica estendida. As etapas deste fluxo so detalhadas e a nas sees subsequentes. O processo uma especializao da tcnica co e ca e ilustrativa explicada na Seo 2.1. ca 4.2 CARACTERIZACAO DOS ELEMENTOS O ponto de entrada do fluxo de trabalho um conjunto de e arquivos-objeto relocveis, os quais podem compreender bibliotecas a estticas. Neste passo, algumas poucas propriedades de programa so a a extra das destes arquivos para permitir a otimizaao pretendida, a saber, c o conjunto de elementos de programa candidatos (Di ) e seus tamanhos (i ). A tarefa mais elaborada desse passo consiste na identificao dos ca elementos de programa, como descrito a seguir. A tcnica estendida permite manipular dados estticos (escalares e a e vetores) e cdigo (ou procedimentos ou BBs). A identificao de o ca elementos de dados estticos e procedimentos direta. Entretanto, a e quando BBs so escolhidos como elementos de cdigo, quatro diferentes a o casos podem ocorrer, como retratado pelas Figuras 8(a), 8(b), 8(c) e 8(d). O lado esquerdo de cada figura (` esquerda da seta) mostra a fronteira a de um BB (em borda destacada) e as instrues que o sucedem no espao co c de endereamento da memria principal (MP) antes do mapeamento. c o O lado direito de cada figura (` direita da seta) ilustra os espaos de a c endereamento disjuntos, aps o mapeamento daquele BB para SPM. c o As instrues de desvio condicional e incondicional esto negritadas. co a O lado esquerdo das Figuras 8(a), 8(b), 8(c) e 8(d) ilustram as caracter sticas que permitem distinguir os BBs segundo quatro casos:

77

Arquivosobjeto reloc. (originais)

Relocao e linkedio Caracterizao dos elementos

Arquivo executvel (original)

Caracterizao dos componentes de memria Ccache CSPM CSPM

{Di} { } i

{Di} {Di}

CMM

Estimativa de latncia e energia Ecache ESPM EMM cache SPM MM T Proling {mi} {ai} {Si} {ri}

Caracterizao de custo e lucro P W Mapeamento Xtimo

Patching Arquivosobjeto reloc. (patched)

Relocao e linkedio

Arquivo executvel (relocado)

Figura 7: Fluxo de trabalho da tcnica estendida de alocao em SPM e ca


Caso I (Figura 8(a)). O BB no contm nenhuma instruo de a e ca desvio. Este caso ocorre geralmente com cdigo que inicializa o variveis ou armazena/recupera contextos. a Caso II (Figura 8(b)). O BB termina com um desvio incondicional. Isto tipicamente induzido por estruturas de seleo de e ca mltipla escolha (case/switch) e estruturas de seleo se-sen~o u ca a (if-else) com mltiplas condies. u co Caso III (Figura 8(c)). O BB termina termina com um desvio condicional cujo alvo o prprio BB, i.e. ele forma uma estrutura e o de lao. Isto frequentemente induzido por estruturas de repetio c e ca ps-testada (do-while) sem estruturas condicionais aninhadas. o

78

Antes do mapeamento MP
i

Depois do mapeamento MP
i

Instruo 0 Instruo 1 ... Instruo n-2

js nop ... Instruo n-2

SPM Instruo 0 Instruo 1 ... Instruo n-2

i+n1 i+n

Instruo n-1 Instruo n

i+n1 i+n

Instruo n-1 Instruo n

s+n1 s+n s+n+1

Instruo n-1 j (i+n) nop

...

...

Acrscimo de espao em SPM: 2 palavras

(a) Caso I
Antes do mapeamento MP
i

Depois do mapeamento MP
i

SPM
s

Instruo 0 Instruo 1 ... j (i+n+k)

js nop ... j (i+n+k)

Instruo 0 Instruo 1 ... j (i+n+k)

i+n1

Instruo n-1 ... Instruo n+k

i+n1

Instruo n-1 ... Instruo n+k

s+n1

Instruo n-1

i+n+k

i+n+k

Acrscimo de espao em SPM: 0 palavras

(b) Caso II
Antes do mapeamento MP
i

Depois do mapeamento MP
i

Instruo 0 Instruo 1 ... beq $0, $1, i

js nop ... beq $0, $1, i

SPM Instruo 0 Instruo 1 ... beq $0, $1, s

i+n1 i+n

Instruo n-1 Instruo n

i+n1 i+n

Instruo n-1 Instruo n

s+n1 s+n s+n+1

Instruo n-1 j (i+n) nop

...

...

Acrscimo de espao em SPM: 2 palavras

(c) Caso III


Antes do mapeamento MP
i

Depois do mapeamento MP
i

Instruo 0 Instruo 1 ... Instruo n-3 beq $0, $1, i+n+k

js nop ... Instruo n-3

SPM Instruo 0 Instruo 1 ... Instruo n-3 j (i+n-2)

i+n2 i+n1

beq $0, $1, i+n+k Instruo n-1 ... Instruo n+k


s+n1

i+n1

Instruo n-1 ... Instruo n+k

nop

i+n+k

i+n+k

Acrscimo de espao em SPM: 0 palavras

(d) Caso IV

Figura 8: Casos que podem ocorrer no mapeamento de blocos bsicos a para SPM

CASE IV: Branch (out)

79

Caso IV (Figura 8(d)). O BB termina com um desvio condicional cujo alvo outro BB. Isso ocorre comumente quando os laos se e c estendem por mais de um BB (por exemplo, em estruturas de repetio para com estruturas condicionais se-sen~o aninhadas). ca a

Como laos tendem a ser executados diversas vezes, 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. Evidentemente, isso depender da taxa de invocao. a ca Quando um BB mapeado para SPM, seu cdigo replicado e o e no espao de endereamento da SPM. Contudo, somente a rplica de c c e seu contedo no suficiente para que o BB possa ser acessado a u a e partir da SPM. Ajustes fazem-se necessrios em suas posies no espao a co c de endereamento da MP e, eventualmente, no espao da SPM. As c c posioes que necessitam de ajuste esto hachurados, ` direita da seta c a a nas Figuras 8(a), 8(b), 8(c) e 8(d). Estes ajustes esto explicados em a maiores detalhes a seguir. No espao de endereamento da MP, o ponto de entrada de um BB c c (i.e. sua primeira instruo) substitu por um desvio incondicional ca e do (jump) para a posio (digamos, s) do cdigo do BB no espao de ca o c endereamento da SPM. E importante perceber que, como muitas c arquiteturas possuem desvios adiados (delayed branches), os delay slots devem ser considerados sempre que um desvio incondicional adicionado. e Por simplicidade, delay slots so preenchidos com instrues de noa co a operao (nop), embora pudessem ser preenchidos com instrues uteis ca co (e.g. instrues de um BB precedente). co No espao de endereamento da SPM, embora as mudanas c c c necessrias dependam do caso do BB, estas consistem basicamente a em possuir um desvio incondicional que salta de volta para a posio ca adequada no espao de endereamento da MP. Estes ajustes tem os c c seguintes impactos:
Caso II: no necessita de mudanas pois o cdigo original j a c o a termina com um desvio incondicional (e seus alvos no necessitam a de ajuste nos deslocamentos porque so codificados como endereos a c absolutos). Casos I e III: requerem a insero de desvio incondicional (jump) ca no final do BB, o que aumenta levemente seu tamanho e, por conseguinte, o espao necessrio. c a Caso IV: o desvio condicional final transformado em um desvio e incondicional cujo alvo a posio daquele desvio no espao de e ca c

80

endereamento da memria principal. c o A soluo adotada no Caso IV tem como intuito reduzir o overhead ca de espao na SPM, permitindo assim que mais elementos sejam mac peados, embora ocasione aumento na energia gasta no espao de enc dereamento da MP pelo acesso ` instruo de desvio condicional. Se c a ca decid ssemos pela execuo do desvio condicional no espao de enca c dereamento da SPM, seria necessrio no apenas uma mudana no c a a c deslocamento do desvio, como tambm a adio de dois desvios incondie ca cionais (um para o alvo do desvio condicional e outro para a primeira instruo aps a sa do BB). ca o da 4.3 PROFILING DO PROGRAMA Submetem-se os arquivos-objeto relocveis ao ligador para realizar a a relocao e edio de referncias, do que resulta um arquivo executvel ca ca e a utilizado para fins de profiling. Por meio da execuo deste executvel, ca a determina-se o trace T . Dado o trace T , para cada elemento de programa candidato Di , o profiler calcula seu nmero de acessos ai e sua taxa de faltas mi , u conforme as Definies 3.3 e 3.4, respectivamente. co 4.4 CARACTERIZACAO DE LUCRO E ESPACO Para um dado nodo tecnolgico, a caracterizao de lucro requer o ca a estimativa de energia consumida (ou do atraso) por acesso para cada componente do subsistema de memria. Alm disso, j que a o e a energia mdia depende dos padres de acesso, a caracterizaao do lucro e o c igualmente leva em conta a configurao do subsistema de memria, ca o tal como as capacidades dos componentes (CMP , Ccache , CSPM ) e outros parmetros de configurao (nmero de portas, associatividade da cache, a ca u tamanho de bloco, etc.). Dada a energia mdia e a latncia mdia de cada componente e e e (EMP , Ecache , ESPM , MP , cache , SPM ), a caracterizao de lucro e a de ca espao consistem em encontrar um lucro (pi ) e um espao (wi ) para cada c c elemento candidato (Di ) mapeado para SPM, conforme as Definies 3.9 co e 3.8. Seja uma funo que mapeia cada elemento de programa Di ca para um tipo de elemento, tal que: : D {BB, proc, data}

81

onde BB, proc e data significam um bloco bsico, um procedimento ou a um dado esttico, respectivamente. a 4.4.1 Lucro de energia de um bloco bsico a Da Definio 3.6, tem-se que o lucro de energia obtido em mapear ca um elemento para a SPM dado por pi = ai (Ei ESPM ) i . e Para facilitar a visualizao do quanto cada espao de endeca c reamento (MP e SPM) contribui para o overhead i , este pode ser c subdividido nas seguintes componentes:

i = iMP + iSPM ,

onde iMP e iSPM representam os overheads de energia nos espaos de c endereamento da MP e da SPM, respectivamente. c Seja s o nmero de delay slots na arquitetura alvo e ri a taxa de u invocao do BB Di (i.e. o nmero de vezes que seu ponto de entrada ca u acessado). Quando (Di ) = BB sob o Caso III (lao), sua taxa de e c invocaao pode ser escrita como ri = Ni + Si , onde Ni denota o nmero c u de invocaes devido `s iteraes do lao e Si representa o nmero de co a co c u vezes que o BB alcanado partindo de um outro BB, digamos Dk , tal e c que k = i. Considerando os casos de BBs apresentados na Seo 4.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.1)

iSPM =

se (Di ) = BB sob os Casos I e III caso contrrio a

(4.2)

Quando (Di ) = BB, seu clculo leva em considerao a energia a ca gasta acessando as instrues de desvio incondicional (e seus respectivos co delay slots) adicionadas: um desvio da MP para a SPM e outro no caminho oposto. Quando (Di ) = {proc, data}, o overhead sempre nulo. e

82

4.4.2 Espao necessrio para alocar um bloco bsico c a a Da Definio 3.7, temos que o espao ocupado em SPM quando ca c da alocao de Di : wi = i + extra . ca e Da mesma forma que para o lucro, pode-se compreender extra como um overhead de espao, em bytes, devido `s instrues extras que c a co direcionam o fluxo de controle do espao de endereamento da SPM c c para o da MP. Para o direcionamento do espao da MP para o da SPM c no se tem acrscimo de instrues, pois as prprias posies do BB na a e co o co MP so utilizadas. a Para um candidato Di , o espao extra necessrio para sua alocao c a ca em SPM dado por: e extra = jmp + s nop 0 se (Di ) = BB sob os Casos I e III caso contrrio a (4.3)

onde jmp e nop so, respectivamente, os tamanhos de uma instruo a ca de desvio incondicional (jump) e de uma instruo de no-operao ca a ca (nop), expressos em bytes. Comparando esta equao com a Figura 8, fica claro que apenas ca dois casos de BBs necessitam de espao extra na SPM. Para os outros c dois casos, bem como para procedimentos e dados, nenhuma instruo ca adicional necessria. e a 4.5 MAPEAMENTO EM SPM Este passo consiste em resolver o Problema de Otimizao Alvo, ca para o qual existem muitos algoritmos propostos na literatura. Neste trabalho, adota-se um eficiente algoritmo de programao dinmica ca a conhecido como MINKNAP (PISINGER, 1997). Como resultado, um mapeamento timo de elementos para SPM (Xotimo ) encontrado. o e A etapa de mapeamento procede da mesma forma que na tcnica e de Mendona (2009, 2010). c 4.6 PATCHING DE BINARIOS Dado o mapeamento timo, os arquivos relocveis originais so o a a alterados (patching) de modo a refletir o mapeamento consciente de SPM.

83

O esforo para realizar o patching aumenta quando elementos de c cdigo so divididos de procedimentos em BBs. No entanto, o patching o a em arquivos-objeto relocveis tende a ser mais eficiente do que em a arquivos executveis, devido `s facilidades providas pelas relocaes a a co (MENDONCA, 2010). O patching de um procedimento consiste basicamente em mover seu cdigo para uma seo de SPM, que posteriormente ser realocado o ca a para o espao de endereamento da SPM, em tempo de ligao, e em c c ca editar a tabela de s mbolos de cada arquivo-objeto. Por outro lado, o patching de um BB no simples. Embora um a e BB possua um unico ponto de entrada, uma vez que ele poderia ser atingido por BBs distintos e no necessariamente pelo situado em uma a faixa de posies vizinhas, necessitaria potencialmente do patching de co muitos deslocamentos de desvios condicionais no cdigo. o Por esta razo, decidiu-se por copiar o BB para a SPM, mantendo a seu cdigo na MP (apenas sobreescrevendo a posio inicial por uma inso ca truo de desvio incondicional e as posies seguintes que correspondem ca co aos delay slots por no-operaes, conforme ilustrado na Figura 8). Ao a co fazer isso, evita-se visitar os desvios condicionais que requerem ajuste de deslocamento. Note que o desperd de espao de memria total cio c o ocupado pelos BBs originais marginal, pois est atrelado ao tamanho e a da SPM (tipicamente, alguns KB), que muito menor do que o da MP e (tipicamente, na ordem de MBs). O patching realizado no n de arquivos-objeto relocveis e e vel a cada arquivo contendo um elemento de programa mapeado para SPM necessita de ajustes. Cada BB mapeado para SPM tem seu cdigo o copiado para uma seo de SPM exclusiva (e.g. .spm.bb0) criada no ca arquivo. Aps a cpia, o cdigo do BB ajustado tanto no espao o o o e c de endereamento da MP como no da SPM, de acordo com os casos c ilustrados na Figura 8. Uma vez que o endereo final de cada seo c ca (no arquivo executvel) desconhecido antes do tempo de ligao, o a e ca alvo dos desvios incondicionais que redirecionam para e do espao de c endereamento da SPM no podem ser codificados como endereos c a c absolutos. Ao invs disso, atribui-se uma referncia simblica para a e e o posio desejada. Cada referncia simblica resultante corresponde a ca e o uma entrada na tabela de relocaes do arquivo. Durante relocao e co ca linkedio, todas as referncias nesta tabela so substitu ca e a das por endereos efetivos. Sempre que um BB copiado, entradas de relocaes que c e co originalmente apontavam para ele so redirecionadas para apontarem a para sua nova seo de SPM. ca O patching de elementos de dados e de procedimentos realizado e

84

conforme descrito por Mendona (2010). c 4.7 GERACAO DE SA IDA Depois que todos os arquivos-objeto so submetidos ao patching, a o ligador (instrumentado com um script modificado, ciente de SPM) corrige cada referncia simblica, mescla todas as sees de SPM (.spm.*) e o co e as realoca para o espao de endereamento de SPM, dando origem ao c c arquivo executvel otimizado. a

85

5 AJUSTE-FINO DE CACHES PARA AVALIACAO DA EM SPMS ALOCACAO O subsistema de memrias de uma arquitetura somente com o caches (FCA) ou de uma arquitetura baseada em cache (CBA) muito e sens ` configurao das caches que o compem. Tal sensibilidade vel a ca o acarreta grande impacto no total de energia consumida pelo subsistema. Zhang e Vahid (2003) reportam uma economia de 40% pelo simples ajuste de parmetros em uma cache configurvel para a aplicaoa a ca alvo. Para certos programas, Zhang, Vahid e Najjar (2005) obtiveram diferenas de energia de quase 60% pela simples variao do tamanho c ca de bloco de uma cache de dados. Essa variao no consumo de energia pode ser explicada pelo ca seguinte exemplo. Imagine um subsistema de memria composto por o I-cache e MP, o qual est sendo ajustado para uma dada aplicao. Um a ca aumento na capacidade da cache pode, por exemplo, aumentar a energia consumida por acesso, mas ao mesmo tempo, diminuir os acessos ` MP, a resultando em reduo da energia total consumida no subsistema de ca memria. No entanto, supondo que a taxa de faltas na cache antes do o aumento de capacidade j era muito prxima de zero, i.e. o nmero a o u de acessos ` MP j era pequeno, de se esperar que este ajuste acabe a a e aumentando o total de energia consumida no subsistema de memria. o Quando a alocao em SPM despreza o impacto da(s) cache(s) ca no subsistema de memria, a economia obtida superestimada. Se as o e caches da arquitetura de referncia no esto ajustadas ` aplicao, elas e a a a ca consomem mais energia, elevando assim o consumo de energia da arquitetura de referncia utilizada para normalizao dos resultados. Quando e ca a tcnica de alocao em SPM aplicada sobre a arquitetura-alvo, 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, por isso, induzem maior consumo de energia na cache e na MP). Disto, pode-se deduzir que a economia resultante da alocao em SPM superestimada, pois ca e absorveu parte do consumo de energia de uma cache no-ajustada, o a que no aconteceria se a cache tivesse sido ajustada ` aplicao. a a ca Considerando primeiramente tcnicas OVB tendo arquiteturas e sem cache (UNAs) como arquitetura-alvo, e FCAs como arquitetura de referncia, Steinke et al. (2002a) reportam uma economia mdia e e de energia de 30%, Verma e Marwedel (2007) de 20% e Egger et al. (2010) de 21%. Como as caches de referncia no foram pr-ajustadas, e a e

86

o ganho da alocao em SPM est superestimado. Em sistemas com ca a caches pr-otimizadas, deve-se esperar ganhos muito menores que aqueles e reportados. Quando as arquiteturas-alvo so CBAs, Cho et al. (2007) relatam a economia mdia de energia de 8% para dados, Egger, Lee e Shin (2008) e e Egger et al. (2010) relatam, 14% e 24% para cdigo, respectivamente. o Os ganhos so menores mas pode-se supor superestimados, pois a as caches tambm no foram otimizadas. e a Alm disso, algumas tcnicas ignoram as diferenas entre as e e c arquiteturas-alvo e estabelecem uma comparao direta com uma tcnica ca e proposta para uma arquitetura diferente da sua, superestimando os resultados. Por exemplo, Egger et al. (2006) (UNA) relatam uma economia de energia de 24% sobre Angiolini et al. (2004) (CBA), o que no justo, pois a presena de cache em uma CBA diminui o potencial a e c de otimizao da SPM, favorecendo os ganhos da UNA. ca Por conta disso, faz-se necessria a escolha apropriada da configua rao das caches da arquitetura-alvo, de modo que os resultados obtidos ca no sejam mascarados por conta de uma determinada configurao, a ca mas, sim, verdadeiramente significativos, evidenciando o real impacto da tcnica sobre o programa otimizado. e Para evitar que a escolha arbitrria dos parmetros das caches a a de uma CBA favorea os ganhos obtidos atravs da alocao em SPM, c e ca optou-se por estimar, para cada programa, as caches de instrues e co de dados que resultam no menor consumo de energia. Desta forma e poss avaliar adequadamente o impacto da granularidade de cdigo vel o e do tamanho da SPM no consumo de energia. Tal otimizao dos ca parmetros da cache pode ser feita por meio de tcnicas de ajuste-fino a e de caches (cache-tuning). 5.1 AS TECNICAS DE AJUSTE-FINO DE CACHES As tcnicas de ajuste-fino das memrias cache (cache-tuning) e o procuram estimar o comportamento de um determinado espao de c projeto de caches para uma aplicao. Dependendo da tcnica, este ca e espao de projeto pode corresponder a uma ou a diversas configuraes, c co obtidas pela variaao de um ou mais parmetros da cache. A captura c a do padro de acesso da aplicao feita pelo processamento do seu trace a ca e de execuo. ca As principais tcnicas de ajuste-fino de memrias cache so enue o a meradas em Viana (2006). A seguir, as principais tcnicas de ajuste-fino e

87

de caches so descritas muito brevemente, uma vez que neste trabalho a no se pretende propor nova tcnica, mas apenas adaptar uma das a e existentes, ao contexto da infraestrutura experimental. As tcnicas mais simples so aquelas dirigidas pelo trace de e a endereos, que simulam, a partir de uma sequncia de acessos, o comc e portamento de acertos e faltas para uma dada configurao. ca Outro grupo de tcnicas simula no apenas o comportamento e a da cache mas sua interao com o processador, por meio da simulao ca ca da cache simultaneamente ` execuo do programa, realizada por um a ca simulador de conjunto de instrues. Estes dois grupos de tcnicas, co e porm, permitem a avaliao de uma unica configurao de cache por e ca ca vez e so demasiadamente lentas, o que torna seu uso proibitivo para a a explorao de um espao de projeto contendo centenas ou at mesmo ca c e milhares de configuraes de caches diferentes. co Na tentativa de solucionar este problema, diversos autores propuseram um terceiro grupo de tcnicas, denominadas de tcnicas de e e passagem unica (MATTSON; GECSEI; TRAIGER, 1970) (HILL; SMITH, 1989) (SUGUMAR; ABRAHAM, 1995) (CONTE; HIRSCH; HWU, 1998) (CASCAVAL; PADUA, 2003) (JANAPSATYA; IGNJA TOVIC; PARAMESWARAN, 2006a) (VIANA, 2006; GORDON-ROSS et al., 2007; VIANA et al., 2008). Estas tcnicas so mais interessantes, pois permitem a simulao e a ca de um conjunto de caches de uma unica vez, utilizando tambm o trace e de endereos. O conjunto de configuraes de caches a ser simulado c co e determinado pela restrio quanto aos valores mximos e m ca a nimos de alguns parmetros da cache, sendo os principais: capacidade da cache, a tamanho de bloco e associatividade, nesta ordem (ZHANG; VAHID, 2003). Porm, a grande maioria das tcnicas no permite a variao e e a ca simultnea destes trs parmetros, sendo um ou mais fixos, caso em a e a que possivelmente se far necessria mais de uma simulao para a a a ca cobertura de todo o espao de projeto considerado. c Para o ajuste-fino das memrias cache a serem utilizadas na o configurao experimental, optou-se por implementar e utilizar o mtodo ca e SPCE (VIANA, 2006; GORDON-ROSS et al., 2007; VIANA et al., 2008), por este levar em considerao os trs parmetros enumerados ca e a anteriormente em uma passagem unica.

88

5.2 O METODO SPCE Dados um trace de memria e restries de espao de projeto o co c (tamanho m nimo e mximo de cache, tamanho m a nimo e mximo de a bloco e maior grau de associatividade permitido), o mtodo SPCE idene tifica, para cada endereo i do trace, todas as configuraes poss c co veis dentro do espao de projeto para as quais o acesso ao endereo resulta c c em acerto. Uma estrutura de tabela em mltiplas camadas armazena u o nmero de acertos computados ao longo da execuo da tcnica, e u ca e uma pilha armazenando os endereos j processados auxilia no clculo c a a do nmero de conflitos, o que usado para a determinao de acerto u e ca ou falta para o acesso. Uma vez que o trace todo foi analisado, valores de energia so computadas para cada configurao de cache, usando a ca estimativas de energia obtidas do pacote CACTI 5.31 (THOZIYOOR et al., 2008) combinado com o nmero de acertos e faltas derivados da u tabela. Finalmente, a configurao de melhor eficincia energtica ca e e e selecionada. Mais detalhes sobre o mtodo SPCE encontram-se no Apndice A. e e 5.3 IMPLEMENTACAO DO METODO SPCE Com base na literatura dispon (VIANA, 2006) (GORDONvel ROSS et al., 2007) (VIANA et al., 2008), foi feita uma implementao ca do mtodo SPCE como um programa standalone C++. As restries de e co espao de projeto so passadas como argumentos via linha de comando. c a O trace de endereos obtido via simulador (modelo executvel) para o c e a processador-alvo MIPS (descrito na Seo 6.1), e fornecido ` ferramenta ca a por comunicao entre processos. ca Para esta implementao do mtodo de Viana, diversas dificulca e dades tiveram que ser vencidas. Por exemplo, o algoritmo mostrado em Gordon-Ross et al. (2007) e Viana et al. (2008) no apresenta ina sumos suficientes para viabilizar sua implementao. Em sua tese de ca doutorado (VIANA, 2006), Viana no apresenta nenhum algoritmo e os a poucos exemplos demonstram-se insuficientes para preencher as lacunas deixadas pelo algoritmo descrito em seus outros trabalhos, enumerados anteriormente. Estas lacunas somente foram preenchidas por meio de
1 CACTI um modelo f e sico de memrias cache, SPM e DRAM. Utilizando um o conjunto de mais de 30 parmetros de entrada para a caracterizao da memria a ca o desejada, o modelo do CACTI permite a estimativa de uma srie de atributos e temporais, energticos e de rea desta memria. e a o

89

deduo e comparao com os exemplos apresentados. ca ca Um problema que atinge no s o mtodo SPCE, mas todos a o e os mtodos de ajuste-fino de caches, a velocidade de execuo. Os e e ca autores relatam em Viana et al. (2008) uma acelerao de quase 15 vezes ca (VIANA et al., 2008) em relao ` ferramenta Dinero2 (HILL et al., ca a 1993) e uma acelerao de quase 2 vezes com relao ` uma heur ca ca a stica de ajuste-fino (ZHANG; VAHID; NAJJAR, 2005). Isso tudo, aliado ao baixo tempo de execuo mdio (120s), passa a falsa sensao de que a ca e ca tcnica extremamente rpida. Uma anlise mais detalhada, porm, e e a a e revela que a explicao para tal rapidez encontra-se nos programasca alvo escolhidos. O mtodo experimentado sobre um conjunto de e e 9 programas do benchmark Powerstone (SCOTT et al., 1998), que so programas extremamente pequenos e rpidos. A aplicao sobre a a ca programas mais realistas (como os relatados na Seo 6.1 do presente ca trabalho) demanda um tempo de execuo muito maior. Exemplos ca destes tempos so apresentados no final desta seo. a ca A explicao para tal aumento no tempo de execuo porque, ca ca e para programas muito grandes, uma enorme gama de endereos distintos c so processados e necessitam ser armazenados em uma pilha. Uma a operao de busca realizada para cada endereo acessado, o que pode ca e c tomar um tempo considervel, dependendo do tamanho da pilha. a Para contornar estas limitaes, Viana (2006) prope duas alco o ternativas: uma amostragem (/ ) do trace de endereos, i.e. so c a processados endereos sequenciais, os seguintes so ignorados, e c a assim sucessivamente; ou o limite do tamanho da pilha. Para a primeira sugesto, Gordon-Ross et al. (2007) relatam que a a amostragem de apenas 3% do total de endereos (usando as taxas c = 4/ = 128, = 16/ = 512 e = 64/ = 2048) conduz a resultados mdios que diferem por apenas 4% do valor timo. Dentre estas taxas, e o = 64/ = 2048 a que apresenta o melhor resultado. Para alguns e programas de benchmark relatados, contudo, o uso de amostragem levou a erros considerveis, independentemente da taxa considerada. A causa a no foi identificada pelos autores at o presente momento. a e Para a segunda sugesto, Viana (2006) no apresenta valores a a fact veis nem o erro causado por esta restrio. ca A opo adotada pelo presente trabalho no foi nem uma nem ca a outra. Para no comprometer de nenhuma maneira a estimativa do ma e
2 Dinero uma conhecida ferramenta dirigida por trace para o clculo das taxas e a de acertos e faltas de uma determinada configurao de cache. Para a explorao de ca ca espao de projeto contendo mltiplas caches, pode ser enquadrada como tcnica de c u e ajuste-fino de passagens mltiplas (uma para cada cache a ser avaliada). u

90

todo, optou-se por paralelizar o algoritmo utilizando diretivas OpenMP. Mesmo assim, o ajuste-fino de certos programas levou muito tempo. Por exemplo, para o programa basicmath, o ajuste-fino da I-cache e da D-cache demoraram, respectivamente, 3 dias e 15 horas, e quase 19 horas. Para o programa fft, o ajuste da I-cache levou 2 dias e 15 horas, e o da D-cache levou 12 horas. Estes tempos foram medidos em uma mquina com quatro-ncleos, descrita em maiores detalhes na Seo 6.1. a u ca 5.4 DETERMINACAO DAS CACHES PRE-AJUSTADAS O espao de projeto considerado para o pr-ajuste das memrias c e o cache ilustrado na Tabela 3, com todos os valores permitidos para cada e um dos trs parmetros considerados pela tcnica SPCE. A capacidade e a e da SPM, expressa em bytes (B), variou entre 1K e 8K. O tamanho de bloco variou entre 8B e 32B. E, para a associatividade, considerou-se desde o mapeamento direto (1) at 8-vias. e A Tabela 4 apresenta os parmetros de configurao obtidos a ca do ajuste-fino das caches de instrues (I-cache) e dados (D-cache) co para cada programa-alvo do benchmark MiBench (GUTHAUS et al., 2001) para o nodo tecnolgico (technology node) CMOS de 90nm. As o configuraes so representadas por uma tupla (capacidade da cache, co a associatividade, tamanho de bloco), onde os tamanhos de cache e de bloco so expressados em bytes. Mais sobre os programas-alvo e a a configurao experimental utilizada encontra-se na Seo 6.1. ca ca 5.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 espao de projeto considerado. c Determinando-se as caches de melhor e pior eficincia energtica i.e. e e menor e maior consumo de energia para cada programa, 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 espao c de projeto considerado, apresentado na Figura 9. Em mdia, a economia de energia obtida pelo ajuste-fino foi de e 88% para a I-cache e de 80% para a D-cache. A maior reduo foi obtida ca para a I-cache do programa basicmath (prximo de 100%). As menores o redues foram obtidas para a D-cache de FFT e IFFT : 38% e 37%, co respectivamente. Estes resultados corroboram a necessidade do ajuste-

91

Tabela 3: Espao de projeto considerado para ajuste-fino das memrias c o cache Min. Mx. 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 memrias cache o Configurao 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,16,1w) (1K, 8 ,1w) (8K,16,2w) (8K,16,2w) (1K, 8 ,1w) (4K, 8 ,2w) (4K, 8 ,2w) (2K, 8 ,1w) (4K, 8 ,2w) (4K, 8 ,1w) (8K,16,2w) (8K, 8 ,4w) (1K, 8 ,1w) (1K, 8 ,1w) (4K, 8 ,2w) (4K, 8 ,2w) (1K, 8 ,1w) (1K, 8 ,1w) (2K, 8 ,1w) (2K, 8 ,1w) D-cache (1K, 8 ,1w) (1K, 8 ,1w) (1K, 8 ,2w) (2K, 8 ,1w) (2K, 8 ,2w) (8K,16,2w) (4K, 8 ,2w) (8K,16,2w) (8K, 8 ,1w) (8K, 8 ,1w) (8K,16,2w) (8K, 8 ,2w) (1K,16,1w) (4K, 8 ,2w) (1K, 8 ,1w) (1K, 8 ,1w) (4K, 8 ,1w) (4K, 8 ,1w) (2K, 8 ,1w) (4K, 8 ,1w) CT 32K 2K 16K 16K 4K 16K 32K 16K 16K 16K 16K 32K 2K 8K 32K 32K 8K 8K 8K 16K

Maior economia de energia (normalizada para a configurao de pior eficincia energtica) 90% 80% 70% 60% 50% 40% 30% 20% 10% 0%

100%

Maior economia - I-cache

Maior economia - D-cache

92

Figura 9: Impacto do ajuste-fino na economia de energia das caches de instrues e dados co

93

fino previamente ` alocao em SPM. Em sistemas sem o pr-ajuste a ca e das caches, uma quantia considervel dessa economia seno toda ela a a teria sido atribu intuitiva e indevidamente ` alocao em SPM. da a ca Assim sendo, preciso ter sempre em mente que as economias e apresentadas na Seo 6.4, medidas aps o ajuste-fino, so certamente ca o a menores do que aquelas avaliadas em sistemas com caches no-ajustadas, a que acabam por consumir mais energia por acesso e sofrem mais faltas, ocasionado mais acessos aos n veis superiores da hierarquia de memria. o Para alguns casos, como ser mostrado na Seo 6.4.2, o pr-ajuste a ca e diminui o espao de otimizao a ser explorado pela alocao em SPM. c ca ca 5.6 CALCULO DA CACHE UNIFICADA EQUIVALENTE Para correlacionar as capacidades da SPM e das caches pre ajustadas, conveniente definir a capacidade de uma cache unificada e equivalente (T-cache), equivalente em termos de taxa de faltas `quelas a previamente ajustadas. Tal capacidade, denotada por CT , calculada e como segue. Sejam mI and mD as taxas de faltas locais da I-cache e D-cache, respectivamente. Seja LS a frao do nmero de instrues executadas ca u co que representam instrues de carga (load ) e escrita (store). Ento, co a a taxa de faltas combinada o nmero total de faltas, dividido pelo e u nmero total de acessos para ler instrues ou ler/escrever dados: u co mI + LS mD (5.1) 1 + LS Por simplicidade, considera-se que a taxa de faltas e a capacidade de uma cache so inversamente proporcionais, i.e. a mT = kI kD kT = mI CI , = mD CD , = mT CT

As constantes kI , kD e kT podem ser interpretadas como a mdia e do nmero de bytes transferidos de ou para a MP. Como a T-cache u deve transferir a mesma quantia de bytes que I-cache e D-cache juntas, tem-se kT = kI + kD , o que leva a: CT = CI mI +CD mD mT (5.2)

94

A ultima coluna da Tabela 4 descreve as capacidades das caches equivalentes unificadas, obtidas a partir das Equaes 5.1 e 5.2 para co cada programa.

95

6 VALIDACAO EXPERIMENTAL E RESULTADOS 6.1 CONFIGURACAO EXPERIMENTAL Para a avaliao do impacto do pr-ajuste das memrias cache, ca e o bem como da granularidade de cdigo, utilizou-se da seguinte infraeso trutura. Os arquivos-objeto relocveis foram produzidos utilizando o coma pilador cruzado (cross-compiler ) gcc (verso 4.4.1) combinado com a a biblioteca newlib (RedHat Inc, 2010), uma implementao reduzida da ca biblioteca padro da linguagem C, prpria para sistemas embarcados. a o Como o modelo executvel do processador (descrito abaixo) no suporta a a instrues de ponto-flutuante, utilizou-se a biblioteca soft-float para co emular estas instrues por outras de matemtica inteira. A compilao co a ca utilizou o parmetro de otimizao -Os, que previne otimizaes que rea ca co sultem em aumento do tamanho de cdigo, uma escolha apropriada para o sistema embarcados com capacidade limitada de memria. Para gerar o os arquivos executveis a partir dos relocveis, utilizou-se o linkeditor a a ld dispon no pacote GNU Binutils (BINUTILS, 2007). vel O ambiente de simulao utilizado consistiu de um modelo execa cutvel do processador e um modelo do subsistema de memria. O a o modelo executvel do processador MIPS (um simulador do conjunto de a instrues gerado pela ADL ArchC (RIGO et al., 2004)) gera o trace de co endereos acessados, o qual serviu de entrada para os seguintes artefac tos computacionais: o algoritmo de ajuste-fino, o profiler e o modelo parametrizvel do subsistema de memria1 . Este modelo (pr-validado) a o e permitiu a composio de distintas arquiteturas (do subsistema de meca mria), utilizando os seguintes componentes: uma memria principal o o (MP) externa (off-chip), caches de instruo e de dados (n ca vel 1) e, opcionalmente, uma SPM. Tambm permitiu a estimativa do consumo e de energia dinmica de cada componente por conseguinte, do suba sistema de memria como um todo, com exceo de barramentos de o ca interconexo. a Como MP, assumiu-se o uso de uma memria off-chip Micron o MT48H8M16LF low-power SDRAM, a qual a mesma de outros trabae lhos, como Deng et al. (2009), Egger, Lee e Shin (2006) e Egger et al. (2006). Os principais parmetros desta memria so: CMM = 128MB, a o a
1 Ferramenta implementada por Rafael Westphal, Alexandre Keunecke I. de Mendona e Daniel Pereira Volpato. c

96

VDD =1, 8V, e barramento da memria operando a 100MHz. Os valores o de energia e latncia modelados foram os mesmos relatados naqueles e trabalhos os quais, coincidentemente, so tambm os mesmos adoa e tados por Cho et al. (2007), Kannan et al. (2009), Egger, Lee e Shin (2008) e Egger et al. (2010) para uma memria diferente. o Considera-se que a MP organizada como uma memria larga e o i.e., a largura de banda da MP e a largura do barramento de interconexo a da MP com o processador so do mesmo tamanho do bloco das caches. a No caso de a I-cache e a D-cache possu rem tamanhos de bloco diferentes, considera-se o maior deles. Esta organizao permite que um bloco seja ca transferido das caches sempre de uma unica vez, sem a necessidade de acessos extras ` MP. a Para as memrias cache e SPM, os parmetros dependentes de o a tecnologia (consumo de energia por acesso e tempo de acesso) foram obtidos atravs do modelo f e sico de memrias CACTI 5.3 (THOZIYOOR o et al., 2008), para um nodo tecnolgico de 90nm. o Os experimentos foram realizados em uma mquina com procesa sador Intel Xeon E5430 (quad-core) 2,66GHz com 4GB de memria o principal, rodando o sistema operacional Ubuntu GNU/Linux (kernel 2.6.31, 32-bit). 6.2 GERACAO DOS EXPERIMENTOS O conjunto de programas-alvo consistiu-se de 20 programas pertences a todas as seis classes de aplicaes do benchmark Mibench co (GUTHAUS et al., 2001)2 . A relao dos programas bem como uma ca breve descrio de sua funo so apresentados na Tabela 5. O tamaca ca a nho do arquivo executvel de cada programa (inclu a das as bibliotecas estticas), quando compilado na infraestrutura mencionada anteriora mente, apresentado na segunda coluna da Tabela 6. Os parmetros e a de entrada aplicados em cada programa foram retirados dos casos de teste correspondentes, denominados large, do mesmo benchmark. Para cada programa, avaliou-se a energia consumida por duas arquiteturas de memria distintas. Para fins de normalizao, empregouo ca se uma FCA (com I-cache, D-cache e MP externa) como arquitetura de memria de referncia (reference memory architecture - REF). Ao cono e trrio dos trabalhos anteriores, adotou-se uma referncia particular para a e
2 Apesar de a tcnica utilizada ser capaz de realizar a alocao em SPM para todos e ca os benchmarks propostos, a infraestrutura de compilador cruzado (cross-compiler ) e simulador de conjunto de instruoes utilizada impediu o profiling de alguns dos c programas do benchmark Mibench (GUTHAUS et al., 2001).

Tabela 5: Descrio dos programas de benchmark utilizados ca

Programa

Descrio 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)

Srie de clculos matemticos simples, sem suporte usual de hardware em sistemas embarcados. e a a Testa as operaoes de manipulaao de bits do processador. c c Usa o algoritmo quick sort para ordenar um grande arranjo de strings. Pacote para reconhecimento de bordas e cantos em imagens de ressonncia magntica do crebro. a e e Usa o modo para bordas. O mesmo que o anterior, exceto que utiliza o modo de suavizaao. c Compactaao de imagens usando o algoritmo JPEG de compresso com perda de dados. c a Procura por certas palavras em frases, sem sensibilidade ` caixa (case insensitive). a Aplica o algoritmo de Dijkstra para caminho de custo m nimo sobre um grafo grande. Usa o cifrador blowfish para criptografar blocos. Usa o cifrador blowfish para descriptografar blocos. Usa o cifrador rijndael para criptografar blocos. Usa o cifrador rijndael para descriptografar blocos. Aplica o algoritmo de disperso (hashing) SHA (Secure Hash Algorithm). a Realiza uma Verificaao de Redundncia C c a clica (Cyclic Redundancy Check ) sobre um arquivo. Aplica a Transformada Rpida de Fourier sobre um arranjo de dados. a Aplica a Inversa da Transformada Rpida de Fourier sobre um arranjo de dados. a Codifica uma amostra de voz usando a Modulaao Diferencial Adaptativa por Cdigo de Pulsos c o (ADPCM). O mesmo que o anterior, exceto que trata-se da descodificaao. c Codifica uma amostra de voz usando o padro GSM (Global Standard for Mobile). a O mesmo que o anterior, exceto que trata-se da descodificaao. c 97

98

cada programa de benchmark, com parmetros de cache pr-ajustados a e conforme a Tabela 4. Como arquitetura de memria sob avaliao o ca (memory architecture under evaluation - EVA), utilizou-se uma CBA que consiste na adio de uma SPM ` REF, i.e. a SPM coexiste com ca a as caches pr-ajustadas e a MP externa. Para cada programa, foram e avaliadas 6 variaes da CBA, determinadas pelo dimensionamento da co capacidade da SPM (CSPM ) como mltiplo da capacidade (CT ) da cache u 1 equivalente unificada (T-cache): 16 CT , 1 CT , 1 CT , 1 CT , CT e 2CT . O 8 4 2 valor de CSPM para cada programa apresentado na Tabela 7. e Para cada programa, os mapeamentos timos foram procurados o sob dois cenrios distintos alocao de procedimentos (procedure a ca allocation - PRA) ou alocao de blocos bsicos (basic blocks allocation ca a BBA) e para as 6 diferentes capacidades de SPM. Para encontrar tais mapeamentos, empregou-se a abordagem NOB descrita nos Cap tulos 3 e 4, a qual considera como candidatos tanto elementos de cdigo como o dados estticos, independentemente de sua origem (da aplicao ou de a ca bibliotecas), e que no necessita de hardware dedicado. a A soluo tima do Problema Alvo de Otimizao (formalizado ca o ca no Cap tulo 3) foi encontrada pelo algoritmo MinKnap (PISINGER, 1997). 6.3 CARACTERIZACAO DOS PROGRAMAS-ALVO Como o impacto da alocao em SPM na reduo de energia ca ca e fortemente dependente das propriedades dos programas-alvo, a simples avaliao da economia mdia para um conjunto de programas qualquer ca e seria muito limitada e questionvel, uma vez que os resultados poderiam a ser influenciados pela escolha desse conjunto. Para uma avaliao apropriada, deve-se correlatar a economia ca obtida da alocao em SPM com propriedades do programa, de modo ca a fornecer informaao util aos arquitetos de projeto e desenvolvedores c de ferramentas de automao de projeto eletrnico (Eletronic design ca o automation EDA). Para extrair estas propriedades de programa, submeteram-se todos os programas selecionados ao profiler para os dados de entrada mencionados na Seo 6.2. ca A primeira propriedade extra a partir de profiling foi o percenda tual de acessos que so acomodveis em uma determinada capacidade, a a como mostram as ultimas cinco colunas da Tabela 6. Os valores claramente indicam que os programas apresentam hot

Tabela 6: Percentual de acessos acomodveis em diferentes capacidades de uma memria qualquer a o Capacidade da memria (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,1% 75,8% 85,2% 92,3% 97,9% 58,2% 88,9% 31,1% 40,6% 91,7% 53,5% 64,0% 88,0% 57,9% 57,7% 29,5% 29,4% 76,0% 94,8% 54,5% 54,2% 97,5% 96,9% 78,9% 78,9% 72,5% 100,0% 46,7% 52,2% 93,5% 66,4% 75,0% 90,2% 68,1% 68,0% 34,6% 34,6% 93,4% 96,3% 72,5% 72,4% 98,3% 97,9% 91,6% 91,6% 85,0% 100,0% 70,2% 67,0% 94,4% 76,7% 86,4% 94,4% 88,5% 88,6% 44,9% 44,8% 97,3% 99,2% 88,8% 88,9% 99,2% 98,9% 95,4% 95,4% 93,8% 100,0% 84,9% 82,2% 94,8% 90,5% 94,9% 97,3% 94,8% 95,3% 65,4% 65,4% 98,4% 100,0% 96,1% 96,3% 100,0% 100,0% 98,0% 98,0% 97,7% 100,0% 96,9% 94,5% 95,0% 95,8% 99,5% 98,0% 99,5% 99,5% 93,0% 93,5% 99,3% 100,0% 98,5% 98,7% 100,0% 100,0% 99,3% 99,3%
99

Programa

0,5

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)

Mdia e

100

Tabela 7: Capacidade da SPM utilizada para cada configurao 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

101

spots, pois concentram a maior parte dos acessos em uma capacidade muito pequena de memria. Para 16 dos 20 programas analisados, pelo o menos 90% dos acessos poderiam acontecer no espao de endereamento c c de uma SPM de 4KB, o que corresponde a 2,3%, em mdia, do tamanho e do programa. Diante da variedade de programas e dom nios de aplicao, estes ca resultados indicam que programas contendo hot spots no apenas so a a bastante comuns, como estes trechos frequentemente acessados podem ser alocados em SPMs de capacidade relativamente pequena, sem a necessidade de alterar dinamicamente sua alocao. Em outras palavras, ca a Tabela 6 apresenta evidncias de que a alocao NOB provavelmente e ca e uma abordagem pragmtica para muitos programas. Estas evidncias a e so confirmados por tabela similar exibida em Menichelli e Olivieri a (2009), para outra implementao da biblioteca libc (que no a newlib) ca a e para um menor conjunto de programas. Outra propriedade extra foi a taxa de faltas global dos canda didatos (m) para cada programa, dada pela Equao 6.1 e reportada ca na segunda coluna da Tabela 8. Como a taxa mdia de faltas dos BBs e que formam um procedimento deve ser equivalente ` taxa de faltas do a prprio procedimento, m independente da granularidade de cdigo o e o selecionada. m= (n ai mi ) i=1 (n ai ) i=1 (6.1)

Para capturar as propriedades dependentes das granularidades de cdigo, realizou-se profiling adicional para dois cenrios distintos: o a um assumindo procedimentos (PRA) como elementos candidatos para alocao em SPM, outro assumindo blocos bsicos (BBA). Para identica a ficar os elementos considerados hot spots de um programa, avaliaram-se os elementos cujo nmero de acessos muito superior ao nmero mdio u e u e de acessos, conforme a Equao 6.2, onde a e so, respectivamente, a ca a mdia e o desvio padro do nmero de acessos. e a u H = {Di | ai > a + 3 }
n

(6.2)

O nmero absoluto de hot spots (|H|) e sua frequncia de ocoru e rncia, i.e. h = ( ai )/( ai ), para cada um dos cenrios, so relatados e a a
iH i=1

nas demais colunas da Tabela 8. Pode ser observado, por exemplo, que o programa crc32 exibe a maior frequncia de hot spots combinado com uma das menores taxas de e

102

Tabela 8: Propriedades extra das para caracterizao 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,32% 0,00% 1,98% 2,10% 0,45% 0,75% 8,28% 5,42% 0,40% 0,84% 1,50% 2,10% 5,22% 0,09% 2,59% 2,54% 0,88% 2,09% 2,03% 2,00%

|H| 11 8 8 12 1 14 2 5 2 2 4 3 7 4 11 11 7 6 3 11

h 47,7% 85,3% 24,1% 45,8% 93,7% 65,5% 38,6% 79,7% 46,6% 46,2% 69,1% 60,7% 89,2% 95,9% 57,0% 56,8% 62,6% 62,5% 65,5% 71,6%

|H| 4 2 4 2 1 4 1 1 2 2 1 1 1 1 4 4 1 1 2 1

h 62,3% 57,0% 42,5% 37,0% 98,0% 66,5% 31,5% 67,3% 63,8% 64,4% 61,6% 61,7% 76,1% 95,9% 84,7% 84,8% 93,9% 92,7% 72,5% 65,6%

Taxa de faltas global dos candidatos; Nmero de elementos candidatos classificados como hot u spots; Frequncia de ocorrncia dos elementos candidatos clase e sificados como hot spots.

103

faltas. Apesar de mostrar uma frequncia igualmente alta de hot spots, e o programa sha apresenta, contudo, uma das maiores taxas de faltas. Como ser mostrado na Seo 6.4, seus distintos n a ca veis de localidade conduzem a padres de economia muito diferentes, conforme varia-se o o tamanho da SPM. 6.4 ANALISE DOS RESULTADOS A energia consumida pelo subsistema de memria em cada caso, o normalizada para a arquitetura de memria de referncia, dada por o e e EN = EEVA /EREF , e apresentada na Tabela 9. Ao todo, foram avaliados 240 casos (20 programas 6 capacidades de SPM 2 cenrios de a alocao. A economia corresponde a uma reduo de energia, a qual ca ca pode ser determinada a partir dos valores normalizados (economia = (1 EN ) 100). Todos os valores de energia reportados referem-se apenas ao subsistema de memria (e no a valores totais do sistema). o a Tambm o espao ocupado em SPM, normalizado para sua cae c pacidade (wN = wEVA /CSPM ), apresentado na Tabela 10 para estes e mesmos casos. A (taxa de) ocupao da SPM pode ser determinada a ca partir dos valores normalizados, i.e. ocupao = wN 100. ca Os valores mdios de economia de energia e taxa de ocupao para e ca cada capacidade de SPM so apresentados graficamente na Figura 10. a Diversos aspectos destes resultados relacionados ao dimensionamento da SPM, pol tica de alocao, taxa de faltas, taxa de ocupao ca ca da SPM, etc. so analisados nas sees subsequentes. a co 6.4.1 Sensibilidade da economia ao dimensionamento da SPM Olhando-se simplesmente para a mdia calculada para o conjunto e de programas, a economia no varia tanto de acordo com o tamanho a da SPM. Os valores m nimo e mximo de economia mdia observada a e foram de 15% a 33% para PRA, e de 17% a 30% para BBA, conforme pode ser observado na Figura 10. Entretanto, para os programas stringsearch, sha, susan (smoothing) e adpcm (dec), a economia variou bastante com o tamanho da SPM. O aumento de economia proporcionado pelo dimensionamento da SPM para estes programas, usando abordagem PRA, , respectivamente, e de 25, 39, 39 e 94 pontos percentuais. Esses e os demais valores so a ilustrados na Figura 11, que apresenta a menor e a maior economia,

Tabela 9: Energia normalizada para a configurao de cache pr-ajustada ca e EN (BBA) Programa CT 0,87 1,00 0,89 0,72 0,66 0,92 0,49 0,29 0,96 0,93 0,78 0,73 0,40 0,99 0,83 0,83 0,11 0,04 0,88 0,76 Mdia e 0,83 0,80 0,72 0,71 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,92 0,99 0,93 0,87 0,86 0,92 0,52 0,33 0,97 0,95 0,92 0,79 0,75 0,99 0,91 0,91 0,11 0,99 0,97 0,93 CT 8 0,90 0,99 0,91 0,79 0,80 0,92 0,48 0,30 0,95 0,92 0,89 0,78 0,72 0,99 0,87 0,87 0,10 1,00 0,97 0,87 CT 4 0,87 0,99 0,88 0,72 0,73 0,92 0,49 0,28 0,95 0,92 0,85 0,78 0,44 0,99 0,85 0,84 0,10 0,05 0,94 0,75 CT 2 0,86 0,99 0,88 0,72 0,69 0,92 0,49 0,28 0,96 0,93 0,81 0,78 0,40 0,99 0,83 0,83 0,10 0,04 0,91 0,75 2CT 0,87 1,00 0,86 0,73 0,66 0,92 0,49 0,30 0,96 0,94 0,79 0,74 0,40 0,99 0,84 0,84 0,11 0,05 0,87 0,76 0,71 CT 16 0,86 1,00 0,89 0,93 0,95 0,92 0,64 0,27 0,96 0,92 1,20 0,79 0,84 0,99 0,90 0,90 0,10 0,97 0,98 0,92 0,85 CT 8 0,79 0,99 0,91 0,73 0,91 0,91 0,58 0,28 0,95 0,91 0,85 0,79 0,84 0,99 0,86 0,86 0,06 0,98 1,01 0,78 0,80

EN (PRA)

104

CT 4 0,75 1,23 0,90 0,70 0,80 0,91 0,44 0,23 0,95 0,91 0,84 0,78 0,55 0,99 0,81 0,81 0,06 0,05 0,95 0,69

CT 2 0,70 0,99 0,84 0,70 0,63 0,91 0,39 0,22 0,95 0,91 0,83 0,72 0,45 0,99 0,79 0,79 0,08 0,04 0,91 0,69

CT

2CT

0,68 0,99 0,83 0,71 0,56 0,92 0,40 0,21 0,96 0,92 0,78 0,73 0,45 0,99 0,78 0,78 0,09 0,04 0,88 0,69

0,69 0,99 0,83 0,71 0,47 0,95 0,40 0,22 0,97 0,93 0,79 0,73 0,45 1,00 0,78 0,78 0,10 0,04 0,84 0,69

0,72

0,68

0,67

0,67

Tabela 10: Ocupao 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

Mdia e

1,00

Economia de energia sobre a referncia Ocupao normalizada para capacidade da SPM 90% 80% 70% 60% 50% 40% 30% 20% 10% 0%

100%

Ct/16

Ct/8 Ocupao (PRA)

Ct/4

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

Ct

2Ct

Ocupao (BBA)

Economia de energia (BBA)

106

Figura 10: Economia mdia de energia e taxa mdia de ocupao por capacidade de SPM e e ca

107

usando abordagem PRA, obtidas pelo dimensionamento da SPM, bem como a diferena mdia, cujo valor de aproximadamente 18%. c e e Atrai muita ateno o resultado da alocao para o programa ca ca adpcm (dec), cujas economias m nima e mxima observadas sob PRA a so de 2% e 96%. Isto pode ser explicado pelo seguinte: adpcm (dec) a contm 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 nmero de acessos (asbu f = 13305600), sendo responsvel por 95% da u a energia consumida pelo sistema de memria 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. To e a logo essa estrutura possa ser alocada nas SPMs maiores, a economia torna-se extremamente alta. Estes resultados mostram o quo sens a vel ao dimensionamento da SPM alguns programas podem ser. 6.4.2 Pol tica de alocao de maior eficincia energtica para ca e e uma determinada capacidade de SPM Para um determinado tamanho de SPM, PRA e BBA conduzem essencialmente ` mesma economia mdia. 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 comentrios. 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 alocao: 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 frao do cdigo destes procedimentos reside em hot spots: sob BBA os ca o BBs que correspondem ao cdigo pouco acessado so substitu o a dos por outros BBs com maior lucro. Por outro lado, para o programa crc32 praticamente no ocorre a economia, independentemente de capacidade da SPM e de pol tica de

100%

80%

60%

40%

20% Diferena mdia

0%

-20%

-40%

Menor economia (PRA)

Maior economia (PRA)

108

Figura 11: Sensibilidade da economia de energia ao dimensionamento da SPM (usando abordagem PRA)

109

alocao (BBA ou PRA). A razo que, devido ao ajuste-fino das ca a e caches, a configurao REF exibe uma taxa de faltas extremamente ca baixa (mD = 0.05%, mI = 0.09%). Mesmo descartando-se o efeito devido aos elementos no-alocveis (de pilha e de heap), a taxa de faltas dos a a candidatos continua pequena (m = 0.09%). O efeito do pr-ajuste das caches aqui interessant e e ssimo: a otimizao induzida pelo ajuste-fino deixa pouqu ca ssimo espao c para uma economia adicional via alocao em SPM. Conforme ca apresentado na Seo 5.5, 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. O ajuste-fino diminuiu a taxa de faltas das caches, o que impossibilita maiores ganhos via alocao em SPM. Se as caches ca no tivessem sido pr-ajustadas, uma parcela dessa economia teria sido a e atribu indevidamente ` alocao em SPM. da a ca 6.4.3 Pol tica de alocao de maior eficincia energtica 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, utilizando as duas pol ticas de alocao suportadas, e dentro de todo o intervalo consideca rado ([CT /16, 2CT ]). O primeiro programa apresentado, sha, o unico e programa para o qual BBA resultou em maior economia do que PRA (cujo comportamento foi explicado anteriormente). Para os 5 programas seguintes, as duas pol ticas resultaram no mesmo valor de economia de energia. PRA resultou em menor consumo de energia para 70% de todos os programas, ou seja, os 14 programas apresentados a seguir. 6.4.4 Capacidade tima da SPM o Em 85% dos programas (17/20), a capacidade de SPM que levou ao menor consumo de energia reside no intervalo [CT /2, CT ], o qual pode ser usado como regra de ouro para o dimensionamento da SPM em CBAs, conforme mostrado pela Figura 13. Dos 3 programas restantes, em 2 destes (susan (smoothing) e gsm (toast)) a capacidade que permitiu uma maior reduo do consumo de energia foi ca de 2CT , e no outro programa (adpcm (enc)) foi de CT /4. Alguns poucos programas obtiveram maior reduo de consumo ca

Maior economia de energia (normalizada)

100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% BBA

PRA

Figura 12: Maior economia de energia, utilizando BBA e PRA, para cada programa
110

111

20 18 Quantidade de programas ntidade 16 14 12 10 8 6 4 2 0 [Ct/16, Ct/4] [Ct/4, Ct/2] [Ct/2, Ct] [Ct, 2Ct] Capacidade da SPM

Figura 13: Capacidades de SPM que propiciam maior economia de energia

de energia tambm para SPMs de capacidade pequena ([CT /16,CT /8]). e Entretanto, esta maior reduo de energia no foi exclusividade destas ca a capacidades, pois todos estes programas apresentaram consumo equivalente para SPMs de capacidades maiores. Como, alm disso, a economia e de energia destes programas no varia muito com o dimensionamento da a SPM, estas capacidades pequenas podem ser descartadas do espao de c projeto da SPM. Isto permite que maiores economias de energia sejam obtidas, em mdia, para sistemas que executem mais de um programa. e Alm disso, percebe-se que quando a capacidade da SPM passa e de CT /8 para CT /4 ocorre o maior aumento mdio de economia de e energia, em torno de 8%, para ambas as pol ticas de alocao. Entre ca estas capacidades ocorre aumento significativo de economia de energia para os programas sha e adpcm (decode). Da capacidade de SPM de CT /4 para o intervalo da capacidade tima, a economia de energia varia o pouco (2% para BBA e 5% para PRA). Esta capacidade pode ser usada como regra para sistemas embarcados com restrio de rea, levando ca a ainda assim a uma economia satisfatria. o

112

6.4.5 Correlao entre economia de energia e taxa de faltas ca para SPMs grandes Considere-se o comportamento de programas para SPMs grandes, digamos CSPM CT . Para esta capacidade de SPM, poss observar e vel uma correlao entre a economia de energia e a taxa de faltas global ca dos candidatos, apresentada na Figura 14. Novamente, a economia de energia foi medida usando a pol tica de alocao PRA. ca Para os 10 programas com menor m, a economia mdia de 23%, e e enquanto nos 10 programas com maior m, a mdia de 43%. A explicao e e ca para este comportamento que, quando a SPM e a cache equivalente e tem tamanhos comparveis, os lucros tornam-se marginais (CSPM a CT Ecache ESPM 0), exceto para elementos faltando frequentemente nas caches (para os quais mi EMP maior, conforme indicado pelas e Definies 3.5 e 3.6). co Em suma, para SPMs grandes, como ESPM Ecache , a alocao ca em SPM dominada por elementos frequentemente acessados na MP, e de modo que uma maior taxa de faltas permite maior economia. 6.4.6 Ocupao das SPMs timas ca o Dentro do intervalo contendo a maioria das capacidades timas de o SPM para cada programa ([CT /2,CT ]), PRA utiliza as capacidades quase ao mximo, enquanto BBA resulta em SPMs menos povoadas: a em mdia, 96% da SPM ocupada sob PRA e 85% sob BBA. e e A chave para este fenmeno a localidade. Quanto menor a o e taxa de faltas, menor a utilizao da SPM sob BBA, porque o overhead ca de um candidato (i ) pode ser visto como um limiar de lucro (pi > 0 ai (Ei ESPM ) > i na Definio 3.6. Sob BBA e SPMs grandes, ca este limiar s pode ser atingido por alguns BBs com alta taxa de o faltas, ao contrrio de PRA, cujo limiar nulo (i = 0) frequentemente a permite alocao completa (apesar do lucro marginal de muitos dos ca procedimentos alocados). 6.4.7 Determinao de um escopo para utilizao de BBA ca ca Tal subpovoamento em SPMs grandes indica que BBA pode valer a pena em arquiteturas com SPMs pequenas, especialmente para programas com taxa de faltas relativamente alta. Esta

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: Correlao entre economia de energia e taxa de faltas global dos elementos candidatos, para SPMs ca grandes (CSPM CT )

Taxa de faltas global dos candidatos

20%

113

114

evidncia pode ser reforada a partir de outra perspectiva, como segue. e c Dentro do intervalo [CT /16, 2CT ], BBA resulta na melhor economia de energia somente para um programa. Contudo, quando CSPM limitada para [CT /16,CT /4], BBA consegue melhor economia para e 3 programas (sha, susan (smoothing), gsm (toast)). Alm disso, do e primeiro para o segundo intervalo, a percentagem de casos com energia m nima por configurao cresce de 20% para 28%. ca 6.4.8 Comparao com trabalhos correlatos ca Estabelecer uma comparao direta com outros trabalhos exige ca uma configurao experimental equivalente, o que raramente vivel em ca e a trabalhos que envolvem muitas variveis como: conjunto de instrues a co (ISA) do processador, tipo de MP (on-chip ou off-chip), implementao ca para sistemas embarcados da biblioteca libc utilizada, uso ou no de a emulao de ponto-flutuante, etc. ca Apesar destas diferenas, foram tomadas algumas medidas para c amenizar o problema de uma comparao direta, como a utilizao de ca ca uma MP tambm utilizada nos trabalhos correlatos (como descrito na e Seo 6.1). Outras destas variveis no puderam ser equiparadas devido ca a a ao pouco detalhamento na descrio da configurao experimental da ca ca grande maioria dos trabalhos correlatos. Para tais variveis, buscou-se a uma configurao usual e realista, sempre que poss ca vel. Por exemplo, como implementao da libc para sistemas embarcados, escolheu-se o ca pacote newlib (conforme descrito na Seo 6.1), por este ser amplamente ca difundido. Contudo, algumas destas diferenas no puderam ser amenizadas c a pela configurao experimental. A infraestrutura experimental utilizada ca no permite que se estime a energia total consumida pelo sistema, pois a ela no disponibiliza um modelo com preciso de ciclos (cycle-accurate) a a do processador. Logo, a infraestrutura experimental permite que seja mensurado apenas o consumo energtico do subsistema de memria. e o Para contornar esta limitao e permitir que os resultados de ca energia do subsistema de memria (EMem ) deste trabalho sejam compao rados aos resultados de energia total do sistema (ETotal ) apresentados na literatura, considerou-se um fator de proporcionalidade k dado por: k= EMem ETotal (6.3)

115

A anlise de diversos trabalhos correlatos (ANGIOLINI et al., a 2004; CHO et al., 2007; EGGER; LEE; SHIN, 2008; EGGER et al., 2010) permitiu estimar 0, 98 k 1, 01, conforme apresentado em mais detalhes no Apndice B. Ou seja, a alocaao em SPM induz economia e c semelhante no consumo de energia do subsistema de memria e do o processador, o que permite a comparao direta entre EMem e ETotal sem ca preju zos quanto `s concluses da derivadas. a o Assim sendo, estabeleceu-se uma comparao com tcnicas tamca e bm propostas para CBAs e que tambm operam em arquivos binrios. e e a A economia mdia de memria obtida por este trabalho varia entre e o 15% a 33% para 6 capacidades distintas de SPM. Estes resultados so a melhores do que a economia total relatada pelas tcnicas OVB de Cho e et al. (2007), Egger, Lee e Shin (2008) e Egger et al. (2010), que so de a 8%, 14% e 24%, respectivamente. Deve-se ressaltar que, ao contrrio dos trabalhos correlatos, os a resultados de economia de memria relatados por este trabalho so o a medidos em um subsistema de memria cujas caches foram ajustadas o previamente ` alocao em SPM. E, conforme j foi mostrado, o pra ca a e ajuste das caches diminui o impacto da alocao em SPM. ca Uma comparao com tcnicas OVB para CBAs, mas que operam ca e em cdigo-fonte, revela que a economia de memria mdia deste trabalho o o e to boa quanto a economia destas tcnicas. Steinke et al. (2002a), por e a e exemplo, relatam uma economia total de 30%. Finalmente, os resultados deste trabalho, quando comparados com as tcnicas OVB propostas para arquiteturas sem cache (UNAs) de e Verma, Wehmeyer e Marwedel (2004b) e Udayakumaran, Dominguez e Barua (2006) mostram-se inferiores. Isto explicado porque economias e estimadas para UNAs tornam-se superestimativas para CBAs devido ` a interferncia das caches. e

116

117

7 CONCLUSOES E PERSPECTIVAS Este cap tulo apresenta concluses globais sobre a reavaliao o ca experimental das tcnicas NOB, realizada por esta dissertao. Tais e ca concluses so vlidas apenas para arquiteturas com SPM baseadas em o a a cache (CBAs), no podendo ser aplicadas para arquiteturas sem caches a (UNAs) antes de maiores estudos. Tambm faz consideraes sobre o e co dimensionamento da SPM (para as 6 capacidades de SPM consideradas) e a pol tica de alocao (procedimentos ou blocos bsicos), de acordo ca a com os resultados obtidos. So, ainda, apresentadas concluses sobre o a o ajuste-fino das memrias cache e o impacto de sua utilizao como etapa o ca anterior ` alocao em SPM. Todas estas concluses so detalhadas nas a ca o a Sees 7.1 a 7.6. O cap co tulo encerra-se com perspectivas para trabalhos futuros, apresentadas na Seo 7.7. ca 7.1 EVIDENCIA EXPERIMENTAL SOLIDA O grande nmero de casos avaliados permite derivar concluses a u o partir de evidncias experimentais slidas. O conjunto de 20 programas e o de benchmark utilizados para experimentao, bem como dos 240 casos ca avaliados, constituem nmero bem superior ` maioria dos relatados u a pelos demais trabalhos de alocao em SPM encontrados na literatura. ca Dentre todos os trabalhos reportados na literatura at o momento, e apenas o trabalho de Falk e Kleinsorge (2009) apresenta resultados para um maior nmero de programas. u 7.2 IMPORTANCIA DO AJUSTE-FINO A economia marginal obtida por alguns programas mostra que a SPM incua em alguns casos espec e o ficos, e que to somente uma cache a bem ajustada seria suficiente para prover uma economia de energia bastante satisfatria. Tal fato, por si, comprova a necessidade do ajusteo fino das caches no processo de melhoria da eficincia energtica de um e e sistema embarcado. Outro indicativo desta necessidade a considervel variao nos e a ca parmetros das configuraes de caches pr-ajustadas pelo algoritmo a co e de ajuste-fino. O resultado das configuraes pr-ajustadas atesta a co e afirmao feita por Zhang e Vahid (2003) de que os parmetros mais ca a

118

importantes so o tamanho da cache, seguido pelo tamanho de bloco e, a finalmente, pela associatividade. A capacidade de ambas as caches (I-cache e D-cache) variou bastante, englobando todos os valores de tamanho poss veis no espao c de projeto, sem o predom nio de nenhum valor. O tamanho de bloco variou pouco: 16 dos 20 programas (tanto para instrues como para dados) tiveram suas caches ajustadas para um co tamanho de bloco de 8 bytes. Os programas restantes foram ajustados para 16 bytes e nenhum dos programas para 32 bytes. A associatividade das caches teve variao um pouco maior do ca que o tamanho de bloco. Houve predom nio das configuraes com co mapeamento direto, embora algumas caches tenham sido ajustadas como associativas de 2 duas e, algumas poucas, de 4 vias. 7.3 IMPORTANCIA DA CORRELACAO ENTRE TAMANHO DA CACHE PRE-AJUSTADA EQUIVALENTE E TAMANHO DA SPM Teve fundamental importncia a fixao das capacidades de SPM a ca como mltiplos da capacidade da cache equivalente unificada (sobre u as caches pr-ajustadas de dados e instrues). Isto permitiu que as e co concluses pudessem ser feitas sobre capacidades da SPM diretamente o relacionadas com uma propriedade dos programas-alvo, a taxa de faltas. Isto evita que uma seleo particular de programas ou de tamanhos ca de SPM possa influenciar a generalidade da anlise dos resultados a experimentais. 7.4 DIMENSIONAMENTO DA SPM 7.4.1 Impacto do dimensionamento Neste trabalho, a capacidade da SPM (CSPM ) foi dimensionada como um mltiplo da capacidade da cache pr-ajustada equivalente u e (CT ). Ao todo, seis tamanhos distintos de SPM foram considerados: 1 1 1 1 16 CT , 8 CT , 4 CT , 2 CT , CT e 2CT O clculo da economia mdia de energia para cada um destes 6 a e tamanhos de SPM (considerando os programas do benchmark MiBench) mostrou que a diferena entre a maior e a menor economia mdia de c e energia foi considervel. No caso de BBA, a maior economia mdia foi a e

119

de 30% (CSPM = CT ), ao passo que a menor foi de 17% (CSPM = CT /16). Para PRA, a maior economia foi de 33% (CSPM = CT ), ao passo que a menor foi de 15% (CSPM = CT /16). Ou seja, a economia praticamente dobrou com o aumento da capacidade da SPM1 . Para alguns programas, o dimensionamento proporcionou uma melhora ainda mais significativa na reduo de consumo de energia. ca Sob pol tica PRA, destacam-se os programas stringsearch, sha, susan (smoothing) e, notadamente, o programa adpcm (dec), para o qual houve reduo de energia de apenas 2% no pior caso, enquanto no melhor caso ca a reduo foi de 96%. ca 7.4.2 Diretrizes para dimensionamento O pr-ajuste das memrias cache permitiu a identificao do e o ca intervalo de capacidades de SPM que levam `s maiores redues de a co energia: [CT /2,CT ]. Neste intervalo obteve-se a maior reduo de conca sumo de energia para 17 dos 20 programas-alvo. Assim, ele pode ser utilizado como diretriz para o dimensionamento de SPMs visando a maior reduo de energia poss ca vel. Conforme observado nos resultados, nos casos em que a capacidade tima de SPM no se encontra neste o a intervalo, ela certamente encontrar-se- prxima dele, e portanto, ele a o pode ser utilizado como ponto de partida para explorao de reduo ca ca de consumo de energia pelo dimensionamento da SPM. Quando o sistema embarcado tiver restrio severa de rea, uma ca a SPM com capacidade de CT /4 pode ser adotada como diretriz, para permitir um compromisso satisfatrio entre rea no circuito integrado e o a economia de energia. Alm disso, os resultados observados sustentam que, para uma e determinao mais rpida da capacidade tima da SPM, o intervalo ca a o [CT /16,CT /8] pode ser descartado do espao de projeto de CBAs, sem c preju ` eficincia energtica do sistema. zo a e e

1 A priori esta concluso pode parecer paradoxal quando confrontada com a a literatura. Contudo, o paradoxo no se configura, visto que a maioria dos trabalhos a correlatos tratam de arquiteturas-alvo somente com SPM (UNAs), onde SPMs maiores levam a um maior consumo de energia. Para CBAs, contudo, as SPMs conseguem acomodar os elementos de baixa localidade que a cache no conseguiria a acomodar.

120

7.4.3 SPMs grandes e as taxas de faltas A correlao entre economia de energia e taxa de faltas foi inca vestigada para SPMs grandes (i.e., CSPM CT ). Averiguou-se que a economia de energia proporcional ` taxa de faltas, i.e. os programas e a com maior taxa de faltas apresentaram maior economia de energia. Este comportamento esperado pois, desta forma, a alocao de candidatos e ca com grande taxa de faltas evitar vrios acessos ` MP, que consomem a a a grande quantidade de energia. 7.5 POL ITICA DE ALOCACAO (GRANULARIDADE DE CODIGO) 7.5.1 Alocao de procedimentos (PRA) ca Os resultados comprovam que a pol tica de alocao de maior ca eficincia energtica PRA, embora, em mdia, os resultados de econoe e e e mia mdia sejam apenas levemente superiores aos de BBA. De modo e geral, o limiar de lucro (overhead ) nulo de PRA, ao mesmo tempo que leva a uma ocupao muito maior do espao em SPM, permite a ca c alocao de vrios elementos com lucros muit ca a ssimo pequenos. Estes lucros, quando somados, conduzem a uma maior economia de energia, ainda que marginal. Surpreendeu a eficincia de PRA sobre SPMs pequenas (digae mos, [CT /16,CT /4]). Para estes casos, a intuio diria que BBA deca veria suplantar PRA. Entretanto, encontraram-se evidncias de que e isto geralmente no ocorre: em mdia, as duas pol a e ticas mostraram-se equivalentes. Em termos de eficincia energtica, PRA mostrou-se superior a e e BBA para uma determinada capacidade de SPM, permitindo maior economia em 61% dos casos e empatando em 19% deles. Adicionalmente, considerando-se cada programa com SPM no intervalo [CT /16, 2CT ], PRA obteve maior reduao de energia que BBA para 70% dos programas. c 7.5.2 Alocao de blocos bsicos (BBA) ca a A pol tica BBA apresentou, em mdia, resultados equivalentes e a PRA. Analisando-se os resultados de energia para o intervalo de SPM [CT /16, 2CT ], percebe-se que BBA apresentou maior economia de energia somente para o programa sha. Por outro lado, restringindo o

121

intervalo para [CT /16,CT /4] (o que equivale a SPMs pequenas), observase que BBA teve uma eficincia energtica levemente superior a PRA, e e apresentando maior economia mdia para CSPM = CT /16. Em especial, e neste intervalo BBA apresenta maior economia para 3 programas sha, susan (smoothing) e gsm (toast). Os resultados permitiram identificar o escopo de maior eficine cia energtica para BBA como sendo a unio de SPMs pequenas com e a programas-alvo que apresentam o seguinte comportamento: elementos candidatos frequentemente acessados que exibem taxas de faltas relativamente altas. Neste caso, o lucro da alocao destes elementos ulca trapassa o limiar de lucro da pol tica BBA (apresentado na Seo 6.4.6), ca resultando em maior economia. Alm disso, BBA possui uma vantagem sobre PRA, mesmo para e SPMs grandes. O limiar de lucro de BBA impede que candidatos de lucro muito pequeno sejam alocados, resultando em uma menor ocupao da SPM. ca 7.6 REAVALIACAO EXPERIMENTAL DAS TECNICAS NOB A PAR TIR DE ARQUIVOS BINARIOS A economia obtida sob uma abordagem NOB que considera bibliotecas foi, em mdia, de 15% a 33% para SPMs com capacidade entre e [CT /16, 2CT ]. Esta economia melhor ou to boa quanto aquelas repore a tadas por abordagens OVB que manipulam binrios. Sua simplicidade, a combinada com sua independncia de hardware dedicado, fazem da e abordagem NOB uma escolha pragmtica para a alocao de SPMs a a ca partir de binrios, para CBAs. a Como as caches foram dimensionadas previamente ` alocao a ca em SPM, pode-se afirmar que as economias obtidas resultam unica e exclusivamente da alocao em SPM. ca Diante de tudo isso, pode-se verificar que a abordagem NOB no est ultrapassada. Os resultados obtidos aps o ajuste-fino das a a o caches reabilitam a abordagem NOB diante das OVBs, mostrando que possuem uma aplicao efetiva para viabilizar um maior espao ca c de otimizao (incluindo elementos de bibliotecas) para a reduo de ca ca energia em sistemas que no fazem uso de hardware dedicado para a gerenciamento de SPM.

122

7.7 PERSPECTIVAS Na anlise da literatura sobre alocao em SPMs, foram identia ca ficadas duas tcnicas que fazem extrao de procedimentos (function e ca outlining) a partir de laos (UDAYAKUMARAN; DOMINGUEZ; BAc RUA, 2006) (EGGER et al., 2010). 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), assim concedendo a PRA as vantagens de BBA sobre SPMs pequenas. Como um dos trabalhos futuros, vislumbra-se a avaliao ca do uso de extrao de procedimentos a partir de laos no contexto da ca c tcnica NOB desta dissertao. e ca Para aumentar a eficcia da tcnica, outra possibilidade seria a e incluir o suporte a dados dinmicos, conforme proposto por Mena dona (2009, 2010) (ainda no implementado). Para que possa ser manc a tida a caracter stica da tcnica de no-uso de hardware dedicado, estes e a dados devero ser tratados em n de cdigo-fonte. Deste modo, teriaa vel o se uma tcnica de tempo misto: em tempo de compilao (arquivos-fonte) e ca seriam manipulados os dados dinmicos, e no tempo de ps-compilao a o ca (arquivos-objeto relocveis), continuariam sendo manipulados cdigo e a o dados estticos. a Esta tcnica mista parece ainda mais promissora quando combie nada com a alocao de cdigo sob BBA. Para a alocao de cdigo, ca o ca o BBA geralmente parece no valer a pena frente a PRA. Entretanto, a quando dados dinmicos so inclu a a dos no espao de otimizao, o menor c ca povoamento da SPM (resultante do limiar de alocao de BBA) muito ca e conveniente, permitindo que mais dados dinmicos sejam alocados em a SPM, o que deve proporcionar uma maior economia de energia.

123

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

124

DALLY, W. et al. Efficient Embedded Computing. IEEE Computer, v. 41, n. 7, p. 2732, 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. 236241. 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. 521540, 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. 223233. 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. 321330. 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. 138, 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. 10471062, 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. 732737. 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. 755760.

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. 314. HILL, M. D. et al. Wisconsin architectural research tool set. SIGARCH Comput. Archit. News, ACM, New York, NY, USA, v. 21, p. 810, 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. 16121630, 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. 796801. 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. 612617. 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. 370377. 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. 1318. JURAN, J. The non-pareto principle; mea culpa. Quality Progress, v. 8, n. 5, p. 89, 1975. KANDEMIR, M. et al. Dynamic management of scratch-pad memory space. Design Automation Conference, 2001. Proceedings, p. 690695, 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. 612617. 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. 78117, 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. 3140. MENDONCA, A. K. I. Alocao de dados e de cdigo em memrias ca o o embarcadas: uma abordagem ps-compilao. Dissertao (Mestrado o ca ca em Cincia da Computao) Programa de Ps-Graduao em e ca o ca Cincia da Computao, Universidade Federal de Santa Catarina, e ca Florianpolis, 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. 157162. 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. 161171, 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. 16411647.

127

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

128

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

129

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

130

APENDICE A -- O mtodo SPCE e

133

O mtodo SPCE realiza o ajuste-fino, a partir dos endereos do e c programa, para um conjunto de caches e em uma unica passada. As entradas do mtodo so um trace T , um conjunto de parmetros que e a a delimitam o espao de projeto de caches, o deslocamento (offset) de c palavra w da arquitetura do processador, e algumas estruturas de dados. O trace T contm a sequncia de endereos acessados no subsise e c tema de memria para um programa qualquer, conforme a Definio 3.1. o ca O tipo de endereo (instrues, dados ou ambos) contido no trace dec co terminar qual a cache sendo ajustada (cache de instrues, de dados a co ou unificada). O espao de projeto (design space) de caches delimitado c e pelos parmetros smin , smax , bmin , bmax , amax , que representam, respectivaa mente, o nmero m u nimo e mximo de conjuntos que uma cache pode a possuir, o tamanho m nimo e mximo de um bloco de cache (em bytes) a e o maior grau de associatividade permitido. O menor grau de associatividade considerado pelo mtodo sempre amin = 1, o que configura e e uma cache com mapeamento direto. Alm destas entradas, o mtodo utiliza duas estruturas de dados: e e uma estrutura de matriz tridimensional, denominada Tabela de Conflitos, e uma pilha de endereos, apresentados pelas definies que seguem. c co Definio A.1. Pilha de endereos. Uma pilha de endereos P ca c c uma tupla (p1 , p2 , ..., pi , ... pn ) que armazena uma sequncia de e e endereos de bloco processados (derivados dos endereos de T ) durante c c a execuo do mtodo SPCE, onde pi denota o i-simo endereo 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 mtodo SPCE so tais que cada e a endereo armazenado unico. c e Uma pilha P uma extenso da pilha LIFO (last in, first out) e a convencional. A operao de insero realizada da maneira tradicional, ca ca e i.e. um elemento novo empilhado (no topo da pilha). Todavia, a e operao de remoo permite que um elemento seja retirado de qualquer ca ca posio da pilha, ao invs de somente do topo. ca e Definio A.2. Configurao de cache. Uma configurao 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 Definio A.3. Tabela de Conflitos. Uma Tabela de Conflitos K ca uma matriz tridimensional Kamax smax bmax , onde amax matrizes bidie mensionais so formadas de smax linhas e bmax colunas. Cada clula a e da tabela, denotada por Kai ,si ,bi , est relacionada a uma configurao a ca

134

(ai , si , bi ), de modo a proporcionar o cmputo do nmero de acertos o u desta configurao. ca O funcionamento do mtodo SPCE consiste em descobrir, para e cada configurao de cache (ai , bi , si ) do espao de projeto, quantos ca c acertos ocorreram para a sequncia de endereos acessados informada e c por T . Isto consiste, em ultima instncia, em determinar se cada acesso a a um dado endereo i induz um acerto ou uma falta na cache. c Para tanto, quando processa i , o mtodo procura calcular o ne u mero de conflitos () no conjunto da cache para o qual i est mapeado, a ocorridos desde o ultimo acesso a este mesmo endereo, digamos h , c onde h = i | h N, 1 < h < i. Obtido , calcula-se o menor grau de associatividade da cache necessrio para que o acesso ao endereo i resulte em acerto, denotado a c por a . Se, desde o ultimo acesso ` i , no houve nenhum conflito a a em sua entrada na cache ( = 0), ento 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 no estar mais presente se a cache em questo operar sob a a a mapeamento direto. Contudo, caso a cache seja associativa de pelo menos duas vias (a = 2 ai 2), o endereo 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 anloga, para a dois conflitos ( = 1), uma cache associativa de quatro ou mais vias (a = 4 ai 4) seria necessria 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 clculo de e a feito para todas as configuraes de caches a e co formadas a partir de variaes no tamanho de bloco b e no nmero co u de conjuntos s. Aps a determinao da associatividade a para uma o ca configurao com parmetros bi e si , sabe-se que toda cache (ai , bi , si ) | ca a ai a resultar em acerto. a Finalmente, calcula-se o nmero de faltas como sendo o compleu mento do nmero de acertos com relao ao total de endereos acessados, u ca c e, a partir do nmero de faltas, pode ser estimado o consumo de energia u de cada configurao (ai , bi , si ). ca A.1 PROCESSAMENTO DOS ENDERECOS DO TRACE T O Algoritmo 1 apresenta o procedimento principal do mtodo e SPCE. O mtodo funciona processando cada endereo 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 faa c 2: end shift right(i , w) 3: para bi = bmax at bmin faa e c 4: endbloco shift right(end, log2 (bi )) 5: se endbloco P ento a 6: para si = smin at smax , onde si {n2 | n N, smin n smax } e faa c 7: CONTA CONFLITOS(P, si , endbloco ) 8: se amax ento a 9: a mltiplo 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: seno { 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 faa e c 4: se pi = endbloco ento a 5: retorne 6: fim se 7: c pi mod si 8: se c = c ento a 9: +1 10: fim se 11: fim para 12: retorne

136

da seguinte maneira. Primeiramente, elimina-se o deslocamento (offset) de palavra w do endereo i : i deslocado bit-a-bit w vezes para a c direita armazenado em end (linha 2). Ento, para cada tamanho de e a bloco bi (linha 3), realizado o o seguinte processamento. e Elimina-se o deslocamento de bloco de cache do endereo (linha 4), c dando origem ao endereo de bloco (endbloco ). c Se o endereo de bloco no est na pilha P de endereos j c a a c a processados, ele simplesmente empilhado em P (linhas 14 e 15) e e parte-se para o prximo endereo (i+1 ). o c Entretanto, se o endereo de bloco encontra-se na pilha P (linha 5), c ento, para cada tamanho de conjunto si , calculada a quantidade de a e conflitos () ocorridos desde o ultimo acesso ao endereo i , na respectiva c entrada de i na cache (linhas 6 e 7). O Algoritmo 2 apresenta o clculo a do nmero de conflitos de maneira detalhada. u Para obter o menor grau de associatividade que garante um acerto na cache (a ), arredondado para a prxima potncia de dois, e a e o e clula correspondente na Tabela de Conflitos incrementada de um e e (linhas 9 e 10). Contudo, pode ser que o maior grau de associatividade (amax ) considerado no espao de projeto no 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). Neste caso, nenhuma clula da Tabela e e de Conflitos incrementada. e Finalmente, i movido de sua atual posio em P para o topo e ca (linha 13), e parte-se para o prximo endereo, i+1 . o c A.2 CONTABILIZACAO DO NUMERO DE CONFLITOS EM UM CONJUNTO O Algoritmo 2 detalha o procedimento de contagem do nmero de u conflitos em um conjunto, para um endereo de bloco endbloco (derivado c de i ), ocorridos deste o ultimo acesso a endbloco . Alm do endereo de e c bloco, este procedimento recebe como entradas a pilha P e o nmero de u conjuntos da cache (si ). A sa do algoritmo o nmero de conflitos da e u ocorridos, denotado por . Inicialmente, o valor de retorno inicializado. Determina-se o e conjunto da cache para o qual i est mapeado, denotado por c, onde a c N | 1 c si (linha 2), e onde a mod b representa o resto da diviso a inteira de a por b. Ento, cada endereo pi contido na pilha P processado (linha 3), a c e

137

partindo do topo (pn ) para a base (p1 ), como segue: 1.Caso pi e endbloco (e, portanto, i ) correspondam a um mesmo bloco de cache, este algoritmo chegou ao fim, e o nmero de u conflitos retornado (linhas 4 e 5). e a 2.Caso contrrio, determina-se o conjunto c da cache para o qual o endereo pi est mapeado (linha 7). c a 3.Ento, caso este conjunto seja o mesmo para pi e i , um conflito a contabilizado (linhas 8 e 9). e Finalmente, o nmero de conflitos retornado pelo algoritmo u e (linha 12). A.3 CALCULO DO NUMERO DE ACERTOS E ESTIMATIVA DE ENERGIA Aps a execuo do Algoritmo 1 para cada endereo i de T , a o ca c quantidade de acertos e de faltas de cada configurao pode ser calculada ca a partir da Tabela de Conflitos K e do nmero de endereos processados u c (dado pela cardinalidade de T ), conforme mostram as Equaes A.1 co e A.2:
ai

acertosai ,si ,bi =

j=amin =1

K j,si ,bi

(A.1) (A.2)

f altasai ,si ,bi = |T | acertosai ,si ,bi

A estimativa de energia feita a partir do nmero de acertos e fale u tas, fazendo-se uso de um modelo f sico de memrias para estimar o cono sumo de energia por acesso para os diversos componentes do subsistema de memria. Neste trabalho, utilizamos uma adaptao do esquema apreo ca sentado por Zhang, Vahid e Lysecky (2004), que consistiu na totalizao ca do consumo de energia decorrente dos acertos (acertosai ,si ,bi Ecache ) com o consumo decorrente das faltas ( f altasai ,si ,bi (Ecache + EMP )). Como modelo f sico de memrias, foi utilizado o CACTI (THOZIYOOR et al., o 2008).

138

APENDICE B -- Correlao entre economia de energia total ca e de sistema

141

A correlao entre a economia de energia total (ETotal ) e a energia ca do subsistema de memria (EMem ) pode ser capturada por um fator de o proporcionalidade k que, conforme a Equao 6.3, dado por: ca e k= EMem ETotal

A Tabela 11 apresenta os valores de k calculados, neste trabalho, a partir dos resultados apresentados por trabalhos anteriores da literatura de SPM. Para cada trabalho correlato (primeira coluna), so a apresentados o processador (segunda coluna), a localizaao da memria c o principal quanto ao circuito integrado do processador (terceira coluna), e, finalmente, o valor de k (ltima coluna). Frente aos valores apreu sentados, cabe relembrar que este trabalho utiliza um processador da arquitetura MIPS e uma memria principal off-chip. o Tabela 11: Correlao entre economia de energia total e de sistema ca Memria o Referncia Processador Principal e k Angiolini et al. Cho et al. Egger Egger et al. (2004) (2007) (2008) (2010) ARMv7 ARM9E-S ARM926EJ-S ARM1136JF-S on-chip off-chip off-chip off-chip 0,980 0,997 0,966 1,010 0,988

Mdia e

142