introdução a sistemas digitais - ufrgsfglima/projeto/projeto7_2007.pdf · disciplina: cmp238 –...

36
Aula Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 1 / 30 Introdução a Sistemas Digitais Introdução a Sistemas Digitais Projeto RTL: parte operativa (PO) e parte de controle (PC). Projeto da parte operativa (PO) : multiplexadores, barramento, paralelismo, analise de área x desempenho. Projeto da parte controle (PC) : máquina de estados, microprogramação, analise de área x desempenho. Exemplos: fluxogramas ASM vistos anteriormente.

Upload: duongkhue

Post on 14-Dec-2018

216 views

Category:

Documents


1 download

TRANSCRIPT

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 20071 / 30

Introdução a Sistemas DigitaisIntrodução a Sistemas Digitais

Projeto RTL: parte operativa (PO) e parte de controle (PC).

Projeto da parte operativa (PO) : multiplexadores, barramento, paralelismo, analise de área x desempenho.

Projeto da parte controle (PC) : máquina de estados, microprogramação, analise de área x desempenho.

Exemplos: fluxogramas ASM vistos anteriormente.

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 2 / 30

Parte de Controle e Parte OperativaParte de Controle e Parte Operativa

Unidade de Controle:-Modelada por FSM-Define uma sequencia de ações conforme o relógiocontrolando o datapath e blocos externos.

Unidade de Caminhos de Dados:-Modelada por transferência entreregistradores (RT)-Define transformações sincronas e assincronas de dados ao longo do bloco.

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 3 / 30

ModeloModelo ParteParte OperativaOperativa –– ParteParte de de ControleControle

OperadoresRegistradores

Conexões

Máquina deEstados

status

comandos

relógio

E/S E/S

PCPO

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 4 / 30

ConsideraçõesConsiderações

• A partir do fluxograma pode-se obter um bloco de controle onde cada bloco ASM do fluxograma corresponderá a um estado no controle. (desperdício x tecnicas de otimização)

• Fluxograma possui operações factiveis do ponto de vista de sistemas digitais.

• Operações que podem ser realizadas em um ciclo de relógio.

• Decisão dos recursos disponíveis na parteoperativa, interdependencia com o projeto daparte de controle.

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 5 / 30

DiferençasDiferenças entreentre LinguagemLinguagem X HardwareX Hardware

Custo das conexões

• Durante a simulação (Matlab, C, etc…), o custo de uma ligaçãoentre uma variável e outra é gratuíta. Isto não reflete a realidadedos circuitos.

• A temporização ou o atraso dos componentes envolvidos no projetoestá escondida quando se usa linguagem de alto nível.

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 6 / 30

ProjetoProjeto do do BlocoBloco OperacionalOperacional (PO)(PO)

Conjunto de Registradores

Rede de Interconexões

Conjunto de Operadores

Rede de Interconexões

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 7 / 30

ConexõesConexões com com MultiplexadoresMultiplexadores

• m registradores de n-bits cada• Cada registrador tem um mux de m:1 de n-bits por entrada• Se Cm é o custo de 1 mux 2:1

Custo total = m * Cm * (n-1)

n*m bits

R0 R1 Rm-1clk

enR0

C0

clk clk

enR1enR0

enRm-1

C1 Cm-1

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 8 / 30

ConexõesConexões com com MultiplexadoresMultiplexadores

Transferências simultaneas = + paralelismo

R0 R1 R2clk

enR0

C0

clk clk

enR1enR0

enR2

C1 C2

Rm-1clk

enRm-1

Cm-1

R0 ← R1 ao mesmo tempo que R2 ← Rm-1

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 9 / 30

ConexõesConexões com com BarramentoBarramento

• m registradores de n-bits cada• Se Cb é o custo do buffer de 3 estados

Custo total = m * Cb * n ou 2 * m * Cb * n

n bits

R0 R1 Rm-1

ENW0

ENR0

ENW1

ENR1

ENWm-1

ENRm-1

clk clk clk

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 10 / 30

ConexõesConexões com com BarramentoBarramento

Serialização das transferências

R0 R1 R2

ENW0

ENR0

ENW1

ENR1

ENW2

ENR2

clk clk clkRm-1

ENWm-1

ENRm-1

clk

0

Exemplo: R0 ← R1 ciclo de clock 1

0

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 11 / 30

ConexõesConexões com com BarramentoBarramento

Serialização das transferências

R0 R1 R2

ENW0

ENR0

ENW1

ENR1

ENW2

ENR2

clk clk clkRm-1

ENWm-1

ENRm-1

clk

0

Exemplo: R2 ← Rm-1 ciclo de clock 2

0

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 12 / 30

ComparaçãoComparação MuxMux X X BarramentoBarramento

Custo mux para inserção de registradores

(m+1) * Cm * (n-1+m) : quadrádico em termos de m

Custo barramento para inserção de registradores

(m+1)*Cb*n

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 13 / 30

ProjetoProjeto dada PO com MUXPO com MUX

• Determinar os recursos a serem disponiveis na PO paradeterminar o paralelismo das operações.

1. Montagem da tabela de transferência: tabela onde cada variávelparece em uma coluna e as linhas são ordenadas pelo estado. Todas as operações que mudam a variavel naquele estado sãoregistradas.

2. Alocação de variáveis em registradores. Determinar quantasvariaveis irão ser alocadas em registradores tentado minimizar o numero de registradores diferentes. (register alocation and life-time analysis)

3. Escolha dos operadores necessários

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 14 / 30

Exemplo: Multiplicador por somas Exemplo: Multiplicador por somas sucessivassucessivas

Início P← 0AR ← ABR ← BACC ← 0

Idle

start0

1 AR

BR

ACC ← ACC + AR

BR ← BR - 1

S1

1

1

0

0

R ← ACC

P ← 1

done

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 15 / 30

PO com PO com operadoresoperadores e e muxmux p/ p/ multiplicaçãomultiplicação

A

AR 1

Somador/Subtrator +/-

ACC BR

=0=0

B

R

Reset

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 16 / 30

PO com PO com operadoresoperadores e e muxmux p/ p/ multiplicaçãomultiplicação

A

AR ACC 1 BR

=0=0

B

R

Reset

Somador Subtrator

Aumento de Paralelismo

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 17 / 30

PO com PO com BarramentoBarramento p/ p/ multiplicaçãomultiplicação

AR BR ACC 1 R1

R2

E/S

cargaR2

cargaR1

Função +/-

1 transferência por ciclo

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 18 / 30

PO com PO com BarramentoBarramento p/ p/ multiplicaçãomultiplicação

AR BR ACC 1 R1

R2

E/S

cargaR2

cargaR1

Função +/-

2 transferências por ciclo

E/S

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 19 / 30

ProjetoProjeto BlocoBloco de de ControleControle (PC)(PC)

FunçãoPróximoEstado

Função de Saída

Parte Operativa

Estado Atual

Entrada Externas

Status

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 20 / 30

TemporizaçãoTemporização PCPC--POPO

Relógio

Estado Atual

Função Saída

Parte Operativa

Função Prox.Estado

f = 1tpFF + TpFS + tpPO + tpFPE + tsetFF

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 21 / 30

ProjetoProjeto BlocoBloco de de ControleControle (PC)(PC)

FunçãoPróximoEstado

Função de Saída

Parte Operativa

Estado Atual

Entrada Externas

Status

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 22 / 30

TemporizaçãoTemporização PCPC--POPO

Relógio

Estado Atual

Função Saída

Parte Operativa

Função Prox.Estado

f = 1tpFF + TpFS + tpPO + tpFPE + tsetFF

Status

Maior numero de estados na PC

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 23 / 30

ControleControle de de CargaCarga do do RegistradorRegistrador

R1relógio

Condição

R1

condição

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 24 / 30

Exemplo: Extrator de Raiz QuadradaExemplo: Extrator de Raiz Quadrada

Ler X-- inicializaçãor=1; d=2; s=4;Enquanto (t==1) {r=r+1;d=d+2;s=s+d+1;t=ac(s,x);}devolve(r);}ac(a,b)semsinal a, b;{Se (a<=b) retorna (1); Senão retorna (0);}

Numeros inteiros e positivos

Extrator Raiz Quadrada

clkresetstart

x

ready

r

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 25 / 30

Exemplo: Extrator de Raiz QuadradaExemplo: Extrator de Raiz Quadrada

Raiz ← dado

r=1; d=2; s=4

Idle

start0

1

r ← r+1;d ← d+2;s ← s+d+1;

1

done

t ← S ≤ Raiz

S1

0

Opção 1

S0

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 26 / 30

Projeto Parte de ControleProjeto Parte de Controle

Raiz ← dador=1; d=2; s=4

Idle

start0

1

r ← r+1;d ← d+2;s ← s+d+1;

1

done

t ← S ≤ Raiz

S1

0

Start=0, t=x Start=1, t=x

Idle S0t=1, start=x

t=x, start=x t=0, start=x

S0

S1 done

? ? ? ?

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 27 / 30

ProjetoProjeto ParteParte OperativaOperativa

dado

Raiz r d s

Resetd

somador

2

somador

0

1

somador0

1

t

ResetsResetr

LDRaiz LDr LDd LDS

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 28 / 30

ProjetoProjeto ParteParte OperativaOperativa

dado

Raiz r d s

Resetd

somador

2

somador

0

1

somador0

1

ResetsResetr

LDRaiz LDr LDd LDS

Atraso máximo entre dois registradores

Admitindo o tempo de propagação do somador > que o comparador

t

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 29 / 30

Projeto Parte de ControleProjeto Parte de Controle

Start=0, t=x Start=1, t=x

Idle S0 t=1, start=x

t=x, start=x t=0, start=x

S1 done

Resetr =1Resetd = 1Resets = 1LDRaiz = 0LDr = 0LDs = 0LDd = 0

Resetr =0Resetd = 0Resets = 0LDRaiz = 1LDr = 0LDs = 0LDd = 0

Resetr =0Resetd = 0Resets = 0LDRaiz = 0LDr = 1LDs = 1LDd = 1

Resetr =0Resetd = 0Resets = 0LDRaiz = 0LDr = 0LDs = 0LDd = 0

Start=x, t=x

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 30 / 30

Exemplo: Extrator de Raiz QuadradaExemplo: Extrator de Raiz QuadradaOpção 2

Raiz ← dado

r=1; d=2; s=4

Idle

start0

1

d ← d+2;

1

done

t ← S ≤ Raiz

S1

0

S0 r ← r+1;

s ← s+d+1;

S2

S3

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 31 / 30

Projeto Parte de ControleProjeto Parte de Controle

Start=0, t=x Start=1, t=x

Idle S0

t=1, start=xt=x, start=x

S1 S2

? ? ? ?

Raiz ← dador=1; d=2; s=4

Idle

start0

1

d ← d+2;

1

done

t ← S ≤ Raiz

S1

0

S0 r ← r+1;

s ← s+d+1;

S2

S3

S3

?done

?

t=0, start=x

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 32 / 30

ProjetoProjeto ParteParte OperativaOperativa

dado

Raiz r d s

Resetd

somadorCin

ResetsResetr

LDRaiz LDr LDd LDS

Ca

2 1

Cb

t

0 1 00 01 10

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 33 / 30

ProjetoProjeto ParteParte OperativaOperativa

dado

Raiz r d s

Resetd

somadorCin

ResetsResetr

LDRaiz LDr LDd LDS

2 1

Cb

Admitindo o tempo de propagação do somador > que o comparador

Atraso máximo entre dois registradorest

00 01 10Ca0 1

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 34 / 30

Projeto Parte de ControleProjeto Parte de Controle

Start=0, t=xStart=1, t=x

Idle S0

t=x, start=x t=0, start=x

S1 doneResetr =1Resetd = 1Resets = 1LDRaiz = 0LDr = 0LDs = 0LDd = 0Ca = 0Cb = 00Cin = 0

Resetr =0Resetd = 0Resets = 0LDRaiz = 1LDr = 0LDs = 0LDd = 0Ca = 0Cb = 00Cin = 0

Resetr =0Resetd = 0Resets = 0LDRaiz = 0LDr = 1LDs = 0LDd = 0Ca = 0Cb = 01Cin = 0

Resetr =0Resetd = 0Resets = 0LDRaiz = 0LDr = 0LDs = 0LDd = 0Ca = 0Cb = 00Cin = 0

S2

Resetr =0Resetd = 0Resets = 0LDRaiz = 0LDr = 0LDs = 0LDd = 1Ca = 1Cb = 00Cin = 0

S3

Resetr =0Resetd = 0Resets = 0LDRaiz = 0LDr = 0LDs = 1LDd = 0Ca = 1Cb = 10Cin = 1

t=1, start=x

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 35 / 30

Exemplo: Extrator de Raiz QuadradaExemplo: Extrator de Raiz QuadradaOpção 3 - Barramento

Raiz ← dado

r=1; d=2; s=4

Idle

start0

1

d ← d+2;

1

done

t ← S ≤ Raiz

S1

0

S0 r ← r+1;

s ← s+d+1;

S2

S3

Aula

Disciplina: CMP238 – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt – 2007 36 / 30

PO com PO com BarramentoBarramento p/ p/ raizraiz quadradaquadrada

Raiz r d s R1

R2

E/S

cargaR2

cargaR1

1 transferência por ciclo

somador

EnRSoma

EnRRaizEnWRaiz

EnRrEnWr

EnRdEnWd

EnRsEnWs

Resetr Resetd Resets