Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… ·...

30
1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2: Processadores dedicados

Transcript of Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… ·...

Page 1: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

1

Embedded Systems Design: A Unified Hardware/Software Introduction

Capítulo 2: Processadores dedicados

Page 2: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

2Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Sumário

• Introdução• Lógica combinacional• Lógica seqüencial• Projeto de processadores dedicados• Projeto de processadores dedicados (RT-level: Nível

de Registradores)

Page 3: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

3Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Introdução

• Processador– Circuito digital que executa tarefas

computacionais– Datapath e controlador– Propósito-geral: variedade de tarefas

computacionais– Dedicados: tarefa única– Especializados (para uma área de

aplicação): número de tarefas limitadas

• Um processador dedicado customizado pode ser

– Rápido, pequeno, baixo consumo– Entretanto, alto NRE, longo time-to-

market, baixa flexibilidade

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 4: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

4Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Transistor CMOS

• Transistor– Componente eletrônico básico em sistemas digitais– Atua como uma chave liga/desliga– A tensão de porta (gate) controla o fluxo de corrente da

fonte para o dreno

– Não confundir “gate” com porta lógica

source drainoxidegate

IC package IC channel

Silicon substrate

gate

source

drain

Conductsif gate=1

1

Page 5: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

5Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Implementações do transistor CMOS

• Complementary Metal Oxide Semiconductor (CMOS)

• Níveis lógicos– Tipicamente tem-se lógica

positiva: 0 é equivalente à 0V e 1 é equivalente à 5V

• Dois tipos básicos de CMOS– nMOS conduz se gate=1– pMOS conduz se gate=0– Portanto, são complementares

• Portas básicas– Inversor, NAND, NOR

x F = x'

1

inverter

0

F = (xy)'

x

1

x

y

y

NAND gate

0

1

F = (x+y)'

x y

x

y

NOR gate

0

gate

source

drain

nMOS

Conductsif gate=1

gate

source

drain

pMOS

Conductsif gate=0

Page 6: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

6Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Portas 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

x

yF

x

yF

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 7: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

7Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Projeto de lógica combinacional

A) Descrição do problema

y é 1 se a é 1, ou b e c são 1. z é 1 se b ou c é 1, mas não ambos, ou se todos são 1.

D) Minimizações equações de saída

00

0

1

01 11 10

0

1

0 1 0

1 1 1

abcy

y = a + bc

00

0

1

01 11 10

0

0

1 0 1

1 1 1

z

z = ab + b’c + bc’

abc

C) Equações de saída

y = a'bc + ab'c' + ab'c + abc' + abc

z = a'b'c + a'bc' + ab'c + abc' + abc

B) Tabela verdade

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) Portas lógicas

abc

y

z

Page 8: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

8Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Componentes combinacionais

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 determined by 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

n

A B

n

sumcarry

n-bitComparator

n n

A B

less equal greater

n bit, m function

ALU

n n

A B

…S0

S(log m)

n

O

Page 9: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

9Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Componentes seqüenciais

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-bitCounter

n

Q

Q = lsb - Content shifted - I stored in msb

count

clear

Page 10: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

10Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Projeto de lógica seqüencial

A) Descrição do problema

Queremos construir um divisor de freqüência. Dividir a freqüência de um sinal de relógio existente por quatro.

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) Diagrama de estados

C) Modelo de implementação

Combinational logic

State register

a x

I0

I0

I1

I1

Q1 Q0

D) Tabela de estados (Moore)

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

• Dado o modelo de implementação– O projeto de lógica seqüencial rapidamente

reduz-se ao desenvolvimento da lógica combinacional

Page 11: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

11Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Projeto de lógica seqüencial (cont.)

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

a

Q1Q0

E) Equações de saída minimizadas F) Lógica combinacional

a

Q1 Q0

I0

I1

x

Q0 Q1

Page 12: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

12Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Modelo básico de um processador dedicado

Controlador e datapath

controller datapath

externalcontrolinputs

externalcontrol outputs

externaldata

inputs

externaldata

outputs

datapathcontrolinputs

datapathcontroloutputs

… …

Visão interna do controlador

controller datapath

… …

stateregister

next-stateand

controllogic

registers

functionalunits

Page 13: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

13Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Exemplo: máximo divisor comum

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) diagrama de estado• Primeiramente escreve-se

um algoritmo para o cálculo

• Converte o algoritmo para uma máquina de estado– Conhecida como FSMD:

máquina de estado finito com datapath

– Pode-se usar modelos (bibliotecas de projeto) para melhorar tal conversão

Page 14: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

14Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Modelos de diagrama de estado

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 15: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

15Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Construindo o datapath

• Alocação de um registrador para qualquer variável declarada

• Alocação de uma unidade funcional para cada operação aritmética

• Conexão entre as portas, registradores e as unidades funcionais

– Com base em operação de em leitura e escrita

– Uso de multiplexadores para operação com diversas entradas

• Criação de um identificador único

– Variáveis booleanas para identificação de entradas e saídas de controle para os componentes do datapath

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 subtractor

7: 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_sel

x_ld

y_ld

x_neq_y

x_lt_y

d_ld

<

5: x!=y

!=

Datapath

Page 16: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

16Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Construindo o controlador FSM

• Mesma estrutura do FSMD• Valores associados às

entradas e às saídas de controle dos componentes do datapath

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 subtractor

7: 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_sel

x_ld

y_ld

x_neq_y

x_lt_y

d_ld

<

5: x!=y

!=

Datapath

Page 17: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

17Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Função completa: controlador e datapath

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_sel

x_selCombinational

logic

Q3 Q0

State register

go_i

x_neq_y

x_lt_y

x_ld

y_ld

d_ld

Q2 Q1

I3 I0I2 I1

subtractor subtractor

7: 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_sel

x_ld

y_ld

x_neq_y

x_lt_y

d_ld

<

5: x!=y

!=

(b) Datapath

Page 18: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

18Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Exemplo da tabela de estados para o controlador

Inputs Outputs

Q3 Q2 Q1 Q0 x_neq_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 0

0 0 0 1 * * 0 0 0 1 0 X X 0 0 0

0 0 0 1 * * 1 0 0 1 1 X X 0 0 0

0 0 1 0 * * * 0 0 0 1 X X 0 0 0

0 0 1 1 * * * 0 1 0 0 0 X 1 0 0

0 1 0 0 * * * 0 1 0 1 X 0 0 1 0

0 1 0 1 0 * * 1 0 1 1 X X 0 0 0

0 1 0 1 1 * * 0 1 1 0 X X 0 0 0

0 1 1 0 * 0 * 1 0 0 0 X X 0 0 0

0 1 1 0 * 1 * 0 1 1 1 X X 0 0 0

0 1 1 1 * * * 1 0 0 1 X 1 0 1 0

1 0 0 0 * * * 1 0 0 1 1 X 1 0 0

1 0 0 1 * * * 1 0 1 0 X X 0 0 0

1 0 1 0 * * * 0 1 0 1 X X 0 0 0

1 0 1 1 * * * 1 1 0 0 X X 0 0 1

1 1 0 0 * * * 0 0 0 0 X X 0 0 0

1 1 0 1 * * * 0 0 0 0 X X 0 0 0

1 1 1 0 * * * 0 0 0 0 X X 0 0 0

1 1 1 1 * * * 0 0 0 0 X X 0 0 0

Page 19: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

19Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Completando o desenvolvimento do processador dedicado

• Finalizamos o datapath• Determinamos a tabela de

estados para o próximo estado e controle lógico– Tudo que resta é o

desenvolvimento da lógica combinacional

• O desenvolvimento apresentado não está otimizado, porém pudemos analisar os procedimentos básicos envolvidos no projeto

… …

a view inside the controller and datapath

controller datapath

… …

stateregister

next-stateand

controllogic

registers

functionalunits

Page 20: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

20Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

• Freqüentemente, inicia-se o projeto com uma FSMD – ... no lugar de um algoritmo– O ciclo de relógio é uma informação crítica

• Exemplo– Ponte entre um barramento de 4-bit e um barramento de 8-bit – Começa com FSMD– Conhecido como register-transfer (RT) level (descrição do nível de transferência

entre registradores)– Exercício: complete o desenvolvimento

Desenvolvimento do processador dedicado customizado – Nível de Registradores

Prob

lem

Spe

cifi

cati

o n

BridgeA single-purpose processor that

converts two 4-bit inputs, arriving one at a time over data_in along with a

rdy_in pulse, into one 8-bit output on data_out along with a rdy_out pulse.

Sender

data_in(4)

rdy_in rdy_out

data_out(8)

Receiver

clock

Page 21: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

21Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Iniciando o projeto pelo FSMD

FSM

D

WaitFirst4 RecFirst4Startdata_lo=data_in

WaitSecond4

rdy_in=1

rdy_in=0

RecFirst4End

rdy_in=1

RecSecond4Startdata_hi=data_in

RecSecond4End

rdy_in=1rdy_in=0rdy_in=1

rdy_in=0

Send8Startdata_out=data_hi

& data_lordy_out=1

Send8Endrdy_out=0

Bridge

rdy_in=0

Inputs rdy_in: bit; data_in: bit[4];Outputs rdy_out: bit; data_out:bit[8]Variables data_lo, data_hi: bit[4];

Page 22: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

22Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Desenvolvimento do processador dedicado customizado – Nível de Registradores (cont.)

WaitFirst4 RecFirst4Startdata_lo_ld=1

WaitSecond4

rdy_in=1rdy_in=0

RecFirst4End

rdy_in=1

RecSecond4Startdata_hi_ld=1

RecSecond4End

rdy_in=1rdy_in=0rdy_in=1

rdy_in=0

Send8Startdata_out_ld=1

rdy_out=1

Send8Endrdy_out=0

(a) Controller

rdy_in rdy_out

data_lodata_hi

data_in(4)

(b) Datapathdata_out

data_lo_ld

clk

data_out

Bridge

to all registers

data

_hi_

ld

data

_out

_ld

data

_lo_

ld

Page 23: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

23Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Otimizando processadores dedicados

• Otimização: alcançando os melhores valores possíveis para as métricas de projeto

• Pontos do projeto onde pode ser realizada a otimização– Programa – FSMD– datapath– FSM

Page 24: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

24Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Otimização do programa

• Analisar os atributos do programa e procurar por áreas passíveis de melhoramento– Número de computações– Tamanho das variáveis

– Tempo e complexidade do espaço– Operações utilizadas

• Multiplicação e divisão podem ser mais demoradas e/ou envolver circuitos maiores e mais caros.

Page 25: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

25Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Otimização do programa original (cont.)

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; }

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; }

Programa original Programa otimizado

Substituição das operações de subtração por operação de

módulo com o intuito de aumentar a velocidade do

programa

GCD(42, 8) - 9 iterações para completar o loop

Os valores de x e y calculados são dados por: (42, 8), (43, 8), (26,8), (18,8), (10, 8), (2,8), (2,6), (2,4), (2,2).

GCD(42,8) - 3 iterações para completar o loop

Os valores de x e de y calculados são dados por: (42, 8), (8,2), (2,0)

Page 26: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

26Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Otimização da FSMD

• Alguns pontos para otimização:– Fusão de estados

• Estados com constantes especificando as transições condicionais podem ser eliminados pois a transição destes estados é sempre a mesma;

• Estados com operações independentes podem ser reunidos em um único estado.

– Separação de estados• Estados que correspondem a operações complexas (a*b*c*d) podem

ser quebrados em estados menores para reduzir o tamanho do hardware

– Escalonamento

Page 27: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

27Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Otimização da 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:

FSMD original FSMD otimizado

Eliminação do estado 1 – transições possuem valores constantes

Fusão do estado 2 com o estado 2J – eliminação do loop entre eles

Fusão dos estados 3 e 4 – as operações são independentes entre si

Fusão dos estados 5 e 6 – transições a partir do estado 6 podem ser realizadas no estado 5

Eliminação dos estados 5J e 6J – as transições de cada estado podem ser realizadas a partir do estado 7 e 8, respectivamente

Eliminação do estado 1-J – transições a partir do estado 1-J podem ser feitas diretamente a partir do estado 9

Page 28: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

28Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Otimização do datapath

• Compartilhamento das unidades funcionais– Mapeamento um-a-um entre operações e unidades

funcionais, como feito anteriormente, não é necessário– Se operações idênticas ocorrem em estados distintos, elas

podem ser executadas em uma única unidade funcional

• Unidades Multi-functionais– ULAs executam uma variedade de operações e podem ser

compartilhadas entre operações realizadas em diferentes estados

Page 29: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

29Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Otimização da FSM

• Codificação dos estados– Determinação de um código binário único para cada estado

da FSM– Tamanho do registrador de estados e da lógica

combinacional variam– Podem ser tratados como um problema de ordenação

• Minimização do número de estados– Fusão de estados equivalentes em um único estado

• Dois estados são equivalentes quando qualquer entrada para estes estados produzem as mesmas saídas e transições para os mesmos estados

Page 30: Embedded Systems Design: A Unified Hardware/Software ...marco/cursos/ea078_10_2/slides/cap02_… · 1 Embedded Systems Design: A Unified Hardware/Software Introduction Capítulo 2:

30Embedded Systems Design: A Unified

Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques

Tradução: Alice M. Tokarnia

Resumo

• Processadores dedicados– Técnicas simples de desenvolvimento– Podem ser projetados para executar algoritmos– Tipicamente o projeto começa com uma FSMD

– Ferramentas CAD podem (devem) ser utilizadas no projeto