200 likes | 352 Views
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
E N D
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
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 • 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 • 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
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