Pipeline de intrução e aritmético
No pipeline de instrução o processamento da instrução dividida em estágios, possibilitando o chamado paralelismo em nível de instrução. Os estágios básicos podem ser divididos em: busca, decodificação, execução, acesso à memória e escrita em registradores. No caso ótimo (deste exemplo) é possível ter cinco instruções sendo processadas ao mesmo tempo, sendo que cada uma utiliza uma unidade funcional responsável por cada estágio citado acima.
No pipeline aritmético as unidades funcionais estão presentes na Unidade Lógica e Aritmética (ULA). Neste caso as operações aritméticas necessárias para a execução de uma instrução e que são realizadas pela ULA, também são divididas em estágios, podendo, portanto, a ULA processar operações em mais de uma instrução ao mesmo tempo, desde que, em estágios e unidades funcionais diferentes.
Exemplo de Pipeline de Instruções
• Divisão da Execução da Instrução em 5 estágios: – Busca da Instrução na Memória (B)
– Leitura dos Registradores e Decodificação da Instrução (D)
– Execução da Instrução / Cálculo do Endereço (E)
Acesso a um Operando na Memória (M)
– Escrita de um Resultado em um Registrador (W)
Características dos Pipelines de Instrução
• O tempo do ciclo do relógio do processador deve ser igual ou maior que o tempo de execução do estágio mais lento do “pipeline”.
• Deve-se procurar dividir a execução da instrução em estágios com o mesmo tempo.
• O pipeline deve ser mantido sempre “cheio” para que o desempenho máximo seja alcançado.
• De um modo geral, com o uso do pipeline, cada instrução ainda leva o mesmo tempo para ser executada. • Algumas instruções contudo podem ter o seu tempo de execução aumentado, pois atravessam estágios em que não realizam nenhuma operação útil.
Problemas no Uso de Pipeline
• Estágios podem ter tempos de