Upload
truongminh
View
216
Download
0
Embed Size (px)
Citation preview
Edna Barros ([email protected])
Ambientes de Ambientes de
de Sistemas Embarcadosde Sistemas Embarcados
Edna Barros ([email protected])
Centro de Informática – UFPE
Edna Barros ([email protected])
Metodologia de Hardware Metodologia de Hardware
Software CoSoftware Co--designdesign
Edna Barros ([email protected])
Centro de Informática – UFPE
TópicosTópicos
• Componentes de um sistema embarcado
• Desafios de Projeto:– Otimização das métricas
– Custo
– Time-to-market
Ambientes de Projeto de Sistemas Embarcados 3
– Time-to-market
• Tecnologias Essenciais– Processadores
– IC
– Projeto
TópicosTópicos
• Técnicas de Projeto
– Necessidade
• Gap de Produtividade
– Evolução
Ambientes de Projeto de Sistemas Embarcados 4
– Evolução
• Técnicas de hardware e de software
– Técnicas atuais de Projeto de Hardware
Sistemas Embarcados Sistemas Embarcados –– Visão Visão GeralGeral• Sistemas computacionais estão em quase todos
equipamentos
• Geralmente pensamos em computadores pessoais ( “desktop”) …– PC’s
Ambientes de Projeto de Sistemas Embarcados 5
– PC’s
– Laptops
– Mainframes
– Servidores
• Mas existe outros tipos de sistemas computacionais….– Bem mais comum….
Sistemas Embarcados Sistemas Embarcados –– Visão Visão GeralGeral• Sistemas Computacionais
Embarcados– Sistemas computacionais dentro de
equipamentos eletrônicos
– Dificil definição: semelhança com computadores pessoais
Computadores estão
aqui..
E aqui...
E mesmo aqui...
Ambientes de Projeto de Sistemas Embarcados 6
computadores pessoais
– Milhões de unidades produzidas anualmente
– Estimativa: 50 unidades por residência e por automóvel
Tais processadores
possuem alto volume de
produção e baixo custo.
Uma pequena lista de Sistemas Uma pequena lista de Sistemas EmbarcadosEmbarcados
Freios ABS
Camaras auto-foco
Lavadoras automáticas
Briquedos
Sistemas de Transmissão
Eletrônica de avião
Carregadores de bateria
Filmadoras
Modems
Decodificadores MPEG
Cartões de rede
Roteadores
Pagers
Copiadoras
Pontos de venda
Video games
Impressoras
Ambientes de Projeto de Sistemas Embarcados 7
E a lista continua….
Filmadoras
Telefones celulares
Telefones sem fio
Sistema de navegação
Camaras digitais
Disk drives
Leitoras de cartão
Instrumentos eletrônicos
Controle de Fábricas
Máquinas de Fax
Identificadores de digitais
Sistemas de segurança
Instrumentos medicos
Impressoras
Telefones via satélite
Scanners
Forno de micro-ondas
Reconhecedores de voz
Sistemas de som
Sistemas de teleconferencia
Televisores
Controladores de temperatura
TV set-top boxes
Vídeo cassete e DVD´s
Lavadoras e secadoras
Algumas características dos Algumas características dos Sistemas EmbarcadosSistemas Embarcados• Funcionalidade definida
– Executa um único programa repetetivamente
• Restrições mais rígidas– Baixo custo, baixo consumo de potência, pequenos, rápidos,
etc.
Ambientes de Projeto de Sistemas Embarcados 8
etc.
• Reativos e de tempo real…– Atua continuamente com o ambiente e reage a suas
mudanças
– Deve computar alguns resultados em tempo real (sem atrasos)
Exemplo de um Sistema Exemplo de um Sistema EmbarcadoEmbarcado
Microcontroller
CCD preprocessor Pixel coprocessorA2D
D2A
JPEG codec Multiplier/Accum
Digital camera chip
lens
CCD
Ambientes de Projeto de Sistemas Embarcados 9
DMA controller
Memory controller ISA bus interface UART LCD ctrl
Display ctrl
• Funcionalidade única
• Restrições de projeto críticas
• Reativa e de tempo real
Exemplo de um Sistema Exemplo de um Sistema EmbarcadoEmbarcado
Ambientes de Projeto de Sistemas Embarcados 10
Desafios de ProjetoDesafios de Projeto
• Objetivo principal:– Desenvolver uma implementação com a desejada
funcionalidade
• Desafios de projeto:– Otimização “simultânea” das diferentes métricas de
Ambientes de Projeto de Sistemas Embarcados 11
– Otimização “simultânea” das diferentes métricas de projeto
• Métrica de Projeto:– Uma característica mensurável de uma implementação
• Métricas mais usadas:
– Custo unitário: custo para produzir cada unidade do sistema (excluindo os custos de projeto – não recorrentes)
– Custo NRE (Non-Recurring Engineering cost): custo de projeto do sistema
– Tamanho
Desafios de ProjetoDesafios de Projeto: Otimização das : Otimização das Métricas de ProjetoMétricas de Projeto
Ambientes de Projeto de Sistemas Embarcados 12
– Tamanho
– Desempenho: tempo de execução ou taxa de processamento do sistam
– Potência
– Flexibilidade: a habilidade de mudar a funcionalidade sem grande aumento do custo NRE
• Métricas mais usadas:
– Tempo de prototipação
– Time-to-market
– Mantenabilidade: a habilidade de modificar o sistema após
Desafios de ProjetoDesafios de Projeto: Otimização das : Otimização das Métricas de ProjetoMétricas de Projeto
Ambientes de Projeto de Sistemas Embarcados 13
– Mantenabilidade: a habilidade de modificar o sistema após início da produção
– Corretude, segurança, etc...
• Conhecimento de software and hardware é necessário para otimização das métricas
– O projetista deve conhecer as várias tecnologias para
SizePerformance
Power
Otimização das Métricas de Otimização das Métricas de Projeto: ConflitoProjeto: Conflito
Ambientes de Projeto de Sistemas Embarcados 14
as várias tecnologias para escolher a melhor implementação para uma dada aplicação e restrições de projeto.
NRE cost
Microcontrolle
r
CCD preprocessor Pixel coprocessorA2D
D2A
JPEG codec
DMA controller
Memory controller ISA bus interface UART LCD ctrl
Display ctrl
Multiplier/Accum
Digital camera chip
lens
CCD
Hardware
Software
• Area = 1/2 * base * height
– Sem atraso = 1/2 * 2W * W
– Com atraso = 1/2 * (W-D+W)*(W-D)
• Percentual de perda nos lucros
Peak revenue
Peak revenue from
delayed entry
Market fall
On-time
Rev
enues
($)
TimeTime--toto--market:market: uma métrica uma métrica críticacrítica
Ambientes de Projeto de Sistemas Embarcados 15
• Percentual de perda nos lucros= (D(3W-D)/2W2)*100%
• Alguns exemplos:
On-time Delayed
entry entry
Market rise Market fall
W 2W
Time
D
Delayed
Rev
enues
($)
– Lifetime 2W=52 wks, delay D=4 wks
– (4*(3*26 –4)/2*26^2) = 22%
– Lifetime 2W=52 wks, delay D=10 wks
– (10*(3*26 –10)/2*26^2) = 50%
Custo Unitário de Custo Unitário de NRENRE
• Custos:
– Custo total = custo NRE + custo unit. * # de unids.
– Custo por prod. = custo total / # de unids.
= (custo NRE / # de unids) + custo unit.
Ambientes de Projeto de Sistemas Embarcados 16
• Exemplo
– NRE=$2000, unit.=$100
– Para 10 unidades
– Custo total = $2000 + 10*$100 = $3000
– Custo por produto = $2000/10 + $100 = $300
• Comparando diferentes tecnologias
– Tecnologia A: NRE=$2,000, unit=$100
– Tecnologia B: NRE=$30,000, unit=$30
– Tecnologia C: NRE=$100,000, unit=$2
Custo Unitário de Custo Unitário de NRENRE
Ambientes de Projeto de Sistemas Embarcados 17
$0
$40,000
$80,000
$120,000
$160,000
$200,000
0 800 1600 2400
A
B
C
$0
$40
$80
$120
$160
$200
0 800 1600 2400
Number of units (volume)
A
B
C
Number of units (volume)
tota
l co
st (
x100
0)
pe
r p
rod
uc
t c
ost
• But, must also consider time-to-market
Tecnologias Essenciais para Tecnologias Essenciais para Sistemas EmbarcadosSistemas Embarcados• Tecnologia
– A maneira de realizar uma tarefa, especialmente usando processos, métodos ou conhecimento
• Tecnologias essenciais para sistemas embarcados
– Tecnologia dos Processadores
Ambientes de Projeto de Sistemas Embarcados 18
– Tecnologia dos Processadores
– Tecnologia para IC
– Tecnologia de Projeto
Tecnologia dos Processadores
• Arquitetura do componente de computação que implementa a funcionalidade desejada
• Não precisam ser programáveis
DatapathController
Control index
DatapathController
Control Registers
DatapathController
Control logic
Ambientes de Projeto de Sistemas Embarcados 19
Single-purpose (“hardware”)
Control
logic
State
register
Data
memory
index
total
+
IR PC
Register
file
General
ALU
Program
memory
Assembly code
for:
total = 0
for i =1 to …
Control
logic and
State register
Data
memory
General-purpose (“software”) Application-specific
Registers
Custom
ALU
Program memory
Assembly code
for:
total = 0
for i =1 to …
Control logic
and State
register
Data
memory
IR PC
Tecnologia de ProcessadoresTecnologia de Processadores
• Processadores podem variar na adequação ao problema
FuncionalidadeDesejada
Ambientes de Projeto de Sistemas Embarcados 20
Processador de uso geral
Processador de propósito
único
Processador de aplicação específica
Desejada
Processadores de uso geralProcessadores de uso geral
• Programados via software
• Memória para dados e programa
• Vantagens
– Pequenos time-to-market e custo não recorrente
IR PC
Register
file
General
ALU
DatapathController
Control
logic and
State register
Ambientes de Projeto de Sistemas Embarcados 21
– Alta flexibilidade
• Desvantagens
– Necessidade de adicionar dispositivos
– Alto consumo
– Baixo desempenho
• Ex: PowerPC, Pentium, Z80
IR PC ALU
Program
memory
Assembly code
for:
total = 0
for i =1 to …
Data
memory
Processadores
• Processadores embarcados (embedded)– Proc. de uso geral adaptados para sistemasembarcados:
• Dispositivos internos
• Menor potência
Ambientes de Projeto de Sistemas Embarcados 22
• Menor potência
• Facilidade para desenvolver software
Produto Clock
(MHz)
No.
I/O
Portas
Seriais
Timers/
Contad.
Canais
DMA
WDT Controle
Interrupção
Refresh
DRAM
80386DX 16,20,25,33 0 Não 0 0 Não Não Não
80386EX 25 24 3 3 2 Sim Sim (8259A) Sim
Processadores de Aplicação EspecíficaProcessadores de Aplicação Específica(ASIPs)(ASIPs)
• Processador programável otimizado para uma classe de problema
• Características– Memória de programa
– U.E. otimizada IR PC
Registers
Custom
ALU
DatapathController
Control
logic and
State register
Ambientes de Projeto de Sistemas Embarcados 23
– U.E. otimizada
– Periféricos especiais
• Vantagem– Bom compromisso entre flexibilidade,
velocidade, tamanho e potência
• Ex: Microcontroladores (ex.Nitron, 8051)
DSPs
Program
memory
Assembly code
for:
total = 0
for i =1 to …
Data
memory
Processadores de propósito únicoProcessadores de propósito único
• Circuito digital projetado para executar um único algoritmo
• Características– Contém apenas o necessário ao algoritmo
– Não tem memória de programa
DatapathController
Control
logic
State
register
index
total
+
Ambientes de Projeto de Sistemas Embarcados 24
– Não tem memória de programa
• Vantagens– Projeto sob encomenda pode obter o
melhor do tamanho, potencia, velocidade, mas perde em flexibilidade
• Ex: co-processadores e periféricos
Data
memory
Seleção de ProcessadoresSeleção de Processadores
Processor Clock speed Periph. Bus Width MIPS Power Trans. Price
General Purpose Processors
Intel PIII 1GHz 2x16 K L1, 256K L2, MMX
32 ~900 97W ~7M $900
IBM PowerPC 750X
550 MHz 2x32 K L1, 256K L2
32/64 ~1300 5W ~7M $900
MIPS R5000
250 MHz 2x32 K 2 way set assoc.
32/64 NA NA 3.6M NA
Ambientes de Projeto de Sistemas Embarcados 25
StrongARM SA-110
233 MHz None 32 268 1W 2.1M NA
Microcontroller
Intel 8051
12 MHz 4K ROM, 128 RAM, 32 I/O, Timer, UART
8 ~1 ~0.2W ~10K $7
Motorola 68HC811
3 MHz 4K ROM, 192 RAM, 32 I/O, Timer, WDT, SPI
8 ~.5 ~0.1W ~10K $5
Digital Signal Processors
TI C5416 160 MHz 128K, SRAM, 3 T1 Ports, DMA, 13 ADC, 9 DAC
16/32 ~600 NA NA $34
Lucent DSP32C
80 MHz 16K Inst., 2K Data, Serial Ports, DMA
32 40 NA NA $75
Sources: Intel, Motorola, MIPS, ARM, TI, and IBM Website/Datasheet; Embedded Systems Programming, Nov. 1998
Sources: Intel, Motorola, MIPS, ARM, TI, and IBM Website/Datasheet; Embedded Systems Programming, Nov. 1998
Tecnologia de ICTecnologia de IC
• Maneira de mapear uma implementação digital (gate-level) em um circuito integrado – IC: Integrated circuit, ou “chip”
– Tecnologias de IC diferem no nível especialização do projeto
– IC´s possuem inúmeros níveis
Ambientes de Projeto de Sistemas Embarcados 26
– IC´s possuem inúmeros níveis
– Tecnologias de IC diferem com respeito a quem constrói os níveis e quando
source drainchannel
oxide
gate
Silicon substrate
IC package IC
• Tipos de tecnologias
– Full-custom/VLSI
– Semi-custom ASIC (gate array and standard cell)
– PLD (Programmable Logic Device)
Tecnologia de ICTecnologia de IC
Ambientes de Projeto de Sistemas Embarcados 27
– PLD (Programmable Logic Device)
FullFull--custom/VLSIcustom/VLSI
• Todos os níveis são otimizados para uma implementação particular de um sistema embarcado– Posicionamento dos transistores
– Dimensionamento dos transistores
– Roteamento dos fios
Ambientes de Projeto de Sistemas Embarcados 28
– Roteamento dos fios
• Vantagens– Excelente desempenho, pequeno tamanho, baixa potência
• Desvantagens– Custo NRE alto (e.g., $300k), time-to-market bastante
longo
SemiSemi--customcustom
• Níveis inferiores são completa ou parcialmente construídos– Projetistas devem rotear os fios ou posicionar alguns
blocos
• Vantagens
Ambientes de Projeto de Sistemas Embarcados 29
• Vantagens– Bom desempenho, bom tamanho, custo NRE menor que full-
custom (de $10k a $100k)
• Desvantagens– Ainda requer semanas ou meses de desenvolvimento
SemiSemi--custom: IPcustom: IP--core do 8051core do 8051
Ambientes de Projeto de Sistemas Embarcados 30
PLD (Programmable Logic Device)PLD (Programmable Logic Device)
• Todos os níveis já existem– Projetistas podem comprar como IC
– Conexões são criadas ou destruídas para implementar funcionalidade desejada.
– Field-Programmable Gate Array (FPGA) são os mais populares
Ambientes de Projeto de Sistemas Embarcados 31
populares
• Vantagens– Baixo custo NRE
• Desvantagens– Grandes, caros ($30 por unidade), alto consumo de
potência, lentos
FPGA: bloco básicoFPGA: bloco básicoSaída
Entrada
Look-upTable
ABC
X
Y
Ambientes de Projeto de Sistemas Embarcados 32
TableCD
clock
FPGA: estrutura geralFPGA: estrutura geral
Blocos BásicosBlocos de I/O
Ambientes de Projeto de Sistemas Embarcados 33
Interconexões
FPGAFPGA
CustoCusto
ASICASICFPG AFPGA
Ambientes de Projeto de Sistemas Embarcados 34
Volum e de ProduçãoVolum e de Produção
SystemSystem--OnOn--AA--ChipChip
• Uso de núcleos de processadores (cores)
• Baixo custo de fabricação em série
• Alta qualidade
• Diminuição de defeitos de montagem e fabricação em geral
Ambientes de Projeto de Sistemas Embarcados 35
• Diminuição de defeitos de montagem e fabricação em geral
• Baixa potência consumida
• Pequeno tamanho
• Alta velocidade
SystemSystem--onon--ChipChip
Micro-
proc. IC
Memory
IC
Microprocessor core
Ambientes de Projeto de Sistemas Embarcados 36
IC
proc. IC IC
Peripher.
IC
FPGA
IC
BoardPeripheral core
Lei de MooreLei de Moore
• Uma tendência que se mantém e foi prevista em 1965 por Gordon Moore
Número de transistores praticamente dobra a cada 18 meses
10,000
1,000
Ambientes de Projeto de Sistemas Embarcados 39
1,000
100
10
1
0.1
0.01
0.001
Transistores por chip
(em milhões)
Note:
logarithmic scale
Lei de Moore:Lei de Moore:
Ilustração GráficaIlustração Gráfica
1981 1984 1987 1990 1993 1996 1999 2002
10.000transistores
150.000.000transistores
Ambientes de Projeto de Sistemas Embarcados 40
Um chip de 2002 pode conter 15.000 chips de 1981
Produtividade de ProjetoProdutividade de Projeto
100,000
10,000
1,000
100
10
Pro
du
tiv
ida
de
(K)
Tra
ns.
/Pes
soa
–M
ës
Ambientes de Projeto de Sistemas Embarcados 41
1
0.1
0.01
1983
1987
1989
1991
1993
1985
1995
1997
1999
2001
2003
2005
2007
2009
Pro
du
tiv
ida
de
(K)
Tra
ns.
/
Produtividade de Projeto X Tam.ChipProdutividade de Projeto X Tam.Chip
• O número de transistores por chip aumentou muito mais que a capacidade de projeto
• Maior chip em 1981 requeria 100 homem.mês– 10.000 transistores / 100 transistores / mês
• Maior chip em 2002 requeria 30.000 homem.mês– 150.000.000 / 5.000 transistores / mês
• Custo aumentou de $1M para $300M
Ambientes de Projeto de Sistemas Embarcados 42
• Custo aumentou de $1M para $300M10,000
1,000
100
10
1
0.1
0.01
0.001
Transistores/chip(milhões)
100,000
10,000
1000
100
10
1
0.1
0.01
Produtividade(K)
Trans./Homem.Mês
Capacidade do CI
produtividade
Gap
The mythical manThe mythical man--monthmonth
• O problema é pior na realidade
• O aumento da equipe pode, em algum momento, tornar o projeto mais lento, devido a complexidade de gerenciamento e comunicação
• Esse efeito é conhecido na comunidade de software como “the mythical man-month” (Brooks 1975)
Ambientes de Projeto de Sistemas Embarcados 43
10 20 30 400
10000
20000
30000
40000
50000
60000
43
24
19
1615
1618
23
Tempo
Duração em meses
Designers
Tecnologia de ProjetoTecnologia de Projeto
• A maneira de converter uma funcionalidade em implementação
System
specificationCompilation/Synthesis:
Automates exploration and
insertion of implementation
details for lower level.
Compilation/
Synthesis
Libraries/
IP
Test/
Verification
System
synthesis
Hw/Sw/
OS
Model simulat./
checkers
Ambientes de Projeto de Sistemas Embarcados 44
Libraries/IP: Incorporates
pre-designed implementation
from lower abstraction level
into higher level.
Behavioral
specification
RT
specification
Logic
specification
To final implementation
details for lower level.
Test/Verification: Ensures
correct functionality at each
level, thus reducing costly
iterations between levels.
Behavior
synthesis
RT
synthesis
Logic
synthesis
Cores
RT
components
Gates/
Cells
Hw-Sw
cosimulators
HDL simulators
Gate
simulators
• Projeto de sistemas embarcados
– Definição da funcionalidade
– Conversão da funcionalidade em implementação enquanto:• Satisfazendo restrições de projeto
• Otimizando outras métricas
• Dificuldades
Tecnologia de ProjetoTecnologia de Projeto
Ambientes de Projeto de Sistemas Embarcados 45
• Dificuldades
– Complexidade da Funcionalidade• Milhões de possiveis implementações
• Métricas relacionadas e que competem
– Gap de Produtividade• Menos que 10 linhas de código ou 100 transistores produzidos por
dia
Melhorando a ProdutividadeMelhorando a Produtividade
• Tecnologias de Projeto
• Foco em tecnologias com visão unificada de hardware e software
– Automação• Programas substituem projeto manual
• Compilação / Síntese
Specification
Automation
Ambientes de Projeto de Sistemas Embarcados 46
• Compilação / Síntese
– Reuso• Componentes pré-definidos
• IP-cores
• Processadores de propósito geral e de propósito único em um mesmo IC
– Verification• Garantir corretude e completude de cada
etapa de projeto
• Co-simulação Hardware/software
ReuseImplementation
Verification
Compilação / SínteseCompilação / Síntese
Register transfers
Sequential program code (e.g., C, VHDL)
Compilers
(1960s,1970s)
Behavioral synthesis
(1990s)
Ambientes de Projeto de Sistemas Embarcados 47
Implementation
Assembly instructions
Machine instructions Logic gates
Logic equations / FSM's
Register transfers(1960s,1970s)
Assemblers, linkers
(1950s, 1960s)
RT synthesis
(1980s, 1990s)
Logic synthesis
(1970s, 1980s)
Microprocessor plus program
bits
VLSI, ASIC, or PLD
implementation
IndependIndependência de Tecnologiasência de Tecnologias
• Compromisso básico
– Geral vs. customizado
– Tecnologia do processador vs. Tecnologia de implementação
General-
purpose ASIPSingle-
purpose
Ambientes de Projeto de Sistemas Embarcados 48
purpose
processor
ASIP purpose
processor
Semi-customPLD Full-custom
General,
providing improved:
Customized,
providing improved:
Power efficiency
Performance
Size
Cost (high volume)
Flexibility
Maintainability
NRE cost
Time- to-prototype
Time-to-market
Cost (low volume)
ResumoResumo
• Desafios de Projeto:– Otimização das métricas
– Custo
– Time-to-market
• Tecnologias Essenciais
Ambientes de Projeto de Sistemas Embarcados 49
• Tecnologias Essenciais– Processadores:
• Propósito geral
• Domínio Específico
• Propósito único
– IC
– Projeto
ResumoResumo
• Técnicas de Projeto
– Lei de Moore e Gap de Produtividade
– As técnicas de hardware e de software suportam o mesmo nível de abstração
– Técnicas atuais de Projeto de Hardware
Ambientes de Projeto de Sistemas Embarcados 50
– Técnicas atuais de Projeto de Hardware
• Síntese
• Reuso
• Uso de plataformas pré-definidas
Programa do CursoPrograma do Curso
• Introdução
• Processadores de Aplicação Específica: Hardware
• Processadores de propósito Geral: Software
• Periféricos
Ambientes de Projeto de Sistemas Embarcados 51
• Periféricos
• Memória
• Interfaces
• Ferramentas de Apoio a Projetos
AvaliaçãoAvaliação
• Unidade 1:– prova
– lista de exercício
– seminários
Ambientes de Projeto de Sistemas Embarcados 52
• Unidade 2– prova
– projeto
– seminários
BibliografiaBibliografia
• Embedded System Design: A Unified Hardware/Software Introduction– Frank Vahid and Tony Givargis, John Wiley and Sons, 2002
• Embedded System Design: Modeling, Synthesis, Verification– Gajski, Abdi, Gerstlauer and Schirner, 2009
Ambientes de Projeto de Sistemas Embarcados 53
– Gajski, Abdi, Gerstlauer and Schirner, 2009
• Introduction to Embedded Systems– Edward Lee and Sanjit Seshia, 2010