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

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

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

Apresentações semelhantes


Apresentação em tema: "MR3 Operação do Bloco de Dados e do Bloco de Controle Fernando Moraes, Ney Calazans 26/10/2005."— Transcrição da apresentação:

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

2 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 wmdr CY1 ce rw Endereço Mem. Dados ce/rw walu dtPC instruction I_address NPC OP1 CY1 PC OP2 result CY2 Rt Rs PC +4 Memória de Instruções RALU IR Memória de Dados NPC EXT SINAL IMED MDR banco de registradores AdRt AdRs AdRd Rd << 2 cte_im ALU 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 NOR Rd, Rs, Rt Rs comp Rt salta 0000 & IR[25:0] & 00 IR[15:0] EXT ZERO

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

4 wpc IR[20:16] IR[25:21] IR[15:11] IR[20:16] IncPC IR[15:0] IR[20:16] RIN outalu data Rt wmdr CY1 ce rw Endereço Mem. Dados ce/rw walu dtPC instruction I_address NPC OP1 CY1 PC OP2 result CY2 Rt Rs PC +4 Memória de Instruções RALU IR Memória de Dados NPC IMED MDR banco de registradores AdRt AdRs AdRd Rd cte_im ALU 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 comp IR[25:0] EXT SINAL << & IR[25:0] & 00 IR[15:0] EXT ZERO SÓ ESTENDE SINAL NA INSTRUÇÃO ADDIU, OUTRAS ESTENDEM ZERO

5 wpc IR[20:16] IR[25:21] IR[15:11] IR[20:16] IncPC IR[20:16] RIN outalu data Rt wmdr CY1 ce rw Endereço Mem. Dados ce/rw walu dtPC instruction I_address NPC OP1 CY1 PC OP2 result CY2 Rt Rs PC +4 Memória de Instruções RALU IR Memória de Dados NPC IMED MDR banco de registradores AdRt AdRs AdRd Rd cte_im ALU Instruções de Leitura da Memória: LBU/LW LBURt, Imed16(Rs) LWRt, Imed16(Rs) Rs Rt salta comp IR[25:0] IR[15:0] EXT SINAL << & 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 wmdr ce rw bw Mem. de Dados MDR x & data

6 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 wmdr CY1 ce rw Endereço Mem. Dados ce/rw walu dtPC instruction I_address NPC OP1 CY1 PC OP2 result CY2 Rt Rs PC +4 Memória de Instruções RALU IR Memória de Dados NPC IMED MDR banco de registradores AdRt AdRs AdRd Rd cte_im ALU Instruções de Escrita na Memória: SB/SW SBRt, Imed16(Rs) (ativar bw) SWRt, Imed16(Rs) Rs Rt salta comp IR[25:0] IR[15:0] EXT SINAL << & IR[25:0] & 00 IR[15:0] EXT ZERO

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

8 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 wmdr CY1 ce rw Endereço Mem. Dados ce/rw walu dtPC instruction I_address NPC OP1 CY1 PC OP2 result CY2 Rt Rs PC +4 Memória de Instruções RALU IR Memória de Dados NPC IMED MDR banco de registradores AdRt AdRs AdRd Rd cte_im ALU Instruções de Comparação Imediatas - SLTI/SLTIU SLTIRt, Rs, Imed16 SLTIURt, Rs, Imed16 Rs Rt salta comp IR[25:0] EXT SINAL << & IR[25:0] & 00 IR[15:0] EXT ZERO

9 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 wmdr CY1 ce rw Endereço Mem. Dados ce/rw walu dtPC instruction I_address NPC OP1 CY1 PC OP2 result CY2 Rt Rs PC +4 Memória de Instruções RALU IR Memória de Dados NPC IMED MDR banco de registradores AdRt AdRs AdRd Rd cte_im ALU Instruções de Salto Condicional BEQRs, Rt, rótulo BGEZRs, rótulo BLEZRs, rótulo BNERs, Rt, rótulo Em função da comparação Rs/Rt, salta ou não Rs Rt salta comp IR[25:0] IR[15:0] EXT SINAL << & IR[25:0] & 00 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 wpc IR[20:16] IR[25:21] IR[15:11] IR[20:16] IncPC IR[20:16] RIN outalu data Rt wmdr CY1 ce rw Endereço Mem. Dados ce/rw walu dtPC instruction I_address NPC OP1 CY1 PC OP2 result CY2 Rt Rs PC +4 Memória de Instruções RALU IR Memória de Dados NPC IMED MDR banco de registradores AdRt AdRs AdRd Rd cte_im ALU J Imed26 Rs Rt salta comp IR[25:0] IR[15:0] EXT SINAL << & IR[25:0] & 00 IR[15:0] EXT ZERO

11 Exercício JAL Imed26 JALRRd, Rs JRRs

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


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

Apresentações semelhantes


Anúncios Google