Pipeline (hardware): diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
m Foram revertidas as edições de 186.231.148.33 para a última revisão de HVL, de 17h39min de 20 de maio de 2016 (UTC)
Alguns erros que o editor anterior cometeu, devido a fins academicos.
Linha 1:
{{Mais-notas||ci|data=outubro de 2010}}
{{Wikificação||ci|data=agosto de 2012}}
'''''Pipeline''''' é uma técnica de ''[[hardware]]''software que permite que a [[CPU]] não realize a busca de uma ou mais instruções além da próxima a ser executada. Estas instruções são colocadas em uma fila de [[Memória (computador)|memória]] dentro do processador (CPU) onde aguardam o momento de serem executadas: assim que uma instrução termina o primeiro estágio e parte para o segundo, a próxima instrução já ocupa o primeiro estágio.
 
Em resumo, é o processo pelo qual uma instrução de processamento é subdividido em etapas, uma vez que cada uma destas etapas é executada por uma porção especializada da CPU, podendo colocar mais de uma instrução em execução simultânea. Isto traz um uso mais racional da capacidade computacional com ganho substancial de velocidade. Entre os problemas enfrentados estão a dependência de instruções anteriores e desvios que dificultam o processo, bem como a diferença de complexidade de instruções que fazem com que as mesmas possam levar um tempo variável para execução.
Linha 9:
== Conceito ==
A técnica de pipeline é semelhante a uma linha de produção de fábrica. Cada instrução de um microprocessador passa por diversas fases até sua execução. Estas fases podem ser:
* Decodificação aritmética
* Acesso à memória ou aos registradores
* Processamento aritméticoou acesso à memória
 
Se conseguirmos separar todas estas fases de forma independente, e separar cada fase por ciclo de relógio teríamos (neste exemplo) 3 ciclos por instrução. Se usarmos uma técnica de pipeline poderíamos colocar 3 instruções ao mesmo tempo no microprocessador (cada uma numa fase distinta) e termos 3 instruções em 3 ciclos (1 instrução por ciclo idealmente). Outros problemas advém desta técnica, como desvios (como saber as próximas instruções), e dependência de instruções (a próxima depende da anterior). Na prática todos os microprocessadores modernos utilizam-se de várias (dezenas) fases no processamento para usufruir de ''clocks'' maiores (quanto menor a fase, mais rápido pode ser o ciclo).<ref name="Guardian">{{cite book |url=http://books.google.ca/books?id=Nibfj2aXwLYC&lpg=PA94&dq=deep%20pipeline%20processor&pg=PA94 |title=Modern Processor Design |author=John Paul Shen, Mikko H. Lipasti |year=2004 |publisher=McGraw-Hill Professional}}</ref>