Prévia do material em texto
Disciplina: Arquitetura de Computadores
● Pesquisar o conceito de Pipeline
Pipeline é o processo no qual uma instrução de processamento é subdividido em etapas. Nesse
conceito uma instrução executa um estágio, e ao terminar a execução do primeiro estágio outra
instrução ocupa o lugar da primeira, enquanto a primeira já começa a executar o segundo estágio.
● Faça uma analogia entre Pipeline e os estágios de um trabalho qualquer (lavar
roupas, fábrica de carros, etc)
Uma analogia interessante seria a de lavar roupas, suponhamos que cada processo leve 30 minutos.
O primeiro processo é o de colocar a roupa na máquina e lavar
O segundo processo é o de secar
O terceiro é o de passar
E o quarto é o de guardar no armário.
Com pipeline, assim que eu terminar de lavar, e iniciar o processo de secagem, é possível iniciar o
processo de lavar com outras roupas. Sendo assim, posso executar dois processos simultâneos em
estágios diferentes de tempo.
● Quais vantagens uma CPU com Pipeline possui
Aumento da velocidade de operação da CPU, uma vez que a próxima instrução a ser executada
está normalmente armazenada nos registradores da CPU e não precisa ser buscada da memória
principal que é muito mais lenta.
● Desempenho do Pipeline
T k,n =[k+(n-1)]T
● Fatores que limitam os ganhos "prometidos" pelo Pipeline
Duas ou mais instruções competem pelo mesmo recurso de CPU e memória
Duas ou mais instruções conflitam no acesso a um operando
Instruções de desvio
● Exercício 01: Qual o tempo de execução de um programa com 7,5 milhões de
instruções, considerando que o pipeline é de 12 estágios e que cada estágio leva
100ns (nanosegundos) para ser executado.
T k,n =[k+(n-1)]T
T k,n =[12+(7500000-1)] 10−7
T k,n =[7500011] x , 000010 0
T k,n = 7,5 segundos
● Exercício 02: Qual o ganho de desempenho do pipeline do exercício 01 se
comparado à execução deste mesmo programa, porém sem pipeline.
T k,n = 7.500.000 x ( ), 000010 0 12x
T k,n = 7.500.000 x , 000010 0 12x
T k,n = 90 segundos
● Exercício 03: explique o porquê das instruções de desvio ("if", "while", "chamadas
de função", etc) trazerem limitações de desempenho ao Pipeline.
Caso ocorra uma instrução de desvio, o pipeline que estava sendo executado deve ser
descartado, e as instruções devem ser executadas novamente.