Paralelizacao de Simuladores de HardwareDescritos em SystemC
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo
29 de julho de 2011
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Programa de Doutorado em Ciencia da Computacao doInstituto de Computacao (IC) da Unicamp.
Projeto Dinter - Parcialmente financiado pela Capes.
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Roteiro
Motivacao e Proposta
Introducao a SLDL SystemC
O Escalonador SystemC
Simulacao Paralela baseada em Eventos Discretos (PDES)
Suporte a paralelizacao de uma simulacao SystemC
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Motivacao
Especificaçãodo Sistema
ModelagemEstrutural e
Comportamental
Simulação
Desenvolvimentode Protótipos
VHDL
Todas são SLDLs de
thread única e não aproveitam
todos os recursos de
processamento
Proposta: Desenvolver tecnicas para habilitar a simulacaoparalela de sistemas descritos em SystemC visando aceleracao
da simulacao e transparencia para o projetista.Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Introducao a SLDL SystemC
Modulos: Sao os blocos basicos para modelagem do sistema.
Portas: Sao responsaveis pela conexao entre modulos epodem ser unidirecionais ou bidirecionais.
Sinais: Sao usados para se conectar portas.
Clocks: E um sinal especial usado para a sincronizacao dosistema durante a simulacao.
Processos: Sao usados para descrever as funcionalidades dosmodulos e possuem caracterısitca nao-hierarquica.
Metodos: SC METHOD;threads: SC THREAD;clocked threads: SC CTHREAD ;
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Introducao a SLDL SystemC
i n t s c m a i n ( i n t ac , char av [ ] ) {// INSTANCIACAO DOS COMPONENTES DO SISTEMAmips MEU MIPS( ”MIPS” ) ; // p r o c e s s a d o rmem MEM( ”MEM” ) ; // memoria
// CONEXAO ENTRE COMPONENTESMEU MIPS . DMport (MEM. t a r g e t e x p o r t ) ;
// INICIO DA SIMULACAOs c s t a r t ( ) ;
// AVALIACAO DOS RESULTADOS DA SIMULACAOMEU MIPS . P r i n t S t a t ( ) ;return MEU MIPS . e x i t s t a t u s ;
}
Figura: Descricao da funcao sc main para a arquitetura “MEU MIPS”.Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
O Escalonador SystemC
Existemprocessosprontos?
Selecione e execute
um processo pronto
Processe notificações
imediatas
Processe requisições
de atualização
Processeeventos
delta
Existemeventosdelta?
Existemeventos
detempo?
Avance o tempo de simulação
Processeeventos de
tempo
SIM
SIM
NÃO
NÃO
NÃO
SIM
Fase de Avaliação
Fase de Atualização
(eventos delta)
Fase de Atualização(eventos de
tempo)
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Simulacao Paralela baseada em Eventos Discretos (PDES)
Erros de Causalidade
Cada evento esta associado a um tempo (timestamp) querepresenta o momento em que o evento ”ocorre”na simulacao;
Eventos Ex e Ey com timestamps 5 e 10, respectivamente, eum evento Ez gerado a partir de Ex com timestamp igual a15;
Se Ez altera variaveis de estado acessadas por Ey, a seguinteordem de execucao causa ERRO NA SIMULACAO:
P1
t=5 t=10t=15
~Ordem de execucao
’
x z yE E E
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Simulacao Paralela baseada em Eventos Discretos (PDES)
Se Ey e Ez nao possuem dependencia alguma, a execucaoparalela torna-se possıvel:
P1
t=5
t=10
P2
t=15
~
’
x z
y
E E
E
Ordem de execucao
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Estrategias
Habilitar execucao concorrente: uso de SC DTHREADS[Faveri(2010)]Determinar quais threads do simulador podem ser executadasem paralelo e quais devem obedecer execucao sequencial
1
2
3
4
5
6
7
8
A
B
B
C
D
C
A
E
A
F
EF
G
G
G
H
I
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Suporte a paralelizacao de uma simulacao SystemC
Abordagem estatica
Abordagem dinamica
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Suporte a paralelizacao de uma simulacao SystemC
Identificacao e juncao de processos pequenos na simulacao,visando minimizar o tempo gasto com trocas de contexto.
P2 P2
1P 2 1P 2 P3P 2
PPP1 12 3
Tempo
evento
P
1
Trocas de contexto Processos em execucao~
’
evento
(a)
(b)
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Suporte a paralelizacao de uma simulacao SystemC
Pesquisa e escolha de um padrao de programacao paralelacompatıvel (OpenMP?).
Avaliacao de Desempenho: comparacao do tempo desimulacao e taxa de utilizacao dos cores durante simulacoescom e sem o uso de tecnicas como as apresentadas.
Desenvolvimento de plataformas e coleta de simuladores paraverificacao.
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Principais Referencias
P. Ezudheen,P. Chandran,J. Chandra,B.P. Simon,D. Ravi.Parallelizing SystemC Kernel for Fast Hardware Simulation onSMP Machines. In 23rd Workshop on Principles of Advancedand Distributed Simulation, 2009.
R.R.C. Faveri. Viabilizando a Simulacao Multi-Threaded paraModelos Escritos em SystemC. Dissertacao deMestrado-Instituto de Computacao da Universidade Estadualde Campinas (IC-Unicamp), 2010.
B. Chopardl,P. Combes,J. Zory. A Conservative Approach toSystemC Parallelization. In International Conference onComputational Science, 2006.
A. Mello,I. Maia,A. Greiner,F. Pecheux. Parallel Simulation ofSystemC TLM 2.0 Compliant MPSoC on SMP Workstations.In Design, Automation and Test in Europe Conference andExhibition, 2010.
Liana D. Duenha e Prof. Dr. Rodolfo Jardim de Azevedo Paralelizacao de Simuladores de Hardware Descritos em SystemC
Top Related