A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Fernando Moraes, Ney Calazans 26/10/2005

Apresentações semelhantes


Apresentação em tema: "Fernando Moraes, Ney Calazans 26/10/2005"— Transcrição da apresentação:

1 Fernando Moraes, Ney Calazans 26/10/2005
MR3 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans 26/10/2005

2 Instruções Lógicas e Aritméticas
result NPC IncPC ce rw +4 NPC Endereço Mem. Dados RIN CY1 IR[20:16] OP1 PC Instruções Memória de IR[25:21] AdRs Rd Memória de Dados Rs IR[20:16] AdRt ALU outalu RALU data MDR dtPC banco de registradores CY2 PC IR wpc CY1 Rt walu wmdr IR[15:11] AdRd OP2 IR[20:16] CY2 I_address instruction IR[15:0] EXT SINAL ce/rw cte_im Rs << 2 comp IMED Rt salta IR[25:0] “0000” & IR[25:0] & “00” CY2 Rt IR[15:0] EXT ZERO ADDU Rd, Rs, Rt SUBU Rd, Rs, Rt AND Rd, Rs, Rt OR Rd, Rs, Rt XOR Rd, Rs, Rt NOR Rd, Rs, Rt

3 Instruções de Deslocamento
result NPC IncPC ce rw +4 NPC Endereço Mem. Dados RIN CY1 IR[20:16] OP1 PC Instruções Memória de IR[25:21] AdRs Rd Memória de Dados Rs IR[20:16] 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 AdRt ALU outalu RALU data MDR dtPC PC IR banco de registradores CY2 wpc CY1 Rt walu wmdr IR[15:11] AdRd OP2 ULA desloca shamt bits IR[20:16] CY2 I_address instruction IR[15:0] EXT SINAL ce/rw cte_im Rs << 2 comp IMED Rt salta IR[25:0] “0000” & IR[25:0] & “00” CY2 Rt IR[15:0] EXT ZERO SLL Rd, Rt, shamt SRL Rd, Rt, shamt

4 banco de registradores
Instruções Lógicas e Aritméticas Imediatas e LUI result NPC IncPC ce rw +4 NPC Endereço Mem. Dados RIN CY1 IR[20:16] OP1 PC Instruções Memória de IR[25:21] AdRs Rd Memória de Dados Rs IR[20:16] AdRt ALU outalu RALU data MDR dtPC PC IR banco de registradores CY2 wpc CY1 Rt walu wmdr IR[15:11] AdRd OP2 IR[20:16] CY2 I_address instruction IR[15:0] EXT SINAL ce/rw SÓ ESTENDE SINAL NA INSTRUÇÃO ADDIU, OUTRAS ESTENDEM ZERO cte_im Rs << 2 comp IMED Rt salta IR[25:0] “0000” & IR[25:0] & “00” CY2 Rt Não se usa Rs no LUI IR[15:0] EXT ZERO ADDIU Rt, Rs, Imed16 ANDI Rt, Rs, Imed16 ORI Rt, Rs, Imed16 XORI Rt, Rs, Imed16 LUI Rt, imed16

5 Instruções de Leitura da Memória: LBU/LW
result NPC IncPC ce rw +4 NPC Endereço Mem. Dados RIN CY1 IR[20:16] OP1 PC Instruções Memória de IR[25:21] AdRs Rd Memória de Dados Rs IR[20:16] AdRt ALU outalu RALU data MDR dtPC PC IR banco de registradores CY2 wpc CY1 Rt walu wmdr IR[15:11] AdRd OP2 IR[20:16] CY2 I_address instruction IR[15:0] EXT SINAL ce/rw cte_im Rs << 2 comp IMED Rt salta IR[25:0] “0000” & IR[25:0] & “00” CY2 Rt IR[15:0] EXT ZERO wmdr ce rw bw Mem. de Dados MDR x“000000” & data LBU Rt, Imed16(Rs) LW Rt, Imed16(Rs) Atenção: na instrução LBU, gravar em MDR o byte LSB e bytes em zero nos 3 MSBs

6 Instruções de Escrita na Memória: SB/SW
RIN outalu data Rt wmdr CY1 ce rw Endereço Mem. Dados ce/rw walu dtPC instruction I_address NPC OP1 PC OP2 result CY2 Rs +4 Instruções Memória de RALU IR Memória de Dados IMED MDR banco de registradores AdRt AdRs AdRd Rd cte_im ALU Atenção: Write back não existe nestas instruções IncPC IR[20:16] Atenção: carga destes três registradores é útil IR[25:21] IR[20:16] wpc IR[15:11] IR[20:16] IR[15:0] EXT SINAL Rs << 2 comp salta IR[25:0] “0000” & IR[25:0] & “00” Rt IR[15:0] EXT ZERO SB Rt, Imed16(Rs) (ativar bw) SW Rt, Imed16(Rs)

7 Instruções de Comparação – SLT/SLTU
result NPC IncPC ce rw +4 NPC Endereço Mem. Dados RIN CY1 IR[20:16] OP1 PC Instruções Memória de IR[25:21] AdRs Rd Memória de Dados Rs IR[20:16] AdRt ALU outalu RALU data MDR dtPC CY2 PC IR banco de registradores wpc CY1 Rt walu wmdr IR[15:11] AdRd OP2 IR[20:16] CY2 I_address instruction IR[15:0] EXT SINAL ce/rw cte_im Rs << 2 comp IMED Rt salta IR[25:0] “0000” & IR[25:0] & “00” CY2 Rt IR[15:0] EXT ZERO SLT Rd, Rs, Rt SLTU Rd, Rs, Rt IGUAIS ÀS ARITMÉTICAS

8 banco de registradores
Instruções de Comparação Imediatas - SLTI/SLTIU result NPC IncPC ce rw +4 NPC Endereço Mem. Dados RIN CY1 IR[20:16] OP1 PC Instruções Memória de IR[25:21] AdRs Rd Memória de Dados CUIDAR: SLT ESTENDE SINAL, SLTIU NÃO ESTENDE Rs IR[20:16] AdRt ALU outalu RALU data MDR dtPC banco de registradores CY2 PC IR wpc CY1 Rt walu wmdr IR[15:11] AdRd OP2 IR[20:16] CY2 I_address instruction IR[15:0] EXT SINAL ce/rw cte_im Rs << 2 comp IMED Rt salta IR[25:0] “0000” & IR[25:0] & “00” CY2 Rt IR[15:0] EXT ZERO SLTI Rt, Rs, Imed16 SLTIU Rt, Rs, Imed16

9 Instruções de Salto Condicional
result Em função da comparação Rs/Rt, salta ou não Terceiro ciclo: gera o endereço de salto; salta (escreve no PC) dependendo da comparação Rs/Rt NPC IncPC ce rw +4 NPC Endereço Mem. Dados RIN CY1 IR[20:16] OP1 PC Instruções Memória de AdRs Rd Memória de Dados IR[25:21] Rs IR[20:16] AdRt ALU outalu RALU data MDR dtPC banco de registradores CY2 PC IR wpc CY1 Rt walu wmdr IR[15:11] AdRd OP2 IR[20:16] CY2 I_address instruction IR[15:0] EXT SINAL ce/rw cte_im Rs << 2 comp IMED Rt salta IR[25:0] “0000” & IR[25:0] & “00” CY2 Rt IR[15:0] EXT ZERO BEQ Rs, Rt, rótulo BGEZ Rs, rótulo BLEZ Rs, rótulo BNE Rs, Rt, rótulo

10 Instruções de Salto Incondicional J
result NPC IncPC ce rw +4 NPC Endereço Mem. Dados RIN CY1 IR[20:16] OP1 PC Instruções Memória de IR[25:21] AdRs Rd Memória de Dados Rs IR[20:16] AdRt ALU outalu RALU data MDR dtPC CY2 PC IR banco de registradores Cuidado! Para simplificar este bloco, concatenação dos 4 bits superiores do PC para gerar endereço de salto é feita na ALU. wpc CY1 Rt walu wmdr IR[15:11] AdRd OP2 IR[20:16] CY2 I_address instruction IR[15:0] EXT SINAL ce/rw cte_im Rs << 2 comp IMED Rt salta IR[25:0] “0000” & IR[25:0] & “00” CY2 Rt IR[15:0] EXT ZERO J Imed26

11 Exercício JAL Imed26 JALR Rd, Rs JR Rs

12 Multiplicação e Divisão
Usar div/mod Consome 3 ciclos de clock para gravar no Lo e Hi

13 Banco de Registradores

14 Bloco de Controle Três primeiros ciclos iguais para todas as instruções


Carregar ppt "Fernando Moraes, Ney Calazans 26/10/2005"

Apresentações semelhantes


Anúncios Google