MINISTÉRIO DA EDUCAÇÃO

UNIVERSIDADE FEDERAL DE SANTA CATARINA

CENTRO TECNOLÓGICO

DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA

PROGRAMA DE ENSINO

1. Identificação

Disciplina:INE5439 - Sistemas Embarcados
Nível:Graduação
Carga Horária:72 horas-aula (Teórica: 56; Prática: 16)
Vigência:De 2009-1 até a presente data

2. 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.

3. Cursos Relacionados

4. Objetivos

4.1 Objetivo 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.

4.2 Objetivos 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.

5. Conteúdo Programático

  1. CONTEXTO DA COMPUTAÇÃO EMBARCADA [4 horas-aula]
    1. Aplicações de sistemas embarcados
    2. Requisitos de sistemas embarcados
    3. Systems-on-Chip (SoCs)
    4. Tendências tecnológicas
  2. ESPECIFICAÇÃO DE SISTEMAS EMBARCADOS [14 horas-aula]
    1. Linguagens para especificação
    2. Modelos de computação subjacentes
  3. HARDWARE PARA SISTEMAS EMBARCADOS [14 horas-aula]
    1. Interface de entrada: sensores, sample-hold, conversores A/D
    2. Interface de saída: conversores D/A, atuadores
    3. Alternativas de implementação para unidades de processamento programáveis e não-programáveis: processadores, DSPs, ASIPs, lógica reconfigurável, ASICs.
    4. Alternativas de implementação para elementos de memória embarcada (cache e ?scratch pad memory?) e externa (flash e DRAM).
  4. OTIMIZAÇÃO DE SISTEMAS EMBARCADOS [18 horas-aula]
    1. Funções-custo multi-objetivo e curvas de Pareto
    2. Exploração da hierarquia de memória
    3. Compressão de código
    4. Exploração de técnicas de compiladores-otimizadores
    5. Compiladores com redirecionamento automático
    6. Compiladores energeticamente conscientes
    7. Exploração de transformações de código
    8. Impacto da otimização nas garantias de tempo real
  5. GERENCIAMENTO DE EFICIÊNCIA ENERGÉTICA [4 horas-aula]
    1. Gerenciamento dinâmico de potência (DPM)
    2. Gerenciamento dinâmico via redução de tensão (DVS)
  6. METODOLOGIAS E FERRAMENTAS DE PROJETO [18 horas-aula]
    1. Particionamento hardware-software
    2. Co-projeto de hardware e software
    3. Projeto baseado em plataforma
      1. Níveis e estilos de descrição do sistema
    4. Refinamento do projeto de hardware
      1. Níveis e estilos de descrição de hardware
      2. Síntese comportamental
      3. Síntese lógica
    5. Co-verificação hardware-software
      1. Software dependente de hardware
      2. Suporte à co-verificação (geradores de código, simuladores e emuladores)
    6. Teste e projeto para testabilidade.

6. Bibliografia Básica

  1. Peter Marwedel, ?Embedded System Design?, Springer, 2006.

7. Bibliografia Complementar

  1. Sandro Rigo, Rodolfo Azevedo, Luiz Santos, ?Electronic System Level Design: an open-source approach, Springer, 2009.