(aula passada) Caminho de Dados • Busca de Instrução + Instruções Aritm. e Lóg. (R-format) + Instruções de Referência à Memória (I-Format) + Desvio 1 M U X Somador UAL Reg a ser lido # 1 P C Endereço de leitura Instrução M U X Memória de Instruções 3 Reg a ser lido #2 Dado lido #1 Reg a ser escrito Dado lido #2 Dado de escrita EscReg 16 Extensão de sinal DvC EscMen M U X UAL Endereço Dado lido Dado a ser escrito LerMem 32 M U X Inserindo o Controle • Identificar os pontos de controle no caminho de dados – Busca da instrução – Operações lógicas e aritméticas – Operações de Memória • Identificar tipo de controle do sinal – Fluxo de dados através de multiplexadores – Escrita e leitura de dados • Pensar nos sinais de controle para cada instrução Busca da Instrução 1 M U X Somador UAL Reg a ser lido # 1 P C Endereço de leitura Instrução M U X Memória de Instruções 3 Reg a ser lido #2 Dado lido #1 Reg a ser escrito Dado lido #2 Dado de escrita EscReg 16 Extensão de sinal DvC = 0 (=X) Não influencia M U X UAL Endereço Dado lido Dado a ser escrito LerMem 32 EscMen M U X Controle para Operação Aritmética 1 M U X Somador UAL Reg a ser lido # 1 P C Endereço de leitura Instrução Memória de Instruções Reg a ser lido #2 op 3 Dado lido #1 =0 EscMen =0 M U X Reg a ser escrito =1 Dado lido #2 Dado de escrita EscReg 16 Extensão de sinal DvC = 0 M U X UAL Endereço Dado lido Dado a ser escrito LerMem =1 =1 M U X =0 32 EscMen = LerMem = 0 pois nem escreve nem lê da memória EscReg = 1 pois “Reg a ser escrito” seleciona registrador que vai receber “dado de escrita” Controle para Operação de Carga 1 M U X Somador UAL Reg a ser lido # 1 P C Endereço de leitura Instrução Memória de Instruções Reg a ser lido #2 Add Dado lido #1 =0 EscMen =1 M U X Reg a ser escrito =0 Dado lido #2 Dado de escrita EscReg 16 Extensão de sinal DvC = 0 M U X UAL Endereço Dado lido Dado a ser escrito LerMem =1 =0 M U X =1 32 LerMem = 1 pois lê da memória EscReg = 1 pois “Reg a ser escrito” seleciona registrador que vai receber “dado de escrita” Controle para Operação de Armazenamento 1 M U X Somador UAL Reg a ser lido # 1 P C Endereço de leitura Instrução Memória de Instruções Reg a ser lido #2 Add Dado lido #1 =1 EscMen =1 M U X Reg a ser escrito =X Dado lido #2 Dado de escrita EscReg 16 Extensão de sinal DvC = 0 M U X UAL Endereço Dado lido Dado a ser escrito LerMem =0 32 EscMem = 1 pois escreve da memória EscReg = 0 pois não usa o “Reg a ser escrito” =X =0 M U X Controle para Op. de Desvio Condicional (beq) 1 M U X Somador UAL Reg a ser lido # 1 P C Endereço de leitura Instrução Memória de Instruções Reg a ser lido #2 Sub Dado lido #1 =0 EscMen =0 M U X Reg a ser escrito =X Dado lido #2 Dado de escrita EscReg 16 Extensão de sinal DvC = 1 M U X UAL Endereço Dado lido Dado a ser escrito LerMem =0 =X M U X =0 32 EscMen = LerMem = 0 pois nem escreve nem lê da memória EscReg = 0 pois não usa o “Reg a ser escrito” Se R[regA]-R[regB] = 0 então o sinal na saída Zero é 1, se não o sinal na saída Zero é 0. Sinal de Controle 1 M U X Somador UAL Reg a ser lido # 1 P C Endereço de leitura Instrução Memória de Instruções Reg a ser lido #2 M U X Reg a ser escrito UALop 3 Dado lido #1 Dado lido #2 mRegDest Dado de escrita EscReg 16 Extensão de sinal DvC EscMen mUAL M U X UAL Endereço Dado lido Dado a ser escrito LerMem 32 mDadoEsc M U X Resumo Sinais de Controle Op 000 010 011 100 add lw sw beq mRegDest 1 0 X X mUAL 0 1 1 0 mDadoEsc 1 0 X X EscReg 1 1 0 0 LerMem 0 1 0 0 EscMen 0 0 1 0 DvC 0 0 0 1 UALop add add add sub Resumo Sinais de Controle Op 000 010 011 100 add lw sw beq mRegDest 1 0 X X mUAL 0 1 1 0 mDadoEsc 1 0 X X EscReg 1 1 0 0 LerMem 0 1 0 0 EscMen 0 0 1 0 DvC 0 0 0 1 UALop0 0 0 0 0 UALop1 1 1 1 1 UALop2 0 0 0 1 UALop0 = 0 UALop1 = 1 Implementação da Função de Controle Op0 Op1 Op2 R-format lw sw beq mRegDest mUAL mDadoEsc EscReg LerMen EscMen DvC UALOp2 M U X Somador 1 UAL Reg a ser lido # 1 P C Endereço de leitura Instrução Memória de Instruções M U X 3 Reg a ser lido #2 Dado lido #1 Reg a ser escrito Dado lido #2 mRegDest Dado de escrita EscReg Instr [24:22] op Controle Principal UALop mRegDest mUAL mDadoEsc EscReg LerMem EscMem DvC UALOp2 16 Extensão de sinal DvC EscMem mUAL M U X UAL Endereço Dado lido Dado a ser escrito LerMem 32 Juntando as Partes mDadoEsc M U X Implementação Monociclo • Vantagens – Um ciclo de relógio por instrução torna lógica mais simples • Desvantagens – Ciclo de clock determinado pela instrução que leva maior tempo • Instrução de carga utiliza cinco unidades funcionais em série: tempo de acesso à memória de instruções + – – – – tempo de acesso ao banco de registradores + retardo da UAL + tempo de acesso à memória de dados + tempo para armazenar os dados para o banco de registradores – Duplicação de unidades funcionais