O Processador: Caminho de Dados e Controle Implemtação Monociclo Implementação Multiciclo: Passos 1. Busca de instrução 2. Decodificação da instrução e busca do registrador 3. Execução, cálculo do endereço de memória ou efetivação do desvio condicional 4. Final da execução das instruções de acesso à memória e do tipo R 5. Final do passo de leitura de memória 1° Passo: busca da instrução IR=Memória[PC] PC=PC+4 • Envio do PC para a memória como endereço, realização da leitura e escrita da instrução no registrador de instruções. 2° Passo: decodificação da instrução e busca do registrador a) Executa algumas operações que podem depois ser descartadas após a decodificação da instrução (ainda não se sabe qual instrução está no IR) São executadas para evitar a perda de tempo durante a execução (ler rs e rt) Carga de: b) c) – – d) e) f) Registradores de entrada da ULA Endereço de desvio condicional (salvo em UALSaída) A = Reg[IR[25-21]]; B = Reg[IR[20-16]]; UALSaída = PC + extensão de sinal (IR[15-0] << 2); 3° Passo: Execução, cálculo do endereço de memória ou efetivação do desvio condicional a) Referência à memória UALSaída = A + extensão de sinal IR[15-0] b) Instrução aritmética ou lógica (tipo R) UALSaída = A op B c) Desvio condicional Se (A == B) PC = UALSaída d) Desvio incondicional PC = PC [31-28] || (IR[25-0]<<2) 4° Passo: Final da execução das instruções de acesso à memória e do tipo R a) Referência à memória MDR = Memória [UALSaída]; ou Memória = [UALSaída] = B; b) Instruções aritméticas ou lógicas (tipo R) Reg[IR[15-11]] = UALSaída; 5° Passo: Final de leitura da memória • Load word: – Reg[IR[20-16]] = MDR Implementação Multiciclo Como melhorar o desempenho ? Pipelining Técnica de implementação em que várias instruções são sobrepostas na execução Pipelining não diminui o tempo para concluir uma instrução, mas aumenta a vazão, reduzindo o tempo para concluir a aplicação Instruções MIPS normalmente exigem cinco etapas: busca, decodificação/leitura de registradores, cálculo de operação/endereço; acesso a operando na memória, escrita de resultado em registrador Pipelining de cinco estágios Desempenho de ciclo único X desempenho com pipelining Classe Busca de Instruções Leitura de Registrador Operação Acesso a de ALU Dados Tipo R 200 100 200 lw 200 100 200 200 sw 200 100 200 200 Branch 200 100 200 Escrita em Registrado r100 Total 100 800 600 700 500 Desempenho de ciclo único X desempenho com pipelining Tempo 0 200 Busca Reg instrução 400 ALU 600 800 1000 1200 1400 1600 1800 Acesso Reg à dados 800ps Busca Reg instrução ALU 800ps Ordem de execução do programa (em instruções) Acesso Reg à dados Busca instrução Desempenho de ciclo único X desempenho com pipelining Tempo Busca instrução 200 600 400 200 0 Reg Busca instrução 200 ALU Reg Busca instrução 200 Ordem de execução do programa (em instruções) 800 1200 1000 1400 Acesso Reg à dados ALU Reg 200 Acesso Reg à dados ALU 200 Acesso Reg à dados 200 200 1600 1800