1
ArchC: Uma linguagem de descrição de arquiteturas
Javier Alexander Montoya Zegarra-Farach
Instituto de Computação – UNICAMPInstituto de Computação – UNICAMPMO401 - Arquitetura de Computadores IMO401 - Arquitetura de Computadores I
Prof. Rodolfo Jardim AzevedoProf. Rodolfo Jardim Azevedo
2
Roteiro
• Introdução• Trabalhos correlatos
• A linguagem de descrição de arquiteturas ArchC
• Ferramentas de ArchC
• Conclusões
• Referências
3
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).
4
Roteiro
• Introdução
• Trabalhos correlatos• A linguagem de descrição de arquiteturas
ArchC
• Ferramentas de ArchC
• Conclusões
• Referências
5
Trabalhos Correlatos
• Classificação de ADLs (tipo de informação):
• Baseadas em comportamento: nML, ISDL.
• Baseadas em estrutura: MIMOLA.
• Híbridas: LISA, EXPRESSION, ArchC.
6
Trabalhos Correlatos
Tabela 1. Comparação entre características de diferentes ADLs [Rigo2004].
7
Roteiro
• Introdução
• Trabalhos correlatos
• A linguagem de descrição de arquiteturas ArchC
• Ferramentas de ArchC
• Conclusões
• Referências
8
Descrição ArchC
Descrição do conjunto de instruções (AC_ISA)
Descrição dos recursos da arquitetura (AC_ARCH)
A linguagem de descrição de arquiteturas ArchC
•Registradores
•Memória
•Estrutura de pipelinePROC.ac
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 ].
9
AC_ARCH
Figura 2. Declaração de recursos de arquitetura para MIPS (mips.ac).
10
AC_ISA
Figura 3. Declaração ISA para MIPS (mips_isa.ac).
11
Descrição de Comportamentos em ArchC
Figura 4. Hierarquia de Métodos de Comportamento em ArchC [Rigo2004].
Exe
cuçã
o
Genérico
TipoI TipoJTipoR
add
12Figura 6. Descrição de comportamento específico de instruções (mips-isa.cpp).
Descrição de Comportamentos em ArchC
Figura 5. Descrição de comportamento genérico de instruções (mips-isa.cpp).
13
Roteiro
• Introdução
• Trabalhos correlatos
• A linguagem de descrição de arquiteturas ArchC
• Ferramentas de ArchC• Conclusões
• Referências
14
Co-verificação baseada em dispositivos de armazenamento
Descrição
ArchC
System C
Modelo de Referência
Descrição
ArchC
System C
Modelo DUV
Verificador ArchC
Refinamento
Figura 7. Metodologia de co-verificação de ArchC [Azevedo2005].
15
Suporte GDB para Simuladores
Figura 8. Métodos para manipulação de registradores para suporte GDB (mips_gdb_funcs.cpp).
16
Suporte GDB para Simuladores
Figura 9. Métodos para manipulação de memória para suporte GDB (mips_gdb_funcs.cpp).
17
Emulação do Sistema Operacional
Figura 10.Chamadas de S.O correntemente suportadas por ArchC [Rigo2004].
Grupo Função Interação com host
I/O
open x
creat x
close x
read x
write x
Isatty x
lseek x
fstat x
Controle
exit x
chmod
stat
getpid
kill
unlink
Tempo time
times
gettimeofday
Memória sbrk x
18
O Gerador de Simuladores de ArchC
Figura 11. Fluxo de geração do simulador ArchC [Rigo2004].
19
Roteiro
• Introdução
• Trabalhos correlatos
• A linguagem de descrição de arquiteturas ArchC
• Ferramentas de ArchC
• Conclusões• Referências
20
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.
21
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.
22
FIM