ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 07: ESTRUTURA E FUNCIONAMENTO DE UMA CPU MULTICICLO Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação ANALISE DE UMA CPU MONOCICLO • Vantagem: – Simplicidade de implementação • Datapath e Controle • Desvantagens: – Custo de hardware • Duplicação de componentes devido a restrição de um ciclo para o processamento de instruções. – Desempenho • Ciclo de clock longo para comportar instrução mais lenta • Instruções que demandam menos tempo deixam CPU ociosa • Implementação pouco eficiente COMO MELHORAR O DESEMPENHO NA EXECUÇÃO DE VÁRIAS INSTRUÇÕES? COMO MELHORAR O DESEMPENHO • Dividir processamento de instrução em diferentes estágios. • Executar cada estágio da CPU em um ciclo de relógio. – Ciclo pode ser menor • Reutilizar componentes de hardware. – Componente de hardware pode ser utilizado em estágios diferentes. • Começar uma instrução antes da última instrução terminar. – Diferentes instruções requerem quantidade de estágios diferentes. – Algumas instruções podem ser processadas em menos tempo – Tempo médio de processamento pode melhorar. CPU MULTICICLO COMO DIVIDIR O PROCESSAMENTO DE UMA INSTRUÇÃO EM ESTÁGIOS? PROCESSAMENTO EM ESTÁGIOS • Estágios – – – – – Busca Sempre executado Decodifica Opera com ALU Depende da instrução, Acesso a memória pode não ser executado. Escreve em registradores VISÃO ABSTRATA DE UMA CPU MONOCICLO Duplicação de componentes para realizar soma Memória diferentes para instruções e dados Clock Busca - Decodifica - Executa VISÃO ABSTRADA DE UMA CPU MULTICICLO Memória única para instruções e dados Componente único para realizar operações VISÃO ABSTRADA DE UMA CPU MULTIMODO (MAIS REGISTRADORES) Registradores auxiliares entre unidades funcionais maiores Serão usados na mesma instrução, mais em ciclo de clock diferente IMPLEMENTAÇÃO DE UMA CPU MULTICICLO • Um ciclo de clock pode acomodar uma das operações: – Acesso de memória – Acesso ao banco de registradores (2 leitura ou 1 escrita) – Operação da ALU. • Unidades funcionais só podem ser utilizadas uma vez durante um ciclo: – ALU, memória, registradores auxiliares – Exceção: registradores auxiliares • • • • IR: Armazena instruções lida da memória MDR: Armazena dado lido da memória A e B: Armazenam operandos lidos do banco de registradores ALUOut: Armazena saída da ALU IMPLEMENTAÇÃO DE UMA CPU MULTICICLO • Dados de uma instrução que precisam ser utilizados em outra instrução são armazenados nas unidades visível ao programador. – Memória – Banco de registardores – PC • Dados necessários entre estágios (ciclo) diferentes de uma mesma instrução ESTRUTURA DE UMA CPU MONOCICLO UNIDADE DE PROCESSAMENTO DE UMA CPU MULTICICLO Mais multiplexadores ou multiplexadores expandido ENTRADA DE ENDEREÇO DE UMA CPU MULTICICLO Escolha entre endereço de instrução (PC) ou endereço de dado (ALUOut) PRIMEIRO OPERANDO DA ALU DE UMA CPU MULTICICLO Escolha entre endereço de instrução (PC) ou operando de saída do banco de registrador (A) SEGUNDO OPERANDO DA ALU DE UMA CPU MULTICICLO Escolha entre saída do banco de registradores (B), a constante 4 (para incrementar o PC), o sinal estendido de deslocamento de 2 bits (para BEQ) e o sinal simplesmente estendido (para LW/SW) SEGUNDO OPERANDO DA ALU DE UMA CPU MULTICICLO Os registradores auxiliares não precisam de sinal de controle de escrita porque são atualizados em todo ciclo de clock UNIDADE DE PROCESSAMENTO COM CONTROLE UMA CPU MULTICICLO UNIDADE DE CONTROLE UMA CPU MULTICICLO (SINAIS DE 1 BIT) UNIDADE DE CONTROLE UMA CPU MULTICICLO (SINAIS DE 2 BIT)