Pipeline, uma abordagem mais científica.

CCR

1995 Civic VTi Eg6
Registrado
Bom, vejo os colegas aqui de fórum falando de pipeline, que quanto mais pipelines melhor e etc, mas creio que a maioria não sabe o que realmente é a técnica de pipeline, para que ele serve e como ele funciona.

Meu objetivo aqui é tentar explicar de forma simples, tentando contextualizar o pessoal à uma abordagem mais científica do assunto, e por fim até explicar porque a cache L1 divide-se em cache de
dados e cache de instruções
.

Primeiro, uma analogia sobre o funcionamento da técnica de pipeline com uma lavanderia de roupas.

Digamos que para lavar as roupas, a lavanderia passa por quatro etapas, conforme a figura.

sempipeline.png

De acordo com a figura, as etapas para lavar roupas, representados na linha A, são: lavar, secar, dobrar e guardar.

Podemos observar pela figura que enquanto estamos lavando uma remessa de roupas(representado em A) , não estamos secando nada, nem dobrando, nem guardando. Depois enquanto secamos as

roupas, não estamos lavando, nem dobrando, nem guardando e assim por diante.

A técnica de pipeline faz com que possamos usar todos os recursos disponíveis da melhorar maneira possível, ou seja, evitar ao máximo que recursos livres fiquem ociosos.

Conforme a figura abaixo podemos ver como ficaria a lavanderia com a técnica de pipeline.

compipeline.png

Podemos ver que na segunda meia hora, após lavar as roupas de A, em que este entra no processo de secagem, a lavadora fica livre e então B pode usar a máquina de lavar ao mesmo tempo em que a

roupa de A está secando. Na terceira meia hora temos A dobrando, B secando e entra uma nova remessa(C) lavando as roupas.

Na figura abaixo um comparativo da lavanderia com e sem o uso da técnica de pipeline.

comparativopipeline.png

Percebe-se que sem a técnica de pipeline as roupas levariam 8 horas para serem lavadas, enquanto com a técnica elas levariam apenas 3 horas e meia.

Agora tentarei passar o que foi dito nessa analogia para mostrar como a técnica de pipeline funciona em um processador. Nesse caso usarei como objeto de estudo o processador MIPS S2000.Mais

informações: http://en.wikipedia.org/wiki/MIPS_architecture .

O MIPS, assim como outros processadores, executam instruções lógico aritméticas. Cada instrução seria a mesma coisa que lavar uma remessa de roupas da lavanderia. Uma instrução no MIPS divide-se em 5 etapas:
• IF - Busca a instrução de memória
• ID - Decodificação/ leitura de registradores
• EX – Execução: operação / cálculo de endereços
• ME – Acesso à operando em memória
• WB – Escrita do resultado em registrador

Abaixo uma figura que mostra as etapas para a execução de cada instrução com pipeline.

visualizacaopipeline.png


Usando nossa analogia , podemos comparar cada estagio da execução da instrução a uma etapa para a lavação de roupas da lavanderia,como se IF fosse lavar, ID fosse secar e assim por diante.

Na figura abaixo temos uma ilustração da execução de 3 instruções do tipo “Lw”(load word, que é buscar um dado da memória) com e sem o uso da técnica de pipeline.

monociclopipeline.png

Notem que sem pipeline esse conjunto de instruções levariam 800 Pico segundos para serem executados, enquanto que com o uso da técnica de pipeline elas levariam somente 200 Pico segundos.

Para finalizar vou explicar porque os processadores possuem a cache L1 divida em cache de instruções e cache de dados.

Podemos notar, na penúltima figura, que no quarto ciclo as instruções IF e ME estão sendo executadas ao mesmo tempo. Logicamente seria impossível buscarmos em uma mesma unidade de memória dois dados

ao mesmo tempo.

É aí que entra o fato de termos duas porções de cache L1, uma de instruções (para IF) e outra para dados (para ME). Sem isso teríamos um fenômenos chamado “hazard”, que é como se fosse uma parada na

execução das instruções subsequentes até que a execução dessa instrução termine.

Existem ainda muitos outros cenários em que um “hazard” inevitavelmente podem acontecer, mas não é minha intenção falar sobre eles porque seria um aprofundamento muito grande.

Espero ter ajudado e qualquer dúvida podem perguntar!

Figuras do esquema da lavanderia retiradas do livro:

Computer Organization and Design, 4th Edition
The Hardware/Software Interface
By David A. Patterson and John L. Hennessy


Demais figuras esquemáticas retiradas de:
www.inf.ufsc.br/~santos
 

Users who are viewing this thread

Voltar
Topo