Instituto de Computação – UNICAMP
MO401 - Arquitetura de Computadores I
Prof. Rodolfo Jardim Azevedo
ArchC: Uma linguagem de descrição
de arquiteturas
Javier Alexander Montoya Zegarra-Farach
[email protected]
1
Roteiro
• Introdução
• Trabalhos correlatos
• A linguagem de descrição de arquiteturas
ArchC
• Ferramentas de ArchC
• Conclusões
• Referências
2
Introdução
• Avanços tecnológicos + disponibilidade de bibliotecas IP de
HW/SW -> SOC.
• SOC (System-On-Chip)
•
•
•
•
Processadores.
Memórias.
Circuitos de interfaces de entrada/saida.
ASICS (Application Specific Integrated Circuits).
• ADLs (Architecture Description Languages)
• Modelagem e validação temprana das arquiteturas dos SOCs.
• Geração automática de ferramentas (compiladores, simuladores).
3
Roteiro
• Introdução
• Trabalhos correlatos
• A linguagem de descrição de arquiteturas
ArchC
• Ferramentas de ArchC
• Conclusões
• Referências
4
Trabalhos Correlatos
• Classificação de ADLs (tipo de informação):
• Baseadas em comportamento: nML, ISDL.
• Baseadas em estrutura: MIMOLA.
• Híbridas: LISA, EXPRESSION, ArchC.
5
Trabalhos Correlatos
Tabela 1. Comparação entre características de diferentes ADLs [Rigo2004].
6
Roteiro
• Introdução
• Trabalhos correlatos
• A linguagem de descrição de
arquiteturas ArchC
• Ferramentas de ArchC
• Conclusões
• Referências
7
A linguagem de descrição de
arquiteturas ArchC
Descrição ArchC
Descrição dos recursos da arquitetura (AC_ARCH)
•Registradores
•Memória
•Estrutura de pipeline
PROC.ac
Descrição do conjunto de instruções (AC_ISA)
Descrição do formato, tipo e decodificação
das instruções
PROC_isa.ac
Descrição do comportamento das instruções
PROC-isa.cpp
Figura 1. Estrutura de uma descrição para uma arquitetura em ArchC
[Baldassin2005 ].
8
AC_ARCH
Figura 2. Declaração de recursos de arquitetura para MIPS (mips.ac).
9
AC_ISA
Figura 3. Declaração ISA para MIPS (mips_isa.ac).
10
Descrição de Comportamentos em
ArchC
Execução
Genérico
TipoR
TipoI
TipoJ
add
Figura 4. Hierarquia de Métodos de Comportamento em ArchC [Rigo2004].
11
Descrição de Comportamentos em
ArchC
Figura 5. Descrição de comportamento genérico de instruções (mips-isa.cpp).
Figura 6. Descrição de comportamento específico de instruções (mips-isa.cpp).
12
Roteiro
• Introdução
• Trabalhos correlatos
• A linguagem de descrição de arquiteturas
ArchC
• Ferramentas de ArchC
• Conclusões
• Referências
13
Co-verificação baseada em
dispositivos de armazenamento
Refinamento
Descrição
ArchC
Verificador
ArchC
Descrição
ArchC
System C
System C
Modelo de
Referência
Modelo
DUV
Figura 7. Metodologia de co-verificação de ArchC [Azevedo2005].
14
Suporte GDB para Simuladores
Figura 8. Métodos para manipulação de registradores para suporte GDB
(mips_gdb_funcs.cpp).
15
Suporte GDB para Simuladores
Figura 9. Métodos para manipulação de memória para suporte GDB
(mips_gdb_funcs.cpp).
16
Emulação do Sistema Operacional
Grupo
I/O
Controle
Função
Interação com host
open
x
creat
x
close
x
read
x
write
x
Isatty
x
lseek
x
fstat
x
exit
x
chmod
stat
getpid
kill
unlink
Tempo
time
times
gettimeofday
Memória
sbrk
x
17
Figura 10.Chamadas de S.O correntemente suportadas por ArchC [Rigo2004].
O Gerador de Simuladores de ArchC
Figura 11. Fluxo de geração do simulador ArchC [Rigo2004].
18
Roteiro
• Introdução
• Trabalhos correlatos
• A linguagem de descrição de arquiteturas
ArchC
• Ferramentas de ArchC
• Conclusões
• Referências
19
Conclusões
• ArchC é baseada em SystemC e possibilita a descrição de uma
arquitetura em um alto nível de granularidade.
• ArchC gera automaticamente ferramentas de software
(montadores, simuladores e interfaces de co-verificação)
reduzindo o esforço necessário para verificação da arquitetura
modelada.
• A linguagem ArchC apresenta uma forma simples de se
representar uma arquitetura até mesmo para usuários menos
experientes.
• Uma linguagem de alto nível e ferramentas auxiliares garantem
que um projeto seja implementado satisfazendo os requisitos.
20
Referências
• Alexandro Baldassin and Paulo Centoducatte. Geração automática
de montadores para modelos de arquiteturas escritos em archc. In
Proceedings of the 9th Brazilian Symposium on Programming
Languages - Recife, Brazil, May 2005.
• Sandro Rigo. ArchC: Uma Linguagem de Descrião de Arquiteturas.
PhD thesis, Instituto de Computação, Universidade Estadual de
Campinas, 2004.
• Rodolfo Azevedo, Sandro Rigo, Marcus Bartholomeu, Guido Araujo,
Cristiano Araujo, and Edna Barros. The Archc architecture
description language and tools. International Journal of Parallel
Programming, 33(5):453–484, October 2005.
21
FIM
22
Download

Apr - Instituto de Computação