Pipeline
Os processadores antes do uso do pipeline eram demasiadamente lentos, a necessidade de processadores mais rápidos fez com que fossem desenvolvidas novas tecnologias, surgindo assim o Pipeline, um processador com pipeline chegava a ser cem ou mil vezes mais rápido que o que não fazia uso dessa tecnologia.
Antigamente os processadores eram constituídos por duas tecnologias, RISC e CISC, os processadores RISC eram constituídos de poucas instruções, o que fazia com que fossem mais rápidos em relação ao CISC. O CISC por sua vez era processadores com mais instruções em seu núcleo, tornando-o mais lento.
Os processadores RISC foram os primeiros a utilizarem o Pipeline, que consistia em fragmentar as tarefas e processando todas em paralelo. Para exemplificarmos o funcionamento de um pipeline basta imaginarmos a seguinte situação, um processador sem pipeline seria a mesma coisa que um único artesão construir um carro a mão, já o processador com pipeline, seria o mesmo que uma linha de produção de uma fábrica de carros.
Enquanto o processador sem pipeline necessita de esperar uma tarefa ser concluída para executar a próxima, aquele que faz uso do pipeline poderá executar várias tarefas ao mesmo tempo devido ao seu maior número de estágios.
Problemas com o Pipelines:
Desvio Condicional: Atraso devido a uma instrução de desvio condicional, interrompendo a progressão das instruções pelo pipeline. Como só saberá no momento da execução se o desvio será ou não executado, o pipeline terá uma perda significativa de performance.
Comumente em estruturas Superpipelining, no qual se coloca um grande números de estágios.
Solução: Previsões de Desvio (Branch Prediction) pode prever durante a compilação qual será o resultado do desvio.
Técnicas Pipelines:
Existem as mais diversas técnicas de pipeline, cada qual com suas particularidades e funcionamento distintos, entre elas o superpipelining, o superescalar, previsão de desvios, pipeline especulativo, pipeline