Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouPedrohenrique Pavao Alterado mais de 10 anos atrás
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.
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
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
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
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
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
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
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
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
Problemas com Pipelines Conflitos de Controle
Endereç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 STORE A,Z
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
Problemas com Pipelines Conflitos de Controle
Preenchimento do Delay Slot com reordenamento das instruções
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
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
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
Problemas com Pipelines Conflitos de Controle - Predição de Desvios
Dois bits para decisão 11 10 01 00
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
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
Problemas com Pipelines Conflitos de Controle - Predição de Desvios
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
21
Problemas com Pipelines Conflitos de Controle - Predição de Desvios
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
22
Problemas com Pipelines Conflitos de Controle - Predição de Desvios
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)
23
Problemas com Pipelines Conflitos de Controle - Predição de Desvios
Preditor de 1 bit
24
Problemas com Pipelines Conflitos de Controle - Predição de Desvios
Previsor (1,1)
25
Problemas com Pipelines Conflitos de Controle - Predição de Desvios
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
26
Problemas com Pipelines Conflitos de Controle - Predição de Desvios
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
27
Problemas com Pipelines Conflitos de Controle - Predição de Desvios
Buffer de Destino de Desvio
28
BTB timing
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.