Pipeline
Pipeline é uma técnica de implementação de processadores que permite a sobreposição temporal das diversas fases da execução de instruções.
Tradicionalmente, as instruções do MIPS são executadas em ate 5 passos:
1. Busca da instrução na memória;
2. Leitura dos registradores enquanto uma instrução é decodificada, (o formato das instruções do MIPS permite que a leitura e a codificação ocorram simultaneamente);
3. Execução de uma operação ou cálculo de um endereço;
4. Acesso a um operando de memória;
5. Escrita do resultado em um registrador;
Portanto, o pipeline do MIPS tem cinco estágios.
Performance do processador monociclo versus performance do processador pipeline
Em condições ideais, o ganho devido ao pipeline é igual ao numero de estágios do pipe. Entretanto, por razões de balanceamento imperfeito (estágios gastam mesmo tempo) e overhead do pipeline (representado pelo tempo que se gaste para “encher” todo o pipe), o ganho será menor que o numero de estágios do pipeline.
Em suma, o pipeline melhora a performance por meio do aumento do troughput das instruções, ou seja, aumentando o número de instruções por unidade de tempo, e não por meio da diminuição de execução de uma instrução individual.
Projeto do conjunto de instruções para execução em pipeline
Todas as instruções do MIPS têm o mesmo tamanho que torna simples a busca das instruções e sua decodificação.
O MIPS tem poucos formatos de instruções, sempre com o registrador-fonte localizado na mesma posição. Essa simetria permite que seja realizada a leitura do banco de registradores ao mesmo tempo em que o hardware está determinando o tipo de instrução.
Na arquitetura do MIPS só as instruções de load Word ou store Word é que manipulam operandos na memória, permitindo usar o estágio de execução para efetuar o cálculo do endereço de memória, sendo o acesso à memória realizado no próximo estagio.
Os operandos do