1 / 12

MR2

MR2. Operação do Bloco de Dados e do Bloco de Controle. Fernando Moraes, Ney Calazans, Fabiano Hessel 26/10/2004. Instruções Lógicas e Aritméticas. result. NPC. ce rw. IncPC. Endereço Mem. Dados ‘. NPC. +4. RIN. OP1. IR[20:16]. CY1. ADDU Rd, Rs, Rt SUBU Rd, Rs, Rt

ania
Télécharger la présentation

MR2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MR2 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans, Fabiano Hessel26/10/2004

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

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

  4. SÓ ESTENDE SINAL NA INSTRUÇÃO ADDIU, OUTRAS ESTENDEM ZERO Instruções Lógicas e Aritméticas Imediatas e LUI result NPC ce rw IncPC EndereçoMem. Dados ‘ NPC +4 RIN OP1 IR[20:16] CY1 Memória de Instruções Memória de Dados Rd PC AdRs IR[25:21] Rs IR[20:16] ALU AdRt data RALU MDR outalu CY2 dtPC banco deregistradores PC IR walu CY1 wpc Rt wmdr IR[15:11] OP2 AdRd IR[20:16] CY2 instruction I_address ce/rw IR[15:0] EXT SINAL cte_im Rs comp Rt << 2 IMED salta “0000” & IR[25:0] & “00” IR[25:0] 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 ce rw IncPC EndereçoMem. Dados ‘ NPC +4 RIN OP1 IR[20:16] CY1 • LBU Rt, Imed16(Rs) • LW Rt, Imed16(Rs) Memória de Instruções Memória de Dados Rd PC AdRs IR[25:21] Rs IR[20:16] ALU AdRt data RALU MDR outalu CY2 dtPC banco deregistradores PC IR walu CY1 wpc Rt wmdr IR[15:11] OP2 AdRd IR[20:16] CY2 instruction I_address ce/rw IR[15:0] EXT SINAL cte_im Rs comp Rt << 2 IMED salta “0000” & IR[25:0] & “00” IR[25:0] CY2 Rt 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)!

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

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

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

  9. 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 Instruções de Salto Condicional result NPC ce rw IncPC EndereçoMem. Dados ‘ NPC +4 RIN OP1 IR[20:16] CY1 • BEQ Rs, Rt, rótulo • BGEZ Rs, rótulo • BLEZ Rs, rótulo • BNE Rs, Rt, rótulo Memória de Instruções Memória de Dados Rd PC AdRs IR[25:21] Rs IR[20:16] ALU AdRt data RALU MDR outalu CY2 dtPC banco deregistradores PC IR walu CY1 wpc Rt wmdr IR[15:11] OP2 AdRd IR[20:16] CY2 instruction I_address ce/rw IR[15:0] EXT SINAL cte_im Rs comp Rt << 2 IMED salta “0000” & IR[25:0] & “00” IR[25:0] CY2 Rt IR[15:0] EXT ZERO

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

  11. Banco de Registradores

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

More Related