Estudo do impacto de consumo de potência e desempenho na
inserção de um Array Reconfigurável na arquitetura
Femtojava MulticicloMateus Beck Rutzig
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”.
Top Related