Mateus Beck Rutzig mbrutzig@inf.ufrgsflavio/ensino/cmp237/mateus_apresentac... · 2006. 7. 14. ·...

Preview:

Citation preview

Estudo do impacto de consumo de potência e desempenho na

inserção de um Array Reconfigurável na arquitetura

Femtojava MulticicloMateus Beck Rutzig

mbrutzig@inf.ufrgs.br

OUTLINE

1. Conceitos 1.1.Sistemas Embarcados

1.2.Plataforma Femtojava

1.3.Array Reconfigurável

1.4.Funcionamento do Array Reconfigurável

2. Motivações

3. Resultados 4.1. Desempenho

4.2. Energia

4.3. Potência

4.4. Área

4. Conclusões e Trabalhos Futuros

5. Referências

SISTEMAS EMBARCADOS

A complexidade dos sistemas embarcados está aumentando

SISTEMAS EMBARCADOS

A complexidade dos sistemas embarcados está aumentando

A desempenho tem que seguir o mesmo caminho

SISTEMAS EMBARCADOS

A complexidade dos sistemas embarcados está aumentando

A desempenho tem que seguir o mesmo caminho

Problemas!!!

SISTEMAS EMBARCADOS

A complexidade dos sistemas embarcados está aumentando

A desempenho tem que seguir o mesmo caminhoBateria

Problemas!!!

SISTEMAS EMBARCADOS

A complexidade dos sistemas embarcados está aumentando

A desempenho tem que seguir o mesmo caminhoBateria

Problemas!!!Área Ocupada

PLATAFORMA FEMTOJAVA

Criada com restrições de área e potência visando especificamenteSistemas Embarcados

Execução nativa de bytecodes Java

Máquina de pilha

Arquitetura Harvard

Versões:

Femtojava Multiciclo

Femtojava Pipeline

Femtojava VLIW

Femtojava DSP

Femtojava Pipeline com Array Reconfigurável

MOTIVAÇÃO

Os sistemas embarcados exigem novas soluções arquiteturais visando aumento de performance e minimização de consumo de potência

MOTIVAÇÃO

Os sistemas embarcados exigem novas soluções arquiteturais visando aumento de performance e minimização de consumo de potência

Solução

Explorar o paralelismo inerente das aplicações

MOTIVAÇÃO

Os sistemas embarcados exigem novas soluções arquiteturais visando aumento de performance e minimização de consumo de potência

Solução

Explorar o paralelismo inerente das aplicações

Mas o que fazer quando o paralelismo da aplicação é limitado?

MOTIVAÇÃO

Os sistemas embarcados exigem novas soluções arquiteturais visando aumento de performance e minimização de consumo de potência

Solução

Explorar o paralelismo inerente das aplicações

Mas o que fazer quando o paralelismo da aplicação é limitado?

AlternativaAcelerar a execução trocando a lógica seqüencial

por lógica combinacional

ARRAY RECONFIGURÁVEL

Circuito totalmente combinacional

ARRAY RECONFIGURÁVEL

Circuito totalmente combinacional

Formado por:

ARRAY RECONFIGURÁVEL

Circuito totalmente combinacional

Formado por: CÉLULA

Cada célula contém:

FUNCIONAMENTO DO ARRAY RECONFIGURÁVEL

Fluxo de execução no Femtojava

Resultados

b20024b2000460

FUNCIONAMENTO DO ARRAY RECONFIGURÁVEL

Fluxo de execução no Femtojava com Array Reconfigurável

Resultados

b20024b2000460

FUNCIONAMENTO DO ARRAY RECONFIGURÁVEL

Fluxo de execução no Femtojava com Array Reconfigurável

Resultados

b20024b2000460

Basic Block

FUNCIONAMENTO DO ARRAY RECONFIGURÁVEL

Fluxo de execução no Femtojava com Array Reconfigurável

b20024b2000460

Basic Block

PC

Resultados

Cache

FUNCIONAMENTO DO ARRAY RECONFIGURÁVEL

Fluxo de execução no Femtojava com Array Reconfigurável

b20024b2000460

Basic Block

PC

Resultados

Cache

Configuração

FUNCIONAMENTO DO ARRAY RECONFIGURÁVEL

Fluxo de execução no Femtojava com Array Reconfigurável

b20024b2000460

Basic Block

PC

Resultados

Cache

Configuração

MAIS MOTIVAÇÕES...

~ 85 % dos bytecodes são executados no ArrayReconfigurável.

Fica a cargo do processador executar praticamente bytecodes de controle.

Simplificar a integração do Array Reconfigurávelcom a arquitetura.

Instruções executadas mais lentamente, o delay de configuração do Array pode ser maior,consequentemente, o hardware pode ser simplificado.

DIFERENÇAS ORGANIZACIONAIS

MULTICICLOPilha implementada na memória RAM

externa ao core

Próxima instrução a ser executada é buscada da memória ROM ao término da execução da instrução atual

PIPELINEPilha implementada dentro do core

como um banco de registradores

Buffer de 9 bytes que fornece instruções para o pipeline. Palavras de 4 bytes são buscadas da memória RAM.

X

BENCHMARKS

Outrosbinary search

float sums

imdct

mp3

sequence search

bubble10

quick10

select10

SPEC JVM98compress

check

jess

raytrace

db

javac

mpegaudio

mtrt

jack

BENCHMARKS

CARACTERIZAÇÃO

BENCHMARKS

CARACTERIZAÇÃO

Data Flow

BENCHMARKS

CARACTERIZAÇÃO

Control Flow

BENCHMARKS

CARACTERIZAÇÃO

Chamada de Métodos

RESULTADOS

DESEMPENHO (CICLOS)

5651.0201.0393.0951.3184.418bubble10

196.485.190282.092.214196.664.898282.413.166281.096.146411.377.368jack

11.175.67919.234.90513.281.75823.522.35717.711.45432.476.108javac

149.381.359231.107.825164.429.015256.012.316191.119.064299.964.117raytrace

2.016.6433.330.9522.258.8623.779.7672.715.7094.641.398check

PipelineMulticicloPipelineMulticicloPipelineMulticiclo

Cinco célulasTrês célulasUma célula

RESULTADOS

DESEMPENHO (CICLOS)

5651.0201.0393.0951.3184.418bubble10

196.485.190282.092.214196.664.898282.413.166281.096.146411.377.368jack

11.175.67919.234.90513.281.75823.522.35717.711.45432.476.108javac

149.381.359231.107.825164.429.015256.012.316191.119.064299.964.117raytrace

2.016.6433.330.9522.258.8623.779.7672.715.7094.641.398check

PipelineMulticicloPipelineMulticicloPipelineMulticiclo

Cinco célulasTrês célulasUma célula

3.35 x

RESULTADOS

DESEMPENHO (CICLOS)

5651.0201.0393.0951.3184.418bubble10

196.485.190282.092.214196.664.898282.413.166281.096.146411.377.368jack

11.175.67919.234.90513.281.75823.522.35717.711.45432.476.108javac

149.381.359231.107.825164.429.015256.012.316191.119.064299.964.117raytrace

2.016.6433.330.9522.258.8623.779.7672.715.7094.641.398check

PipelineMulticicloPipelineMulticicloPipelineMulticiclo

Cinco célulasTrês célulasUma célula

1.80 x

RESULTADOS

DESEMPENHO (CICLOS) MÉDIA

0

50000000

100000000

150000000

200000000

250000000

300000000

1 2 3 4 5

Multiciclo

Pipeline

Células

RESULTADOS

ENERGIA

54.388.72732.446.18954.388.72732.446.189267.249.443175.474.341bubble10

3.175.722.204.2091.507.668.097.2933.283.465.560.1141.570.903.779.1503.656.603.556.8651.749.994.163.998jack

954.804.342.885410.217.751.899979.628.505.307420.385.202.3001.066.864.717.084455.523.309.317javac

5.463.818.494.0782.233.736.444.8635.503.182.817.1152.250.962.861.4475.667.357.585.7442.313.507.896.766raytrace

714.182.285.182339.150.375.040753.882.342.071365.761.181.999733.786.020.924328.131.535.386check

PipelineMulticicloPipelineMulticicloPipelineMulticiclo

Cinco célulasTrês célulasUma célula

RESULTADOS

ENERGIA

54.388.72732.446.18954.388.72732.446.189267.249.443175.474.341bubble10

3.175.722.204.2091.507.668.097.2933.283.465.560.1141.570.903.779.1503.656.603.556.8651.749.994.163.998jack

954.804.342.885410.217.751.899979.628.505.307420.385.202.3001.066.864.717.084455.523.309.317javac

5.463.818.494.0782.233.736.444.8635.503.182.817.1152.250.962.861.4475.667.357.585.7442.313.507.896.766raytrace

714.182.285.182339.150.375.040753.882.342.071365.761.181.999733.786.020.924328.131.535.386check

PipelineMulticicloPipelineMulticicloPipelineMulticiclo

Cinco célulasTrês célulasUma célula

2.08 x

RESULTADOS

ENERGIA

54.388.72732.446.18954.388.72732.446.189267.249.443175.474.341bubble10

3.175.722.204.2091.507.668.097.2933.283.465.560.1141.570.903.779.1503.656.603.556.8651.749.994.163.998jack

954.804.342.885410.217.751.899979.628.505.307420.385.202.3001.066.864.717.084455.523.309.317javac

5.463.818.494.0782.233.736.444.8635.503.182.817.1152.250.962.861.4475.667.357.585.7442.313.507.896.766raytrace

714.182.285.182339.150.375.040753.882.342.071365.761.181.999733.786.020.924328.131.535.386check

PipelineMulticicloPipelineMulticicloPipelineMulticiclo

Cinco célulasTrês célulasUma célula

2.10 x

RESULTADOS

ENERGIA MÉDIA

0

5E+12

1E+13

1,5E+13

2E+13

2,5E+13

1 2 3 4 5

Multiciclo

Pipeline

Células

RESULTADOS

ENERGIA PENALIDADE POR BRANCHES NA ROM

Células 0

5.000.000.000.000

10.000.000.000.000

15.000.000.000.000

20.000.000.000.000

25.000.000.000.000

1 2 3 4 5

Penalidade 100%Penalidade 50%Penalidade 0%Multiciclo

Células

RESULTADOS

POTÊNCIA

0

50.000

100.000

150.000

200.000

250.000

300.000

350.000

1 2 3 4 5

Média Potência Multiciclo

Média Potência Pipeline

Células

Potência

RESULTADOS

3. RESULTADOS

0

50.000

100.000

150.000

200.000

250.000

300.000

350.000

1 2 3 4 5

Média Potência Multiciclo

Média Potência Pipeline

Células

Potência

5.09 Vezes

POTÊNCIA

RESULTADOS

3. RESULTADOS

0

50.000

100.000

150.000

200.000

250.000

300.000

350.000

1 2 3 4 5

Média Potência Multiciclo

Média Potência Pipeline

Células

Potência

3.88 Vezes

POTÊNCIA

RESULTADOS

3. RESULTADOSENERGIA X DESEMPENHO

0

1.000.000.000

2.000.000.000

3.000.000.000

4.000.000.000

5.000.000.000

6.000.000.000

raytrace mpegaudio mtrt jack

Ciclos Multiciclo 5 células

Ciclos Pipeline 1 célula

Energia Multiciclo 5 células

Energia Pipeline 1 célula

3. RESULTADOSENERGIA X DESEMPENHO

0

5.000

10.000

15.000

20.000

25.000

30.000

binary_search seq_search bubble10 quick10 select10

Ciclos Multiciclo 5 célulasCiclos Pipeline 1 célulaEnergia Multiciclo 5 célulasEnergia Pipeline 1 célula

RESULTADOS

RESULTADOS

ÁREA

VLIW 2

PipelineFEMTOJAVA PIPELINE + REC. ARRAY4 células 5 diferentes reconfigurações

Multiciclo

RESULTADOS

VLIW 2

Pipeline

PIPELINE

D.I.M.

ARRAY RECONFIGURÁVEL

CACHE

DADOS

CACHE RECONFIGURAÇÕESMulticiclo

ÁREA

RESULTADOS

VLIW 2

Pipeline

D.I.M.

ARRAY RECONFIGURÁVEL

CACHE

DADOS

CACHE RECONFIGURAÇÕES

Multiciclo

REDUÇÃODE

ÁREA!!!

Multiciclo

ÁREA

RESULTADOS

VLIW 2

Pipeline

D.I.M. CACHE

DADOS

CACHE RECONFIGURAÇÕES

Multiciclo

REDUÇÃODE

ÁREA!!!

Multiciclo

Cél

ula

Cél

ula

Cél

ula

Cél

ula

ÁREA

CONCLUSÕES E TRABALHOS FUTUROS

CONCLUSÃO

A inserção de um Array Reconfigurável em um simples microcontrolador, tornando a arquitetura praticamente DataFlow, traz benefícios energéticos consideráveis.

Desconsiderando compromissos com área, pode-se alcançar o mesmo desempenho de um processador mais complexo com um consumo menor de energia.

TRABALHOS FUTUROS

Obtenção dos dados de potência dinâmica e estática do Processador e do Array Reconfigurável em nível gate level.

REFERÊNCIAS

-Beck, A. C. S.., Carro, L. “Dynamic Reconfiguration with Binary Translation: Breaking the ILP Barrier with Software Compatibility”. In Design AutomationConference (DAC), 2005

-Gomes,V. F.., Carro,L. “Trading Time and Space on Low Power EmbeddedArchitectures with Dynamic Instruction Merging”. In Journal of Low PowerElectronics Vol.1, 1–10, 2005

- Radhakrishnan, R. Rubio, J. “Characterization of Java Applications at Bytecodeand Ultra-SPARC Machine Code Levels”.

Recommended