Bacharelado
Múltiplos Fluxos:
Um pipeline simples tem penalidades na execução de uma instrução de desvio, pois precisa buscar duas instruções e pode fazer a escolha errada.
A estratégia é replicar os estágios iniciais do pipeline, permitindo que as duas instruções possíveis do desvio sejam buscadas, cada uma num fluxo independente.
Os problemas envolvidos com essa estratégia são:
– Atrasos no acesso à memória e aos registradores com múltiplos fluxos. – Instruções de desvio adicionais podem entrar no pipeline antes que a decisão de desvio original seja resolvida, resultando em fluxos adicionais. Ex.: IBM 370/168 e IBM 3033.
Busca Antecipada da Instrução-alvo de desvio
Quando um desvio condicional é reconhecido, o “alvo” (instrução a ser executada) do desvio é lido antecipadamente, além da instrução que segue o desvio.
Esse alvo é salvo até que a instrução de desvio seja executada.
Se o desvio for tomado, o alvo já foi obtido.
Ex.: IBM 360/91.
Memória de Laço de Repetição
Memória pequena e rápida mantida pelo estágio de busca de instrução do pipeline, a qual armazena as N instruções lidas mais recentemente na sequência.
Se o desvio está para ser tomado, o hardware primeiro procura se o alvo do desvio já está no buffer. Se estiver, a próxima instrução é obtida do buffer.
Benefícios:
– Buffer armazena as N próximas instruções, sem necessidade de acesso à memória. – Se o alvo do desvio estiver apenas algumas posições à frente da instrução de desvio, o alvo já estará no buffer. Caso típico de instruções
IF-THEN-ELSE.
– Estratégia adequada para tratar laços/iterações, especialmente se todas as instruções do laço puderem ser armazenadas no buffer. Custo de acesso somente na primeira vez.
Semelhante à cache de instruções, porém com menor tamanho e menor custo.
Ex.: máquinas CDC (Star-100, 6600, 7600), CRAY-1, Motorola