22
1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra- Farach [email protected] Instituto de Computação – Instituto de Computação – UNICAMP UNICAMP MO401 - Arquitetura de Computadores I MO401 - Arquitetura de Computadores I Prof. Rodolfo Jardim Azevedo Prof. Rodolfo Jardim Azevedo

1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach [email protected] Instituto de Computação – UNICAMP

Embed Size (px)

Citation preview

Page 1: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

1

ArchC: Uma linguagem de descrição de arquiteturas

Javier Alexander Montoya Zegarra-Farach

[email protected]

Instituto de Computação – UNICAMPInstituto de Computação – UNICAMPMO401 - Arquitetura de Computadores IMO401 - Arquitetura de Computadores I

Prof. Rodolfo Jardim AzevedoProf. Rodolfo Jardim Azevedo

Page 2: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

2

Roteiro

• Introdução• Trabalhos correlatos

• A linguagem de descrição de arquiteturas ArchC

• Ferramentas de ArchC

• Conclusões

• Referências

Page 3: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

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).

Page 4: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

4

Roteiro

• Introdução

• Trabalhos correlatos• A linguagem de descrição de arquiteturas

ArchC

• Ferramentas de ArchC

• Conclusões

• Referências

Page 5: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

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.

Page 6: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

6

Trabalhos Correlatos

Tabela 1. Comparação entre características de diferentes ADLs [Rigo2004].

Page 7: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

7

Roteiro

• Introdução

• Trabalhos correlatos

• A linguagem de descrição de arquiteturas ArchC

• Ferramentas de ArchC

• Conclusões

• Referências

Page 8: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

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 ].

Page 9: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

9

AC_ARCH

Figura 2. Declaração de recursos de arquitetura para MIPS (mips.ac).

Page 10: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

10

AC_ISA

Figura 3. Declaração ISA para MIPS (mips_isa.ac).

Page 11: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

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

Page 12: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

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).

Page 13: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

13

Roteiro

• Introdução

• Trabalhos correlatos

• A linguagem de descrição de arquiteturas ArchC

• Ferramentas de ArchC• Conclusões

• Referências

Page 14: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

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].

Page 15: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

15

Suporte GDB para Simuladores

Figura 8. Métodos para manipulação de registradores para suporte GDB (mips_gdb_funcs.cpp).

Page 16: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

16

Suporte GDB para Simuladores

Figura 9. Métodos para manipulação de memória para suporte GDB (mips_gdb_funcs.cpp).

Page 17: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

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

Page 18: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

18

O Gerador de Simuladores de ArchC

Figura 11. Fluxo de geração do simulador ArchC [Rigo2004].

Page 19: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

19

Roteiro

• Introdução

• Trabalhos correlatos

• A linguagem de descrição de arquiteturas ArchC

• Ferramentas de ArchC

• Conclusões• Referências

Page 20: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

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.

Page 21: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

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.

Page 22: 1 ArchC: Uma linguagem de descrição de arquiteturas Javier Alexander Montoya Zegarra-Farach javier.montoya@ic.unicamp.br Instituto de Computação – UNICAMP

22

FIM