Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT...

38
Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Aula 12-T 4. Projeto de Sistemas Digitais no Nível RT. Análise de Timing de um SD, Barramentos x Multiplexadores, Registradores x Banco de Registradores. Prof. José Luís Güntzel [email protected] www.inf.ufsc.br/~guntzel/ine5406/ine5406.html

Transcript of Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT...

Page 1: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

Universidade Federal de Santa Catarina Centro Tecnológico

Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Aula 12-T 4. Projeto de Sistemas Digitais no Nível RT. Análise de Timing de um SD, Barramentos x Multiplexadores, Registradores x Banco

de Registradores.

Prof. José Luís Güntzel [email protected]

www.inf.ufsc.br/~guntzel/ine5406/ine5406.html

Page 2: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.2 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Análise de Timing Objetivo: encontrar o caminho mais longo entre dois registradores quaisquer (considerando BC & BO)

D1 Q1 Q1

D2 Q2 Q2

D3 Q3 Q3

lógica de próximo estado

lógica de saída Bloco Operativo!

Sinais de controle (comando)

Sinais de status

início

ck

Page 3: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.3 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Análise de Timing Objetivo: encontrar o caminho mais longo entre dois registradores quaisquer

D1 Q1 Q1

D2 Q2 Q2

D3 Q3 Q3

lógica de próximo estado

lógica de saída

+/- op

n n

n

1

entA entB

mult

n n

n

A B P RstP

CP

CA CB

0 1 mA

n

0 1 m1 0 1 m2

n n n n

n

Az Bz

ck

início

Page 4: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.4 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

D1 Q1 Q1

D2 Q2 Q2

D3 Q3 Q3

lógica de próximo estado

lógica de saída

+/- op

n n

n

1

entA entB n

n

n

A B P RstP

CP

CA CB

0 1 mA

n

0 1 m1 0 1 m2

n n n n

n

Az Bz

início

ck

mult

Análise de Timing: Premissas para este exemplo

Supor que todos os registradores (incluso o de estados): • São disparados pela borda de subida de ck • Apresentam mesmas características temporais, i.e., tco, tsu e th

Page 5: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.5 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

ck

tco

D1 Q1 Q1

D2 Q2 Q2

D3 Q3 Q3

lógica de próximo estado

lógica de saída

+/- op

n n

n

1

entA entB n

n

n

A B P RstP

CP

CA CB

0 1 mA

n

0 1 m1 0 1 m2

n n n n

n

Az Bz

início

ck

mult Período do clock ?

tdLPE tco e tsu do registrador de estado

tdLPE = atraso (max) de propagação da lógica de próximo estado tsu

Análise de Timing: Reg_estado Reg_estado

3 caminhos com mesmo atraso

Page 6: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.6 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Análise de Timing: Bloco operativo Reg_estado

ck

tsu tco tco = tco do registrador A ou B tdzero = atraso (max) de propagação de um testador de zero tdLPE = atraso (max) de propagação da lógica de próximo estado

tsu = tempo de setup do registrador de estado

D1 Q1 Q1

D2 Q2 Q2

D3 Q3 Q3

lógica de próximo estado

lógica de saída

+/- op

n n

n

1

entA entB n

n

n

A B P RstP

CP

CA CB

0 1 mA

n

0 1 m1 0 1 m2

n n n n

n

Az Bz

início

ck

mult

tdzero

tdLPE

Período do clock ?

2 caminhos com mesmo atraso

Page 7: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.7 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

D1 Q1 Q1

D2 Q2 Q2

D3 Q3 Q3

lógica de próximo estado

lógica de saída

+/- op

n n

n

1

entA entB n

n

n

A B P RstP

CP

CA CB

0 1 mA

n

0 1 m1 0 1 m2

n n n n

n

Az Bz

início

ck

mult

Análise de Timing: Reg_estado Bloco operativo (1)

ck

tdLS tco

tco = tco do registrador de estado tdLS = atraso (max) de propagação da lógica saída

Período do clock ?

Análise dos caminhos que terminam no controle (carga, reset etc) de qualquer registrador do bloco operativo

4 caminhos com mesmo atraso

Page 8: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.8 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

D1 Q1 Q1

D2 Q2 Q2

D3 Q3 Q3

lógica de próximo estado

lógica de saída

+/- op

n n

n

1

entA entB n

n

n

A B P RstP

CP

CA CB

0 1 mA

n

0 1 m1 0 1 m2

n n n n

n

Az Bz

início

ck

mult

Análise de Timing: Reg_estado Bloco operativo (2)

ck

Período do clock?

tdLS

tdMux

tdSomaSub tco

tco = tco do registrador de estado tdLS = atraso (max) de propagação da lógica saída tdSomaSub = atraso de propagação do somador-subtrator tsu = tempo de setup do registrador P

tsu

2 caminhos com mesmo atraso

Page 9: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.9 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

D1 Q1 Q1

D2 Q2 Q2

D3 Q3 Q3

lógica de próximo estado

lógica de saída

+/- op

n n

n

1

entA entB n

n

n

A B P RstP

CP

CA CB

0 1 mA

n

0 1 m1 0 1 m2

n n n n

n

Az Bz

início

ck

mult

Análise de Timing: Reg_estado Bloco operativo (3)

ck

Período do clock? SIM!

tdLS

tdMux

tdSomaSub tsu tco

tco = tco do registrador de estado tdLS = atraso (max) de propagação da lógica saída tdSomaSub = atraso de propagação do somador-subtrator tdMux = atraso (max) de propagação de um mux 2:1 tsu = tempo de setup do registrador A tdMux

2 caminhos com mesmo atraso = atraso crítico deste sistema digital

Page 10: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.10 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

BO com Multiplexadores

4 sinais para controlar o acesso à UF

+/- op

n n

n

overflow

R4 R3

00 01 10 1 1

R2 R1

00 01 10 1 1

Page 11: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.11 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Barramentos x Multiplexadores Porém: •  Se qualquer registrador pode ser

fonte ou destino de dados para ambas as entradas da UF

•  E se somente dois registradores servem de operandos para a UF (a cada ciclo de relógio)

+/- op

n n

n

overflow

R4 R3

00 01 10 1 1

R2 R1

00 01 10 1 1

Page 12: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.12 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Barramentos x Multiplexadores

•  Então, é melhor usar barramentos (um por entrada da UF)!

•  Usar chaves tri-state, pois somente um registrador pode escrever no barramento, por vez (i.e., por ciclo de relógio)

+/- op

n n

n

overflow

R4 R3 R2 R1

8 sinais para controlar o acesso à UF!

Page 13: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.13 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Barramentos x Multiplexadores

•  Porém, somente um registrador pode escrever no barramento, por vez (i.e., por ciclo de relógio)

•  Logo, usar tri-state

8 sinais de controle

+/- op

n n

n

overflow

R4 R3 R2 R1

Page 14: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.14 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Registradores x Banco de Registradores

•  Se houver uma quantidade grande de registradores (>= 4) •  Se somente um registrador está conectado a cada entrada da UF,

por vez (i.e., por ciclo de relógio) •  Então, é possível reduzir custo da rede de interconexão

agrupando os registradores em um “banco de registradores”

Page 15: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.15 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Registradores x Banco de Registradores Exemplo 1:

+/- op

n n

n

overflow

R4 R3 R2 R1

Reg a ser lido 1

Reg a ser lido 2

Reg a ser escrito

2

2 2

•  4 registradores •  2 “portas” de leitura e 1 “porta” de escrita •  2 bits de endereço/ por “porta”

+/- op

n n

n

overflow

R4 R3

00 01 10 1 1

R2 R1

00 01 10 1 1

Page 16: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.16 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Registradores x Banco de Registradores Exemplo 2: Banco de registradores de um microprocessador

Reg a ser"lido #1"

Reg a ser"lido #2"

Reg a ser"escrito"

Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!

EscReg"

5"

5"32"

32"

Para o BC"Zero"

ULA!

Controle"ULA"

3"

5"

32"

•  2 “portas” de leitura e 1 “porta” de escrita (há um sinal p/ habilitar escrita) •  Quantos registradores há neste banco de registradores? •  Qual o comprimento (ou tamanho) dos dados?

Page 17: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.17 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Registradores x Banco de Registradores Exemplo 2: Banco de registradores de um microprocessador

Reg a ser"lido #1"Reg a ser"lido #2"

Reg a ser"escrito"Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!

EscReg"

5"

5"

5"

32"

32"

32"

Zero"

Resultado"

ULA!

Controle"ULA"3"

32"instrução"

32"

[25-21]

[20-16]

[15-11]

[31-26]

Controle"

Page 18: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.18 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Instruções: o Processador MIPS

Referência

PATTERSON, David A.; HENNESSY, John L. “Computer Organization and Design: The Hardware/Software Interface”, 3rd edition, Morgan Kaufmann Publishers, San Francisco, California, USA, 2007.

Edições mais antigas também servem!

Page 19: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.19 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

•  todas as instruções têm 32 bits •  todas têm opcode de 6 bits •  o modo de endereçamento é codificado juntamente com o

opcode

Instruções: o Processador MIPS

31 26 25 0

opcode 6 bits 26 bits

Page 20: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.20 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

•  opcode = 0 •  “funct” define a operação a ser feita pela ALU •  “shamt” (shift amount) é usado em instruções de deslocamento

Instruções formato R: add, sub, or, and

31 26 25 21 20 16 15 11 10 6 5 0

opcode rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits

registradores-fonte registrador-destino

Simbólico (exemplo): add $s1,$s2, $s3 ($s1 ← $s2 + $s3) !

Page 21: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.21 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

•  load word (lw): opcode = 35

•  store word (sw): opcode = 43

Instruções formato I: load word (ld) e store word (sw)

31 26 25 21 20 16 15 0

opcode rs rt Deslocam. ou oper. Imediato 6 bits 5 bits 5 bits 16 bits

Simbólico lw $s1, deslocam($s2) ($s1 ← Mem[$s2 + deslocam] ) sw $s1, deslocam($s2) (Mem[$s2 + deslocam] ← $s1 )

registrador-base para o cálculo do endereço de

memória registrador-destino (para lw) ou registrador-fonte (para sw)

Page 22: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.22 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

•  Opcode = 4 •  Campo deslocamento usado para calcular o endereço-alvo •  Se o conteúdo do registrador cujo endereço está no campo rs

for igual ao conteúdo do registrador cujo endereço está em rt, então salta para a posição endereço+PC+4

Instrução formato I: Desvio Condicional beq: branch on equal

31 26 25 21 20 16 15 0

opcode rs rt Deslocam. ou oper. Imediato 6 bits 5 bits 5 bits 16 bits

Simbólico beq $s1, $s2, deslocam ( if ($s1== $s2) then PC←PC+4+deslocam)

registradores a serem comparados

Page 23: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.23 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

•  Opcode = 2 •  Campo deslocamento usado para calcular o endereço-alvo •  Se o conteúdo do registrador cujo endereço está no campo rs for

igual ao conteúdo do registrador cujo endereço está em rt, então salta para a posição endereço+PC+4

Instrução formato J: Desvio Incondicional j: jump

31 26 25 0

opcode endereço 6 bits 26 bits

Simbólico j endereço ( PC←endereço )

Page 24: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.24 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

32"Endereço"

Instrução"lida"

Memória !de Instruções!

PC

+!4"

+Desl."à esq."2 bits"

M!U!X!

0"

1"

FontePC"

Reg a ser"lido #1"Reg a ser"lido #2"

Reg a ser"escrito"Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!

EscReg"

Zero"

Resultado"ULA!

3"

Exten-"são de "sinal"

32"16"

[25-21]

[20-16]

[15-11] M!U!X!

0"

1"

RegDst"

[15-0]

M!U!X!

0"

1"

ULAFonte"

LerMem"

EscMem"

Endereço" Dado lido"

Dado a ser"escrito"

Memória de

dados!

M!U!X!

0"

1"

MemParaReg"Controle"

[31-26]

Opera-"ção"da "

ULA"2"

[5-0] 6"

ULAOp"

DvC"

O Processador MIPS (Monociclo): BO + BC

apenas leitura (sem relógio)

leitura sem relógio, escrita com relógio

ck

ck

ck

Page 25: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.25 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Execução de uma Instrução Tipo R Seja uma instrução tipo R, como por exemplo add $t1, $t2, $t3: Podemos imaginar que esta instrução é executada em 4 etapas: 1.  Busca da instrução (na memória de instruções) e incremento do

PC 2.  Leitura de dois registradores (no caso, $t2 e $t3, ou Rs e Rt) e

geração dos sinais de controle para o resto do bloco operativo (decodificação da instrução)

3.  Operação na ULA 4.  Escrita (do resultado da operação realizada na ULA) no

registrador destino ($t1 ou Rd)

Como estes passos ocorrem dentro do mesmo ciclo de relógio (regime monociclo), a ordem real irá depender do atraso de cada componente.

Page 26: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.26 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Instrução Tipo R: busca da instrução e cálculo de PC+4

32"Endereço"

Instrução"lida"

Memória !de Instruções!

PC

4"Desl."à esq."2 bits"

M!U!X!

0"

1"

FontePC"

Reg a ser"lido #1"Reg a ser"lido #2"

Reg a ser"escrito"Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!

EscReg"

Zero"

Resultado"ULA!

3"

Exten-"são de "sinal"

32"16"

[25-21]

[20-16]

[15-11] M!U!X!

0"

1"

RegDst"

[15-0]

M!U!X!

0"

1"

ULAFonte"

LerMem"

EscMem"

Endereço" Dado lido"

Dado a ser"escrito"

Memória de

dados!

M!U!X!

0"

1"

MemParaReg"Controle"

[31-26]

Opera-"ção"da "

ULA"2"

[5-0] 6"

ULAOp"

DvC"

CK

+! +

Carga no PC (início da execução

4ns

1ns 1ns

1ns

0,5 ns

2ns

4ns

ck

ck

ck

Page 27: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.27 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Instrução Tipo R: leit. de Rs e Rt e geração sinais de controle

32"Endereço"

Instrução"lida"

Memória !de Instruções!

PC

4"Desl."à esq."2 bits"

M!U!X!

0"

1"

FontePC"

Reg a ser"lido #1"Reg a ser"lido #2"

Reg a ser"escrito"Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!

EscReg"

Zero"

Resultado"ULA!

3"

Exten-"são de "sinal"

32"16"

[25-21]

[20-16]

[15-11] M!U!X!

0"

1"

RegDst"

[15-0]

M!U!X!

0"

1"

ULAFonte"

LerMem"

EscMem"

Endereço" Dado lido"

Dado a ser"escrito"

Memória de

dados!

M!U!X!

0"

1"

MemParaReg"Controle"

[31-26]

Opera-"ção"da "

ULA"2"

[5-0] 6"

ULAOp"

DvC"

CK

+! +

1

1

0 1 0

0

0

10

4ns

1ns 1ns

1ns

0,5 ns

2ns

4ns

ck

ck

ck

Page 28: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.28 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Instrução Tipo R: operação na ULA (depende de “funct”)

32"Endereço"

Instrução"lida"

Memória !de Instruções!

PC

4"Desl."à esq."2 bits"

M!U!X!

0"

1"

FontePC"

Reg a ser"lido #1"Reg a ser"lido #2"

Reg a ser"escrito"Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!

EscReg"

3"

Exten-"são de "sinal"

32"16"

[25-21]

[20-16]

[15-11]

RegDst"

[15-0]

M!U!X!

0"

1"

ULAFonte"

LerMem"

EscMem"

Endereço" Dado lido"

Dado a ser"escrito"

Memória de

dados!

M!U!X!

0"

1"

MemParaReg"Controle"

[31-26]

Opera-"ção"da "

ULA"2"

[5-0] 6"

ULAOp"

DvC"

CK

+! +

1

1

0 1 0

0

0

10

Zero"

Resultado"ULA!M!

U!X!

0"

1"

4ns

1ns 1ns

1ns

0,5 ns

2ns

4ns

ck

ck

ck

Page 29: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.29 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Instrução Tipo R: escrita no registrador-destino

32"Endereço"

Instrução"lida"

Memória !de Instruções!

PC

4"Desl."à esq."2 bits"

M!U!X!

0"

1"

FontePC"

Reg a ser"lido #1"Reg a ser"lido #2"

Reg a ser"escrito"Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!

EscReg"

3"

Exten-"são de "sinal"

32"16"

[25-21]

[20-16]

[15-11]

RegDst"

[15-0]

M!U!X!

0"

1"

ULAFonte"

LerMem"

EscMem"

Endereço" Dado lido"

Dado a ser"escrito"

Memória de

dados!

M!U!X!

0"

1"

MemParaReg"Controle"

[31-26]

Opera-"ção"da "

ULA"2"

[5-0] 6"

ULAOp"

DvC"

CK

+! +

1

1

0 1 0

0

0

10

Zero"

Resultado"ULA!M!

U!X!

0"

1"

“folga”

4ns

1ns 1ns

1ns+1ns

0,5 ns

2ns

4ns

ck

ck

ck

Page 30: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.30 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Instrução Tipo R: escrita no registrador-destino

32"Endereço"

Instrução"lida"

Memória !de Instruções!

PC

4"Desl."à esq."2 bits"

M!U!X!

0"

1"

FontePC"

Reg a ser"lido #1"Reg a ser"lido #2"

Reg a ser"escrito"Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!

EscReg"

3"

Exten-"são de "sinal"

32"16"

[25-21]

[20-16]

[15-11]

RegDst"

[15-0]

M!U!X!

0"

1"

ULAFonte"

LerMem"

EscMem"

Endereço" Dado lido"

Dado a ser"escrito"

Memória de

dados!

M!U!X!

0"

1"

MemParaReg"Controle"

[31-26]

Opera-"ção"da "

ULA"2"

[5-0] 6"

ULAOp"

DvC"

CK

+! +

1

1

0 1 0

0

0

10

Zero"

Resultado"ULA!

“folga”

M!U!X!

0"

1"

4ns

1ns 1ns

1ns+1ns

0,5 ns

2ns

4ns

ck

ck

ck

Page 31: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.31 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

32"Endereço"

Instrução"lida"

Memória !de Instruções!

PC

+!4"

+Desl."à esq."2 bits"

M!U!X!

0"

1"

FontePC"

Reg a ser"lido #1"Reg a ser"lido #2"

Reg a ser"escrito"Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!

EscReg"

Zero"

Resultado"ULA!

3"

Exten-"são de "sinal"

32"16"

[25-21]

[20-16]

[15-11] M!U!X!

0"

1"

RegDst"

[15-0]

M!U!X!

0"

1"

ULAFonte"

LerMem"

EscMem"

Endereço" Dado lido"

Dado a ser"escrito"

Memória de

dados!

M!U!X!

0"

1"

MemParaReg"Controle"

[31-26]

Opera-"ção"da "

ULA"2"

[5-0] 6"

ULAOp"

DvC"

O Processador MIPS: BO + BC

ck

ck

ck

4ns

1ns 1ns

1ns

0,5 ns

2ns

4ns

Caminho crítico: 4+1+2+4+1 = 12ns

Page 32: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.32 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Implementação Multiciclo

Busca da instrução/decodificação + leitura dos registradores (Rs e Rt)

início

Instruções de referência à

memória

Instruções tipo R

Instruções de desvio

condicional

Instruções de desvio

incondicional

Cada caixa pode representar um ou mais passos e portanto, pode executar em um ou mais ciclos de relógio (dependendo da instrução).

0 1

4

2 6

7 3 5 8 9

Page 33: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.33 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Resumo dos Passos Necessários para Cada Instrução

Nome do passo Instrução tipo R Instrução lw Instrução sw Instrução beq Instrução j

Busca da instrução RI = Mem[PC] PC = PC + 4

Decodificação da instrução & leitura dos registradores Rs e Rt & cálculo do endereço de desvio (cond.)

A = Reg [RI[25-21]] B = Reg [RI[20-16]]

ULASaída = PC + (extensão de sinal(RI[15-0]) <<2)

Execução, cálculo do endereço de acesso à memória, término de uma instrução branch/jump

ULAOp = A op B ULASaída = A + extensão de sinal (RI[15-0])

Se (A == B) então PC = ULASaída

PC = PC[31-28] || (RI[25-0] <<2 )

Término de uma instrução store word ou de tipo R

Reg [RI[15-11]] = ULASaída

RDM = Mem [ULASaída]

Mem [ULASaída] = B

Término de uma instrução load word

Reg[RI[20-16]] = RDM

Número de passos 4 5 4 3 3

0

1

4

2 6

7 3 5

8 9

Page 34: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.34 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Bloco Operativo Multiciclo

32"

Endereço"

DadoMem"Memória!

PC

Dado a ser escrito"

M!U!X!

0"

1" Zero"

Resultado"ULA!

Reg a ser"lido #1"Reg a ser"lido #2"

Reg a ser"escrito"Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!Registrador!

de!instrução!

Registrador!de dados!

da!memória!

A

B

ULA!Saída

32"

[25-21]

[20-16]

[15-11] M!U!X!

0"

1"

[15-0]

M!U!X!

0"

1"

M!U!X!

0"1"

2"

3"M!U!X!

0"

1" Exten-"são de "sinal"

Desl."à esq."2 bits"

4"

32"16"

Registradores Não-Visíveis ao Programador

Page 35: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.35 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

32"

Endereço"

DadoMem"Memória!

PC

Dado a ser escrito"

M!U!X!

0"

1" Zero"

Resultado"ULA!

Reg a ser"lido #1"Reg a ser"lido #2"

Reg a ser"escrito"Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!Registrador!

de!instrução!

Registrador!de dados!

da!memória!

A

B

ULA!Saída

32"

[25-21]

[20-16]

[15-11] M!U!X!

0"

1"

[15-0]

M!U!X!

0"

1"

M!U!X!

0"1"

2"

3"M!U!X!

0"

1" Exten-"são de "sinal"

Desl."à esq."2 bits"

4"

32"16"

IouD" LerMem" EscMem" IREsc" RegDst"

MemParaReg" ULAFonteB" ULAOp"

EscReg" ULAFonteA"

Opera-"ção"da "

ULA"

2"

[5-0] 6"

32"

[5-0]

Mesmo controle da ULA usado na versão monociclo

2"

Os Sinais de Controle Bloco Operativo Multiciclo

Page 36: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.36 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Sinais de Controle do Bloco Operativo Multiciclo

32"

Endereço"

DadoMem"Memória!

PC

Dado a ser escrito"

M!U!X!

0"

1" Zero"

Resultado"ULA!

Reg a ser"lido #1"Reg a ser"lido #2"

Reg a ser"escrito"Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!Registrador!

de!instrução!

Registrador!de dados!

da!memória!

A

B

ULA!Saída

32"

[25-21]

[20-16]

[15-11] M!U!X!

0"

1"

[15-0]

M!U!X!

0"

1"

M!U!X!

0"1"

2"

3"M!U!X!

0"

1" Exten-"são de "sinal"

Desl."à esq."2 bits"

4"

32"16"

IouD"LerMem"EscMem"

IREsc"

Opera-"ção"da "

ULA"2"

6"

32"

[5-0]

EscReg"

RegDst"

Controle"

ULAOp"

ULAFonteA"

FontePC"PCEscCond"PCEsc"

MemParaReg"

ULAFonteB" 2"

Desl."à esq."2 bits"

M!U!X!

0"1"

2"

26"

[25-0]

[31-28]

26" 28"

4"PC+4

end. desvio cond.

end. desvio incond.

2"

[31-0]

Page 37: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.37 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2 slide 5.37

Máquina de Estados: busca e decodificação

ULAFonteA = 1 ULAFonteB = 00

ULAOp = 01 PCEscCond = 1

PCEsc = 0 FontePC = 01

Término do desvio condicional

8 ULAFonteA = 1 ULAFonteB = 10

ULAOp = 00

Cálculo do endereço de acesso à memória

2

3

4

5 LerMem = 1

IouD = 1 EscMem = 1

IouD = 1

EscReg = 1 MemParaReg = 1

RegDst = 0

Acesso à memória

Acesso à memória

Escrita no registrador Rt

Op = ‘lw’

Op = ‘sw’

ULAFonteA = 1 ULAFonteB = 00

ULAOp = 10

Execução

6

7 RegDst = 1 EscReg = 1

MemParaReg = 0

Término da instrução tipo R (escrita em Rd)

PCEsc = 1 FontePC = 10

Término do desvio incondicional 9

ULAFonteA = 0 ULAFonteB = 11

ULAOp = 00

LerMem = 1 ULAFonteA = 0

IouD = 0 IREsc = 1

ULAFonteB = 01 ULAOp = 00 PCEsc = 1

FontePC = 00

Busca da instrução

0

Decodificação da instrução/ Leitura dos registradores Rs e Rt

1

início

(Op = ‘lw’) OU (Op = ‘sw’)

Op

= ‘ju

mp’

Page 38: Aula 12-T - UFSCj.guntzel/ine5406/SD_aula12T.pdf · 4. Projeto de Sistemas Digitais no Nível RT INE/CTC/UFSC Slide 12T.6 Prof. José Luís Güntze Sistemas Digitais - semestre 2012/2

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 12T.38 INE/CTC/UFSC Sistemas Digitais - semestre 2012/2

Caminhos Críticos (para Estimar o Relógio)

32"

Endereço"

DadoMem"Memória!

PC

Dado a ser escrito"

M!U!X!

0"

1" Zero"

Resultado"ULA!

Reg a ser"lido #1"Reg a ser"lido #2"

Reg a ser"escrito"Dado de"escrita"

Dado "lido #1"

Dado"lido #2"

Registradores!Registrador!

de!instrução!

Registrador!de dados!

da!memória!

A

B

ULA!Saída

32"

[25-21]

[20-16]

[15-11] M!U!X!

0"

1"

[15-0]

M!U!X!

0"

1"

M!U!X!

0"1"

2"

3"M!U!X!

0"

1" Exten-"são de "sinal"

Desl."à esq."2 bits"

4"

32"16"

IouD"LerMem"EscMem"

IREsc"

Opera-"ção"da "

ULA"2"

6"

32"

[5-0]

EscReg"

RegDst"

Controle"

ULAOp"

ULAFonteA"

FontePC"PCEscCond"PCEsc"

MemParaReg"

ULAFonteB" 2"

Desl."à esq."2 bits"

M!U!X!

0"1"

2"

26"

[25-0]

[31-28]

26" 28"

4"PC+4

end. desvio cond.

end. desvio incond.

2"

[31-0]