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

Post on 21-Sep-2020

8 views 0 download

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

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 guntzel@inf.ufsc.br

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

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

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

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

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

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

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

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

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

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

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

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!

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

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”

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

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?

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"

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!

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

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) !

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)

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

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 )

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

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.

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

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

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

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

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

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

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

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

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

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

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]

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’

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]