arquitetura de sistemas embarcados
DESCRIPTION
Arquitetura de Sistemas Embarcados. Edna Barros ([email protected]) Centro de Informática – UFPE. Introdução. Digital camera chip. CCD. CCD preprocessor. Pixel coprocessor. D2A. A2D. lens. JPEG codec. Microcontroller. Multiplier/Accum. DMA controller. Display ctrl. - PowerPoint PPT PresentationTRANSCRIPT
Arquitetura de Arquitetura de Sistemas EmbarcadosSistemas Embarcados
Edna Barros ([email protected])
Centro de Informática – UFPE
Arquitetura de Sistemas Embarcados 2
IntroduçãoIntrodução• Processador
– Circuito digital que implementa tarefa computacional
– Controle e unidade de processamento
– Propósito Geral: variedade de tarefas– Propósito Único: uma tarefa
particular– Propósito Único e Customizado:
tarefa não padrão
• Processador de propósito único customizado:– Rápido, pequeno e baixo
consumo– MAS : possui alto custo NRE, time-to-
market long e apresenta pouca flexilibidade
Microcontroller
CCD preprocessor
Pixel coprocessorA2D
D2A
JPEG codec
DMA controller
Memory controller ISA bus interface UART LCD ctrl
Display ctrl
Multiplier/Accum
Digital camera chip
lens
CCD
RevisãoRevisão: : Projetando um Projetando um processador de propósito processador de propósito único customizadoúnico customizado
Arquitetura de Sistemas Embarcados 4
RoteiroRoteiro• Conceitos Básicos• Lógica Combinacional• Lógica Sequencial• Projetando um processador de propósito
único
Arquitetura de Sistemas Embarcados 5
CMOS transistorCMOS transistoreses emem sil silícioício• Transistor
– O Componente Básico dos Sistemas Digitais– Atua com chave– Tensão no “gate” controla fluxo de corrente da
fonte para o “drain”
source drainoxidegate
IC package IC channel
Silicon substrate
gate
source
drain
Conductsif gate=1
1
Arquitetura de Sistemas Embarcados 6
Implementações de Implementações de Transistores Transistores CMOSCMOS• Complementary Metal Oxide
Semiconductor• Níveis Lógicos
– 0 é 0V, 1 é 5V• Dois tipos básicos
– nMOS conduz se gate=1– pMOS conduz se gate=0
• Portas Básicas– Inverter, NAND, NOR
x F = x'
1
inverter
0
F = (xy)'
x1
x
y
y
NAND gate
0
1
F = (x+y)'
x y
x
y
NOR gate0
gate
source
drain
nMOS
Conductsif gate=1
gate
source
drain
pMOS
Conductsif gate=0
Arquitetura de Sistemas Embarcados 7
Portas Lógicas BásicasPortas Lógicas Básicas
F = x yAND
F = (x y)’NAND
F = x yXOR
F = xDriver
F = x’Inverter
x F
F = x + yOR
F = (x+y)’NOR
x F
x
yF
Fx
y
x
yF
xy
Fx
y F
F = x yXNOR
Fyxx
0y0
F0
0 1 01 0 01 1 1
x0
y0
F0
0 1 11 0 11 1 1
x0
y0
F0
0 1 11 0 11 1 0
x0
y0
F1
0 1 01 0 01 1 1
x0
y0
F1
0 1 11 0 11 1 0
x0
y0
F1
0 1 01 0 01 1 0
x F0 01 1
x F0 11 0
Arquitetura de Sistemas Embarcados 8
Projeto de Circuitos Projeto de Circuitos CombinacionaisCombinacionais
A) Problem description
y is 1 if a is to 1, or b and c are 1. z is 1 if b or c is to 1, but not both, or if all are 1.
D) Minimized output equations
0001
01 11 1001
0 1 01 1 1
abcy
y = a + bc
0001
01 11 1000
1 0 11 1 1
z
z = ab + b’c + bc’
abc
C) Output equations
y = a'bc + ab'c' + ab'c + abc' + abc
z = a'b'c + a'bc' + ab'c + abc' + abc
B) Truth table
1 0 1 1 11 1 0 1 11 1 1 1 1
0 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 0
00 0 0 0
Inputsa b c
Outputsy z
E) Logic Gates
abc
y
z
Arquitetura de Sistemas Embarcados 9
Circuitos Circuitos CombinaCombinacionaiscionais
With enable input e all O’s are 0 if e=0
With carry-in input Ci
sum = A + B + Ci
May have status outputs carry, zero, etc.
O =I0 if S=0..00I1 if S=0..01…I(m-1) if S=1..11
O0 =1 if I=0..00O1 =1 if I=0..01…O(n-1) =1 if I=1..11
sum = A+B (first n bits)carry = (n+1)’th bit of A+B
less = 1 if A<B equal =1 if A=Bgreater=1 if A>B
O = A op Bop determinedby S.
n-bit, m x 1 Multiplexor
O
…S0
S(log m)
n
n
I(m-1) I1 I0
…
log n x n Decoder
…
O1 O0O(n-1)
I0I(log n -1)…
n-bitAdder
nA B
n
sumcarry
n-bitComparator
n nA B
less equal greater
n bit, m function
ALU
n nA B
…S0
S(log m)
n
O
Arquitetura de Sistemas Embarcados 10
Circuitos Circuitos SequenSequenciaisciais
Q = 0 if clear=1, I if load=1 and clock=1, Q(previous) otherwise.
Q = 0 if clear=1, Q(prev)+1 if count=1 and clock=1.
clear
n-bitRegister
n
n
load
I
Q
shift
I Q
n-bitShift register
n-bitCountern
Q
Q = lsb - Content shifted - I stored in msb
Arquitetura de Sistemas Embarcados 11
Projeto de Circuitos Projeto de Circuitos SequenSequenciaisciais
A) Problem Description
You want to construct a clock divider. Slow down your pre-existing clock so that you output a 1 for every four clock cycles
0
1 2
3
x=0
x=1x=0
x=0
a=1 a=1
a=1
a=1
a=0
a=0
a=0
a=0
B) State Diagram
D) State Table (Moore-type)
1 0 1 1 11 1 0 1 11 1 1 0 0
0 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 0
00 0 0 0
InputsQ1 Q0 a
OutputsI1 I0
1
0
0
0
x
C) Implementation Model
Combinational logic
State register
a x
I0
I0
I1
I1
Q1 Q0
Arquitetura de Sistemas Embarcados 12
Projeto de Circuitos Projeto de Circuitos SequenSequenciaisciais
00
1
Q1Q0 I1
I1 = Q1’Q0a + Q1a’ + Q1Q0’
0 1
1
1
010
00 11 10 a 01
0
0
0
1 0 1
1
00 01 11 a
1
10 I0 Q1Q0
I0 = Q0a’ + Q0’a0
1
0 0
0
1
1
0
0
00 01 11 10
x = Q1Q0
x
0
1
0
aQ1Q0
E) Minimized Output Equations
F) Combinational Logic
a
Q1 Q0
I0
I1
x
D) State Table (Moore-type)
1 0 1 1 11 1 0 1 11 1 1 0 0
0 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 0
00 0 0 0
InputsQ1 Q0 a
OutputsI1 I0
1
0
0
0
x
Arquitetura de Sistemas Embarcados 13
Modelo Básico de um Modelo Básico de um Processador de Propósito ÚnicoProcessador de Propósito Único
controller and datapath
controller datapath
…
…
externalcontrolinputs
externalcontrol outputs
…
externaldata
inputs
…
externaldata
outputs
datapathcontrolinputs
datapathcontroloutputs
… …
a view inside the controller and datapath
controller datapath
… …
stateregister
next-stateand
controllogic
registers
functionalunits
Arquitetura de Sistemas Embarcados 14
ExExemploemplo: greatest common : greatest common divisordivisor
GCD
(a) black-box view
x_i y_i
d_o
go_i
0: int x, y;1: while (1) {2: while (!go_i);3: x = x_i; 4: y = y_i;5: while (x != y) {6: if (x < y) 7: y = y - x; else 8: x = x - y; }9: d_o = x; }
(b) desired functionality
y = y -x7: x = x - y8:
6-J:
x!=y
5: !(x!=y)
x<y !(x<y)
6:
5-J:
1:
1
!1
x = x_i3:
y = y_i4:
2:
2-J:
!go_i
!(!go_i)
d_o = x
1-J:
9:
(c) state diagram• Descreva o
algoritmo• Converta o
algoritmo para uma FSM complexa– FSMD: finite-state
machine with datapath
– Templates podem ser usados
Arquitetura de Sistemas Embarcados 15
Templates de Diagramas de Templates de Diagramas de EstadoEstado
Assignment statement
a = bnext statement
a = b
next statement
Loop statement
while (cond) { loop-body-
statements}next statement
loop-body-statements
cond
next statement
!cond
J:
C:
Branch statement
if (c1) c1 stmtselse if c2 c2 stmtselse other stmtsnext statement
c1
c2 stmts
!c1*c2 !c1*!c2
next statement
othersc1 stmts
J:
C:
Arquitetura de Sistemas Embarcados 16
Criando a Unidade de Criando a Unidade de ProcessamentoProcessamento
• Crie um registrador para cada variável declarada
• Crie uma unidade funcional para cada operação aritmética
• Faça a conexão dos registradores às unidades funcionais – Baseado nas leituras e
escritas– Use multiplexadores para
fontes múltiplas• Crie um identificador único
para cada saída e entrada da unidade de processamento
y = y -x7: x = x - y8:
6-J:
x!=y
5: !(x!=y)
x<y !(x<y)
6:
5-J:
1:
1
!1
x = x_i3:
y = y_i4:
2:
2-J:
!go_i
!(!go_i)
d_o = x
1-J:
9:
subtractor subtractor7: y-x8: x-y5: x!=y 6: x<y
x_i y_i
d_o
0: x 0: y
9: d
n-bit 2x1 n-bit 2x1x_sel
y_selx_ld
y_ld
x_neq_y
x_lt_y
d_ld
<5: x!=y
!=
Datapath
Arquitetura de Sistemas Embarcados 17
Criando um controle baseado Criando um controle baseado em FSMem FSM
• Mesma estrutura que uma FSMD
• Substitua ações complexas por configurações da unid. de processamento
y = y -x7: x = x - y8:
6-J:
x!=y
5: !(x!=y)
x<y !(x<y)
6:
5-J:
1:
1
!1
x = x_i3:
y = y_i4:
2:
2-J:
!go_i
!(!go_i)
d_o = x
1-J:
9:
y_sel = 1y_ld = 1
7: x_sel = 1x_ld = 1
8:
6-J:
x_neq_y
5:!x_neq_y
x_lt_y !x_lt_y
6:
5-J:
d_ld = 1
1-J:
9:
x_sel = 0x_ld = 13:
y_sel = 0y_ld = 14:
1:1
!1
2:
2-J:
!go_i
!(!go_i)
go_i
0000
0001
0010
0011
0100
0101
0110
0111 1000
1001
1010
1011
1100
Controller
subtractor subtractor7: y-x8: x-y5: x!=y 6: x<y
x_i y_i
d_o
0: x 0: y
9: d
n-bit 2x1 n-bit 2x1x_sel
y_selx_ld
y_ld
x_neq_y
x_lt_y
d_ld
<5: x!=y
!=
Datapath
Arquitetura de Sistemas Embarcados 18
Conectando controle e unidade Conectando controle e unidade de processamentode processamento
y_sel = 1y_ld = 1
7: x_sel = 1x_ld = 1
8:
6-J:
x_neq_y=1
5:x_neq_y=0
x_lt_y=1 x_lt_y=0
6:
5-J:
d_ld = 1
1-J:
9:
x_sel = 0x_ld = 13:
y_sel = 0y_ld = 14:
1:1
!1
2:
2-J:
!go_i
!(!go_i)
go_i
0000
0001
0010
0011
0100
0101
0110
0111 1000
1001
1010
1011
1100
ControllerController implementation model
y_selx_sel
Combinational logic
Q3 Q0
State register
go_i
x_neq_yx_lt_y
x_ldy_ld
d_ld
Q2 Q1
I3 I0I2 I1
subtractor subtractor7: y-x8: x-y5: x!=y 6: x<y
x_i y_i
d_o
0: x 0: y
9: d
n-bit 2x1 n-bit 2x1x_sel
y_selx_ld
y_ld
x_neq_y
x_lt_yd_ld
<5: x!=y
!=
(b) Datapath
Arquitetura de Sistemas Embarcados 19
Tabela de Estado para o Tabela de Estado para o controle do GCDcontrole do GCD
Inputs OutputsQ3 Q2 Q1 Q0 x_n
eq_y
x_lt_y
go_i I3 I2 I1 I0 x_sel
y_sel
x_ld y_ld d_ld
0 0 0 0 * * * 0 0 0 1 X X 0 0 00 0 0 1 * * 0 0 0 1 0 X X 0 0 00 0 0 1 * * 1 0 0 1 1 X X 0 0 00 0 1 0 * * * 0 0 0 1 X X 0 0 00 0 1 1 * * * 0 1 0 0 0 X 1 0 00 1 0 0 * * * 0 1 0 1 X 0 0 1 00 1 0 1 0 * * 1 0 1 1 X X 0 0 00 1 0 1 1 * * 0 1 1 0 X X 0 0 00 1 1 0 * 0 * 1 0 0 0 X X 0 0 00 1 1 0 * 1 * 0 1 1 1 X X 0 0 00 1 1 1 * * * 1 0 0 1 X 1 0 1 01 0 0 0 * * * 1 0 0 1 1 X 1 0 01 0 0 1 * * * 1 0 1 0 X X 0 0 01 0 1 0 * * * 0 1 0 1 X X 0 0 01 0 1 1 * * * 1 1 0 0 X X 0 0 11 1 0 0 * * * 0 0 0 0 X X 0 0 01 1 0 1 * * * 0 0 0 0 X X 0 0 01 1 1 0 * * * 0 0 0 0 X X 0 0 01 1 1 1 * * * 0 0 0 0 X X 0 0 0
Arquitetura de Sistemas Embarcados 20
Completando o projeto do Completando o projeto do Processador de Funcionalidade Processador de Funcionalidade Ùnica - GCDÙnica - GCD• Projeto dos Componentes
da Unidade de Processamento
• Implementação da lógica combinacional para a unidade de controle
• Esta não é uma implementação otimizada mas FUNCIONA
… …
a view inside the controller and datapath
controller datapath
… …
stateregister
next-stateand
controllogic
registers
functionalunits
Arquitetura de Sistemas Embarcados 21
OOtimizando processadores de timizando processadores de propósito únicopropósito único• Otimização: melhorar métricas de projeto• Oportunidades de Otimização
– Especificação inicial– FSMD– Unidade de Processamento– FSM
Arquitetura de Sistemas Embarcados 22
Otimizando a Descrição InicialOtimizando a Descrição Inicial• Análise do programa de forma a
identificar possíveis otimizações– Número computações– Tamanho das variáveis– Complexidade de tempo e espaço– Operações usadas
Arquitetura de Sistemas Embarcados 23
Otimizando o programaOtimizando o programa0: int x, y;1: while (1) {2: while (!go_i);3: x = x_i; 4: y = y_i;5: while (x != y) {6: if (x < y) 7: y = y - x; else 8: x = x - y; }9: d_o = x; }
0: int x, y, r; 1: while (1) { 2: while (!go_i); // x must be the larger number 3: if (x_i >= y_i) { 4: x=x_i; 5: y=y_i; } 6: else { 7: x=y_i; 8: y=x_i; } 9: while (y != 0) {10: r = x % y;11: x = y; 12: y = r; }13: d_o = x; }
original program optimized program
replace the subtraction operation(s) with modulo
operation in order to speed up program
GCD(42, 8) - 9 iterations to complete the loop
x and y values evaluated as follows : (42, 8), (43, 8), (26,8), (18,8), (10, 8), (2,8), (2,6), (2,4), (2,2).
GCD(42,8) - 3 iterations to complete the loop
x and y values evaluated as follows: (42, 8), (8,2), (2,0)
Arquitetura de Sistemas Embarcados 24
OOtimizando a timizando a FSMDFSMD• Possíveis otimizações
– Merge de Estados• Estados com constantes nas transições podem ser
eliminados, transições são conhecidas• Estados com operações independentes podem ser agrupados
– Separação de Estados• Estados incluindo operações complexas (a*b*c*d) podem ser
quebrados em estados menores– Escalonamento
Arquitetura de Sistemas Embarcados 25
Otimizando a FSMD (cont.)Otimizando a FSMD (cont.)
int x, y;
2: go_i !go_i
x = x_iy = y_i
x<y x>y
y = y -x x = x - y
3:
5:
7: 8:
d_o = x9:
y = y -x7: x = x - y8:
6-J:
x!=y
5: !(x!=y)
x<y !(x<y)
6:
5-J:
1:
1
!1
x = x_i
y = y_i4:
2:
2-J:!go_i
!(!go_i)
d_o = x
1-J:
9:
int x, y;
3:
original FSMD optimized FSMD
Elimina Estado 1
merge estados 2 e 2J
merge estados 3 e 4
merge estados 5 e 6
Elimina estados 5J e 6J
Elimina estado 1-J
Arquitetura de Sistemas Embarcados 26
ResumoResumo• Processadores de Propósito ÚNICO
– Técnicas de projeto– Implementação de Algoritmos– Tipicamente se começa com uma FSMD– Ferramentas de CAD são imprescindíveis