Previsão de Desvio
A previsão de desvio permite que um processador pipelineado adivinhe o resultado e o alvo de um desvio antes que ele seja resolvido, para que possa continuar buscando e executando instruções ao longo do caminho provável em vez de paralisar.
Definition
A previsão de desvio é uma técnica microarquitetural que prevê se um desvio condicional será tomado e para onde irá, permitindo que o processador busque e execute instruções especulativamente ao longo do caminho previsto e descarte esse trabalho se a previsão se mostrar errada.
Scope
Este tópico abrange técnicas para prever o fluxo de controle: previsão estática, preditores dinâmicos baseados no histórico de desvios (contadores de um e dois bits, preditores correlacionados e de torneio), buffers de alvo de desvio e o custo de previsões incorretas. Ele trata de como a previsão permite pipelines profundos e especulação. Exclui o mecanismo mais amplo de execução especulativa e recuperação (execução fora de ordem) e o próprio risco de controle básico (pipeline e riscos).
Core questions
- Por que os desvios paralisam pipelines profundos e como a previsão ajuda?
- Como os preditores dinâmicos usam o histórico de desvios para melhorar a precisão?
- O que é um buffer de alvo de desvio e o que ele oferece?
- Qual é a penalidade de uma previsão incorreta e como ela é recuperada?
Key concepts
- previsão estática vs dinâmica
- contadores saturados de um e dois bits
- histórico e correlação de desvios
- preditores de torneio
- buffer de alvo de desvio
- penalidade de previsão incorreta
- busca especulativa
Key theories
- Previsão dinâmica baseada em histórico
- Os resultados dos desvios são altamente correlacionados com seu próprio comportamento passado e o de outros desvios; preditores que registram o histórico em contadores saturados e combinam histórico local e global (preditores correlacionados e de torneio) alcançam alta precisão.
Mechanisms
Um preditor consulta o histórico para adivinhar a direção de um desvio e um buffer de alvo de desvio para adivinhar seu alvo, permitindo que o front-end continue buscando especulativamente. Contadores saturados de dois bits rastreiam resultados recentes por desvio; preditores correlacionados adicionam histórico global; preditores de torneio escolhem dinamicamente entre esquemas locais e globais. Em caso de previsão incorreta, as instruções especulativas são descartadas e a busca é reiniciada no endereço correto, incorrendo em uma penalidade proporcional à profundidade do pipeline.
Clinical relevance
A previsão precisa de desvios é essencial para pipelines modernos profundos e amplos: com previsões incorretas custando muitos ciclos, são necessários preditores que excedam 95% de precisão para sustentar alto desempenho. As estruturas de previsão de desvios também se tornaram relevantes para a segurança, pois seu comportamento especulativo sustenta ataques de execução transiente, como o Spectre.
History
Preditores estáticos simples e dinâmicos de um bit deram lugar a contadores saturados de dois bits, depois a preditores correlacionados e adaptativos de dois níveis no início dos anos 1990, e a preditores de torneio e de estilo neural em núcleos de alto desempenho. À medida que os pipelines se aprofundavam, a sofisticação dos preditores crescia correspondentemente para manter as penalidades de previsão incorreta toleráveis.
Key figures
- James E. Smith
- Yale Patt
- Tse-Yu Yeh
- John L. Hennessy
Related topics
Seminal works
- hennessy2019
- patterson2020
Frequently asked questions
- O que acontece quando um desvio é previsto incorretamente?
- O processador buscou e executou parcialmente instruções especulativamente no caminho errado. Ao detectar a previsão incorreta, ele descarta (anula) esse trabalho especulativo e reinicia a busca a partir do alvo correto, pagando uma penalidade aproximadamente proporcional à profundidade do pipeline.
- Qual a precisão dos preditores de desvio modernos?
- Preditores dinâmicos modernos geralmente excedem 95% de precisão em cargas de trabalho comuns, combinando histórico de desvios local e global. Essa alta precisão é o que torna os pipelines profundos e amplos valiosos, já que cada previsão incorreta desperdiça muitos ciclos de trabalho especulativo.