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