Pipeline e superpipeline
Antes de qualquer comentário, faz-se necessário saber qual o conceito das respectivas palavras acima. Começando por pipeline. Está é uma técnica de hardware que permite que o processador (CPU) realize a busca de uma ou mais instruções além da próxima a ser executada, ou melhor dizendo, pipeline é uma técnica de projeto onde o hardware processa mais de uma instrução de cada vez, sem esperar que uma instrução termine antes de começar a outra. A técnica pipeline é utilizada para acelerar a velocidade de operação da CPU. Explica-se isso, pelo fato de a próxima instrução estar armazenada dentro da CPU, não precisando ser buscada na memória, que é normalmente mais lenta. O pipeline consiste em colocar instruções em uma linha de produção de modo que torne o processamento mais rápido. Vantagens do uso do pipeline: • No pipeline todas as instruções têm o mesmo comprimento, ajudando na performance da máquina. • Existem poucos formatos de instrução, o que o torna menos complexo que outras técnicas. • Os operandos no pipeline, só aparecem em loads e stores, trazendo uma praticidade por simplificar a busca por eles. Desvantagens do uso do pipeline: • Tendo apenas uma memória, está fica sobrecarregada e não atende às expectativas e exigências do pipeline. • As instruções de desvio podem bloquear uma determinada instrução que teria que ser executada. • As dependências de dados podem gerar problemas na hora de se executar um conjunto de instruções. Qual o princípio de funcionamento da técnica? Há a execução de uma tarefa através da sua divisão num conjunto de sub-tarefas, empregando a concorrência temporal (também chamada de overlap). Na medida que conclui a execução num estágio e que o resultado segue para a próxima etapa, o estágio é carregado com a próxima tarefa. Os tempos de execução em cada estágio devem ser bastante semelhantes para que não