Pesquisar este blog

sexta-feira, 10 de fevereiro de 2012

pipelines

Como o processamento de cada instrução passa, tipicamente, por etapas, alguns computadores usam pipelines para aumentar a quantidade de instruções processadas por unidade de tempo; nesses computadores, em determinado instante, diferentes instruções podem estar em diferentes etapas de seus processamentos.
  •  Certo       Errado


Pipeline é uma técnica de hardware que permite que a CPU 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 dentro do processador (CPU) onde aguardam o momento de serem executadas.

A técnica de pipeline é utilizada para acelerar a velocidade de operação da CPU, uma vez que a próxima instrução a ser executada está normalmente armazenada dentro da CPU e não precisa ser buscada da memória, normalmente muito mais lenta que a CPU.


--------------------------

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
  • Acesso memória ou registradores
  • Processamento aritmético

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 advem 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).

Nenhum comentário:

Postar um comentário