A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "1 SSC114 Arquitetura de Computadores Pipeline - Predição de desvios Aula 5 25/08/10 (Turmas 1 e 2) Profa. Sarita."— Transcrição da apresentação:

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

2 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.

3 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)

4 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)

5 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

6 6 Problemas com Pipelines Conflitos 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

7 7 Problemas com Pipelines Conflitos 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

8 8 Problemas com Pipelines Conflitos 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

9 9 Problemas com Pipelines Conflitos 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)

10 10 Problemas com Pipelines Conflitos 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)

11 11 Problemas com Pipelines Conflitos de Controle EndereçoNormalAtrasadoOtimizado 100LOAD X,ALOAD X,ALOAD X,A 101ADD I,AADD I,AJUMP JUMP 105JUMP 106ADD I,A 103ADD A,BNOOPADD A,B 104SUB C,BADD A,BSUB C,B 105STORE A,ZSUB C,BSTORE A,Z 106STORE A,Z

12 12 Problemas com Pipelines Conflitos 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

13 13 Problemas com Pipelines Conflitos de Controle Preenchimento do Delay Slot com reordenamento das instruções

14 14 Problemas com Pipelines Conflitos 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

15 15 Problemas com Pipelines Conflitos 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.

16 16 Problemas com Pipelines Conflitos 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

17 17 Problemas com Pipelines Conflitos de Controle - Predição de Desvios Dois bits para decisão

18 18 Problemas com Pipelines Conflitos 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

19 19 Problemas com Pipelines Conflitos 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

20 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 Pipelines Conflitos de Controle - Predição de Desvios

21 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 Pipelines Conflitos de Controle - Predição de Desvios

22 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 Pipelines Conflitos de Controle - Predição de Desvios

23 23 Problemas com Pipelines Conflitos de Controle - Predição de Desvios Preditor de 1 bit

24 24 Problemas com Pipelines Conflitos de Controle - Predição de Desvios Previsor (1,1)

25 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: 2 n * m * número de entradas de previsões selecionadas pelo endereço de destino Problemas com Pipelines Conflitos de Controle - Predição de Desvios

26 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 Pipelines Conflitos de Controle - Predição de Desvios

27 27 Buffer de Destino de Desvio Problemas com Pipelines Conflitos de Controle - Predição de Desvios

28 28 BTB timing


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

Apresentações semelhantes


Anúncios Google