1 / 14

MR3

MR3. Operação do Bloco de Dados e do Bloco de Controle. Fernando Moraes, Ney Calazans 26/10/2005. 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 AND Rd, Rs, Rt

babu
Download Presentation

MR3

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. MR3 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans26/10/2005

  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 • NOR 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. ce rw bw x“000000” & data Mem. de Dados MDR wmdr 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

  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. Exercício • JAL Imed26 • JALR Rd, Rs • JR Rs

  12. Multiplicação e Divisão • 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

More Related