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
CIÊNCIAS DA COMPUTAÇÃO (208) - Currículo: 2007-1 (Optativa)
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:
Introduzir linguagens de descrição de sistemas, de arquiteturas (ADLs) e de hardware (HDLs).
Familiarizar os estudantes com as alternativas de implementação de sistemas embarcados (ASICs, ASIPs, FPGAS, cores programáveis e não-programáveis, SoCs).
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.
Introduzir metodologias de co-projeto de hardware e software.
Familiarizar os estudantes com técnicas de síntese de hardware.
Explorar técnicas para otimização de código voltadas à eficiência energética de sistemas embarcados.
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
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.
6. Bibliografia Básica
Peter Marwedel, ?Embedded System Design?, Springer, 2006.
7. Bibliografia Complementar
Sandro Rigo, Rodolfo Azevedo, Luiz Santos, ?Electronic System Level Design: an open-source approach, Springer, 2009.