Departamento de Informática e Estatística

Programas de Ensino
Visitante (Entrar)

Programa de Ensino 20091

Aprovado pelo Departamento em: 26-11-2008

  1. Identificação: Visualizar em PDF
    • Disciplina: INE5439 - Sistemas Embarcados
    • Carga horária: 72 horas-aula      Teóricas: 56      Práticas: 16
    • Período: Início da oferta da disciplina até a presente data
  2. Curso(s):
    • Ciências da Computação (208)
  3. Requisito(s):
    • Ciências da Computação (208)
      • INE5411 - Organização de Computadores I
  4. Ementa:
    • Especificação (requisitos, linguagens, níveis e estilos de descrição). Hardware: entrada e saída (sample-hold, conversores A/D e D/A, sensores e atuadores), unidades de processamento (microprocessadores, DSPs, ASIPs e lógica reconfigurável) e memórias (flash, cache e scratch pad). Eficiência energética: compiladores energeticamente conscientes e gerenciamento de potência (DVS e DPM). Compactação de código. Ferramentas de projeto de hardware e de software (simulador, síntese comportamental e lógica, gerador de código e depurador). Systems-on-Chip e co-projeto de hardware e software.
  5. Objetivo(s):
    • Geral: Apresentar os princípios de projeto e otimização de sistemas embarcados desde sua especificação até a implementação de seus componentes de hardware e software, passando pelo refinamento estrutural e comportamental ao longo de diferentes níveis e estilos de descrição.
    • Específicos:
      1. Introduzir linguagens de descrição de sistemas, de arquiteturas (ADLs) e de hardware (HDLs).
      2. Familiarizar os estudantes com as alternativas de implementação de sistemas embarcados (ASICs, ASIPs, FPGAS, cores programáveis e não-programáveis, SoCs).
      3. Destacar os principais requisitos de sistemas embarcados: desempenho, baixo consumo de energia e potência, restrições de tempo real, eficiência energética e código compacto.
      4. Introduzir metodologias de co-projeto de hardware e software.
      5. Familiarizar os estudantes com técnicas de síntese de hardware.
      6. Explorar técnicas para otimização de código voltadas à eficiência energética de sistemas embarcados.
      7. Apresentar os princípios básicos de gerenciamento de potência dinâmica a serem utilizados por sistema operacional embarcado.
  6. Conteúdo Programático:
    • CONTEXTO DA COMPUTAÇÃO EMBARCADA [4 horas-aula]
      • Aplicações de sistemas embarcados
      • Requisitos de sistemas embarcados
      • Systems-on-Chip (SoCs)
      • Tendências tecnológicas
    • ESPECIFICAÇÃO DE SISTEMAS EMBARCADOS [14 horas-aula]
      • Linguagens para especificação
      • Modelos de computação subjacentes
    • HARDWARE PARA SISTEMAS EMBARCADOS [14 horas-aula]
      • Interface de entrada: sensores, sample-hold, conversores A/D
      • Interface de saída: conversores D/A, atuadores
      • Alternativas de implementação para unidades de processamento programáveis e não-programáveis: processadores, DSPs, ASIPs, lógica reconfigurável, ASICs.
      • Alternativas de implementação para elementos de memória embarcada (cache e “scratch pad memory”) e externa (flash e DRAM).
    • OTIMIZAÇÃO DE SISTEMAS EMBARCADOS [18 horas-aula]
      • Funções-custo multi-objetivo e curvas de Pareto
      • Exploração da hierarquia de memória
      • Compressão de código
      • Exploração de técnicas de compiladores-otimizadores
      • Compiladores com redirecionamento automático
      • Compiladores energeticamente conscientes
      • Exploração de transformações de código
      • Impacto da otimização nas garantias de tempo real
    • GERENCIAMENTO DE EFICIÊNCIA ENERGÉTICA [4 horas-aula]
      • Gerenciamento dinâmico de potência (DPM)
      • Gerenciamento dinâmico via redução de tensão (DVS)
    • METODOLOGIAS E FERRAMENTAS DE PROJETO [18 horas-aula]
      • Particionamento hardware-software
      • Co-projeto de hardware e software
      • Projeto baseado em plataforma
        • Níveis e estilos de descrição do sistema
      • Refinamento do projeto de hardware
        • Níveis e estilos de descrição de hardware
        • Síntese comportamental
        • Síntese lógica
      • Co-verificação hardware-software
        • Software dependente de hardware
        • Suporte à co-verificação (geradores de código, simuladores e emuladores)
      • Teste e projeto para testabilidade.
  7. Bibliografia Básica:
    • Peter Marwedel, “Embedded System Design”, Springer, 2006.
  8. Bibliografia Complementar:
    • Sandro Rigo, Rodolfo Azevedo, Luiz Santos, “Electronic System Level Design: an open-source approach, Springer, 2009.