220 likes | 353 Views
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 javier.montoya@ic.unicamp.br. Roteiro. Introdução Trabalhos correlatos
E N D
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 javier.montoya@ic.unicamp.br
Roteiro • Introdução • Trabalhos correlatos • A linguagem de descrição de arquiteturas ArchC • Ferramentas de ArchC • Conclusões • Referências
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).
Roteiro • Introdução • Trabalhos correlatos • A linguagem de descrição de arquiteturas ArchC • Ferramentas de ArchC • Conclusões • Referências
Trabalhos Correlatos • Classificação de ADLs (tipo de informação): • Baseadas em comportamento: nML, ISDL. • Baseadas em estrutura: MIMOLA. • Híbridas: LISA, EXPRESSION, ArchC.
Trabalhos Correlatos Tabela 1. Comparação entre características de diferentes ADLs [Rigo2004].
Roteiro • Introdução • Trabalhos correlatos • A linguagem de descrição de arquiteturas ArchC • Ferramentas de ArchC • Conclusões • Referências
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 A linguagem de descrição de arquiteturas ArchC Figura 1. Estrutura de uma descrição para uma arquitetura em ArchC [Baldassin2005 ].
AC_ARCH Figura 2. Declaração de recursos de arquitetura para MIPS (mips.ac).
AC_ISA Figura 3. Declaração ISA para MIPS (mips_isa.ac).
Descrição de Comportamentos em ArchC Genérico Execução TipoI TipoR TipoJ add Figura 4. Hierarquia de Métodos de Comportamento em ArchC [Rigo2004].
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).
Roteiro • Introdução • Trabalhos correlatos • A linguagem de descrição de arquiteturas ArchC • Ferramentas de ArchC • Conclusões • Referências
Descrição ArchC Descrição ArchC System C Modelo de Referência System C Modelo DUV Co-verificação baseada em dispositivos de armazenamento Refinamento Verificador ArchC Figura 7. Metodologia de co-verificação de ArchC [Azevedo2005].
Suporte GDB para Simuladores Figura 8. Métodos para manipulação de registradores para suporte GDB (mips_gdb_funcs.cpp).
Suporte GDB para Simuladores Figura 9. Métodos para manipulação de memória para suporte GDB (mips_gdb_funcs.cpp).
Emulação do Sistema Operacional 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].
Roteiro • Introdução • Trabalhos correlatos • A linguagem de descrição de arquiteturas ArchC • Ferramentas de ArchC • Conclusões • Referências
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.
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.