arquitetura de sistemas embarcados

26
Arquitetura de Arquitetura de Sistemas Embarcados Sistemas Embarcados Edna Barros ([email protected]) Centro de Informática – UFPE

Upload: josiah

Post on 19-Mar-2016

29 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: Arquitetura de  Sistemas Embarcados

Arquitetura de Arquitetura de Sistemas EmbarcadosSistemas Embarcados

Edna Barros ([email protected])

Centro de Informática – UFPE

Page 2: Arquitetura de  Sistemas Embarcados

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

Page 3: Arquitetura de  Sistemas Embarcados

RevisãoRevisão: : Projetando um Projetando um processador de propósito processador de propósito único customizadoúnico customizado

Page 4: Arquitetura de  Sistemas Embarcados

Arquitetura de Sistemas Embarcados 4

RoteiroRoteiro• Conceitos Básicos• Lógica Combinacional• Lógica Sequencial• Projetando um processador de propósito

único

Page 5: Arquitetura de  Sistemas Embarcados

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

Page 6: Arquitetura de  Sistemas Embarcados

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

Page 7: Arquitetura de  Sistemas Embarcados

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

Page 8: Arquitetura de  Sistemas Embarcados

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

Page 9: Arquitetura de  Sistemas Embarcados

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

Page 10: Arquitetura de  Sistemas Embarcados

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

Page 11: Arquitetura de  Sistemas Embarcados

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

Page 12: Arquitetura de  Sistemas Embarcados

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

Page 13: Arquitetura de  Sistemas Embarcados

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

Page 14: Arquitetura de  Sistemas Embarcados

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

Page 15: Arquitetura de  Sistemas Embarcados

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:

Page 16: Arquitetura de  Sistemas Embarcados

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

Page 17: Arquitetura de  Sistemas Embarcados

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

Page 18: Arquitetura de  Sistemas Embarcados

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

Page 19: Arquitetura de  Sistemas Embarcados

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

Page 20: Arquitetura de  Sistemas Embarcados

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

Page 21: Arquitetura de  Sistemas Embarcados

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

Page 22: Arquitetura de  Sistemas Embarcados

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

Page 23: Arquitetura de  Sistemas Embarcados

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)

Page 24: Arquitetura de  Sistemas Embarcados

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

Page 25: Arquitetura de  Sistemas Embarcados

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

Page 26: Arquitetura de  Sistemas Embarcados

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