Download
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
MR3 PowerPoint Presentation

MR3

124 Vues Download Presentation
Télécharger la présentation

MR3

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