mr2 operação do bloco de dados e do bloco de controle fernando moraes, ney calazans, fabiano...

12
MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

Upload: internet

Post on 17-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

MR2Operação do Bloco de

Dados e do Bloco de Controle

Fernando Moraes, Ney Calazans, Fabiano Hessel

26/10/2004

Page 2: MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

wpc

IR[20:16]

IR[25:21]

IR[15:11]

IR[20:16]

IncPC

IR[25:0]

IR[15:0]

IR[20:16]RIN

outalu data

Rt

wmdrCY1

ce rw

EndereçoMem. Dados

ce/rw

walu

dtPC

instruction I_address

NPC

OP1CY1PC

OP2

result

CY2

CY2

CY2

Rt

Rs

PC

+4

Me

ria d

e

Ins

truç

õe

s

RALUIR

Me

ria d

e

Da

do

sNPC

EXT SINAL

IMED

MDRbanco de

registradores

AdRt

AdRs

AdRd

Rd

<< 2

cte_im

AL

U

Instruções Lógicas e Aritméticas

• ADDU Rd, Rs, Rt

• SUBU Rd, Rs, Rt

• AND Rd, Rs, Rt

• OR Rd, Rs, Rt

• XOR Rd, Rs, Rt

Rs

co

mp

Rt

salta

“0000” & IR[25:0] & “00”

IR[15:0] EXT ZERO

Page 3: MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

wpc

IR[20:16]

IR[25:21]

IR[15:11]

IR[20:16]

IncPC

IR[20:16]RIN

outalu data

Rt

wmdrCY1

ce rw

EndereçoMem. Dados

ce/rw

walu

dtPC

instruction I_address

NPC

OP1CY1PC

OP2

result

CY2

CY2

CY2

Rt

Rs

PC

+4

Me

ria d

e

Ins

truç

õe

s

RALUIR

Me

ria d

e

Da

do

sNPC

IMED

MDRbanco de

registradores

AdRt

AdRs

AdRd

Rd

cte_im

AL

U

Instruções de Deslocamento

• SLL Rd, Rt, shamt

• SRL Rd, Rt, shamt

Rs

Rt

salta

co

mp

ULA desloca shamt bits

IR[25:0]

IR[15:0] EXT SINAL

<< 2

“0000” & IR[25:0] & “00”

IR[15:0] EXT ZERO

Notar: extensão de sinal é inútil, mas usar ela evita entrada adicional no mux

Notar: registrador interno Rs é usado para conter Rt, pois o interno Rt compartilha entrada da ALU com Imed

Page 4: MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

wpc

IR[20:16]

IR[25:21]

IR[15:11]

IR[20:16]

IncPC

IR[15:0]

IR[20:16]RIN

outalu data

Rt

wmdrCY1

ce rw

EndereçoMem. Dados

ce/rw

walu

dtPC

instruction I_address

NPC

OP1CY1PC

OP2

result

CY2

CY2

CY2

Rt

Rs

PC

+4

Me

ria d

e

Ins

truç

õe

s

RALUIR

Me

ria d

e

Da

do

sNPC

IMED

MDRbanco de

registradores

AdRt

AdRs

AdRd

Rd

cte_im

AL

U

Instruções Lógicas e Aritméticas Imediatas e LUI

• ADDIU Rt, Rs, Imed16• ANDI Rt, Rs, Imed16• ORI Rt, Rs, Imed16• XORI Rt, Rs, Imed16• LUI Rt, imed16

Não se usa Rs no LUI

Rs

Rt

salta

co

mp

IR[25:0]

EXT SINAL

<< 2

“0000” & IR[25:0] & “00”

IR[15:0] EXT ZERO

SÓ ESTENDE SINAL NA INSTRUÇÃO

ADDIU, OUTRAS ESTENDEM ZERO

Page 5: MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

wpc

IR[20:16]

IR[25:21]

IR[15:11]

IR[20:16]

IncPC

IR[20:16]RIN

outalu data

Rt

wmdrCY1

ce rw

EndereçoMem. Dados

ce/rw

walu

dtPC

instruction I_address

NPC

OP1CY1PC

OP2

result

CY2

CY2

CY2

Rt

Rs

PC

+4

Me

ria d

e

Ins

truç

õe

s

RALUIR

Me

ria d

e

Da

do

sNPC

IMED

MDRbanco de

registradores

AdRt

AdRs

AdRd

Rd

cte_im

AL

U

Instruções de Leitura da Memória: LBU/LW

• LBU Rt, Imed16(Rs)• LW Rt, Imed16(Rs)

Rs

Rt

salta

co

mp

IR[25:0]

IR[15:0] EXT SINAL

<< 2

“0000” & IR[25:0] & “00”

IR[15:0] EXT ZERO

Atenção: na instrução LBU, gravar em MDR o byte LSB e bytes em zero nos 3 MSBs (MUX escondido)!

Page 6: MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

Atenção: Write back não existe nestas instruções

Atenção: carga destes três registradores é útil

wpc

IR[20:16]

IR[25:21]

IR[15:11]

IR[20:16]

IncPC

IR[20:16]RIN

outalu data

Rt

wmdrCY1

ce rw

EndereçoMem. Dados

ce/rw

walu

dtPC

instruction I_address

NPC

OP1CY1PC

OP2

result

CY2

CY2

CY2

Rt

Rs

PC

+4

Me

ria d

e

Ins

truç

õe

s

RALUIR

Me

ria d

e

Da

do

sNPC

IMED

MDRbanco de

registradores

AdRt

AdRs

AdRd

Rd

cte_im

AL

U

Instruções de Escrita na Memória: SB/SW

• SB Rt, Imed16(Rs) (ativar bw)

• SW Rt, Imed16(Rs)

Rs

Rt

salta

co

mp

IR[25:0]

IR[15:0] EXT SINAL

<< 2

“0000” & IR[25:0] & “00”

IR[15:0] EXT ZERO

Page 7: MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

wpc

IR[20:16]

IR[25:21]

IR[15:11]

IR[20:16]

IncPC

IR[20:16]RIN

outalu data

Rt

wmdrCY1

ce rw

EndereçoMem. Dados

ce/rw

walu

dtPC

instruction I_address

NPC

OP1CY1PC

OP2

result

CY2

CY2

CY2

Rt

Rs

PC

+4

Me

ria d

e

Ins

truç

õe

s

RALUIR

Me

ria d

e

Da

do

sNPC

IMED

MDRbanco de

registradores

AdRt

AdRs

AdRd

Rd

cte_im

AL

U

Instruções de Comparação – SLT/SLTU

• SLT Rd, Rs, Rt

• SLTU Rd, Rs, Rt

IGUAIS ÀS ARITMÉTICAS

Rs

Rt

salta

co

mp

IR[25:0]

IR[15:0] EXT SINAL

<< 2

“0000” & IR[25:0] & “00”

IR[15:0] EXT ZERO

Page 8: MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

CUIDAR: SLT ESTENDE SINAL, SLTIU NÃO ESTENDE

wpc

IR[20:16]

IR[25:21]

IR[15:11]

IR[20:16]

IncPC

IR[15:0]

IR[20:16]RIN

outalu data

Rt

wmdrCY1

ce rw

EndereçoMem. Dados

ce/rw

walu

dtPC

instruction I_address

NPC

OP1CY1PC

OP2

result

CY2

CY2

CY2

Rt

Rs

PC

+4

Me

ria d

e

Ins

truç

õe

s

RALUIR

Me

ria d

e

Da

do

sNPC

IMED

MDRbanco de

registradores

AdRt

AdRs

AdRd

Rd

cte_im

AL

U

Instruções de Comparação Imediatas - SLTI/SLTIU

• SLTI Rt, Rs, Imed16• SLTIU Rt, Rs, Imed16

Rs

Rt

salta

co

mp

IR[25:0]

EXT SINAL

<< 2

“0000” & IR[25:0] & “00”

IR[15:0] EXT ZERO

Page 9: MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

Terceiro ciclo: gera o endereço de salto; salta (escreve no PC) dependendo da

comparação Rs/Rt

wpc

IR[20:16]

IR[25:21]

IR[15:11]

IR[20:16]

IncPC

IR[20:16]RIN

outalu data

Rt

wmdrCY1

ce rw

EndereçoMem. Dados

ce/rw

walu

dtPC

instruction I_address

NPC

OP1CY1PC

OP2

result

CY2

CY2

CY2

Rt

Rs

PC

+4

Me

ria d

e

Ins

truç

õe

s

RALUIR

Me

ria d

e

Da

do

sNPC

IMED

MDRbanco de

registradores

AdRt

AdRs

AdRd

Rd

cte_im

AL

U

Instruções de Salto Condicional

• BEQ Rs, Rt, rótulo

• BGEZ Rs, rótulo

• BLEZ Rs, rótulo

• BNE Rs, Rt, rótulo

Em função da comparação Rs/Rt,

salta ou não

Rs

Rt

salta

co

mp

IR[25:0]

IR[15:0] EXT SINAL

<< 2

“0000” & IR[25:0] & “00”

IR[15:0] EXT ZERO

Page 10: MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

Cuidado! Para simplificar este bloco, concatenação dos 4 bits superiores do PC

para gerar endereço de salto é feita na ALU.

Instruções de Salto Incondicional J

wpc

IR[20:16]

IR[25:21]

IR[15:11]

IR[20:16]

IncPC

IR[20:16]RIN

outalu data

Rt

wmdrCY1

ce rw

EndereçoMem. Dados

ce/rw

walu

dtPC

instruction I_address

NPC

OP1CY1PC

OP2

result

CY2

CY2

CY2

Rt

Rs

PC

+4

Me

ria d

e

Ins

truç

õe

s

RALUIR

Me

ria d

e

Da

do

sNPC

IMED

MDRbanco de

registradores

AdRt

AdRs

AdRd

Rd

cte_im

AL

U

• J Imed26

Rs

Rt

salta

co

mp

IR[25:0]

IR[15:0] EXT SINAL

<< 2

“0000” & IR[25:0] & “00”

IR[15:0] EXT ZERO

Page 11: MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

Banco de Registradores

AdRs

32 registradores de 32 bits

Decodificador 5 32

REG0 REG1 REG2 REG3 REG4

...

REG28 REG29 REG30 REG31

clock reset

Rd

32

5

enable

wreg

32

32

32 Rs

AdRt AdRd

Rt

Page 12: MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004

Bloco de Controle

Reset (todos os

registradores são inicializados)

Wbk wReg wPC

Sfetch CY1

Sld CE wMDR

IR = LBU/ LW

Ssw RW0 CE wPC

SSalta wPC

SReg CY2

IR =SB / SW IR = J / JALR / JR / BEQ

BGEZ / BLEZ / BNE

Idle

SAlu wAlu

Caso geral

• Três primeiros ciclos iguais para todas as instruções