pipeline de instruÇÕes (estratégia e desempenho)adao/pipeline.pdf · 3 pipeline x linha de...

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

Upload: vandien

Post on 23-Mar-2019

233 views

Category:

Documents


0 download

TRANSCRIPT

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

3

PIPELINE x LINHA DE MONTAGEM

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 aceitas em uma extremidade antes que

entradas aceitas previamente apareçam na saída

DIAGRAMA FUNCIONAL DO PROCESSADOR

CICLO DE INSTRUÇÃO

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.

6

PIPELINE COM CICLO DE 02 ESTÁGIOS

7

Se os estágios de busca e execução de instrução tivessem a mesmaduração, o número de instruções executadas por unidade de temposeria 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 oestágio de busca tem que esperar algum tempo.

– 2) A ocorrência de instruções de desvio condicional faz com que o endereço dapróxima instrução a ser executada seja desconhecida.

PIPELINE COM CICLO DE 2 ESTÁGIOS (DESEMPENHO)

8

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.

9

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 54 unidades de tempo (quando

realizadas sequencialmente) (6x9=54) para 14 unidades de tempo

(usando PIPELINE).

10

PIPELINE COM CICLO DE 06 ESTÁGIOS

11

PIPELINE COM CICLO DE 06 ESTÁGIOS

Algumas considerações em relação ao diagrama anterior

– Cada instrução passa pelos seis 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.

12

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.

13

EFEITO DE UM DESVIO CONDICIONAL

14

GANHO COM PIPELINE DE INSTRUÇÃO

K: número de estágios da PIPELINE de instrução

N: número de instruções

Exemplo 01

K=6 e N=9 (9x6)/(6+8) = 3,85

Exemplo 02

K=2 e N=9 (9x2)/(2+8) = 1,80

Exemplo 03

K=1 e N=9 (9x1)/(1+8) = 1,00

GANHO COM PIPELINE DE INSTRUÇÃO

16

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