1 ssc114 arquitetura de computadores pipeline - predição de desvios aula 5 25/08/10 (turmas 1 e 2)...

28
1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

Upload: internet

Post on 17-Apr-2015

117 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

1

SSC114 Arquitetura de Computadores

Pipeline - Predição de desviosAula 5

25/08/10 (Turmas 1 e 2)

Profa. Sarita

Page 2: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

2

Conflitos ou Dependências em Pipelines (Hazards) Hazards: impedem que a próxima instrução do fluxo de

instruções seja executada durante seu ciclo de clock designado

Conflitos Estruturais Pode haver acessos simultâneos à memória feitos por 2 ou mais

estágios. Dependências de Dados

As instruções dependem de resultados de instruções anteriores, ainda não completadas.

Dependências de Controle A próxima instrução não está no endereço subseqüente ao da

instrução anterior.

Page 3: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

3

Problemas com Pipelines Conflitos Estruturais Ocorre quando duas instruções tentam

acessar o mesmo dispositivo ao mesmo tempo

Soluções: Duplicar unidades funcionais Aumentar o número de portas de acesso à

memória principal Separar cache de dados e de instruções (L1)

Page 4: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

4

Problemas com Pipelines Conflitos por dados Dependências verdadeiras ou diretas

RAW (Read After Write) Possíveis soluções:

Colocação de instruções nop ou escalonamento adequado pelo processador

Adiantamento (técnica forwarding ou bypassing)

Page 5: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

5

Problemas com Pipelines Conflitos por dados Dependências falsas

Ocorrem quando é possível iniciar ou terminar a execução das instruções fora de ordem, ou seja, não é possível determinar o valor dos registradores em cada instante com base apenas na seqüência de instruções

Antidependência

WAR (Write After Read) Dependência de saída

WAW (Write After Write) Solução usual:

Renomeamento de registradores

Page 6: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

6

Problemas com PipelinesConflitos de Controle Efeito dos desvios condicionais

Se o desvio ocorre, o pipeline precisa ser esvaziado

Não se sabe se o desvio ocorrerá ou não até o momento de sua execução

Page 7: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

7

Problemas com PipelinesConflitos de Controle Maneiras de se tratar as conseqüências de uma

parada no pipeline por causa dos desvios: Predição Estática de Desvios

O compilador faz uma predição se o desvio vai ser tomado ou não Geração de “bolhas” quando a predição é errada, baixa taxa de

acertos Não permite adaptações com relação ao comportamento do

programa Predição Dinâmica de Desvios

Existem mecanismos em “hardware” que fazem a predição baseada no comportamento daquele desvio no passado

Alta taxa de acertos

Page 8: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

8

Problemas com PipelinesConflitos de Controle Predição estática

Congelar o pipeline até que o resultado do desvio seja conhecido Insere “bolhas” no pipeline

Solução ruim quando o pipeline é muito longo

Page 9: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

9

Problemas com PipelinesConflitos de Controle - Predição de Desvios Predição Estática (cont.)

Assumir que todos os desvios não são executados (predicted-untaken)

Assumir que todos os desvio são tomados (predicted-taken)

Assumir que todos os desvios com determinado operation code serão tomados

Os desvios para trás são assumidos como tomados (branch taken) e os desvios para frente são assumidos como não tomados (branch not taken) – Backward-taken, forward not-taken (BTFNT)

Page 10: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

10

Problemas com PipelinesConflitos de Controle Predição Estática (cont.)

Utilização de Delayed Branch (desvio atrasado) para instruções de desvio Instrução após o desvio é sempre executada A próxima instrução é chamada de delay slot (posição

de atraso) Reordenamento das instruções (desvio atrasado

otimizado)

Page 11: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

11

Problemas com PipelinesConflitos de ControleEndereço Normal Atrasado Otimizado

100 LOAD X,A LOAD X,A LOAD X,A

101 ADD I,A ADD I,A JUMP 105

102 JUMP 105 JUMP 106 ADD I,A

103 ADD A,B NOOP ADD A,B

104 SUB C,B ADD A,B SUB C,B

105 STORE A,Z SUB C,B STORE A,Z

106 STORE A,Z

Page 12: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

12

Problemas com PipelinesConflitos de Controle Preenchimento do Delay Slot

Para facilitar o trabalho do compilador no preenchimento do delay slot muitas arquiteturas permitem o uso do delay slot com a opção de anulação automática dessa instrução se o desvio condicional não for tomado

Desse modo, uma instrução do endereço alvo pode ser movida para o delay slot, o que é muito útil no caso de loops. Nesse caso, está implícita uma predição de desvio estática que diz que o desvio será sempre tomado

Page 13: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

13

Problemas com PipelinesConflitos de Controle Preenchimento do Delay Slot com reordenamento

das instruções

Page 14: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

14

Problemas com PipelinesConflitos de Controle - Predição de Desvios Predição dinâmica

Preditor de 1 bit Mantém uma pequena memória indexada pela parte

menos significativa do endereço da instrução de desvio Buffer de predição de desvios (Branch-Prediction Buffer)

ou Tabela de histórico de desvios Contém 1 bit (preditor de 1 bit) que diz se o desvio foi

tomado recentemente ou não e que indica se o próximo desvio deve ou não ser considerado

Em caso de erros esse bit é alterado Não mantém histórico

Page 15: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

15

Problemas com PipelinesConflitos de Controle - Predição de Desvios Predição Dinâmica

Preditor de 1 bit Um preditor de 1-bit prediz corretamente um desvio ao final de uma

iteração de um loop, enquanto o loop não termina. Em loops aninhados, um preditor de 1-bit irá causar duas predições

incorretas para o loop interno: Uma vez no final do loop, quando a iteração termina o loop ao invés de ir

para o começo do loop, e Uma vez quando a primeira iteração do loop for reiniciada, quando ele

prediz o término do loop ao invés do começo do loop. Este erro duplo em loops aninhados é evitado por um esquema de

predição de dois bits. Preditor de 2-bits: Uma predição deve errar duas vezes antes de ser

alterada quando um preditor de 2-bits é utilizado.

Page 16: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

16

Problemas com PipelinesConflitos de Controle - Predição de Desvios Predição dinâmica

Preditor de 2 bits O preditor de dois bits (bimodal) é essencialmente um

contador de dois bits com valores entre 0 e 3 Quando o contador é maior ou igual ao valor 2, o desvio

é predito como tomado; em caso contrário é predito como não tomado

O contador é incrementado em um desvio tomado e decrementado em um desvio não tomado

Page 17: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

17

Problemas com PipelinesConflitos de Controle - Predição de Desvios Dois bits para decisão

0001

11 10

Page 18: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

18

Problemas com PipelinesConflitos de Controle - Predição de Desvios N-bits para decisão

Incrementa a cada acerto e decrementa em caso de erro

Se maior que valor estipulado, considera o desvio N >> 2 não apresenta melhoras significativas

Page 19: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

19

Problemas com PipelinesConflitos de Controle - Predição de Desvios Localização do Buffer de Predição

Cache Especial A cache é acessada durante a Busca de Instrução e os

bits de predição usados durante a Decodificação da instrução (se a instrução for uma decisão)

Cache de Instrução Os bits de decisão são armazenados junto com as

instruções que estão na cache

Page 20: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

20

Precisão da Predição Utilizando uma cache de 4Kbytes Dois bits de decisão Executando o SPEC89

Obtém-se de 1 a 18% de erro Predição estática – 30% de erro

Problemas com PipelinesConflitos de Controle - Predição de Desvios

Page 21: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

21

Precisão da Predição Como melhorar:

Aumento do Cache – limitado! Aumento do número de bits – não melhora muito! Verificar correlação com desvios vizinhos

Problemas com PipelinesConflitos de Controle - Predição de Desvios

Page 22: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

22

Previsores de Desvio com Relacionamento Considera a decisão do desvio anterior Previsor (1,1)

Utiliza o comportamento do último desvio para escolher entre dois previsores de desvios de 1 bit: Desvio Anterior - Desviou ou não?

Se desviou, considera o 1o bit senão considera o 2o bit T – Taken (desviou) NT – Not Taken (não desviou)

Problemas com PipelinesConflitos de Controle - Predição de Desvios

Page 23: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

23

Problemas com PipelinesConflitos de Controle - Predição de Desvios Preditor de 1 bit

Page 24: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

24

Problemas com PipelinesConflitos de Controle - Predição de Desvios Previsor (1,1)

Page 25: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

25

Previsores de Desvio com Relacionamento Previsor (n,m)

Considera os n desvios anteriores Para cada combinação tem-se m bits de predição Número de bits:

2n * m *

número de entradas

de previsões selecionadas

pelo endereço de destino

Problemas com PipelinesConflitos de Controle - Predição de Desvios

Page 26: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

26

Buffer de Destino de Desvio Branch Target Buffer (BTB) A instrução de desvio só é identificada quando for

decodificada Nesse ponto já perdeu-se um ciclo Utiliza-se uma cache de instruções de desvios Durante busca de instrução já se sabe se é

desvio

Problemas com PipelinesConflitos de Controle - Predição de Desvios

Page 27: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

27

Buffer de Destino de Desvio

Problemas com PipelinesConflitos de Controle - Predição de Desvios

Page 28: 1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita

28

BTB timing