SlideShare uma empresa Scribd logo
1 de 146
Introdução aos
Sistemas Embarcados
Sergio Cavalcante
Centro de Informática – UFPE
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 2
Programa
• Introdução aos sistemas embarcados
• O que são?
• Arquitetura básica de um S.E.
• Tecnologias empregadas
• Metodologias de projeto
• Arquiteturas Padrão
• Sistemas operacionais de tempo real
Introdução aos
Sistemas Embarcados
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 4
Intro. a Sistemas Embarcados
• Visão geral
• Projeto e Arquitetura
• Visão geral
– Áreas de aplicação
– Características
– Arquitetura básica
– Mercado
• Projeto e Arquitetura
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 5
SE::Visão Geral::
Sistemas Embarcados
• São sistemas computacionais que estão inseridos em
máquinas ou em sistemas maiores
• Embutidos em equipamentos eletrônicos:
– telefones celulares, vídeo-cassete, forno
microondas,carros, automação de escritório....
• Encontrado em quase todas as aplicações que
necessitam de algum tipo de controle....
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 6
SE::Visão Geral::
Áreas de Aplicação
• produtos de consumo:
– telefones celulares, pagers, câmaras digitais,
vídeo-cassete, vídeo games portáteis,
calculadores, etc;
• eletrodomésticos:
– forno de microondas, secretárias eletrônicas,
equipamentos de segurança, termostatos,
máquinas de lavar e sistemas de iluminação;
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 7
SE::Visão Geral::
Áreas de Aplicação
• Automação de escritório:
– máquinas de fax, copiadoras, impressoras e
scanners;
• Automóveis:
– controle de transmissão, injeção eletrônica,
suspensão ativa, freio ABS.
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 8
SE::Visão Geral::Aplicações
Automóveis - Volvo S80
•2 Redes CAN
•250Kbps
•125Kbps
•4 Redes baixa velocidade
•10,4Kbps
•18 ECUs
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 9
SE::Visão Geral::
Características
• Funcionalidade única, executada repetidamente
• Entrada/Saída intensivo
• Executa tarefas em paralelo
• Restrições de projeto mais rígidas:
– Custo, tamanho, peso, desempenho, potência dissipada, etc.
• Tempo real:
– O tempo para fornecer resultados é determinado pelo
tempo que o ambiente pode esperar.
– Sistemas em que têm aspectos temporais na especificação.
• Sistemas reativos
– Reagem continuamente a estímulos externos
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 10
SE::Visão Geral::
Arquitetura Básica
• Arquitetura de Hardware
– Forte comunicação com o ambiente
– Forte restrição de recursos, tamanho, potência, peso...
• Arquitetura de Software
– Tratamento rápido de interrupção
– Sistemas operacionais de tempo real
– Softwares eficientes em tamanho e desempenho
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 11
SE::Visão Geral::
Arquitetura de Hardware
ASIC DSP
ASIP uP uC Mem
Código
DSP
Código
uP
RTOS
A/D D/A
Sensores Atuadores
Eventos
Eventos
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 12
SE::Visão Geral::Arquitetura
Exemplo: Câmera Digital
A/D D/A
CCD preprocessor Pixel coprocessor
Microcontroller
JPEG codec
DMA controller
Memory controller ISA bus interface UART
Display ctrl
LCD ctrl
Multiplier/Accum.
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 13
SE::Visão Geral::Arquitetura de Hardware
Comparação com PCs
Característica PC Embed. Sys
clock 180MHz – 2,2 GHz 500KHz – 300 MHz
Instruções/seg. 400M – 8B 1M – 200M
Potência 10 – 250 W .5 – 4W
Transistores 5 – 1000 M 10K – 5 M
Custo $200 – $2000 $0.5 – $100
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 14
SE::Visão Geral::Arquitetura de Software
Exemplo: Tempo de Boot
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 15
SE::Visão Geral::Arquitetura de Software
Exemplo: Mudança de Contexto
• MontaVista Linux Kernel 2.4.17
• Pior caso 436us (vs. 1743us)
• 99.9% < 195us (vs. 1420us)
Fonte: Bill Weinberg, “Linux and XScale for Wireless
Consumer Electronics Devices”, IDF’Fall03
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 16
SE::Visão Geral::
Mercado
• Crescimento das aplicações
– Automóvel:
• 1995: U$ 1237
• 2000: U$ 2126
• 2002: 15% a 30% do custo de um veículo é com eletrônica
– Domiciliar:
• 35 sistemas por residência em 1994
• 240 sistemas em 2000
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 17
SE::Visão Geral::
Mercado
• Crescimento de vendas
– U$:
• ASIC´s + embed. Micros: U$ 60 B.
• PC´s: 34 B.
– Unidades:
• Embed. Micros: 3 Billion
• PC micros: 100 million
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 18
SE::Visão Geral::
Mercado Microcontroladores
0
2
4
6
8
10
12
14
16
18
20
1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
US$ billions
Total Growth (inc. DSPs)
Up to 16-bit
Up to 8-bit
Up to 4-bit
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 19
SE::Visão Geral::
Time-to-market
• Redução do “time-to-market”
– Maior competitividade de mercado
– Redução na janela de mercado dos produtos
Tempo
Time-to-
market
Concepção
do sistema
Lucros
(dólares)
Tempo de vida
Atraso
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 20
Exame 1
• O que são Sistemas Embarcados?
• O que é um Sistema de Tempo Real?
• O que são Sistemas Reativos?
• Você diria que todo S.E. é também um Sistema de Tempo Real?
E é um Sistema Reativo?
• É fundamental a execução de tarefas em paralelo em um S.E.?
Porquê?
• Como você compara o mercado de S.E. em relação ao de desktops?
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 21
Intro. a Sistemas Embarcados
• Visão geral
– Áreas de aplicação
– Características
– Arquitetura básica
– Mercado
• Projeto e Arquitetura
• Visão geral
• Projeto e Arquitetura
• Visão geral
• Projeto e Arquitetura
– Metodologia de projeto
– Hardware
– Software
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 22
SE::Projeto & Arquitetura
Metodologia de Projeto
• Principais diferenças entre o projeto de S.E. e
projeto de aplicações para desktops
– Requisitos não-funcionais são fundamentais: preço,
tamanho, peso, potência,...
– Flexibilidade: plataforma não definida, vários tipos de
S.O., controle total da máquina.
– Grande preocupação com previsibilidade no uso de recursos
– Sistema muito restrito: eficiência no uso de recursos é
fundamental
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 23
SE::P & A::Metodologia de Projeto
Exemplo
• Projeto de um controle remoto de televisão (infra-
vermelho)
– Controle simples com 3 botões:
• Liga/desliga
• Seleção de canais
– Opera com bateria
– Deve ser leve
– Controla a televisão por infravermelho
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 24
SE::P & A::Metodologia de Projeto
Exemplo: Restrições
• Protocolo de comunicação com a televisão
– Proprietário
– Uso de ROM fornecida pelo cliente
• Satisfazer as especificações temporais fornecidas
pelo cliente:
– Código de assinatura
– Comando
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 25
SE::P & A::Metodologia de Projeto
Exemplo: Requisitos do cliente
• Funcionamento a Bateria:
– 2 baterias AAA
– Duração: 10.000 pressões nos botões
• Características do produto final:
– Peso < 100 gramas
– Dimensão: 10cm X 5cm X 1.5 cm
– Material: plástico de alta densidade
– Botão liga/desliga: vermelho e circular
– Botão canais: preto e quadrado
– Deve ser robusto o suficiente para cair de 1,5 metros sem
danificar
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 26
SE::P & A::Metodologia de Projeto
Exemplo: Requisitos do cliente
• Características do produto final:
– Sinais de infravermelho transmitidos conforme
especificação do cliente
– Controle deve funcionar a 10 metros da TV
quando posicionado até 45 graus da TV e 20 graus
do sensor
– O sinal de infravermelho deve ser transmitido até
20 mseg após botão pressionado
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 27
SE::P & A::Metodologia de Projeto
Exemplo: Definição do Hw e Sw
• Processador:
– Microcontrolador de 8 bits
• Sistema Operacional:
– Não há necessidade
• Linguagem de programação:
– C
• Bibliotecas de software:
– Nenhuma
• Componentes de Hardware:
– Botões
– LED infravermelho
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 28
• Como o sistema vai satisfazer requerimentos do usuário dadas
as restrições de projeto
– Revisar a análise
– Especificar componentes de hardware
– Definir Interface de hardware
– Especificar subsistemas de software
– Definir interfaces de software
– Especificar processos de início e final
– Especificar tratamento de erros
– Verificar resultados da etapa de design
SE::P & A::Metodologia de Projeto
Requisitos do cliente
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 29
Hardware
Algoritmo
Layout
Program Convolution
SEQ i=0 FOR 2
PAR
IF (x[i]>= 0 c:= x[i],
x[i]<0 c:= x[i]/2)
IF (x[i+1]>= 0 d:= x[i+1],
x[i+1]<0 d:= x[i+1]/2)
PAR j=0 FOR 4
e[j]:= x[f(i,j)]
PAR
w := k*e[i]
PAR j= 0 FOR 4
y[j] := y[j] + e[j]*(c+d)
Características
- alto desempenho
- pequeno tamanho
- alto custo
- pouco flexível
Hardware
SE::P & A::Metodologia de Projeto
Alternativas de implementação
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 30
Software
Program Convolution
SEQ i=0 FOR 2
PAR
IF (x[i]>= 0 c:= x[i],
x[i]<0 c:= x[i]/2)
IF (x[i+1]>= 0 d:= x[i+1],
x[i+1]<0 d:= x[i+1]/2)
PAR j=0 FOR 4
e[j]:= x[f(i,j)]
PAR
w := k*e[i]
PAR j= 0 FOR 4
y[j] := y[j] + e[j]*(c+d)
Uso de componentes
de prateleira
(off-the-shelf)
Características
- baixo custo
- flexibilidade
- desempenho
- tamanho
Software
SE::P & A::Metodologia de Projeto
Alternativas de implementação
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 31
Program Convolution
SEQ i=0 FOR 2
PAR
IF (x[i]>= 0 c:= x[i],
x[i]<0 c:= x[i]/2)
IF (x[i+1]>= 0 d:= x[i+1],
x[i+1]<0 d:= x[i+1]/2)
PAR j=0 FOR 4
e[j]:= x[f(i,j)]
PAR
w := k*e[i]
PAR j= 0 FOR 4
y[j] := y[j] + e[j]*(c+d)
SW
HW
HW
Microprocessador
Circuitos
específicos
Hardware/Software
SE::P & A::Metodologia de Projeto
Alternativas de implementação
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 32
Passado
Alto
Custo
System specification
Exploration
Sw design
Implement, Integrate and test
Proc.
Inf. Spec.
ASIC
Inf. Spec.
ASIC
Inf. Spec.
Hw design
Proc.
C code
ASIC
RTL strc.
ASIC
RTL strc.
SE::P & A::Metodologia de Projeto
Processo de Desenvolvimento
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 33
Presente System specification
Exploration
Sw synthesis Highlevel synthesis
Compilation Logic synthesis Physical design
Proc.
Inf. Spec.
ASIC
Inf. Spec.
ASIC
Inf. Spec.
Memory
Variables.
Proc.
C code
ASIC
RTL strc.
ASIC
RTL strc.
Memory
Cosimulation
SE::P & A::Metodologia de Projeto
Processo de Desenvolvimento
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 34
Presente/Futuro
Allocation Partitioning Estimation
Sw synthesis Highlevel synthesis
Compilation Logic synthesis Physical design
Proc.
Inf. Spec.
ASIC
Inf. Spec.
ASIC
Inf. Spec.
Memory
Variables.
Proc.
C code
ASIC
RTL strc.
ASIC
RTL strc.
Memory
Cosimulation
Behavior1 Behavior2
Y=sqrt(x)
X = x+1
Behavior3
For I in 1,100
m(I)=n(I)+1
Memories Interfacing Arbitration Generation
Hw/Sw
Co-design
SE::P & A::Metodologia de Projeto
Processo de
Desenvolvimento
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 35
Exame 2
• O que diferencia o projeto de S.E. do projeto de aplicativos para
computadores?
• Mencione pelo menos 5 restrições de projeto comuns em S.E.?
• Quais as vantagens e desvantagens de usar Software e/ou Hardware
para implementar um S.E.?
• O que vem mudando na forma de projetar S.E. ao longo do tempo?
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 36
Intro. a Sistemas Embarcados
• Visão geral
• Projeto e Arquitetura
– Metodologia de projeto
– Hardware
– Software
• Visão geral
• Projeto e Arquitetura
– Metodologia de projeto
– Hardware
– Software
• Visão geral
• Projeto e Arquitetura
– Metodologia de projeto
– Hardware
• Processadores
• Memória
• Periféricos
– Software
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 37
SE::Projeto & Arquitetura::Hardware
Dispositivos Processadores
• Transformam, movem dados, tomam decisões e/ou
executam ações.
• Não precisam ser programáveis
• Tipos:
– Processadores de uso geral
– Processadores de Aplicação Específica
– Processadores de propósito único
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 38
SE::P & A::Hw::Processadores
Tecnologia
Processadores variam na adequação ao problema
Processador
de uso geral
Processador
de propósito
único
Processador de
aplicação
específica
Funcionalidade
Desejada
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 39
SE::P & A::Hw::Processadores
Processadores de uso geral
• Programados via software
• Memória para dados e
programa
• Vantagens
– Pequenos time-to-market e
custo não recorrente
– Alta flexibilidade
• Ex: PowerPC, Pentium, Z80
+ + * /
Memória Disp. E/S
Processador
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 40
SE::P & A::Hw::Processadores de Uso Geral
Processadores p/ desktops
• Facilidade para desenvolvimento de software
• Necessário adicionar muitos dispositivos
auxiliares
• Conjunto de instruções não ideal
• Alto consumo de energia
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 41
SE::P & A::Hw::Processadores de Uso Geral
Processadores Embarcados
• Proc. de uso geral adaptados para sistemas
embarcados:
– Dispositivos internos
– 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
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 42
SE::P & A::Hw::Processadores
Proc. de Aplicação Específica (ASIPs)
• Processador programável otimizado para uma classe
de problema
• Características
– Memória interna
– Unidade de Execução otimizada
– Periféricos especiais internos
• Vantagem
– Bom compromisso entre flexibilidade, velocidade, tamanho
e potência
• Ex: Microcontroladores (ex.Nitron, 8051)
DSPs (Digital Signal Processors)
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 43
SE::P & A::Hw::Processadores
Proc. de Aplicação Específica (ASIPs)
• Projeto de ASIPs:
– O ASIP e seu compilador são projetados em
paralelo (Hw-Sw co-design)
– Melhor escolha de implementação de instruções
(em hardware ou em software)
43
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 44
SE::P & A::Hw::Processadores::ASIPs
Microcontroladores
• Não há consenso sobre a diferença de
microcontroladores e processadores embarcados
• Nossa definição:
– microcontroladores não são derivados de famílias de
processadores de propósito geral e têm, normalmente, um
poder de processamento menor.
• Para diversificar as opções, lançam-se famílias de
microcontroladoes
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 45
SE::P & A::Hw::Processadores::ASIPs::Microcontroladores
Família Nitron
• Lançada pela Motorola Semicondutores (Brasil) em
setembro/2002
• Vendeu mais de 1 milhão de unidades até dez/2002
• Mais de 40 milhões encomendados
• Prêmio "Product of the Year" como melhor
lançamento do ano de 2002 (revista Electronic
Products)
• Preço de $0.70 por unidade
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 46
SE::P & A::Hw::Processadores::ASIPs::Microcontroladores
Família Nitron
• Baseado na família HC, com 8 ou 16 pinos
• Memória Flash (1,5 K a 4 Kbytes) reprogramável na
aplicação
• Timer de dois canais de 16 bits, com comparação e
PWM
• Conversor A/D de 8 bits e quatro canais
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 47
SE::P & A::Hw::Processadores::ASIPs::Microcontroladores
Família 8051
• Fabricada por várias companhias como Philips,
Atmel, Dallas Semiconductors, Intel
• Preços baixos
• Muitas opções
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 48
SE::P & A::Hw::Processadores::ASIPs::Microcontroladores
Família 8051
CPU RAM EPROM
Data Bus
Address Bus
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 49
SE::P & A::Hw::Processadores::ASIPs::Microcontroladores
Outras Famílias
• ARM da Intel, PIC da Microchip, Série HC da
Motorola e Transputers da SGS-Thomson.
• Escolha da família:
– fatores técnicos: velocidade, potência, tamanho,
periféricos
– ambientes de desenvolvimento existentes
– conhecimento prévio do time de desenvolvimento
– facilidade de compra, número de fornecedores,etc.
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 50
SE::P & A::Hw::Processadores
Seleçã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
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
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 51
SE::P & A::Hw::Processadores
Proc. 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
• Vantagens
– Projeto sob encomenda pode obter o melhor do tamanho,
potência, velocidade, mas perde em flexibilidade
• Ex: co-processadores e periféricos
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 52
SE::P & A::Hw::Processadores de Propósito Único
Application-Specific Integrated Circuit-ASIC
• Preço elevado inicial
• Perda de flexibilidade com relação a
mudanças
• Uso depende dos requisitos de performance,
consumo, tamanho, preço, etc.
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 53
SE::P & A::Hw::Processadores de Propósito Único
Field-Programable Gate Array – FPGA
• Dispositivos de hardware programáveis
• Reconfigurável on-line (tipo RAM)
• Tipos de programação:
– tipo PROM, programáveis uma única vez
– tipo EPROM, re-programáveis em laboratório
– tipo RAM, re-programáveis durante a execução.
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 54
SE::P & A::Hw::Processadores de Propósito Único::FPGA
FPGA - Bloco básico
Saída
Entrada
Look-up
Table
A
B
C
D
clock
X
Y
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 55
SE::P & A::Hw::Processadores de Propósito Único::FPGA
FPGA: estrutura geral
Blocos Básicos
Blocos de I/O
Interconexões
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 56
SE::P & A::Hw::Processadores de Propósito Único::FPGA
FPGA: estrutura geral
• Custo por unidade maior que o custo
unitário de um ASIC
• Não tem custo relacionado à fabricação da
primeira unidade
Custo
Volume de Produção
ASIC
FPGA
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 57
Especificação
Inicial
Síntese algorítmica
(alto nível)
Process(x)
Begin
y := 0.22 + 0.889
x;
i := 0;
do until i > 3
loop
y:= 0.5(y + x/y);
i := i + 1;
end do;
Comportamento
Layout
ASIC
Process(x)
Begin
y := 0.22 + 0.889
x;
i := 0;
do until i > 3
loop
y:= 0.5(y + x/y);
i := i + 1;
end do;
+ + * /
Controle Processamento
Arquitetura
+ + * /
Arquitetura
Estrutura
Alg.
RTL
Comp.
Estr.
Geom.
Síntese lógica
Síntese de layout
Prototipação
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 58
System Design Logic Design Physical Design
Simulation Schematic entry Placement /Routing
Hierarchy,
Generators
Logic-Level
Synthesis
High-Level Synthesis
System-Level Synthesis
homem-mês para 20KPortas
70
SE::P & A::Hw::Processadores::Implementação
Redução do Tempo de Projeto
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 59
SE::P & A::Hw::Processadores::Implementação
Lei 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
100
10
1
0.1
0.01
0.001
Transistores por
chip
(em milhões)
Note:
logarithmic scale
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 60
SE::P & A::Hw::Processadores::Implementação
Lei de Moore: Ilustração Gráfica
1981 1984 1987 1990 1993 1996 1999 2002
10.000
transistores
150.000.000
transistores
Um chip de 2002 pode conter 15.000 chips de 1981
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 61
SE::P & A::Hw::Processadores::Implementação
Produtividade de Projeto
100,000
10,000
1,000
100
10
1
0.1
0.01
1983
1987
1989
1991
1993
1985
1995
1997
1999
2001
2003
2005
2007
2009
Produtividade
(K)
Trans./Pessoa
–
Mës
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 62
SE::P & A::Hw::Processadores::Implementação
Produtividade de Projeto X Tam.Chip
• O número de transistores por chip aumentou muito mais
que a capacidade de projeto
• Maior chip em 1981 requer 100 homem.mês
– 10.000 transistores / 100 transistores / mês
• Maior chip em 2002 requer 30.000 homem.mês
– 150.000.000 / 5.000 transistores / mês
• Custo aumentou de $1M para $300M
10,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
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 63
SE::P & A::Hw::Processadores::Implementação
The mythical man-month
• 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)
10 20 30 40
0
10000
20000
30000
40000
50000
60000
43
24
19
16
15
16
18
23
Tempo
Duração em meses
Designers
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 64
SE::P & A::Hw::Processadores::Implementação
System-On-A-Chip
• Sistema completo implementado em um único chip
• 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
• Baixa potência consumida
• Pequeno tamanho
• Alta velocidade
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 65
SE::Projeto & Arquitetura::Hardware
Memória
• Tipos básicos
– Memória volátil
• Perde informações quando não tem energia
• Usada para armazenar dados
– Memória não-volátil
• Mantém informações quando não tem energia
• Usada para armazenar programas e dados
permanentes (configuração)
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 66
SE::P & A::Hw::Memória
Nomenclatura Básica
Memária volátil
– RAM = Random Acces
Memory
– SRAM = Static RAM
– DRAM = Dynamic RAM
– VRAM - Video RAM
– WRAM - Windows RAM
Memória não-volátil
– ROM = Read Only Memory
– PROM ou OTP =
Programmable ROM ou
One-Time Programmable
– EPROM = Erasable PROM
– EEPROM = Electrically
Erasable PROM
(apagamento byte a byte)
– Flash EPROM = Fast
erasable EPROM
(apagamento por bloco)
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 67
SE::P & A::Hw::Memória
RAM Dinâmica vs. Estática
• DRAM (Dynamic Random Acess Memory)
– Grande capacidade de integração (baixo custo por bit)
– Perda de informação após algum tempo: Necessidade de
refreshing
• SRAM (Static Random Acess Memory)
– Pequeno tempo de acesso
– Não existe necessidade de refreshing
– Alto custo por bit (baixa integração)
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 68
SE::P & A::Hw::Memória
Características Básicas
Tipo de Memória Categoria Apagamento Escrita Volatil
Random-Access Mem.
(RAM)
Read-
Write
Elétrico
byte a byte
Elétrica Volátil
Read-Only Mem.
(ROM) Read- Impossível
Máscara
Programmable ROM
(PROM)
only
Erasable PROM
(EPROM)
Ultra-violeta
Elétrica não-
Electrically EPROM
(EEPROM)
Read-
mostly
Elétrico
byte a byte
volátil
Flash EPROM Elétrico
por bloco
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 69
SE::Projeto & Arquitetura::Hardware
Periféricos
• Teclados e Visores de cristal líquido
• Temporizadores e contadores
• Interfaces Seriais
• Transdutores
• Conversores Digital-Analógicos e Analógico-Digitais
• Modulação de largura de fase - PWM
• Motores de passo
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 70
SE::P & A::Hw::Periféricos
Timer(temporizador)/Contador
• Dispositivo que gera interrupções em intervalos
regulares de tempo. Ex: Timer do 8051
TH0 TL0
Carry
Carry
Clock/12
Contadores
Data Bus
RD WR RD WR
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 71
SE::P & A::Hw::Periféricos
Teclado
N1
N2
N3
N4
M1
M2
M3
M4
buffer
Controlador de
Teclado
Tecla
apertada
Código da
Tecla
4
• Para saber se esta tecla está apertada, o
controlador do teclado põe nível 1 em M2 e testa
o valor de N3
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 72
SE::P & A::Hw::Periféricos
Interfaces Seriais
• Comunicação em que cada bit é enviado em seqüência
por um único fio
Registrador
de
Deslocamento
Clock
Data Bus
Write
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 73
SE::P & A::Hw::Periféricos
Interfaces Seriais
• Exemplo de Comunicação
Registrador
de
Deslocamento Clock
Data Bus
Write
Registrador
de
Deslocamento Clock
Data Bus
Read
Receptor Transmissor
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 74
SE::P & A::Hw::Periféricos::Interfaces Seriais
RS232
• RS232: Recommended Standard 232 da EIA
– Comunicações ponto a ponto
– Usado por modems, mouses e algumas impressoras
– Baixa imunidade a ruído
– Mencionado no padrão:
• limite de transmissão 20kbps
• distância máxima entre dispositivos: 15 metros
– Na prática:
• pode-se transmitir até cerca de 200kbps
• atinge 100m.
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 75
SE::P & A::Hw::Periféricos::Interfaces Seriais
RS422 e RS485
• Adequadas para condições adversas de operação
• comunicação por pares de fio trançados
• velocidades superiores a 100Mbps
• distâncias de vários quilômetros
• conexão de vários dispositivos na mesma linha
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 76
SE::P & A::Hw::Periféricos::Interfaces Seriais
Universal Serial Bus - USB
• Taxas de até 12Mbps
• Até 127 periféricos por linha
• Conexão com sistema ligado (hot plugging)
• Reconhecimento automático do dispositivo
(Plug-and-Play)
• Microcontroladores dotados de interfaces USB
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 77
SE::P & A::Hw::Periféricos::Interfaces Sem-Fio
Infravermelho
• IrDA (Infrared Data Association – 1993)
– Vários padrões de comunicação
• IrDA-Data, IrDA-Control, e o Air
– IrDA-Data
• ponto-a-ponto
• cone de incidência estreito (30º)
• distância máxima de 1 metro
• velocidades de 9600 bps a 16 Mbps.
– base instalada com alta taxa de crescimento.
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 78
SE::P & A::Hw::Periféricos::Interfaces Sem-Fio
Bluetooth
• ondas de rádio
• comunicação de voz e dados
• pequenas distâncias (10cm a 10m)
• ponto-a-multiponto (broadcast)
• faixa de frequência usada é de 2.4 GHz
• suporta rede de até 8 dispositivos
• fácil integração com protocolo TCP/IP.
• Várias companhias adotando como Motorola,
Ericsson, Nokia, IBM, Toshiba, Intel, entre outras.
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 79
SE::P & A::Hw::Periféricos::
Visor de Cristal Líquido - LCD
• vários modelos
– alfanuméricos, que só apresentam letras, números e
caracteres de pontuação
– gráficos que permitem o acesso a cada ponto
independentemente
• vários tamanhos
• com ou sem iluminação (backlight)
• interface, em geral, paralela.
• Ponto importante da interface com o usuário
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 80
SE::P & A::Hw::Periféricos::
Transdutores
• Capazes de converter tipos de energia
• Exemplo: microfones de carvão
– A pressão do ar (onda sonora) desloca o diafragma
– que muda a densidade de partículas de carvão
– variando a resistência elétrica
– que produz uma onda elétrica similar à sonora
corrente
-
+
diafragma
Partículas de carvão
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 81
SE::P & A::Hw::Periféricos::
Transdutores
• A corrente elétrica variável é aplicada à bobina
• que induz um campo magnético
• que movimenta o diafragma
• que desloca o ar formando uma onda sonora
S
N imã
Diafragma
Bobina
corrente
• Alto-falante
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 82
SE::P & A::Hw::Periféricos::
Transdutores
• Materiais especiais
– piezzo-elétricos, são capazes de se expandir ou contrair de
acordo com a voltagem (e vice-versa)
• sensores de pressão, peso, e em microfones e tweeters
– termopares, geram voltagens proporcionais à sua
temperatura
– células fotoelétricas, geram voltagens ou modificam a
resistência proporcionalmente à iluminação sobre elas
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 83
SE::P & A::Hw::Periféricos::
Conversores Analógico/Digitais
• Conversão de valores analógicos (contínuos no
tempo e na amplitude) em valores digitais
(números binários)
Onda
sonora
Onda
elétrica
analógica
Valores binários
(amostras temporais)
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 84
SE::P & A::Hw::Periféricos::
Conversores Analógico/Digitais
Relação de Valores
Vmax = 7.5V
0V
1111
1110
0000
0010
0100
0110
1000
1010
1100
0001
0011
0101
0111
1001
1011
1101
0.5V
1.0V
1.5V
2.0V
2.5V
3.0V
3.5V
4.0V
4.5V
5.0V
5.5V
6.0V
6.5V
7.0V
Conversão
Analógico  Digital
4
3
2
1
t1 t2 t3 t4
0100 1000 0110 0101
tempo
Entrada
Analógica
(V)
Saída Digital
Conversão
Digital  Analógico
4
3
2
1
0100 1000 0110 0101
t1 t2 t3 t4
tempo
Saída
Analógica
(V)
Entrada Digital
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 85
SE::P & A::Hw::Periféricos::
Modulação de largura de pulso (PWM)
• Onda quadrada
– definição do período
– definição do duty cycle (percentual do tempo em que o
sinal fica em 1)
Período
30% 70%
Duty cycle
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 86
SE::P & A::Hw::Periféricos::
Modulação de largura de pulso (PWM)
clk
pwm
duty cycle 25% – tensão média = 1.25V
clk
pwm
clk
pwm
• Gera pulsos com
“duty cycle”
definido
• Controla a tensão
média de um
dispositivo externo
(ex: motor, lâmpada)
– Mais simples que
conversor DC-DC
ou A/D
duty cycle 50% – tensão média = 2,5V
duty cycle 75% – tensão média = 3,75V
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 87
SE::P & A::Hw::Periféricos::
Modulação de largura de pulso (PWM)
• Controle de motores de corrente contínua e de
solenóides
Mola
Bobina
Imã
permanente
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 88
SE::P & A::Hw::Periféricos::
Motores de Passo
• Tipos de motores que giram “passo a passo”,
girando alguns graus por vez
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 89
SE::P & A::Hw::Periféricos::
Motores de Passo
A
A’
B
B’
Sequencia A B A’ B’
1 + + - -
2 - + + -
3 - - + +
4 + - - +
5 + + - -
• Para rodar o motor é
necessário seguir uma
seqüência de acionamento das
bobinas
• Existem controladores para
facilitar esta tarefa
• Requer “driver” de potência
Q2
1K
1K
Q1
+V
Entrada
Saida
Driver de
potência
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 90
Intro. a Sistemas Embarcados
• Visão geral
• Projeto e Arquitetura
– Hardware
• Processadores
• Memória
• Periféricos
– Software
• Visão geral
• Projeto e Arquitetura
– Hardware
– Software
• Visão geral
• Projeto e Arquitetura
– Hardware
– Software
• Linguagens
• Sistemas operacionais de tempo real
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 91
SE::Projeto & Arquitetura::Software
Linguagens Empregadas
• Segundo uma pesquisa recente da www.8052.com
– 49% assembly
– 33% C
– 5% Basic
– 3% Pascal
– 9% outras linguagens
• A previsibilidade no uso de recursos e tempo de
execução é fundamental para sistemas críticos
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 92
SE::P & A::Sw::Linguagens
Linguagens orientadas a objetos
• Linguagens orientadas a objeto
– ciclo de desenvolvimento mais rápido
– melhores métodos de estruturação e modularização
– reutilização de objetos
– criação e destruição dinâmica de objetos, garbage
collectors criam problemas para previsibilidade temporal
e de alocação de memória
– Java, não há um modelo definido para o escalonamento
das threads. Inviabiliza tempo real
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 93
• C e Assembly
– Excelente controle do hardware e do tempo de execução
– Alta performance
– Dificuldades no desenvolvimento
– Assembly:
• Difícil modularização e reutilização
SE::P & A::Sw::Linguagens
Linguagens imperativas
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 94
• Ada
– Projetada pelo Department of Defense dos EUA
• Esterel
– Voltada para sistemas reativos
– Baseada em eventos e ações
– Semelhante às linguagens visuais (ex. Visual Basic)
SE::P & A::Sw::Linguagens
Linguagens especiais
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 95
SE::P & A::Software
Sistemas de Tempo Real
• Sistemas computacionais de tempo real:
– Tem aspectos temporais em sua especificação
– Submetidos a requisitos de natureza temporal
– Resultados devem estar corretos lógica e temporalmente
“Fazer o trabalho usando o tempo disponível”
– Requisitos definidos pelo ambiente físico
• Aspectos temporais
– Não estão limitados a uma questão de desempenho
– Estão diretamente associados com a funcionalidade
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 96
SE::P & A::Sw::Sistemas de Tempo Real
STR e o Ambiente
STR
Ambiente
Estímulos
Sensores
Respostas
Atuadores
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 97
SE::P & A::Sw::Sistemas de Tempo Real
STR e o Ambiente
• Fluxo de controle definido pelo ambiente
– Tarefas ativadas por estímulos do ambiente
– STR geralmente não tem como limitar estes
estímulos
• Tempos de resposta ao ambiente definem
deadlines
• Dados com prazos de validade
– Dados desatualizados podem conduzir a
respostas incorretas
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 98
SE::P & A::Sw::Sistemas de Tempo Real
Áreas de Pesquisa
• Escalonamento (mais estudado)
• Modelos e linguagens de programação
• Protocolos de comunicação
• Arquitetura de computadores
• Metodologias de desenvolvimento
• ...
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 99
SE::P & A::Sw::Sistemas de Tempo Real
Conceitos Básicos
Tarefa ( task )
• Segmento de código cuja execução possui atributo temporal próprio
• Exemplo: método em OO, subrotina, trecho de um programa
Deadline
• Instante máximo desejado para a conclusão de uma tarefa
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 100
SE::P & A::Sw::STR:: Conceitos Básicos
Criticidade
Sistema de tempo real crítico (Hard real-time system)
• Todas as tarefas têm Hard Deadline
– Perda do deadline pode ter conseqüências catastróficas
• É necessário garantir requisitos temporais ainda durante o projeto
• Exemplo: usina nuclear, industria petroquímica, mísseis
Sistema de tempo real não crítico (Soft real-time system)
• O requisito temporal descreve apenas o comportamento desejado
• Perda do deadline não tem conseqüências catastróficas
• Existe interesse em terminar a tarefa mesmo com atraso
• Exemplo: início de gravação de vídeo-cassete
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 101
SE::P & A::Sw::STR:: Conceitos Básicos
Criticidade
Deadline Firm
• Perda do deadline não tem conseqüências catastróficas
• Não existe valor em terminar a tarefa após o deadline
• Exemplo: ler o valor da temperatura
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 102
SE::P & A::Sw::STR:: Conceitos Básicos
Modelagem das Tarefas
• Deadline – Tempo máximo para término de
uma tarefa
• Release-time – Tempo mínimo para início de
uma tarefa
• Tempo de execução: considera o pior caso
– WCET – Worst-Case Execution Time
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 103
SE::P & A::Sw::STR:: Conceitos Básicos
Modelagem das Tarefas
• Periodicidade
– Tarefas Aperiódicas
• São disparadas em intervalos imprevisíveis de tempo
• Não garantem escalonabilidade
– Tarefas Esporádicas
• É conhecido o intervalo mínimo entre execuções (inter-arrival
time)
– Tarefas Periódicas
• Devem ser executadas em intervalos regulares de tempo
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 104
SE::P & A::Sw::STR:: Conceitos Básicos
Modelagem das Tarefas
• Folga (slack) = deadline – liberação – tempo de execução
• Atraso = MÁX( 0, conclusão – deadline)
deadline
Chegada
(arrival)
Liberação
(release)
Início
(start time)
Conclusão
(end time)
tempo de execução
(execution time)
atraso na liberação
(release jitter)
tempo
Tempo de resposta (response time)
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 105
SE::P & A::Sw::STR:: Conceitos::Modelagem das Tarefas
Tarefas Periódicas
A1
tempo
P
D
a1 r1 s1 e1 d1
A2
P
D
a2=r2 s2 e2 d2
J1
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 106
SE::P & A::Sw::STR:: Conceitos::Modelagem das Tarefas
Tarefas Esporádicas
E1
tempo
minIT
D
a1 s1 e1 d1
E2
minIT
D
a2=s2 e2 d2
0
evento1
evento2
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 107
SE::P & A::Sw::STR:: Conceitos::Modelagem das Tarefas
Relações entre tarefas
• Relações entre tarefas
– Precedência: XY
• A tarefa X deve terminar antes de Y começar
– Exclusão mútua: XY
• As tarefas X e Y não podem executar simultaneamente
– Co-execução: X||Y
• As tarefas X e Y têm que executar simultaneamente
– Preempção: XY
• A tarefa X é interrompida para que Y possa executar e, após o
término de Y, a tarefa X continua a executar
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 108
Abordagens de
Melhor Esforço
Abordagens com Garantia
em Tempo de Projeto
Executivo
Cíclico
Dirigido a
Prioridades
Técnicas
Adaptativas
Abordagens com
Garantia Dinâmica
SE::P & A::Sw::STR
Escalonamento
Métodos de Escalonamento
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 109
Escalonamento de Processos
Abstração
• Uma máquina para cada processo
• Paralelismo real
T11
T12
T0
mP1
mP2
mP3
T22
mP3
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 110
Escalonamento de Processos
Realidade
• Compartilhamento do tempo
• Pseudoparalelismo
T11
T12
T0 T22
T0
1 121
90
51
41 t
70
mP1
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 111
Tipos de Escalonamento
Preemptivo
• Permite a suspensão temporária de processos
• Quantum ou time-slice: período de tempo durante o qual um
processo usa o processador a cada vez
T11
T12
T0 T22
T0
1 121
90
51
41 t
70
mP1
Preempção
 Quantum grande:
 Diminui núm. de mudanças de contexto e overhead do S.O.
 Ruim para processos interativos
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 112
Escalonamento de Processos
Processo
• Estados de um processo
Pronto Rodando
Bloqueado
Criação Término
ID do Processo
Estado
Program Counter
Ponteiros da Memória
Contexto (regs.)
I/O Status
Prioridade
Informações gerais
• tempo de CPU
• limites, usuário, etc.
Process Control Block - PCB
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 113
Filas de Escalonamento
Long-
term
queue
Short-
term
queue
CPU
I/O
queue
I/O
queue
I/O
queue
I/O
I/O
I/O
Process
request
FIM
High-level
scheduling
Short-term
scheduling
I/O scheduling
Interrupt
Handler
Interrupt
of process
Interrupt
from I/O
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 114
Tipos de Escalonamento
Round-Robin
• Uso de uma lista de processos sem prioridade
• Escalonamento preemptivo
• Simples e justo
• Bom para sistemas interativos
Tar. B
Contexto
Tar. C
Contexto
CPU:Running
Tar. A
Contexto
Tar. A
Contexto
Tar. A
Contexto
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 115
Tipos de Escalonamento
First-In First-Out (FIFO)
• Uso de uma lista de processos sem prioridade
• Escalonamento não-preemptivo
• Simples e justo
• Bom para sistemas em batch
B C D E F … N
CPU
A
FIM
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 116
Tipos de Escalonamento
Exemplo
• Três processos
• Cada um consome 1 hora de CPU
• Calcule o tempo de resposta considerando
a) Round-robin (time-slice = 10ms)
b) FIFO
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 117
Características de Escalonamento
• Justiça (fairness)
– Todos os processos têm chances iguais de uso dos
processador
• Eficiência
– O objetivo é manter o processador 100% ocupado
• Tempo de Resposta
– Tempo entre a requisição da ação e a obtenção do
resultado
• Throughput
– Número de tarefas por unidade de tempo
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 118
SE::P & A::Sw::STR::Escalonamento
Garantia Dinâmica e de Melhor Esforço
• Não existe garantia que os deadlines serão cumpridos
• Sempre que uma tarefa é ativada ocorre uma análise
da sua escalonabilidade
• Passível de sofrer sobrecarga
• Capaz de fornecer análise probabilística
– Simulação, teoria das filas de tempo real, etc
• Algumas abordagens oferecem Garantia Dinâmica
– Garante o deadline (ou não) no início da ativação
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 119
SE::P & A::Sw::STR::Escalonamento
Garantia Dinâmica e de Melhor Esforço
Descarte de Tarefas na Sobrecarga
• As tarefas executadas cumprem o deadline
• Mais apropriado para tarefas com deadline firm
• Pode cancelar ativações individuais ou tarefas completas
• Objetivo é maximizar o número de tarefas executadas
• Tarefas podem ter importância (peso) diferentes
– Maximiza o somatório dos pesos das tarefas executadas
• Abordagem semelhante: aumenta o período das tarefas
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 120
SE::P & A::Sw::STR::Escalonamento
Garantia Dinâmica e de Melhor Esforço
Perda de deadlines na sobrecarga
• Em sobrecarga ATRASA algumas tarefas
• Possui uma função que indica o valor de cada tarefa em função
do seu instante de conclusão (time-value function)
• Objetivo é maximizar o valor total do sistema (somatório de
todas as tarefas)
d
0
valor
Tempo de
Resposta
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 121
SE::P & A::Sw::STR::Escalonamento
Garantia Dinâmica e de Melhor Esforço
Redução da Precisão na Sobrecarga
• Em sobrecarga diminui a precisão de algumas tarefas
• Objetivo é fazer o possível dentro do tempo disponível
• Exemplos:
– Ignorar bits menos significativos de cada pixel
– Trabalhar com amostras de áudio menos precisas
– Alterar resolução e tamanho de imagem na tela
– Simplificar animações
– Usar algoritmos de controle mais simples
– Interromper pesquisa em algoritmos de inteligência artificial
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 122
Sistemas de Prioridade Dinâmica
• Earliest-Deadline-First (EDF)
– Escalonamento preemptivo de prioridade dinâmica
– O deadline é calculado quando a tarefa é disparada.
– O escalonador põe para executar a tarefa com menor
deadline
• Least Slack Scheduling
– Escalonamento não-preemptivo de prioridade dinâmica
– A tarefa com menor sobra (slack) tem maior prioridade
SE::P & A::Sw::STR::Escalonamento
Garantia Dinâmica e de Melhor Esforço
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 123
SE::P & A::Sw::STR::Escalonamento
Abordagens com Garantia em Projeto
• Para obter garantias em projeto é
necessário:
– Conhecimento completo das tarefas e do
método de implementação
– Análise feita em projeto
– Carga limitada e conhecida
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 124
SE::P & A::Sw::STR::Escalonamento
Abordagens com Garantia em Projeto
• Vantagens
– Determina em projeto que todos os deadlines serão
cumpridos
– Necessário para aplicações críticas
• Desvantagens
– Necessário conhecer exatamente a carga
– Necessário reservar recursos para o pior caso
– Difícil determinar o pior caso em soluções off- the- shelf
– Gera enorme subutilização de recursos
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 125
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Modelos de Implementação
• Time-driven systems
– Sistemas em que a execução é regida pelo tempo
– Não existe outra fonte de eventos além do timer interno
– A ordem de execução é toda definida a priori
• Event-driven systems
– A execução é regida por eventos externos e eventos do timer
– A garantia em projeto se dá pelo uso de prioridades fixas para
as tarefas
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 126
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Time-Driven Systems
Executor Cíclico
• Tarefas são arranjadas numa lista que define a ordem
e tempo de execução de cada uma
• Cada tarefa é colocada em execução em momentos
controlados por um temporizador (timer)
• A lista é executada repetidamente, caracterizando
ciclos de execução
• Não é usada concorrência: tarefas grandes devem ser
quebradas manualmente se necessário.
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 127
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Time-Driven Systems: Exemplo 1
• Considere 4 funções com as seguintes características:
– Função 1: ciclo de 50Hz (20ms)
– Função 2: ciclo de 25 Hz (40ms)
– Função 3: ciclo de 12,5 Hz (80ms)
– Função 4: ciclo de 6,25Hz (160ms)
Ciclo Principal (160ms) Ciclo Principal (160ms)
10ms
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 128
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Time-Driven Systems: Exemplo 2
20 50
0 50
10 60 70
C ( = 20) D ( = 20)
A ( = 20)
Relations: A  C
B  C
Processor1
Processor2
40 80
20
30
d’
A
r’
A
d’
B d’
C d’
D
r’
C r’
B
, r’
D
B ( = 20)
cB cC
cD
cA
20 50
0
10 60 70
B ( = 20)
C ( = 20) D ( = 20)
A ( = 20)
Relations: C  A
B  C
Processor1
Processor2
40 80
30
30
d’
A
r’
A
d’
B d’
D
r’
C d’
C
r’,
B
D
cB
cC
cD
cA
50
r’
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 129
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Time-Driven Systems: Exemplo 3
Relations: A  B,
B  C, C  D
Relations: B  A,
B  C, C  D
20 60 70
m1
m2
95
40 100
40
25
d’
C
d’
D
r’
C
r’
A d’
A r’
D
0
r’
B
5
d’
E
r’
E
45 55
D
80
E
60
d’
B
C
B
70
m
m2
95
45
25
d’
C
d’
D
r’
C
r’,
A r’
D
0
r’
B
5
d’
E
r’
E
d’
A
45 55 80
60
d’
B
25
C
E
D
A B
75
A
Relations: A  B,
B  C, C  D
Relations: B  A,
B  C, C  D
20 60 70
m1
m2
95
40 100
40
25
d’
C
d’
D
r’
C
r’
A d’
A r’
D
0
r’
B
5
d’
E
r’
E
45 55
D
80
E
60
d’
B
C
B
70
m
m2
95
45
25
d’
C
d’
D
r’
C
r’,
A r’
D
0
r’
B
5
d’
E
r’
E
d’
A
45 55 80
60
d’
B
25
C
E
D
A B
75
A
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 130
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Time-Driven Systems: Executor Cíclico
Função 1
Função 2
Função 3
Função 4
Disp. E/S
Disp. E/S
Executor
Cíclico
Interrupção
do Timer
• Arquitetura de Software
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 131
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Event-Driven Systems
Sistemas de Prioridade Fixa
• Tarefas têm prioridades definidas em tempo de projeto
• Tarefas de maior prioridade preemptam as de menor
prioridade
• Prioridades são definidas com base nas restrições
temporais
• A concorrência requer mecanismos para evitar
deadlock e inversão de prioridade (exemplo:
semáforos, herança de prioridade)
• Para garantir respostas previsíveis, tarefas aperiódicas
não são tratadas
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 132
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Event-Driven Systems
Sistemas de Prioridade Fixa
• Escalonamento Rate-Monotonic (RMS)
– Escalonamento preemtivo de prioridade fixa
– Tarefas mais freqüentes têm maior prioridade
– Os deadlines devem ser iguais aos períodos
– Tarefas não têm nenhuma relação entre si (precedência,
exclusão, etc)
– É ótimo, ou seja, nenhum outro método é melhor que este
com estas condições
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 133
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Event-Driven Systems
Sistemas de Prioridade Fixa
• Deadline-Monotonic Scheduling:
– Semelhante ao RMS, mas quanto menor o deadline
da tarefa maior sua prioridade
– Os deadlines são fixos e relativos aos começos dos
períodos
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 134
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Event-Driven Systems
Tarefa 1
Tarefa 2
Tarefa 3
Tarefa 4
Disp. Entrada
Interrupção
do Timer
Recurso 1
Recurso 2
Atuador
Disp. Saída
Sensor
Arquitetura de Software
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 135
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Event-Driven Systems
Análise de Escalonabilidade
Escalonamento Rate-Monotonic (RMS)
• Notação:
Processo: pi Período: Ti Tempo de Computação: Ci Deadline: Di
• Em um conjunto de n processos periódicos independentes
escalonados pelo RMS sempre obedecerá o seu deadline se
(condição suficiente mas não necessária):
onde, U(n) é o limite de utilização para n processos.
n  U(n)  69%
   
1
2
...
1
1
1




 n
n
n
n
n
U
T
C
T
C
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 136
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Event-Driven Systems
Escalonamento Rate-Monotonic (RMS)
• U(n) = 1,0 se o conjunto de tarefas é harmônico
– Um conjunto de tarefas é harmônico se os períodos
de todas as tarefas são múltiplos ou sub-múltiplos
entre si
• U(n) = 0,88 na média de tarefas randômicas
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 137
SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto
Event-Driven Systems
Análise de Escalonabilidade
• Análise baseada em Tempo de Resposta
• Calcula tempo de resposta no pior caso e compara ao deadline
• Para a tarefa mais prioritária R1 = C1
• Demais tarefas sofrem interferência das tarefas com prioridade
maior
Neste caso, Ri = Ci + Ii
• Interferência é máxima a partir do Instante Crítico
– Instante onde todas as tarefas são liberadas simultaneamente
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 138
Garantia em Projeto :: Event-Driven Systems
Análise de Escalonabilidade
Interferência entre tarefas
Seja Pj uma tarefa com prioridade maior que Pi
– Quantas vezes Pj pode acontecer durante a execução de Pi ?
Ri/Tj
– Qual a interferência total de Pj sobre Pi ?
Ri/Tj x Cj
– Qual a interferência total sobre Ti ?
∑ Ri/Tj x Cj, onde Pri(j)>Pri(i)
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 139
Garantia em Projeto :: Event-Driven Systems
Análise de Escalonabilidade
O tempo máximo de resposta de pi é Ri = Ci + Ii
Ri = Ci + ∑ Ri/Tj x Cj
O cálculo é feito recursivamente em iterações
sucessivas, até:
– Tempo de resposta passar do deadline (falha)
– Resultado convergir, ou seja, iteração x+ 1 igual a iteração x
Wi
x+1 = Ci + ∑ Wi
x/Tj x Cj, onde Wi
0= Ci
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 140
Garantia em Projeto :: Event-Driven Systems
Análise de Escalonabilidade
Exemplo
p1 p2 p3
T1=7 T2=12 T3=20
C1=3 C2=3 C3=5
Pri1=1 Pri2=2 Pri3=3
Resposta:
R1 = 3 R2 = 6 R3 = 20
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 141
Garantia em Projeto :: Event-Driven Systems
Análise de Escalonabilidade
Suponha uma tarefa esporádica liberada por evento
externo
– Eventos podem ser amostrados periodicamente
– Sinalização do evento pode ter atraso variável
– Release Jitter: Atraso máximo na liberação da tarefa
Ri = Ji + Wi, Wi = Ci + ∑ (Wi+Jj)/Tj x Cj
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 142
Garantia em Projeto :: Event-Driven Systems
Análise de Escalonabilidade
Bloqueios
• Ocorrem devido às relações de exclusão mútua
• Suponha p1 e p2, p1 com maior prioridade
– Se p2 fica bloqueada esperando por p1
Ok, p1 tem mesmo prioridade superior
– Se p1 fica bloqueada, esperando por p2
Cálculo do tempo de resposta deve incluir a espera máxima Bi
Ri = Ji + Wi
Wi = Ci + Bi + ∑ (Wi+Jj)/Tj x Cj
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 143
Garantia em Projeto :: Event-Driven Systems
Análise de Escalonabilidade
• Seções Críticas e Inversão de Prioridades
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 144
Garantia em Projeto :: Event-Driven Systems
Análise de Escalonabilidade
• Protocolo de Herança de Prioridades
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 145
Sistemas Operacionais de Tempo Real
• Escalonamento preemptivo
• Escalona processos com base em prioridades (não é
justo, pode provocar starvation)
• Todas as chamadas ao S.O. tem tempo máximo de
execução definido e otimizado
• A mudança de contexto tem tempo limitado, conhecido
(fixed overhead) e otimizado
• Tratamento de inversão de prioridade
Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 146
Referências
• Livro de Sistemas de Tempo Real
Jean- Marie Farines, Joni da Silva Fraga, Rômulo Silva
de Oliveira. Escola de Computação’2000 - IME- USP
http:// www. lcmi. ufsc. br/ gtr/ livro/ principal. Htm
• IEEE Computer Society, Technical Committee on
Real- Time Systems (IEEE- CS TC- RTS)
http:// www. cs. bu. edu/ pub/ ieee- rts
• The Concise Handbook Of Real-Time Systems.
TimeSys Corporation, Versão 1.1, 2000.
http://www.timesys.com

Mais conteúdo relacionado

Semelhante a Intro Sist Embarcados - Sergio cavalcante

Automação projeto de semáforo
Automação projeto de semáforoAutomação projeto de semáforo
Automação projeto de semáforoantonio sena
 
09 gerenciamento de_configuracao_e_mudanca
09 gerenciamento de_configuracao_e_mudanca09 gerenciamento de_configuracao_e_mudanca
09 gerenciamento de_configuracao_e_mudancaLuisinho Menard
 
Aula 04 qs - sistemas embarcados
Aula 04   qs - sistemas embarcadosAula 04   qs - sistemas embarcados
Aula 04 qs - sistemas embarcadosJunior Gomes
 
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...Cristiano Rafael Steffens
 
Aula 3 - Processos de Software.pdf
Aula 3 - Processos de Software.pdfAula 3 - Processos de Software.pdf
Aula 3 - Processos de Software.pdfFChico2
 
Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7
Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7
Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7aob
 
[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2
[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2
[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2Christopher Cerqueira
 
Modernização da cogeração - Reguladores de velocidade, Automação e proteção e...
Modernização da cogeração - Reguladores de velocidade, Automação e proteção e...Modernização da cogeração - Reguladores de velocidade, Automação e proteção e...
Modernização da cogeração - Reguladores de velocidade, Automação e proteção e...Marcelo Balbino
 
Classificação das redes para automação industrial
Classificação das redes para automação industrialClassificação das redes para automação industrial
Classificação das redes para automação industrialAlbert Oliveira
 
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...Joao Galdino Mello de Souza
 
Geração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGAGeração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGAAndré Costa Lima
 
Apresentação pic
Apresentação picApresentação pic
Apresentação picSaddam Lande
 
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWERTCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWERGerson Roberto da Silva
 
Tracer Curver manual
Tracer Curver   manualTracer Curver   manual
Tracer Curver manualstargold2012
 
PLM-Summit 2014 | 8-9 abril | Apresentação 03/14 | Clayton Ferraz | GM Brasil
PLM-Summit 2014 | 8-9 abril | Apresentação 03/14 | Clayton Ferraz | GM BrasilPLM-Summit 2014 | 8-9 abril | Apresentação 03/14 | Clayton Ferraz | GM Brasil
PLM-Summit 2014 | 8-9 abril | Apresentação 03/14 | Clayton Ferraz | GM BrasilCADWARE-TECHNOLOGY
 
TCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOS
TCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOSTCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOS
TCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOSJean Luiz Zanatta
 

Semelhante a Intro Sist Embarcados - Sergio cavalcante (20)

Automação projeto de semáforo
Automação projeto de semáforoAutomação projeto de semáforo
Automação projeto de semáforo
 
09 gerenciamento de_configuracao_e_mudanca
09 gerenciamento de_configuracao_e_mudanca09 gerenciamento de_configuracao_e_mudanca
09 gerenciamento de_configuracao_e_mudanca
 
AVR
AVRAVR
AVR
 
Aula 04 qs - sistemas embarcados
Aula 04   qs - sistemas embarcadosAula 04   qs - sistemas embarcados
Aula 04 qs - sistemas embarcados
 
Desenvolvimento de sistemas embarcados
Desenvolvimento de sistemas embarcadosDesenvolvimento de sistemas embarcados
Desenvolvimento de sistemas embarcados
 
Microcontroladores AVR
Microcontroladores AVRMicrocontroladores AVR
Microcontroladores AVR
 
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
UMA ABORDAGEM COMPARATIVA ENTRE MICROCONTROLADORES: ARDUINO MEGA X ARDUINO DU...
 
Aula 3 - Processos de Software.pdf
Aula 3 - Processos de Software.pdfAula 3 - Processos de Software.pdf
Aula 3 - Processos de Software.pdf
 
Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7
Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7
Siemens dcs-vs-plc-scada-como-saber-quando-usar-cada-um-deles-v2-w1-rev-7
 
[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2
[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2
[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2
 
Modernização da cogeração - Reguladores de velocidade, Automação e proteção e...
Modernização da cogeração - Reguladores de velocidade, Automação e proteção e...Modernização da cogeração - Reguladores de velocidade, Automação e proteção e...
Modernização da cogeração - Reguladores de velocidade, Automação e proteção e...
 
Classificação das redes para automação industrial
Classificação das redes para automação industrialClassificação das redes para automação industrial
Classificação das redes para automação industrial
 
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
 
INOVADEF - Apresentação Marcelo Lopes
INOVADEF - Apresentação Marcelo LopesINOVADEF - Apresentação Marcelo Lopes
INOVADEF - Apresentação Marcelo Lopes
 
Geração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGAGeração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGA
 
Apresentação pic
Apresentação picApresentação pic
Apresentação pic
 
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWERTCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
 
Tracer Curver manual
Tracer Curver   manualTracer Curver   manual
Tracer Curver manual
 
PLM-Summit 2014 | 8-9 abril | Apresentação 03/14 | Clayton Ferraz | GM Brasil
PLM-Summit 2014 | 8-9 abril | Apresentação 03/14 | Clayton Ferraz | GM BrasilPLM-Summit 2014 | 8-9 abril | Apresentação 03/14 | Clayton Ferraz | GM Brasil
PLM-Summit 2014 | 8-9 abril | Apresentação 03/14 | Clayton Ferraz | GM Brasil
 
TCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOS
TCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOSTCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOS
TCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOS
 

Mais de paulocoob

Aula Fundamentos da Elétrica - 2020.pptx
Aula Fundamentos da Elétrica - 2020.pptxAula Fundamentos da Elétrica - 2020.pptx
Aula Fundamentos da Elétrica - 2020.pptxpaulocoob
 
Modelagem de banco de dados - Sistemas de Dados
Modelagem de banco de dados - Sistemas de DadosModelagem de banco de dados - Sistemas de Dados
Modelagem de banco de dados - Sistemas de Dadospaulocoob
 
Modelagem Dados - Introdução à Conceitos
Modelagem Dados - Introdução à ConceitosModelagem Dados - Introdução à Conceitos
Modelagem Dados - Introdução à Conceitospaulocoob
 
Manual de boas maneiras COVID19
Manual de boas maneiras COVID19Manual de boas maneiras COVID19
Manual de boas maneiras COVID19paulocoob
 
Função PROCV.pptx
Função PROCV.pptxFunção PROCV.pptx
Função PROCV.pptxpaulocoob
 
Aula sobre processadores
Aula sobre processadoresAula sobre processadores
Aula sobre processadorespaulocoob
 
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES IORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Ipaulocoob
 
AULA 1 - TESTE DE SOFTWARE.pptx
AULA 1 - TESTE DE SOFTWARE.pptxAULA 1 - TESTE DE SOFTWARE.pptx
AULA 1 - TESTE DE SOFTWARE.pptxpaulocoob
 

Mais de paulocoob (8)

Aula Fundamentos da Elétrica - 2020.pptx
Aula Fundamentos da Elétrica - 2020.pptxAula Fundamentos da Elétrica - 2020.pptx
Aula Fundamentos da Elétrica - 2020.pptx
 
Modelagem de banco de dados - Sistemas de Dados
Modelagem de banco de dados - Sistemas de DadosModelagem de banco de dados - Sistemas de Dados
Modelagem de banco de dados - Sistemas de Dados
 
Modelagem Dados - Introdução à Conceitos
Modelagem Dados - Introdução à ConceitosModelagem Dados - Introdução à Conceitos
Modelagem Dados - Introdução à Conceitos
 
Manual de boas maneiras COVID19
Manual de boas maneiras COVID19Manual de boas maneiras COVID19
Manual de boas maneiras COVID19
 
Função PROCV.pptx
Função PROCV.pptxFunção PROCV.pptx
Função PROCV.pptx
 
Aula sobre processadores
Aula sobre processadoresAula sobre processadores
Aula sobre processadores
 
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES IORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
 
AULA 1 - TESTE DE SOFTWARE.pptx
AULA 1 - TESTE DE SOFTWARE.pptxAULA 1 - TESTE DE SOFTWARE.pptx
AULA 1 - TESTE DE SOFTWARE.pptx
 

Intro Sist Embarcados - Sergio cavalcante

  • 1. Introdução aos Sistemas Embarcados Sergio Cavalcante Centro de Informática – UFPE
  • 2. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 2 Programa • Introdução aos sistemas embarcados • O que são? • Arquitetura básica de um S.E. • Tecnologias empregadas • Metodologias de projeto • Arquiteturas Padrão • Sistemas operacionais de tempo real
  • 4. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 4 Intro. a Sistemas Embarcados • Visão geral • Projeto e Arquitetura • Visão geral – Áreas de aplicação – Características – Arquitetura básica – Mercado • Projeto e Arquitetura
  • 5. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 5 SE::Visão Geral:: Sistemas Embarcados • São sistemas computacionais que estão inseridos em máquinas ou em sistemas maiores • Embutidos em equipamentos eletrônicos: – telefones celulares, vídeo-cassete, forno microondas,carros, automação de escritório.... • Encontrado em quase todas as aplicações que necessitam de algum tipo de controle....
  • 6. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 6 SE::Visão Geral:: Áreas de Aplicação • produtos de consumo: – telefones celulares, pagers, câmaras digitais, vídeo-cassete, vídeo games portáteis, calculadores, etc; • eletrodomésticos: – forno de microondas, secretárias eletrônicas, equipamentos de segurança, termostatos, máquinas de lavar e sistemas de iluminação;
  • 7. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 7 SE::Visão Geral:: Áreas de Aplicação • Automação de escritório: – máquinas de fax, copiadoras, impressoras e scanners; • Automóveis: – controle de transmissão, injeção eletrônica, suspensão ativa, freio ABS.
  • 8. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 8 SE::Visão Geral::Aplicações Automóveis - Volvo S80 •2 Redes CAN •250Kbps •125Kbps •4 Redes baixa velocidade •10,4Kbps •18 ECUs
  • 9. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 9 SE::Visão Geral:: Características • Funcionalidade única, executada repetidamente • Entrada/Saída intensivo • Executa tarefas em paralelo • Restrições de projeto mais rígidas: – Custo, tamanho, peso, desempenho, potência dissipada, etc. • Tempo real: – O tempo para fornecer resultados é determinado pelo tempo que o ambiente pode esperar. – Sistemas em que têm aspectos temporais na especificação. • Sistemas reativos – Reagem continuamente a estímulos externos
  • 10. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 10 SE::Visão Geral:: Arquitetura Básica • Arquitetura de Hardware – Forte comunicação com o ambiente – Forte restrição de recursos, tamanho, potência, peso... • Arquitetura de Software – Tratamento rápido de interrupção – Sistemas operacionais de tempo real – Softwares eficientes em tamanho e desempenho
  • 11. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 11 SE::Visão Geral:: Arquitetura de Hardware ASIC DSP ASIP uP uC Mem Código DSP Código uP RTOS A/D D/A Sensores Atuadores Eventos Eventos
  • 12. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 12 SE::Visão Geral::Arquitetura Exemplo: Câmera Digital A/D D/A CCD preprocessor Pixel coprocessor Microcontroller JPEG codec DMA controller Memory controller ISA bus interface UART Display ctrl LCD ctrl Multiplier/Accum.
  • 13. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 13 SE::Visão Geral::Arquitetura de Hardware Comparação com PCs Característica PC Embed. Sys clock 180MHz – 2,2 GHz 500KHz – 300 MHz Instruções/seg. 400M – 8B 1M – 200M Potência 10 – 250 W .5 – 4W Transistores 5 – 1000 M 10K – 5 M Custo $200 – $2000 $0.5 – $100
  • 14. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 14 SE::Visão Geral::Arquitetura de Software Exemplo: Tempo de Boot
  • 15. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 15 SE::Visão Geral::Arquitetura de Software Exemplo: Mudança de Contexto • MontaVista Linux Kernel 2.4.17 • Pior caso 436us (vs. 1743us) • 99.9% < 195us (vs. 1420us) Fonte: Bill Weinberg, “Linux and XScale for Wireless Consumer Electronics Devices”, IDF’Fall03
  • 16. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 16 SE::Visão Geral:: Mercado • Crescimento das aplicações – Automóvel: • 1995: U$ 1237 • 2000: U$ 2126 • 2002: 15% a 30% do custo de um veículo é com eletrônica – Domiciliar: • 35 sistemas por residência em 1994 • 240 sistemas em 2000
  • 17. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 17 SE::Visão Geral:: Mercado • Crescimento de vendas – U$: • ASIC´s + embed. Micros: U$ 60 B. • PC´s: 34 B. – Unidades: • Embed. Micros: 3 Billion • PC micros: 100 million
  • 18. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 18 SE::Visão Geral:: Mercado Microcontroladores 0 2 4 6 8 10 12 14 16 18 20 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 US$ billions Total Growth (inc. DSPs) Up to 16-bit Up to 8-bit Up to 4-bit
  • 19. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 19 SE::Visão Geral:: Time-to-market • Redução do “time-to-market” – Maior competitividade de mercado – Redução na janela de mercado dos produtos Tempo Time-to- market Concepção do sistema Lucros (dólares) Tempo de vida Atraso
  • 20. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 20 Exame 1 • O que são Sistemas Embarcados? • O que é um Sistema de Tempo Real? • O que são Sistemas Reativos? • Você diria que todo S.E. é também um Sistema de Tempo Real? E é um Sistema Reativo? • É fundamental a execução de tarefas em paralelo em um S.E.? Porquê? • Como você compara o mercado de S.E. em relação ao de desktops?
  • 21. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 21 Intro. a Sistemas Embarcados • Visão geral – Áreas de aplicação – Características – Arquitetura básica – Mercado • Projeto e Arquitetura • Visão geral • Projeto e Arquitetura • Visão geral • Projeto e Arquitetura – Metodologia de projeto – Hardware – Software
  • 22. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 22 SE::Projeto & Arquitetura Metodologia de Projeto • Principais diferenças entre o projeto de S.E. e projeto de aplicações para desktops – Requisitos não-funcionais são fundamentais: preço, tamanho, peso, potência,... – Flexibilidade: plataforma não definida, vários tipos de S.O., controle total da máquina. – Grande preocupação com previsibilidade no uso de recursos – Sistema muito restrito: eficiência no uso de recursos é fundamental
  • 23. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 23 SE::P & A::Metodologia de Projeto Exemplo • Projeto de um controle remoto de televisão (infra- vermelho) – Controle simples com 3 botões: • Liga/desliga • Seleção de canais – Opera com bateria – Deve ser leve – Controla a televisão por infravermelho
  • 24. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 24 SE::P & A::Metodologia de Projeto Exemplo: Restrições • Protocolo de comunicação com a televisão – Proprietário – Uso de ROM fornecida pelo cliente • Satisfazer as especificações temporais fornecidas pelo cliente: – Código de assinatura – Comando
  • 25. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 25 SE::P & A::Metodologia de Projeto Exemplo: Requisitos do cliente • Funcionamento a Bateria: – 2 baterias AAA – Duração: 10.000 pressões nos botões • Características do produto final: – Peso < 100 gramas – Dimensão: 10cm X 5cm X 1.5 cm – Material: plástico de alta densidade – Botão liga/desliga: vermelho e circular – Botão canais: preto e quadrado – Deve ser robusto o suficiente para cair de 1,5 metros sem danificar
  • 26. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 26 SE::P & A::Metodologia de Projeto Exemplo: Requisitos do cliente • Características do produto final: – Sinais de infravermelho transmitidos conforme especificação do cliente – Controle deve funcionar a 10 metros da TV quando posicionado até 45 graus da TV e 20 graus do sensor – O sinal de infravermelho deve ser transmitido até 20 mseg após botão pressionado
  • 27. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 27 SE::P & A::Metodologia de Projeto Exemplo: Definição do Hw e Sw • Processador: – Microcontrolador de 8 bits • Sistema Operacional: – Não há necessidade • Linguagem de programação: – C • Bibliotecas de software: – Nenhuma • Componentes de Hardware: – Botões – LED infravermelho
  • 28. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 28 • Como o sistema vai satisfazer requerimentos do usuário dadas as restrições de projeto – Revisar a análise – Especificar componentes de hardware – Definir Interface de hardware – Especificar subsistemas de software – Definir interfaces de software – Especificar processos de início e final – Especificar tratamento de erros – Verificar resultados da etapa de design SE::P & A::Metodologia de Projeto Requisitos do cliente
  • 29. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 29 Hardware Algoritmo Layout Program Convolution SEQ i=0 FOR 2 PAR IF (x[i]>= 0 c:= x[i], x[i]<0 c:= x[i]/2) IF (x[i+1]>= 0 d:= x[i+1], x[i+1]<0 d:= x[i+1]/2) PAR j=0 FOR 4 e[j]:= x[f(i,j)] PAR w := k*e[i] PAR j= 0 FOR 4 y[j] := y[j] + e[j]*(c+d) Características - alto desempenho - pequeno tamanho - alto custo - pouco flexível Hardware SE::P & A::Metodologia de Projeto Alternativas de implementação
  • 30. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 30 Software Program Convolution SEQ i=0 FOR 2 PAR IF (x[i]>= 0 c:= x[i], x[i]<0 c:= x[i]/2) IF (x[i+1]>= 0 d:= x[i+1], x[i+1]<0 d:= x[i+1]/2) PAR j=0 FOR 4 e[j]:= x[f(i,j)] PAR w := k*e[i] PAR j= 0 FOR 4 y[j] := y[j] + e[j]*(c+d) Uso de componentes de prateleira (off-the-shelf) Características - baixo custo - flexibilidade - desempenho - tamanho Software SE::P & A::Metodologia de Projeto Alternativas de implementação
  • 31. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 31 Program Convolution SEQ i=0 FOR 2 PAR IF (x[i]>= 0 c:= x[i], x[i]<0 c:= x[i]/2) IF (x[i+1]>= 0 d:= x[i+1], x[i+1]<0 d:= x[i+1]/2) PAR j=0 FOR 4 e[j]:= x[f(i,j)] PAR w := k*e[i] PAR j= 0 FOR 4 y[j] := y[j] + e[j]*(c+d) SW HW HW Microprocessador Circuitos específicos Hardware/Software SE::P & A::Metodologia de Projeto Alternativas de implementação
  • 32. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 32 Passado Alto Custo System specification Exploration Sw design Implement, Integrate and test Proc. Inf. Spec. ASIC Inf. Spec. ASIC Inf. Spec. Hw design Proc. C code ASIC RTL strc. ASIC RTL strc. SE::P & A::Metodologia de Projeto Processo de Desenvolvimento
  • 33. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 33 Presente System specification Exploration Sw synthesis Highlevel synthesis Compilation Logic synthesis Physical design Proc. Inf. Spec. ASIC Inf. Spec. ASIC Inf. Spec. Memory Variables. Proc. C code ASIC RTL strc. ASIC RTL strc. Memory Cosimulation SE::P & A::Metodologia de Projeto Processo de Desenvolvimento
  • 34. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 34 Presente/Futuro Allocation Partitioning Estimation Sw synthesis Highlevel synthesis Compilation Logic synthesis Physical design Proc. Inf. Spec. ASIC Inf. Spec. ASIC Inf. Spec. Memory Variables. Proc. C code ASIC RTL strc. ASIC RTL strc. Memory Cosimulation Behavior1 Behavior2 Y=sqrt(x) X = x+1 Behavior3 For I in 1,100 m(I)=n(I)+1 Memories Interfacing Arbitration Generation Hw/Sw Co-design SE::P & A::Metodologia de Projeto Processo de Desenvolvimento
  • 35. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 35 Exame 2 • O que diferencia o projeto de S.E. do projeto de aplicativos para computadores? • Mencione pelo menos 5 restrições de projeto comuns em S.E.? • Quais as vantagens e desvantagens de usar Software e/ou Hardware para implementar um S.E.? • O que vem mudando na forma de projetar S.E. ao longo do tempo?
  • 36. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 36 Intro. a Sistemas Embarcados • Visão geral • Projeto e Arquitetura – Metodologia de projeto – Hardware – Software • Visão geral • Projeto e Arquitetura – Metodologia de projeto – Hardware – Software • Visão geral • Projeto e Arquitetura – Metodologia de projeto – Hardware • Processadores • Memória • Periféricos – Software
  • 37. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 37 SE::Projeto & Arquitetura::Hardware Dispositivos Processadores • Transformam, movem dados, tomam decisões e/ou executam ações. • Não precisam ser programáveis • Tipos: – Processadores de uso geral – Processadores de Aplicação Específica – Processadores de propósito único
  • 38. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 38 SE::P & A::Hw::Processadores Tecnologia Processadores variam na adequação ao problema Processador de uso geral Processador de propósito único Processador de aplicação específica Funcionalidade Desejada
  • 39. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 39 SE::P & A::Hw::Processadores Processadores de uso geral • Programados via software • Memória para dados e programa • Vantagens – Pequenos time-to-market e custo não recorrente – Alta flexibilidade • Ex: PowerPC, Pentium, Z80 + + * / Memória Disp. E/S Processador
  • 40. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 40 SE::P & A::Hw::Processadores de Uso Geral Processadores p/ desktops • Facilidade para desenvolvimento de software • Necessário adicionar muitos dispositivos auxiliares • Conjunto de instruções não ideal • Alto consumo de energia
  • 41. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 41 SE::P & A::Hw::Processadores de Uso Geral Processadores Embarcados • Proc. de uso geral adaptados para sistemas embarcados: – Dispositivos internos – 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
  • 42. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 42 SE::P & A::Hw::Processadores Proc. de Aplicação Específica (ASIPs) • Processador programável otimizado para uma classe de problema • Características – Memória interna – Unidade de Execução otimizada – Periféricos especiais internos • Vantagem – Bom compromisso entre flexibilidade, velocidade, tamanho e potência • Ex: Microcontroladores (ex.Nitron, 8051) DSPs (Digital Signal Processors)
  • 43. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 43 SE::P & A::Hw::Processadores Proc. de Aplicação Específica (ASIPs) • Projeto de ASIPs: – O ASIP e seu compilador são projetados em paralelo (Hw-Sw co-design) – Melhor escolha de implementação de instruções (em hardware ou em software) 43
  • 44. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 44 SE::P & A::Hw::Processadores::ASIPs Microcontroladores • Não há consenso sobre a diferença de microcontroladores e processadores embarcados • Nossa definição: – microcontroladores não são derivados de famílias de processadores de propósito geral e têm, normalmente, um poder de processamento menor. • Para diversificar as opções, lançam-se famílias de microcontroladoes
  • 45. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 45 SE::P & A::Hw::Processadores::ASIPs::Microcontroladores Família Nitron • Lançada pela Motorola Semicondutores (Brasil) em setembro/2002 • Vendeu mais de 1 milhão de unidades até dez/2002 • Mais de 40 milhões encomendados • Prêmio "Product of the Year" como melhor lançamento do ano de 2002 (revista Electronic Products) • Preço de $0.70 por unidade
  • 46. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 46 SE::P & A::Hw::Processadores::ASIPs::Microcontroladores Família Nitron • Baseado na família HC, com 8 ou 16 pinos • Memória Flash (1,5 K a 4 Kbytes) reprogramável na aplicação • Timer de dois canais de 16 bits, com comparação e PWM • Conversor A/D de 8 bits e quatro canais
  • 47. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 47 SE::P & A::Hw::Processadores::ASIPs::Microcontroladores Família 8051 • Fabricada por várias companhias como Philips, Atmel, Dallas Semiconductors, Intel • Preços baixos • Muitas opções
  • 48. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 48 SE::P & A::Hw::Processadores::ASIPs::Microcontroladores Família 8051 CPU RAM EPROM Data Bus Address Bus
  • 49. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 49 SE::P & A::Hw::Processadores::ASIPs::Microcontroladores Outras Famílias • ARM da Intel, PIC da Microchip, Série HC da Motorola e Transputers da SGS-Thomson. • Escolha da família: – fatores técnicos: velocidade, potência, tamanho, periféricos – ambientes de desenvolvimento existentes – conhecimento prévio do time de desenvolvimento – facilidade de compra, número de fornecedores,etc.
  • 50. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 50 SE::P & A::Hw::Processadores Seleçã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 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
  • 51. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 51 SE::P & A::Hw::Processadores Proc. 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 • Vantagens – Projeto sob encomenda pode obter o melhor do tamanho, potência, velocidade, mas perde em flexibilidade • Ex: co-processadores e periféricos
  • 52. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 52 SE::P & A::Hw::Processadores de Propósito Único Application-Specific Integrated Circuit-ASIC • Preço elevado inicial • Perda de flexibilidade com relação a mudanças • Uso depende dos requisitos de performance, consumo, tamanho, preço, etc.
  • 53. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 53 SE::P & A::Hw::Processadores de Propósito Único Field-Programable Gate Array – FPGA • Dispositivos de hardware programáveis • Reconfigurável on-line (tipo RAM) • Tipos de programação: – tipo PROM, programáveis uma única vez – tipo EPROM, re-programáveis em laboratório – tipo RAM, re-programáveis durante a execução.
  • 54. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 54 SE::P & A::Hw::Processadores de Propósito Único::FPGA FPGA - Bloco básico Saída Entrada Look-up Table A B C D clock X Y
  • 55. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 55 SE::P & A::Hw::Processadores de Propósito Único::FPGA FPGA: estrutura geral Blocos Básicos Blocos de I/O Interconexões
  • 56. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 56 SE::P & A::Hw::Processadores de Propósito Único::FPGA FPGA: estrutura geral • Custo por unidade maior que o custo unitário de um ASIC • Não tem custo relacionado à fabricação da primeira unidade Custo Volume de Produção ASIC FPGA
  • 57. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 57 Especificação Inicial Síntese algorítmica (alto nível) Process(x) Begin y := 0.22 + 0.889 x; i := 0; do until i > 3 loop y:= 0.5(y + x/y); i := i + 1; end do; Comportamento Layout ASIC Process(x) Begin y := 0.22 + 0.889 x; i := 0; do until i > 3 loop y:= 0.5(y + x/y); i := i + 1; end do; + + * / Controle Processamento Arquitetura + + * / Arquitetura Estrutura Alg. RTL Comp. Estr. Geom. Síntese lógica Síntese de layout Prototipação
  • 58. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 58 System Design Logic Design Physical Design Simulation Schematic entry Placement /Routing Hierarchy, Generators Logic-Level Synthesis High-Level Synthesis System-Level Synthesis homem-mês para 20KPortas 70 SE::P & A::Hw::Processadores::Implementação Redução do Tempo de Projeto
  • 59. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 59 SE::P & A::Hw::Processadores::Implementação Lei 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 100 10 1 0.1 0.01 0.001 Transistores por chip (em milhões) Note: logarithmic scale
  • 60. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 60 SE::P & A::Hw::Processadores::Implementação Lei de Moore: Ilustração Gráfica 1981 1984 1987 1990 1993 1996 1999 2002 10.000 transistores 150.000.000 transistores Um chip de 2002 pode conter 15.000 chips de 1981
  • 61. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 61 SE::P & A::Hw::Processadores::Implementação Produtividade de Projeto 100,000 10,000 1,000 100 10 1 0.1 0.01 1983 1987 1989 1991 1993 1985 1995 1997 1999 2001 2003 2005 2007 2009 Produtividade (K) Trans./Pessoa – Mës
  • 62. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 62 SE::P & A::Hw::Processadores::Implementação Produtividade de Projeto X Tam.Chip • O número de transistores por chip aumentou muito mais que a capacidade de projeto • Maior chip em 1981 requer 100 homem.mês – 10.000 transistores / 100 transistores / mês • Maior chip em 2002 requer 30.000 homem.mês – 150.000.000 / 5.000 transistores / mês • Custo aumentou de $1M para $300M 10,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
  • 63. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 63 SE::P & A::Hw::Processadores::Implementação The mythical man-month • 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) 10 20 30 40 0 10000 20000 30000 40000 50000 60000 43 24 19 16 15 16 18 23 Tempo Duração em meses Designers
  • 64. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 64 SE::P & A::Hw::Processadores::Implementação System-On-A-Chip • Sistema completo implementado em um único chip • 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 • Baixa potência consumida • Pequeno tamanho • Alta velocidade
  • 65. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 65 SE::Projeto & Arquitetura::Hardware Memória • Tipos básicos – Memória volátil • Perde informações quando não tem energia • Usada para armazenar dados – Memória não-volátil • Mantém informações quando não tem energia • Usada para armazenar programas e dados permanentes (configuração)
  • 66. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 66 SE::P & A::Hw::Memória Nomenclatura Básica Memária volátil – RAM = Random Acces Memory – SRAM = Static RAM – DRAM = Dynamic RAM – VRAM - Video RAM – WRAM - Windows RAM Memória não-volátil – ROM = Read Only Memory – PROM ou OTP = Programmable ROM ou One-Time Programmable – EPROM = Erasable PROM – EEPROM = Electrically Erasable PROM (apagamento byte a byte) – Flash EPROM = Fast erasable EPROM (apagamento por bloco)
  • 67. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 67 SE::P & A::Hw::Memória RAM Dinâmica vs. Estática • DRAM (Dynamic Random Acess Memory) – Grande capacidade de integração (baixo custo por bit) – Perda de informação após algum tempo: Necessidade de refreshing • SRAM (Static Random Acess Memory) – Pequeno tempo de acesso – Não existe necessidade de refreshing – Alto custo por bit (baixa integração)
  • 68. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 68 SE::P & A::Hw::Memória Características Básicas Tipo de Memória Categoria Apagamento Escrita Volatil Random-Access Mem. (RAM) Read- Write Elétrico byte a byte Elétrica Volátil Read-Only Mem. (ROM) Read- Impossível Máscara Programmable ROM (PROM) only Erasable PROM (EPROM) Ultra-violeta Elétrica não- Electrically EPROM (EEPROM) Read- mostly Elétrico byte a byte volátil Flash EPROM Elétrico por bloco
  • 69. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 69 SE::Projeto & Arquitetura::Hardware Periféricos • Teclados e Visores de cristal líquido • Temporizadores e contadores • Interfaces Seriais • Transdutores • Conversores Digital-Analógicos e Analógico-Digitais • Modulação de largura de fase - PWM • Motores de passo
  • 70. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 70 SE::P & A::Hw::Periféricos Timer(temporizador)/Contador • Dispositivo que gera interrupções em intervalos regulares de tempo. Ex: Timer do 8051 TH0 TL0 Carry Carry Clock/12 Contadores Data Bus RD WR RD WR
  • 71. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 71 SE::P & A::Hw::Periféricos Teclado N1 N2 N3 N4 M1 M2 M3 M4 buffer Controlador de Teclado Tecla apertada Código da Tecla 4 • Para saber se esta tecla está apertada, o controlador do teclado põe nível 1 em M2 e testa o valor de N3
  • 72. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 72 SE::P & A::Hw::Periféricos Interfaces Seriais • Comunicação em que cada bit é enviado em seqüência por um único fio Registrador de Deslocamento Clock Data Bus Write
  • 73. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 73 SE::P & A::Hw::Periféricos Interfaces Seriais • Exemplo de Comunicação Registrador de Deslocamento Clock Data Bus Write Registrador de Deslocamento Clock Data Bus Read Receptor Transmissor
  • 74. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 74 SE::P & A::Hw::Periféricos::Interfaces Seriais RS232 • RS232: Recommended Standard 232 da EIA – Comunicações ponto a ponto – Usado por modems, mouses e algumas impressoras – Baixa imunidade a ruído – Mencionado no padrão: • limite de transmissão 20kbps • distância máxima entre dispositivos: 15 metros – Na prática: • pode-se transmitir até cerca de 200kbps • atinge 100m.
  • 75. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 75 SE::P & A::Hw::Periféricos::Interfaces Seriais RS422 e RS485 • Adequadas para condições adversas de operação • comunicação por pares de fio trançados • velocidades superiores a 100Mbps • distâncias de vários quilômetros • conexão de vários dispositivos na mesma linha
  • 76. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 76 SE::P & A::Hw::Periféricos::Interfaces Seriais Universal Serial Bus - USB • Taxas de até 12Mbps • Até 127 periféricos por linha • Conexão com sistema ligado (hot plugging) • Reconhecimento automático do dispositivo (Plug-and-Play) • Microcontroladores dotados de interfaces USB
  • 77. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 77 SE::P & A::Hw::Periféricos::Interfaces Sem-Fio Infravermelho • IrDA (Infrared Data Association – 1993) – Vários padrões de comunicação • IrDA-Data, IrDA-Control, e o Air – IrDA-Data • ponto-a-ponto • cone de incidência estreito (30º) • distância máxima de 1 metro • velocidades de 9600 bps a 16 Mbps. – base instalada com alta taxa de crescimento.
  • 78. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 78 SE::P & A::Hw::Periféricos::Interfaces Sem-Fio Bluetooth • ondas de rádio • comunicação de voz e dados • pequenas distâncias (10cm a 10m) • ponto-a-multiponto (broadcast) • faixa de frequência usada é de 2.4 GHz • suporta rede de até 8 dispositivos • fácil integração com protocolo TCP/IP. • Várias companhias adotando como Motorola, Ericsson, Nokia, IBM, Toshiba, Intel, entre outras.
  • 79. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 79 SE::P & A::Hw::Periféricos:: Visor de Cristal Líquido - LCD • vários modelos – alfanuméricos, que só apresentam letras, números e caracteres de pontuação – gráficos que permitem o acesso a cada ponto independentemente • vários tamanhos • com ou sem iluminação (backlight) • interface, em geral, paralela. • Ponto importante da interface com o usuário
  • 80. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 80 SE::P & A::Hw::Periféricos:: Transdutores • Capazes de converter tipos de energia • Exemplo: microfones de carvão – A pressão do ar (onda sonora) desloca o diafragma – que muda a densidade de partículas de carvão – variando a resistência elétrica – que produz uma onda elétrica similar à sonora corrente - + diafragma Partículas de carvão
  • 81. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 81 SE::P & A::Hw::Periféricos:: Transdutores • A corrente elétrica variável é aplicada à bobina • que induz um campo magnético • que movimenta o diafragma • que desloca o ar formando uma onda sonora S N imã Diafragma Bobina corrente • Alto-falante
  • 82. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 82 SE::P & A::Hw::Periféricos:: Transdutores • Materiais especiais – piezzo-elétricos, são capazes de se expandir ou contrair de acordo com a voltagem (e vice-versa) • sensores de pressão, peso, e em microfones e tweeters – termopares, geram voltagens proporcionais à sua temperatura – células fotoelétricas, geram voltagens ou modificam a resistência proporcionalmente à iluminação sobre elas
  • 83. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 83 SE::P & A::Hw::Periféricos:: Conversores Analógico/Digitais • Conversão de valores analógicos (contínuos no tempo e na amplitude) em valores digitais (números binários) Onda sonora Onda elétrica analógica Valores binários (amostras temporais)
  • 84. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 84 SE::P & A::Hw::Periféricos:: Conversores Analógico/Digitais Relação de Valores Vmax = 7.5V 0V 1111 1110 0000 0010 0100 0110 1000 1010 1100 0001 0011 0101 0111 1001 1011 1101 0.5V 1.0V 1.5V 2.0V 2.5V 3.0V 3.5V 4.0V 4.5V 5.0V 5.5V 6.0V 6.5V 7.0V Conversão Analógico  Digital 4 3 2 1 t1 t2 t3 t4 0100 1000 0110 0101 tempo Entrada Analógica (V) Saída Digital Conversão Digital  Analógico 4 3 2 1 0100 1000 0110 0101 t1 t2 t3 t4 tempo Saída Analógica (V) Entrada Digital
  • 85. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 85 SE::P & A::Hw::Periféricos:: Modulação de largura de pulso (PWM) • Onda quadrada – definição do período – definição do duty cycle (percentual do tempo em que o sinal fica em 1) Período 30% 70% Duty cycle
  • 86. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 86 SE::P & A::Hw::Periféricos:: Modulação de largura de pulso (PWM) clk pwm duty cycle 25% – tensão média = 1.25V clk pwm clk pwm • Gera pulsos com “duty cycle” definido • Controla a tensão média de um dispositivo externo (ex: motor, lâmpada) – Mais simples que conversor DC-DC ou A/D duty cycle 50% – tensão média = 2,5V duty cycle 75% – tensão média = 3,75V
  • 87. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 87 SE::P & A::Hw::Periféricos:: Modulação de largura de pulso (PWM) • Controle de motores de corrente contínua e de solenóides Mola Bobina Imã permanente
  • 88. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 88 SE::P & A::Hw::Periféricos:: Motores de Passo • Tipos de motores que giram “passo a passo”, girando alguns graus por vez
  • 89. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 89 SE::P & A::Hw::Periféricos:: Motores de Passo A A’ B B’ Sequencia A B A’ B’ 1 + + - - 2 - + + - 3 - - + + 4 + - - + 5 + + - - • Para rodar o motor é necessário seguir uma seqüência de acionamento das bobinas • Existem controladores para facilitar esta tarefa • Requer “driver” de potência Q2 1K 1K Q1 +V Entrada Saida Driver de potência
  • 90. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 90 Intro. a Sistemas Embarcados • Visão geral • Projeto e Arquitetura – Hardware • Processadores • Memória • Periféricos – Software • Visão geral • Projeto e Arquitetura – Hardware – Software • Visão geral • Projeto e Arquitetura – Hardware – Software • Linguagens • Sistemas operacionais de tempo real
  • 91. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 91 SE::Projeto & Arquitetura::Software Linguagens Empregadas • Segundo uma pesquisa recente da www.8052.com – 49% assembly – 33% C – 5% Basic – 3% Pascal – 9% outras linguagens • A previsibilidade no uso de recursos e tempo de execução é fundamental para sistemas críticos
  • 92. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 92 SE::P & A::Sw::Linguagens Linguagens orientadas a objetos • Linguagens orientadas a objeto – ciclo de desenvolvimento mais rápido – melhores métodos de estruturação e modularização – reutilização de objetos – criação e destruição dinâmica de objetos, garbage collectors criam problemas para previsibilidade temporal e de alocação de memória – Java, não há um modelo definido para o escalonamento das threads. Inviabiliza tempo real
  • 93. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 93 • C e Assembly – Excelente controle do hardware e do tempo de execução – Alta performance – Dificuldades no desenvolvimento – Assembly: • Difícil modularização e reutilização SE::P & A::Sw::Linguagens Linguagens imperativas
  • 94. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 94 • Ada – Projetada pelo Department of Defense dos EUA • Esterel – Voltada para sistemas reativos – Baseada em eventos e ações – Semelhante às linguagens visuais (ex. Visual Basic) SE::P & A::Sw::Linguagens Linguagens especiais
  • 95. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 95 SE::P & A::Software Sistemas de Tempo Real • Sistemas computacionais de tempo real: – Tem aspectos temporais em sua especificação – Submetidos a requisitos de natureza temporal – Resultados devem estar corretos lógica e temporalmente “Fazer o trabalho usando o tempo disponível” – Requisitos definidos pelo ambiente físico • Aspectos temporais – Não estão limitados a uma questão de desempenho – Estão diretamente associados com a funcionalidade
  • 96. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 96 SE::P & A::Sw::Sistemas de Tempo Real STR e o Ambiente STR Ambiente Estímulos Sensores Respostas Atuadores
  • 97. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 97 SE::P & A::Sw::Sistemas de Tempo Real STR e o Ambiente • Fluxo de controle definido pelo ambiente – Tarefas ativadas por estímulos do ambiente – STR geralmente não tem como limitar estes estímulos • Tempos de resposta ao ambiente definem deadlines • Dados com prazos de validade – Dados desatualizados podem conduzir a respostas incorretas
  • 98. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 98 SE::P & A::Sw::Sistemas de Tempo Real Áreas de Pesquisa • Escalonamento (mais estudado) • Modelos e linguagens de programação • Protocolos de comunicação • Arquitetura de computadores • Metodologias de desenvolvimento • ...
  • 99. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 99 SE::P & A::Sw::Sistemas de Tempo Real Conceitos Básicos Tarefa ( task ) • Segmento de código cuja execução possui atributo temporal próprio • Exemplo: método em OO, subrotina, trecho de um programa Deadline • Instante máximo desejado para a conclusão de uma tarefa
  • 100. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 100 SE::P & A::Sw::STR:: Conceitos Básicos Criticidade Sistema de tempo real crítico (Hard real-time system) • Todas as tarefas têm Hard Deadline – Perda do deadline pode ter conseqüências catastróficas • É necessário garantir requisitos temporais ainda durante o projeto • Exemplo: usina nuclear, industria petroquímica, mísseis Sistema de tempo real não crítico (Soft real-time system) • O requisito temporal descreve apenas o comportamento desejado • Perda do deadline não tem conseqüências catastróficas • Existe interesse em terminar a tarefa mesmo com atraso • Exemplo: início de gravação de vídeo-cassete
  • 101. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 101 SE::P & A::Sw::STR:: Conceitos Básicos Criticidade Deadline Firm • Perda do deadline não tem conseqüências catastróficas • Não existe valor em terminar a tarefa após o deadline • Exemplo: ler o valor da temperatura
  • 102. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 102 SE::P & A::Sw::STR:: Conceitos Básicos Modelagem das Tarefas • Deadline – Tempo máximo para término de uma tarefa • Release-time – Tempo mínimo para início de uma tarefa • Tempo de execução: considera o pior caso – WCET – Worst-Case Execution Time
  • 103. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 103 SE::P & A::Sw::STR:: Conceitos Básicos Modelagem das Tarefas • Periodicidade – Tarefas Aperiódicas • São disparadas em intervalos imprevisíveis de tempo • Não garantem escalonabilidade – Tarefas Esporádicas • É conhecido o intervalo mínimo entre execuções (inter-arrival time) – Tarefas Periódicas • Devem ser executadas em intervalos regulares de tempo
  • 104. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 104 SE::P & A::Sw::STR:: Conceitos Básicos Modelagem das Tarefas • Folga (slack) = deadline – liberação – tempo de execução • Atraso = MÁX( 0, conclusão – deadline) deadline Chegada (arrival) Liberação (release) Início (start time) Conclusão (end time) tempo de execução (execution time) atraso na liberação (release jitter) tempo Tempo de resposta (response time)
  • 105. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 105 SE::P & A::Sw::STR:: Conceitos::Modelagem das Tarefas Tarefas Periódicas A1 tempo P D a1 r1 s1 e1 d1 A2 P D a2=r2 s2 e2 d2 J1
  • 106. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 106 SE::P & A::Sw::STR:: Conceitos::Modelagem das Tarefas Tarefas Esporádicas E1 tempo minIT D a1 s1 e1 d1 E2 minIT D a2=s2 e2 d2 0 evento1 evento2
  • 107. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 107 SE::P & A::Sw::STR:: Conceitos::Modelagem das Tarefas Relações entre tarefas • Relações entre tarefas – Precedência: XY • A tarefa X deve terminar antes de Y começar – Exclusão mútua: XY • As tarefas X e Y não podem executar simultaneamente – Co-execução: X||Y • As tarefas X e Y têm que executar simultaneamente – Preempção: XY • A tarefa X é interrompida para que Y possa executar e, após o término de Y, a tarefa X continua a executar
  • 108. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 108 Abordagens de Melhor Esforço Abordagens com Garantia em Tempo de Projeto Executivo Cíclico Dirigido a Prioridades Técnicas Adaptativas Abordagens com Garantia Dinâmica SE::P & A::Sw::STR Escalonamento Métodos de Escalonamento
  • 109. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 109 Escalonamento de Processos Abstração • Uma máquina para cada processo • Paralelismo real T11 T12 T0 mP1 mP2 mP3 T22 mP3
  • 110. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 110 Escalonamento de Processos Realidade • Compartilhamento do tempo • Pseudoparalelismo T11 T12 T0 T22 T0 1 121 90 51 41 t 70 mP1
  • 111. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 111 Tipos de Escalonamento Preemptivo • Permite a suspensão temporária de processos • Quantum ou time-slice: período de tempo durante o qual um processo usa o processador a cada vez T11 T12 T0 T22 T0 1 121 90 51 41 t 70 mP1 Preempção  Quantum grande:  Diminui núm. de mudanças de contexto e overhead do S.O.  Ruim para processos interativos
  • 112. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 112 Escalonamento de Processos Processo • Estados de um processo Pronto Rodando Bloqueado Criação Término ID do Processo Estado Program Counter Ponteiros da Memória Contexto (regs.) I/O Status Prioridade Informações gerais • tempo de CPU • limites, usuário, etc. Process Control Block - PCB
  • 113. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 113 Filas de Escalonamento Long- term queue Short- term queue CPU I/O queue I/O queue I/O queue I/O I/O I/O Process request FIM High-level scheduling Short-term scheduling I/O scheduling Interrupt Handler Interrupt of process Interrupt from I/O
  • 114. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 114 Tipos de Escalonamento Round-Robin • Uso de uma lista de processos sem prioridade • Escalonamento preemptivo • Simples e justo • Bom para sistemas interativos Tar. B Contexto Tar. C Contexto CPU:Running Tar. A Contexto Tar. A Contexto Tar. A Contexto
  • 115. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 115 Tipos de Escalonamento First-In First-Out (FIFO) • Uso de uma lista de processos sem prioridade • Escalonamento não-preemptivo • Simples e justo • Bom para sistemas em batch B C D E F … N CPU A FIM
  • 116. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 116 Tipos de Escalonamento Exemplo • Três processos • Cada um consome 1 hora de CPU • Calcule o tempo de resposta considerando a) Round-robin (time-slice = 10ms) b) FIFO
  • 117. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 117 Características de Escalonamento • Justiça (fairness) – Todos os processos têm chances iguais de uso dos processador • Eficiência – O objetivo é manter o processador 100% ocupado • Tempo de Resposta – Tempo entre a requisição da ação e a obtenção do resultado • Throughput – Número de tarefas por unidade de tempo
  • 118. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 118 SE::P & A::Sw::STR::Escalonamento Garantia Dinâmica e de Melhor Esforço • Não existe garantia que os deadlines serão cumpridos • Sempre que uma tarefa é ativada ocorre uma análise da sua escalonabilidade • Passível de sofrer sobrecarga • Capaz de fornecer análise probabilística – Simulação, teoria das filas de tempo real, etc • Algumas abordagens oferecem Garantia Dinâmica – Garante o deadline (ou não) no início da ativação
  • 119. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 119 SE::P & A::Sw::STR::Escalonamento Garantia Dinâmica e de Melhor Esforço Descarte de Tarefas na Sobrecarga • As tarefas executadas cumprem o deadline • Mais apropriado para tarefas com deadline firm • Pode cancelar ativações individuais ou tarefas completas • Objetivo é maximizar o número de tarefas executadas • Tarefas podem ter importância (peso) diferentes – Maximiza o somatório dos pesos das tarefas executadas • Abordagem semelhante: aumenta o período das tarefas
  • 120. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 120 SE::P & A::Sw::STR::Escalonamento Garantia Dinâmica e de Melhor Esforço Perda de deadlines na sobrecarga • Em sobrecarga ATRASA algumas tarefas • Possui uma função que indica o valor de cada tarefa em função do seu instante de conclusão (time-value function) • Objetivo é maximizar o valor total do sistema (somatório de todas as tarefas) d 0 valor Tempo de Resposta
  • 121. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 121 SE::P & A::Sw::STR::Escalonamento Garantia Dinâmica e de Melhor Esforço Redução da Precisão na Sobrecarga • Em sobrecarga diminui a precisão de algumas tarefas • Objetivo é fazer o possível dentro do tempo disponível • Exemplos: – Ignorar bits menos significativos de cada pixel – Trabalhar com amostras de áudio menos precisas – Alterar resolução e tamanho de imagem na tela – Simplificar animações – Usar algoritmos de controle mais simples – Interromper pesquisa em algoritmos de inteligência artificial
  • 122. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 122 Sistemas de Prioridade Dinâmica • Earliest-Deadline-First (EDF) – Escalonamento preemptivo de prioridade dinâmica – O deadline é calculado quando a tarefa é disparada. – O escalonador põe para executar a tarefa com menor deadline • Least Slack Scheduling – Escalonamento não-preemptivo de prioridade dinâmica – A tarefa com menor sobra (slack) tem maior prioridade SE::P & A::Sw::STR::Escalonamento Garantia Dinâmica e de Melhor Esforço
  • 123. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 123 SE::P & A::Sw::STR::Escalonamento Abordagens com Garantia em Projeto • Para obter garantias em projeto é necessário: – Conhecimento completo das tarefas e do método de implementação – Análise feita em projeto – Carga limitada e conhecida
  • 124. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 124 SE::P & A::Sw::STR::Escalonamento Abordagens com Garantia em Projeto • Vantagens – Determina em projeto que todos os deadlines serão cumpridos – Necessário para aplicações críticas • Desvantagens – Necessário conhecer exatamente a carga – Necessário reservar recursos para o pior caso – Difícil determinar o pior caso em soluções off- the- shelf – Gera enorme subutilização de recursos
  • 125. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 125 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Modelos de Implementação • Time-driven systems – Sistemas em que a execução é regida pelo tempo – Não existe outra fonte de eventos além do timer interno – A ordem de execução é toda definida a priori • Event-driven systems – A execução é regida por eventos externos e eventos do timer – A garantia em projeto se dá pelo uso de prioridades fixas para as tarefas
  • 126. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 126 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Time-Driven Systems Executor Cíclico • Tarefas são arranjadas numa lista que define a ordem e tempo de execução de cada uma • Cada tarefa é colocada em execução em momentos controlados por um temporizador (timer) • A lista é executada repetidamente, caracterizando ciclos de execução • Não é usada concorrência: tarefas grandes devem ser quebradas manualmente se necessário.
  • 127. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 127 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Time-Driven Systems: Exemplo 1 • Considere 4 funções com as seguintes características: – Função 1: ciclo de 50Hz (20ms) – Função 2: ciclo de 25 Hz (40ms) – Função 3: ciclo de 12,5 Hz (80ms) – Função 4: ciclo de 6,25Hz (160ms) Ciclo Principal (160ms) Ciclo Principal (160ms) 10ms
  • 128. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 128 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Time-Driven Systems: Exemplo 2 20 50 0 50 10 60 70 C ( = 20) D ( = 20) A ( = 20) Relations: A  C B  C Processor1 Processor2 40 80 20 30 d’ A r’ A d’ B d’ C d’ D r’ C r’ B , r’ D B ( = 20) cB cC cD cA 20 50 0 10 60 70 B ( = 20) C ( = 20) D ( = 20) A ( = 20) Relations: C  A B  C Processor1 Processor2 40 80 30 30 d’ A r’ A d’ B d’ D r’ C d’ C r’, B D cB cC cD cA 50 r’
  • 129. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 129 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Time-Driven Systems: Exemplo 3 Relations: A  B, B  C, C  D Relations: B  A, B  C, C  D 20 60 70 m1 m2 95 40 100 40 25 d’ C d’ D r’ C r’ A d’ A r’ D 0 r’ B 5 d’ E r’ E 45 55 D 80 E 60 d’ B C B 70 m m2 95 45 25 d’ C d’ D r’ C r’, A r’ D 0 r’ B 5 d’ E r’ E d’ A 45 55 80 60 d’ B 25 C E D A B 75 A Relations: A  B, B  C, C  D Relations: B  A, B  C, C  D 20 60 70 m1 m2 95 40 100 40 25 d’ C d’ D r’ C r’ A d’ A r’ D 0 r’ B 5 d’ E r’ E 45 55 D 80 E 60 d’ B C B 70 m m2 95 45 25 d’ C d’ D r’ C r’, A r’ D 0 r’ B 5 d’ E r’ E d’ A 45 55 80 60 d’ B 25 C E D A B 75 A
  • 130. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 130 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Time-Driven Systems: Executor Cíclico Função 1 Função 2 Função 3 Função 4 Disp. E/S Disp. E/S Executor Cíclico Interrupção do Timer • Arquitetura de Software
  • 131. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 131 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Event-Driven Systems Sistemas de Prioridade Fixa • Tarefas têm prioridades definidas em tempo de projeto • Tarefas de maior prioridade preemptam as de menor prioridade • Prioridades são definidas com base nas restrições temporais • A concorrência requer mecanismos para evitar deadlock e inversão de prioridade (exemplo: semáforos, herança de prioridade) • Para garantir respostas previsíveis, tarefas aperiódicas não são tratadas
  • 132. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 132 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Event-Driven Systems Sistemas de Prioridade Fixa • Escalonamento Rate-Monotonic (RMS) – Escalonamento preemtivo de prioridade fixa – Tarefas mais freqüentes têm maior prioridade – Os deadlines devem ser iguais aos períodos – Tarefas não têm nenhuma relação entre si (precedência, exclusão, etc) – É ótimo, ou seja, nenhum outro método é melhor que este com estas condições
  • 133. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 133 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Event-Driven Systems Sistemas de Prioridade Fixa • Deadline-Monotonic Scheduling: – Semelhante ao RMS, mas quanto menor o deadline da tarefa maior sua prioridade – Os deadlines são fixos e relativos aos começos dos períodos
  • 134. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 134 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Event-Driven Systems Tarefa 1 Tarefa 2 Tarefa 3 Tarefa 4 Disp. Entrada Interrupção do Timer Recurso 1 Recurso 2 Atuador Disp. Saída Sensor Arquitetura de Software
  • 135. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 135 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Event-Driven Systems Análise de Escalonabilidade Escalonamento Rate-Monotonic (RMS) • Notação: Processo: pi Período: Ti Tempo de Computação: Ci Deadline: Di • Em um conjunto de n processos periódicos independentes escalonados pelo RMS sempre obedecerá o seu deadline se (condição suficiente mas não necessária): onde, U(n) é o limite de utilização para n processos. n  U(n)  69%     1 2 ... 1 1 1      n n n n n U T C T C
  • 136. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 136 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Event-Driven Systems Escalonamento Rate-Monotonic (RMS) • U(n) = 1,0 se o conjunto de tarefas é harmônico – Um conjunto de tarefas é harmônico se os períodos de todas as tarefas são múltiplos ou sub-múltiplos entre si • U(n) = 0,88 na média de tarefas randômicas
  • 137. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 137 SE::P & A::Sw::STR::Escalonamento::Garantia em Projeto Event-Driven Systems Análise de Escalonabilidade • Análise baseada em Tempo de Resposta • Calcula tempo de resposta no pior caso e compara ao deadline • Para a tarefa mais prioritária R1 = C1 • Demais tarefas sofrem interferência das tarefas com prioridade maior Neste caso, Ri = Ci + Ii • Interferência é máxima a partir do Instante Crítico – Instante onde todas as tarefas são liberadas simultaneamente
  • 138. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 138 Garantia em Projeto :: Event-Driven Systems Análise de Escalonabilidade Interferência entre tarefas Seja Pj uma tarefa com prioridade maior que Pi – Quantas vezes Pj pode acontecer durante a execução de Pi ? Ri/Tj – Qual a interferência total de Pj sobre Pi ? Ri/Tj x Cj – Qual a interferência total sobre Ti ? ∑ Ri/Tj x Cj, onde Pri(j)>Pri(i)
  • 139. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 139 Garantia em Projeto :: Event-Driven Systems Análise de Escalonabilidade O tempo máximo de resposta de pi é Ri = Ci + Ii Ri = Ci + ∑ Ri/Tj x Cj O cálculo é feito recursivamente em iterações sucessivas, até: – Tempo de resposta passar do deadline (falha) – Resultado convergir, ou seja, iteração x+ 1 igual a iteração x Wi x+1 = Ci + ∑ Wi x/Tj x Cj, onde Wi 0= Ci
  • 140. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 140 Garantia em Projeto :: Event-Driven Systems Análise de Escalonabilidade Exemplo p1 p2 p3 T1=7 T2=12 T3=20 C1=3 C2=3 C3=5 Pri1=1 Pri2=2 Pri3=3 Resposta: R1 = 3 R2 = 6 R3 = 20
  • 141. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 141 Garantia em Projeto :: Event-Driven Systems Análise de Escalonabilidade Suponha uma tarefa esporádica liberada por evento externo – Eventos podem ser amostrados periodicamente – Sinalização do evento pode ter atraso variável – Release Jitter: Atraso máximo na liberação da tarefa Ri = Ji + Wi, Wi = Ci + ∑ (Wi+Jj)/Tj x Cj
  • 142. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 142 Garantia em Projeto :: Event-Driven Systems Análise de Escalonabilidade Bloqueios • Ocorrem devido às relações de exclusão mútua • Suponha p1 e p2, p1 com maior prioridade – Se p2 fica bloqueada esperando por p1 Ok, p1 tem mesmo prioridade superior – Se p1 fica bloqueada, esperando por p2 Cálculo do tempo de resposta deve incluir a espera máxima Bi Ri = Ji + Wi Wi = Ci + Bi + ∑ (Wi+Jj)/Tj x Cj
  • 143. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 143 Garantia em Projeto :: Event-Driven Systems Análise de Escalonabilidade • Seções Críticas e Inversão de Prioridades
  • 144. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 144 Garantia em Projeto :: Event-Driven Systems Análise de Escalonabilidade • Protocolo de Herança de Prioridades
  • 145. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 145 Sistemas Operacionais de Tempo Real • Escalonamento preemptivo • Escalona processos com base em prioridades (não é justo, pode provocar starvation) • Todas as chamadas ao S.O. tem tempo máximo de execução definido e otimizado • A mudança de contexto tem tempo limitado, conhecido (fixed overhead) e otimizado • Tratamento de inversão de prioridade
  • 146. Sérgio Cavalcante - CIn/UFPE Introdução aos Sistemas Embarcados 146 Referências • Livro de Sistemas de Tempo Real Jean- Marie Farines, Joni da Silva Fraga, Rômulo Silva de Oliveira. Escola de Computação’2000 - IME- USP http:// www. lcmi. ufsc. br/ gtr/ livro/ principal. Htm • IEEE Computer Society, Technical Committee on Real- Time Systems (IEEE- CS TC- RTS) http:// www. cs. bu. edu/ pub/ ieee- rts • The Concise Handbook Of Real-Time Systems. TimeSys Corporation, Versão 1.1, 2000. http://www.timesys.com