Gerenciamento Explícito de Memória Auxiliar a partir de Arquivos-objeto para Melhoria da Eficiência Energética de Sistemas Embarcados

Daniel Pereira Volpato
Orientador: José Luís Almada Güntzel, Dr. Membros da Banca: Fernando Gehm Moraes, Dr. Cesar Albenes Zeferino, Dr. Luiz Cláudio Villar dos Santos, Dr. (co-orientador)

Eficiência energética de um sistema embarcado
• Subsistema de memória é o grande responsável pelo consumo de energia

Consumo de energia para um ARM monoprocessado (com I-cache, Dcache e SPM)

Processador 35%

Subsistema de Memória 65%

Fonte: Verma e Marwedel (2007), Advanced Memory Optimization Techniques for Low-Power Embedded Processors
2

Eficiência energética de um sistema embarcado
CPU + subsistema de memória
Energia por acesso: 0,012 nJ
0x00

CPU

Cache

Energia por acesso: 3,37 nJ

Memória Principal (MP)

Cache • Armazena cópias de instruções e dados mais recentemente acessados

0x0fffff

3

Eficiência energética de um sistema embarcado CPU + subsistema de memória 0x00 CPU Memória Principal (MP) 0x0fffff Cache • Armazena cópias de instruções e dados mais recentemente acessados • Gerenciamento ímplícito via hardware dedicado – Transparência 4 .

Eficiência energética de um sistema embarcado CPU + subsistema de memória Energia por acesso: 0.37 nJ Memória Principal (MP) 0x0fffff Cache • Armazena cópias de instruções e dados mais recentemente acessados • Gerenciamento ímplícito via hardware dedicado – Transparência Como melhorar a eficiência energética deste sistema? 5 .012 nJ 0x00 CPU Cache Energia por acesso: 3.

embarcado.Gerenciamento implícito vs. DALLY (2008)) + Sem modificação no SW 6 . explícito Cache tag índice palavra Arranjo de tag Arranjo de dados sense sense MUX = acerto palavra .HW dedicado (70% energia de proc.

Gerenciamento implícito vs. explícito
Cache
tag índice palavra

Memória de rascunho (SPM)
SPM
Arranjo de dados

Arranjo de tag

Arranjo de dados

endereço ϵ SPM

sense

sense
MUX

Decodificador de endereços

sense

= acerto

palavra

endereço ϵ MP

palavra

MP

- HW dedicado (70% energia de
proc. embarcado, DALLY (2008))

+ Sem modificação no SW

+ Não exige HW dedicado - Exige modificação no SW
7

SPM vs. Caches
Energia por acesso (32 nm)
6

5 Energia por acesso (pJ)

Cache 8-way Cache 4-way Cache 2-way Cache DM

4

3

SPM

2

1

0 1024 2048 Capacidade (bytes) Resultados gerados com CACTI 5.3 4096 8192

8

Exemplos de sistemas com SPMs
• Processadores embarcados
– e.g. ARMs, Motorola Mcore, TI TMS370C

• GPUs
– e.g. Nvidia 8800 (16KB SPM)

• Plataformas para multimídia
– e.g. DaVinci TMS320DM646x SOC

• Network processors
– e.g. Intel IXP

• Video-games
– e.g. PlayStation 2 (Emotion Engine), PlayStation 3 (Cell Broadband Engine )

• Etc.

9

005 nJ 0x1003ff Memória de rascunho (SPM) 10 .37 nJ Memória Principal (MP) CPU 0x0fffff 0x100000 • SRAM. on-chip • Espaço de endereçamento disjunto da MP • Eficiência de área e potência Energia por acesso: 0.SPM CPU + subsistema de memória Energia por acesso: 0. pequena.012 nJ 0x00 Cache Energia por acesso: 3.

012 nJ 0x00 Cache Energia por acesso: 3.SPM CPU + subsistema de memória Energia por acesso: 0.37 nJ Memória Principal (MP) • Gerenciamento geralmente via instrumentação do código CPU 0x0fffff 0x100000 Energia por acesso: 0.005 nJ 0x1003ff Memória de rascunho (SPM) Como realizar a alocação em SPM para minimizar o consumo de energia? 11 .

Sumário • Técnicas de Alocação em SPM • Trabalhos Correlatos • Contribuições científicas e técnicas • Ajuste-fino das memórias cache • Extensão para suporte à alocação de blocos básicos • Resultados experimentais • Conclusões e Perspectivas 12 .

Técnicas de Alocação em SPM Carga de um programa para a memória • Segmentos são copiados para o espaço de endereçamento da MP Subsistema de memória Programa Segmento de texto 0x00 MP Segmento de dados estáticos 0x0fffff 13 .

Técnicas de Alocação em SPM Carga de um programa para a memória • Segmentos são copiados para o espaço de endereçamento da MP • Após o segmento de dados estáticos. iniciam os segmentos de tamanho variável Subsistema de memória Programa Segmento de texto 0x00 MP Segmento de texto Segmento de dados estáticos Segmento de dados dinâmicos Segmento de dados estáticos 0x0fffff Segmento de pilha 14 .

Técnicas de Alocação em SPM Alocação em SPM 1. Seleção dos elementos de programas Exemplo usando abordagem NOB (non-overlay based) Binário Elementos Selecionados 15 .

Seleção dos elementos de programas 2.Técnicas de Alocação em SPM Alocação em SPM 1. Alocação no espaço de SPM Exemplo usando abordagem NOB (non-overlay based) Binário Elementos Selecionados Binário Segmento de SPM 16 .

Ajuste (patching) em endereços que apontavam para os alocados Exemplo usando abordagem NOB (non-overlay based) Binário Elementos Selecionados Segmento de SPM Segmento de SPM 17 Binário Patcher Binário . Seleção dos elementos de programas 2.Técnicas de Alocação em SPM Alocação em SPM 1. Alocação no espaço de SPM 3.

Técnicas de Alocação em SPM Alocação em SPM Exemplo usando abordagem NOB (non-overlay based) Subsistema de memória Programa 0x00 MP Segmento de texto Segmento de dados estáticos Segmento de dados dinâmicos Segmento de SPM Carga de um programa consciente de SPM para a memória • Elementos selecionados são copiados para o espaço da SPM • Os demais elementos para a MP 0x0fffff 0x100000 Segmento de pilha Segmento de SPM 0x1003ff SPM 18 .

Técnicas de Alocação em SPM Abordagem NOB vs. OVB MP MP MP MP Non-overlaybased (NOB) SPM SPM SPM SPM t=0 (carga) t=1 t=50 t=100 (fim) 19 .

Técnicas de Alocação em SPM Abordagem NOB vs. OVB MP MP MP MP Non-overlaybased (NOB) SPM SPM SPM SPM t=0 (carga) MP t=1 MP t=50 MP t=100 (fim) MP Overlaybased (OVB) SPM SPM SPM SPM 20 .

Técnicas de Alocação em SPM Elementos Granularidade de dados nãoescalares Plena Blocos Tipo Código Dados globais escalares Dados globais não-escalares Pilha Heap Origem De aplicativo De biblioteca Granularidade de código Procedimentos (PR) Blocos básicos (BB) Traces Menor que BB Mista 21 .

Técnicas de Alocação em SPM Elementos Granularidade de dados nãoescalares Plena Blocos Tipo Código Dados globais escalares Dados globais não-escalares Pilha Heap Este trabalho Origem De aplicativo De biblioteca Granularidade de código Procedimentos (PR) Blocos básicos (BB) Traces Menor que BB Mista 22 .

Técnicas de Alocação em SPM Outras características Fase de Alocação Em Tempo de Compilação (CT) Em Tempo de Pós-compilação (PC) Arquivo de entrada Abordagem Arquivo fonte Non-overlay based (NOB) Arquivo binário (objeto relocável ou executável) Overlay-based (OVB) 23 .

Técnicas de Alocação em SPM Outras características Fase de Alocação Em Tempo de Compilação (CT) Em Tempo de Pós-compilação (PC) Este trabalho Arquivo de entrada Abordagem Arquivo fonte Non-overlay based (NOB) Arquivo binário (objeto relocável ou executável) Overlay-based (OVB) 24 .

CT PC PC PC CT CT CT ● ● ● ● ● ● ● ● ● PR e BB PR e BB ● ● Código Apl. Steinke (2002a) Angiolini (2004) Mendonça (2009) Este Trabalho Kandemir (2001) Steinke (2002b) Udayakumaran (2006) ● ● Janapsatya (2004) Janapsatya (2006) Cho (2007) Egger (2008) Egger (2010) OVB OVB OVB OVB OVB PC PC PC PC PC ● ● ● ● BB BB ● ● BB PR* ● ● 25 . Apl.Trabalhos Correlatos Técnica Abordagem NOB NOB NOB NOB OVB OVB OVB Dados Global Global nãoFase escalar escalar Apl. Bib. Bib. PR e BB BB (e menor) PR PR ou BB ● ● ● Bib.

PR e BB BB (e menor) PR PR ou BB ● ● ● Bib.Trabalhos Correlatos Técnica Abordagem NOB NOB NOB NOB OVB OVB OVB Dados Global Global nãoFase escalar escalar Apl. Bib. • OVB tem dominado Steinke (2002a) Angiolini (2004) Mendonça (2009) Este Trabalho Kandemir (2001) Steinke (2002b) Udayakumaran (2006) ● ● Janapsatya (2004) Janapsatya (2006) Cho (2007) Egger (2008) Egger (2010) OVB OVB OVB OVB OVB PC PC PC PC PC ● ● ● ● BB BB ● ● BB PR* ● ● 26 . Apl. CT PC PC PC CT CT CT ● ● ● ● ● ● ● ● ● PR e BB PR e BB ● ● Código Apl. Bib.

Steinke (2002a) Angiolini (2004) Mendonça (2009) Este Trabalho Kandemir (2001) Steinke (2002b) Udayakumaran (2006) ● ● • OVB têm dominado • CT (tempo de compilação) – Economia de energia limitada: ignora elementos de bibliotecas • Inclusão de bibliotecas – 14% a mais de economia de energia. em média (MENDONÇA. Apl. Bib. CT PC PC PC CT CT CT ● ● ● ● ● ● ● ● ● PR e BB PR e BB ● ● Código Apl. 2009) Janapsatya (2004) Janapsatya (2006) Cho (2007) Egger (2008) Egger (2010) OVB OVB OVB OVB OVB PC PC PC PC PC ● ● ● ● BB BB ● ● BB PR* ● ● 27 .Trabalhos Correlatos Técnica Abordagem NOB NOB NOB NOB OVB OVB OVB Dados Global Global nãoFase escalar escalar Apl. Bib. PR e BB BB (e menor) PR PR ou BB ● ● ● Bib.

Apl. Steinke (2002a) Angiolini (2004) Mendonça (2009) Este Trabalho Kandemir (2001) Steinke (2002b) Udayakumaran (2006) ● ● • OVB têm dominado • CT (tempo de compilação) – Economia limitada: não considera elementos de bibliotecas • Inclusão de bibliotecas – 14% a mais de economia de energia.Trabalhos Correlatos Técnica Abordagem NOB NOB NOB NOB OVB OVB OVB Dados Global Global nãoFase escalar escalar Apl. CT PC PC PC CT CT CT ● ● ● ● ● ● ● ● ● PR e BB PR e BB ● ● Código Apl. Bib. Bib. 2009) Janapsatya (2004) Janapsatya (2006) Cho (2007) Egger (2008) Egger (2010) OVB OVB OVB OVB OVB PC PC PC PC PC ● ● ● ● BB BB ● ● • Para considerar bibliotecas PC (pós-compilação) BB PR* ● ● 28 . em média (MENDONÇA. PR e BB BB (e menor) PR PR ou BB ● ● ● Bib.

PR e BB BB (e menor) PR PR ou BB ● ● ● Bib. Bib. CT PC PC PC CT CT CT ● ● ● ● ● ● ● ● ● PR e BB PR e BB ● ● Código Apl. Apl. Steinke (2002a) Angiolini (2004) Mendonça (2009) Este Trabalho Kandemir (2001) Steinke (2002b) Udayakumaran (2006) ● ● • OVBs em PC – Bibliotecas – Ou exigem HW dedicado – Ou não exigem HW mas só alocam código Janapsatya (2004) Janapsatya (2006) Cho (2007) Egger (2008) Egger (2010) OVB OVB OVB OVB OVB PC PC PC PC PC ● ● ● ● BB BB ● ● BB PR* ● ● 29 . Bib.Trabalhos Correlatos Técnica Abordagem NOB NOB NOB NOB OVB OVB OVB Dados Global Global nãoFase escalar escalar Apl.

Steinke (2002a) Angiolini (2004) Mendonça (2009) Este Trabalho Kandemir (2001) Steinke (2002b) Udayakumaran (2006) ● ● • NOBs em PC – Bibliotecas – Sem HW extra – Código + dados • OVBs em PC – Bibliotecas – Ou exigem HW dedicado – Ou não exigem HW mas só alocam código Janapsatya (2004) Janapsatya (2006) Cho (2007) Egger (2008) Egger (2010) OVB OVB OVB OVB OVB PC PC PC PC PC ● ● ● ● BB BB ● ● BB PR* ● ● Reavaliação experimental da abordagem NOB 30 .Trabalhos Correlatos Técnica Abordagem NOB NOB NOB NOB OVB OVB OVB Dados Global Global nãoFase escalar escalar Apl. CT PC PC PC CT CT CT ● ● ● ● ● ● ● ● ● PR e BB PR e BB ● ● Código Apl. Bib. Apl. PR e BB BB (e menor) PR PR ou BB ● ● ● Bib. Bib.

Contribuições científicas deste trabalho • Reavaliação experimental da abordagem non-overlay-based (NOB) – A partir do pré-ajuste de caches – NOB não está suplantada pela abordagem overlay-based (OVB) • Evidência experimental sólida Elementos de biblioteca + Sistema que não dispõe de HW especializado  Abordagem NOB 31 .

Contribuições técnicas deste trabalho • Ajuste-fino de caches – Implementação da técnica de Viana (2006) – Adaptação desta à infraestrutura experimental • Granularidade de blocos básicos (BBs) – Extensão da técnica de Mendonça (2009) – Como alternativa à granularidade de procedimentos 32 .

Arquitetura-alvo do Subsistema de Memória FCA CPU Cache MP UNA MP CPU SPM Cache CBA MP SPM 33 CPU .

Arquitetura-alvo do Subsistema de Memória FCA CPU Cache MP Técnica Steinke (2002a) Angiolini (2004) AbordaArquiteturaFase gem alvo NOB NOB CT PC UNA CBA Arquitetura de referência Mendonça (2009) NOB NOB OVB OVB OVB OVB OVB OVB OVB OVB PC PC CT CT CT PC PC PC PC PC CBA CBA CBA UNA UNA UNA UNA CBA CBA UNA e CBA UNA MP CPU SPM Este Trabalho Kandemir (2001) Steinke (2002b) Udayakumaran (2006) Janapsatya (2004) Arquitetura-alvo Cache CBA MP SPM Janapsatya (2006) Cho (2007) Egger (2008) Egger (2010) CPU 34 .

2003) – Ajuste do tamanho de bloco de cache de dados: 60% de economia (ZHANG.Influência das caches no consumo de energia • Sensibilidade do subsistema de memória à configuração das caches – Ajuste dos parâmetros de cache configurável: 40% de economia (ZHANG. 2005) 35 .

CBA CPU MP SPM Cache CPU MP SPM Economia UNAs* Steinke (2002a): 30% Verma (2007): 20% Egger (2010)†: 21% * Referência: FCA Economia CBAs* Cho (2007): 8% Egger (2008): 14% Egger (2010)†: 24% † Sistema embarcado diferente 36 .Influência das caches UNA vs.

CBA CPU MP SPM Cache CPU MP SPM Economia UNAs* Steinke (2002a): 30% Verma (2007): 20% Egger (2010)†: 21% * Referência: FCA Economia CBAs* Cho (2007): 8% Egger (2008): 14% Egger (2010)†: 24% † Sistema embarcado diferente • Caches de referência não ajustadas • Arquitetura-alvo: cache de referência substituída por SPM • Economia superestimada • Caches ainda não ajustadas • Economia ainda superestimada 37 .Influência das caches UNA vs.

VAHID. tamanho de bloco e associatividade (ZHANG.Ajuste-fino das caches • Para comparação mais justa entre as técnicas  ajuste-fino das caches (referência e arquitetura-alvo) • Técnicas de ajuste-fino – Estimar o comportamento de conjunto de uma ou mais caches para uma determinada aplicação – Trace-driven – Determinação do conjunto: variação de parâmetros da cache • Mais importantes: capacidade. 2003) – Passagem: única ou múltipla 38 .

Estima o consumo de energia para cada configuração. utilizando o número de acertos 39 . Para cada endereço acessado a) Estima o número de conflitos que ocorreram no seu conjunto da cache. desde a última vez em que foi acessado 2. Calcula o número de acertos para cada configuração de cache 3. tamanho de bloco e associatividade • Funcionamento: 1.Ajuste-fino das caches Técnica implementada: Viana (2006) • Passagem única • Parâmetros: capacidade.

Capacidade (B) 1K 2K 4K Máx.Ajuste-fino das caches Espaço de projeto considerado Min. 8K Tamanho de bloco (B) 8 2 16 4 32 8 Associatividade 1 (DM) Total: 48 caches 40 .

10 0. de menor consumo 1.40 0.90 Consumo de energia normalizado 0.20 0.Ajuste-fino das caches Variação do consumo de energia (I-cache) Config.70 0.80 0. de maior consumo x Config.60 0.00 0.30 0.00 Maior consumo Menor consumo 41 .50 0.

Ajuste-fino das caches Resultado 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) 4K 1K 8K 8K 1K 4K 4K 2K 4K 4K 8K 8K 1K 1K 4K 4K 1K 1K 2K 2K I-cache 1w 1w 2w 2w 1w 2w 2w 1w 2w 1w 2w 4w 1w 1w 2w 2w 1w 1w 1w 1w 16 8 16 16 8 8 8 8 8 8 16 8 8 8 8 8 8 8 8 8 1K 1K 1K 2K 2K 8K 4K 8K 8K 8K 8K 8K 1K 4K 1K 1K 4K 4K 2K 4K D-cache 1w 1w 2w 1w 2w 2w 2w 2w 1w 1w 2w 2w 1w 2w 1w 1w 1w 1w 1w 1w 8 8 8 8 8 16 8 16 8 8 16 8 16 8 8 8 8 8 8 8 Como correlacionar as caches pré-ajustadas com a capacidade da SPM? 42 .

D-cache) • Capacidade da SPM é um múltiplo de CT: 43 .Ajuste-fino das caches Resultado 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) 4K 1K 8K 8K 1K 4K 4K 2K 4K 4K 8K 8K 1K 1K 4K 4K 1K 1K 2K 2K I-cache 1w 1w 2w 2w 1w 2w 2w 1w 2w 1w 2w 4w 1w 1w 2w 2w 1w 1w 1w 1w 16 8 16 16 8 8 8 8 8 8 16 8 8 8 8 8 8 8 8 8 1K 1K 1K 2K 2K 8K 4K 8K 8K 8K 8K 8K 1K 4K 1K 1K 4K 4K 2K 4K D-cache 1w 1w 2w 1w 2w 2w 2w 2w 1w 1w 2w 2w 1w 2w 1w 1w 1w 1w 1w 1w 8 8 8 8 8 16 8 16 8 8 16 8 16 8 8 8 8 8 8 8 CT 32K 2K 16K 16K 4K 16K 32K 16K 16K 16K 16K 32K 2K 8K 32K 32K 8K 8K 8K 16K Como correlacionar as caches pré-ajustadas com a capacidade da SPM? • Cache equivalente unificada (I-cache.

● ● Apl.Técnica NOB utilizada • Extensão da técnica de Mendonça (2009) – Suporte à granularidade de BBs (exclusiva à de procedimentos) – Avaliação do impacto da granularidade na economia de energia Dados Técnica Abordagem Fase Global escalar Global nãoescalar Apl. ● ● Bib. Mendonça (2009) Este Trabalho NOB NOB PC PC ● ● Código Apl. PR PR ou BB Arquiteturaalvo Bib. ● ● 44 . ● ● CBA CBA Bib.

.. } MP Segmento de SPM 0x0fffff 0x100000 Procedimento A() { for (....... } . } ...) { .. } Depois da alocação em SPM Programa Subsistema de memória 0x00 Subsistema de memória 0x00 MP Procedimento A() { for (. } 0x1003ff SPM Segmento de SPM 0x1003ff SPM 45 ..) { ...) { .. } ..Extensão da Técnica NOB Alocação de Procedimentos Antes da alocação em SPM Programa Procedimento A() { for (. } ....) { .. } 0x0fffff 0x100000 Procedimento A() { for (.

} ... } Depois da alocação em SPM Programa Procedimento A() { Subsistema de memória 0x00 Subsistema de memória 0x00 MP Procedimento A() { for (. } BB Segmento de SPM 0x1003ff SPM 0x1003ff SPM 46 ..) for (......) { .) {{ . } Segmento de SPM 0x0fffff 0x100000 for (.) { .....) {{ .... } BB 0x0fffff 0x100000 for (.Extensão da Técnica NOB Alocação de Blocos básicos Antes da alocação em SPM Programa Procedimento A() { for (.. } MP Procedimento A() { for (. } ..) { .) for (..... } .. } BB BB ....

Extensão da Técnica NOB Suporte a Blocos básicos • BBs: 4 casos possíveis – Presença ou não de instruções de desvio condicional ou incondicional • Exemplo: 47 .

Para arquitetura de referência (FCA) e alvo (CBA) .Base para dimensionamento da SPM Alocação (NOB) em SPM .) .Via ajuste-fino Cache pré-ajustada equivalente unificada .Configuração Experimental Metodologia (para cada programa) Caches de Referência .Via simulação 48 Estimativa do consumo de energia .Código e dados (incl. Bib.Para 6 capacidades distintas de SPM .

Kannan (2009) • Caches e SPMs: energia e tempo de acesso  Ferramenta CACTI 5.Configuração Experimental CPU e Memórias I-Cache MP CPU D-Cache SPM • CPU: MIPS (sem ponto-flutuante)  ADL ArchC • MP: Micron MT48H8-M16LF low-power SDRAM  Cho (2007). Egger (2008.3 49 . 2010). Deng (2009).

Configuração Experimental Geração de Experimentos Alocação de Blocos Básicos (BBA) Alocação de Procedimentos (PRA) Programa CT/16 CT/8 CT/4 CT/2 CT 2CT CT/16 CT/8 CT/4 CT/2 CT 2CT 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) • 20 programas (MiBench) • 6 capacidades de SPM • 2 políticas de alocação  240 casos avaliados Superior à maioria dos trabalhos de alocação em SPM 50 .

Resultados Experimentais Economia de energia média e Ocupação média da SPM 100% Economia de energia sobre a referência Ocupação normalizada para capacidade da SPM 90% 80% 70% Ocupação (PRA) 60% 50% 40% 30% Economia de energia (BBA) Ocupação (BBA) Economia de energia (PRA) 20% 10% 0% CT/16 CT/8 CT/4 CT/2 Capacidade da SPM CT 2CT 51 .

Resultados Experimentais Economia de energia média e Ocupação média da SPM 100% Economia de energia sobre a referência Ocupação normalizada para capacidade da SPM 90% 80% 70% Ocupação (PRA) 60% 50% 40% 30% Economia de energia (BBA) Ocupação (BBA) Economia de energia (PRA) 20% 10% 0% CT/16 CT/8 CT/4 CT/2 Capacidade da SPM CT 2CT 52 .

Resultados Experimentais Sensibilidade da economia ao dimensionamento da SPM 100% 80% 60% 40% 20% Diferença média 0% -20% -40% Menor economia (PRA) Maior economia (PRA) 53 .

Resultados Experimentais Política de alocação de maior eficiência energética BBA vs. PRA (por caso avaliado) 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) BBA CT/16 CT/8 CT/4 CT/2 CT 2CT 20% PRA 61% Empate 19% 54 .

PRA (por programa) Maior economia de energia (normalizada) 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% BBA PRA BBA > PRA BBA = PRA PRA > BBA 55 .Resultados Experimentais Política de alocação de maior eficiência energética BBA vs.

Resultados Experimentais Capacidade ótima da SPM Capacidade de SPM que levou maior número de programas ao menor consumo de energia 20 18 Quantidade de programas 16 14 12 10 8 6 4 2 0 CT/16 CT/8 CT/4 CT/2 Capacidade da SPM (CSPM) CT 2CT 56 .

CT/2] [CT/2. CT/4] [CT/4.Resultados Experimentais: Capacidade ótima da SPM Considerando-se intervalos de capacidades 20 18 16 Quantidade de programas 14 12 10 8 6 4 2 0 [CT/16. 2CT] 57 . CT] Capacidade da SPM (CSPM) [CT.

Resultados Experimentais: Correlação entre taxa de faltas e capacidade da SPM 100% Para SPMs grandes (CT) 10% Economia de energia normalizada 80% 70% 60% 50% 40% 30% 20% 10% 0% 8% 7% 6% 5% 4% 3% 2% 1% 0% Economia de energia _ Taxa de faltas global (m) 58 Taxa de faltas global dos candidatos 90% 9% .

ponto-flutuante.Comparação com Trabalhos Correlatos • Dificuldade na comparação direta  configuração experimental equivalente – Processador: ISA. .. energia por acesso – Biblioteca libc – Etc. – MP: tipo (on-chip. organização.. 59 . off-chip).

33% (sobre caches pré-ajustadas) NOB Outros (economia total) Arquitetura Abordagem CBA (MP + cache + SPM) Em tempo de Póscompilação Compilação Economia média de energia Cho (2007): 8% Egger (2008): 14% Egger (2010): 24% Steinke (2002a): 30% Verma (2004b): 34% Udayakumaran (2006): 31% 60 OVB UNA (MP + SPM) OVB Compilação .Comparação com Trabalhos Correlatos Este trabalho (economia de memória) Arquitetura Abordagem CBA (MP + cache + SPM) Em tempo de Póscompilação Economia média de energia Este trabalho: 15% .

Conclusões Evidência experimental sólida • 20 programas de benchmark • 240 casos avaliados • Apenas Falk (2009) apresenta número superior Ajuste-fino das caches • Economia de: 88% (instruções) 80% (dados) • Pode ser suficiente para alguns programas – Economia mínima via SPM 61 .

Conclusões Cache pré-ajustada equivalente unificada (CT) • Correlação com capacidade da SPM – Generalidade da análise – Sem influência da seleção dos programas e capacidade de SPM Dimensionamento da SPM • Capacidades: • Economia média dobrou: 15% (CT/16) – 33% (CT) • Faixa de maior economia: [CT/2. CT] 62 .

Conclusões Eficiência Energética da Política de Alocação PRA (procedimentos) vs. CT/2] Leve vantagem em [CT/16. BBA (blocos básicos) Característica PRA BBA Eficiência energética (em média) Ocupação da SPM em 100% Escopo de aplicação Melhor [CT/16. CT/4] [CT/16. CT/4] SPM pequena + elementos muito acessados com grande taxa de faltas 63 SPM grande e na maioria dos programas .

Conclusões Abordagem NOB em tempo de pós-compilação (PC) • Comparada com OVBs para PC: – Economia melhor ou tão boa quanto – Simplicidade – Possibilita maiores economias sem HW dedicado  inclusão de bibliotecas 64 .

MENDONÇA. L. MENDONÇA. K. A. SANTOS. K. Cache-tuning-aware scratchpad allocation from binaries: a fresh perspective on an undervalued approach. P. A. V.. L. I. Publicado no ISVLSI 2010 Reavalição experimental da abordagem NOB via ajuste-fino (submetido) • VOLPATO.. A post-compiling approach that exploits code granularity in scratchpads to improve energy efficiency. L. dos. GÜNTZEL.. Submetido ao GLSVLSI 2011 65 . SANTOS. V. dos. D. L. J. C. D.Publicações oriundas deste trabalho Extensão da técnica de Mendonça (2009) para suporte à alocação de BBs • VOLPATO. P. C. I.. J. GÜNTZEL..

Perspectiva Procedure outlining • Traz para PRA as vantagens de BBA • Deve possibilitar maior economia Técnica mista: Compilação e Pós-compilação • Em tempo de compilação  Suporte a dados dinâmicos (e. pilha) • Aumenta espaço de otimização (dados dinâmicos de aplicação) • Mantém independência de HW dedicado 66 .g.

Membros da Banca: Fernando Gehm Moraes. Dr.Gerenciamento Explícito de Memória Auxiliar a partir de Arquivos-objeto para Melhoria da Eficiência Energética de Sistemas Embarcados Daniel Pereira Volpato Orientador: José Luís Almada Güntzel. Cesar Albenes Zeferino. (co-orientador) . Dr. Dr. Dr. Luiz Cláudio Villar dos Santos.