PIPELINE DE INSTRUÇÕES (estratégia e desempenho)adao/PIPELINE2018.pdf · 3 PIPELINE A...
Transcript of PIPELINE DE INSTRUÇÕES (estratégia e desempenho)adao/PIPELINE2018.pdf · 3 PIPELINE A...
2
DESEMPENHO SISTEMA COMPUTACIONAIS A melhoria do desempenho de sistemas computacionais
pode ser conseguido através de diversas maneiras:– Tecnologia mais avançada (conjunto de circuitos mais rápidos)
– Melhor organização da CPU (múltiplos registradores e memória cache)
– PIPELINE de INSTRUÇÕES em ASSEMBLY
3
PIPELINE
A estratégia PIPELINE assemelha-se a linha de montagem de uma Industria.– Um produto passa por vários estágios da produção.
– Produtos em vários estágios do processo de produção podem ser trabalhados simultaneamente.
– Novas entradas são aceitos em uma extremidade antes que entradas aceitas previamente apareçam na saída
Estágio 01
Estágio 02Estágio 03
ENTRADA DO PROCESSOPRODUTIVO
SAÍDA DO PROCESSOPRODUTIVO
SEM PIPELINE
01 02 03 04 05 06 07 08 09
PRODUTO 01 E1 E2 E3
PRODUTO 02 E1 E2 E3
PRODUTO 03 E1 E2 E3
01 02 03 04 05 06 07 08 09
PRODUTO 01 E1 E2 E3
PRODUTO 02 E1 E2 E3
PRODUTO 03 E1 E2 E3
COM PIPELINE
PIPELINE e CICLO DE INSTRUÇÃO
ESTÁGIOS DO CICLO DE INSTRUÇÃO = OPERAÇÕES ELEMENTARES
PIPELINE é uma técnica 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: 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.
Suponha que o processamento de uma instrução é dividida em dois estágios independentes: busca e execução (de uma instrução).
(1) O primeiro estágio (busca) busca uma instrução na memória e armazena em uma área de armazenamento temporário (um registrador).
(2) Quando o segundo estágio (execução) está livre, o primeiro estágio (busca) passa para o segundo estágio (execução) a instrução armazenada.
(3) Enquanto o segundo estágio (execução) está executando essa instrução, o primeiro estágio (busca) busca e armazena a próxima instrução.
Tudo isso acelera a execução das instruções.
8
PIPELINE COM CICLO DE 02 ESTÁGIOS
9
Se os estágios de busca e execução de instrução tivessem a mesma duração, o número de instruções executadas por unidade de tempo seria dobrada.
No entanto, na prática, essa taxa é pouco provável. Porque ?
– 1) O tempo de execução é maior do que o de busca . A execução envolve leitura, armazenamento de operandos e execução de algumas operações e portanto o estágio de busca tem que esperar algum tempo.
– 2) A ocorrência de instruções de desvio condicional faz com que o endereço da próxima instrução a ser executada seja desconhecida.
PIPELINE COM CICLO DE 2 ESTÁGIOS (DESEMPENHO)
10
PIPELINE e DESVIO (ESTRATÉGIA DE ADIVINHAÇÃO)
Em razão da ocorrência de instruções de desvio, o tempo perdido pode ser reduzido através de uma estratégia de adivinhação.
Estratégia de adivinhação:– Quando o instrução de desvio condicional é passada do estágio de busca
para o estágio de execução, o estágio de busca obtém na memória a instrução imediatamente seguinte a instrução de desvio. Então se não ocorrer o desvio, nenhum tempo é perdido. Caso contrário, a instrução buscada deve ser descartada, sendo buscada uma nova instrução.
Mesmo com os dois fatores citados anteriormente, algum ganho de desempenho é obtido.
11
PIPELINE COM CICLO DE 06 ESTÁGIOS
Maior número de ciclos visa aumentar o desempenho Considere a seguinte decomposição do processamento de uma
instrução em 06 estágios.
Com essa decomposição, os vários estágios tem duração aproximadamente igual.
A figura abaixo mostra que com uma PIPELINE de 06 estágios reduz o tempo de execução de 09 instruções de 45 unidades de tempo (quando realizadas sequencialmente) (5x9=45) para 13 unidades de tempo (usando PIPELINE).
12
PIPELINE COM CICLO DE 06 ESTÁGIOS
13
PIPELINE COM CICLO DE 06 ESTÁGIOS Algumas considerações em relação ao diagrama anterior
– Cada instrução passa pelos CINCO estágios do PIPELINE– O diagrama supões que todos os estágios possam ser executados em
paralelo.– Supõe que não exista conflito de acesso à memória principal (instruções BI,
BO e EO envolvem acesso à memória).– Supõe que a memória possa ser utilizada simultaneamente por estes
estágios, o que não é possível na maioria dos sistemas de memória. Entretanto o valor pode estar na memória CACHE, ou estes estágios não podem ser executados.
14
PIPELINE COM CICLO DE 06 ESTÁGIOS
Fatores que limitam o desempenho– 1) Se os estágios não possuem igual duração existe uma certa espera
envolvida.– 2) A instrução de desvio condicional pode invalidar diversas buscas de
instrução.– 3) Ocorrência de interrupção (chamada do processador).
Efeito de um desvio condicional– Suponha que a instrução 03 seja uma instrução de desvio condicional
para a instrução 15. Até que a execução dessa instrução seja feita não dá para saber qual instrução virá na seqüência. O PIPELINE então carrega a instrução da seqüência e (instrução 04 ) prossegue a execução. O desvio é tomado, mas isso só é confirmado apenas no final da unidade de tempo 7. Neste ponto são retiradas do PIPELINE as instruções inúteis e a instrução 15 entra no PIPELINE.
15
EFEITO DE UM DESVIO CONDICIONAL
INSTRUÇÕES INÚTEIS
GANHO COM PIPELINE DE INSTRUÇÃO
k: número de estágios da PIPELINE de instruçãon: número de instruções
Exemplo 01 K=5 e N=9 (9x5)/(5+8) = 3,46
Exemplo 02K=2 e N=9 (9x2)/(2+8) = 1,80
Exemplo 03K=1 e N=9 (9x1)/(1+8) = 1,00