PIPELINE DE INSTRUÇÕES (estratégia e desempenho)adao/PIPELINE2018.pdf · 3 PIPELINE A...

17
1 PIPELINE DE INSTRUÇÕES (estratégia e desempenho) Adão de Melo Neto

Transcript of PIPELINE DE INSTRUÇÕES (estratégia e desempenho)adao/PIPELINE2018.pdf · 3 PIPELINE A...

1

PIPELINE DE INSTRUÇÕES(estratégia e desempenho)

Adão de Melo Neto

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

COM PIPELINE

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

DIAGRAMA FUNCIONAL DO PROCESSADOR

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

GANHO COM PIPELINE DE INSTRUÇÃO

17

Aumento da velocidade em função do número de instruções executadas sem que ocorra desvio.