Altera NIOS II: uma breve introdução Aluno: Antônio Pereira Disciplina: Arquiteturas Reconfiguráveis Professor: Ivan Saraiva
Introdução Nios II Processor System: “Computer on a chip” Características 32 registradores de 32 bits de propósito geral 32 fontes de interrupção Instruções dedicadas para cálculo de multiplicações de 32, 64 e 128 bits Acesso a periféricos internos e externos Módulo de debug Ambiente de desenvolvimento baseada no GNU C/C++ e no Eclipse IDE
Introdução
Mas porque reconfigurável? Processador reconfigurável Características do sistema podem ser adicionadas ou removidas com objetivo de performance ou mesmo de custo Conjunto de periféricos e mapa de endereçamento flexíveis Instruções personalizadas Geração automatizada de sistemas (SOPC Builder)
Arquitetura do processador Registradores uso geral ULA Interface para instruções personalizadas Controlador de Exceção Controlador de Interrupção Barramento de instruções e de dados Memória cache de instruções e de dados Módulo de debug JTAG
Arquitetura do processador
Arquitetura do processador Módulos do core do processador Implementação em hardware/software Registradores Supervisão e modos de permissão do usuário ULA Operações aritméticas, relacionais, lógicas e de deslocamento Instruções personalizadas Conexão com circuito externo que implemente a instrução
Arquitetura do processador Exceções e interrupções Um único endereço de exceção 32 interrupções externas habilitadas individualmente
Organização da Memória e I/O
Organização da Memória e I/O Não há “limitação” quanto à existência de periféricos e memória, no que tange: Tipo Tamanho Conexões As limitações são relativas ao sistema a ser desenvolvido
Organização da Memória e I/O Cache Melhorar a média de tempo de acesso à dispositivos Gerenciamento por software, permitindo “bypassar” a cache
Mapa de endereçamento Definidos no projeto Podem definir endereços para Reset Tratamento de exceções Break handler
Módulo JTAG Permite o teste de programas no chip, controlando remotamente a partir de um PC Facilidades: Carregamento de programas Início e fim de execução Uso de watchpoints e breakpoints Acesso à registradores e memória Coleta de dados em tempo-real
Modos de operação Modo supervisório Modo de usuário Modo debug
Tipos de exceção Interrupção por Hardware Trap (armadilha) Instruções não implementadas Exceções aninhadas
Modos de endereçamento suportados Endereçamento dos registradores Relativo Imediato (constantes) Indireto Absoluto
Conjunto de instruções Formato I <B←OP(A,IMM16)> Formato R <C←OP,OPX(A,B)> Formato J <OP(IMMED26)>
Suporte ao uso de periféricos Controladores DMA, SDRAM JTAG UART UART Timers Avalon Bus
Avalon Bus
Ambiente de Desenvolvimento NIOS II IDE Ferramentas (compilador - incluindo makefile, assember e linker) baseadas nos padrões GNU Simulador do conjunto de instruções Biblioteca para abstração de hardware (periféricos) Pilha TCP/IP e RTOS Exemplos de projeto