ScholarGate
Asistente

Predicción de Ramas

La predicción de ramas permite que un procesador segmentado anticipe el resultado y el destino de una rama antes de que se resuelva, de modo que pueda seguir buscando y ejecutando instrucciones a lo largo de la ruta probable en lugar de detenerse.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

La predicción de ramas es una técnica microarquitectónica que pronostica si una rama condicional se tomará y hacia dónde irá, permitiendo que el procesador busque y ejecute instrucciones de forma especulativa a lo largo de la ruta predicha y descarte ese trabajo si la predicción resulta incorrecta.

Scope

Este tema abarca las técnicas para predecir el flujo de control: predicción estática, predictores dinámicos basados en el historial de ramas (contadores de uno y dos bits, predictores correlacionados y de torneo), búferes de destino de ramas y el costo de las predicciones erróneas. Trata cómo la predicción permite segmentaciones profundas y la especulación. Excluye la maquinaria y recuperación más amplias de ejecución especulativa (ejecución fuera de orden) y el propio riesgo de control básico (segmentación y riesgos).

Core questions

  • ¿Por qué las ramas detienen las segmentaciones profundas y cómo ayuda la predicción?
  • ¿Cómo utilizan los predictores dinámicos el historial de ramas para mejorar la precisión?
  • ¿Qué es un búfer de destino de rama y qué proporciona?
  • ¿Cuál es la penalización de una predicción errónea y cómo se recupera?

Key concepts

  • predicción estática vs. dinámica
  • contadores de saturación de uno y dos bits
  • historial y correlación de ramas
  • predictores de torneo
  • búfer de destino de rama
  • penalización por predicción errónea
  • búsqueda especulativa

Key theories

Predicción dinámica basada en el historial
Los resultados de las ramas están altamente correlacionados con su propio comportamiento pasado y el de otras ramas; los predictores que registran el historial en contadores de saturación y combinan el historial local y global (predictores correlacionados y de torneo) logran una precisión muy alta.

Mechanisms

Un predictor consulta el historial para adivinar la dirección de una rama y un búfer de destino de rama para adivinar su destino, permitiendo que el front-end siga buscando de forma especulativa. Los contadores de saturación de dos bits rastrean los resultados recientes por rama; los predictores correlacionados añaden historial global; los predictores de torneo eligen dinámicamente entre esquemas locales y globales. Ante una predicción errónea, las instrucciones especulativas se anulan y la búsqueda se reinicia en la dirección correcta, incurriendo en una penalización proporcional a la profundidad de la segmentación.

Clinical relevance

La predicción precisa de ramas es esencial para las segmentaciones profundas y amplias modernas: dado que las predicciones erróneas cuestan muchos ciclos, se necesitan predictores que superen el 95 por ciento de precisión para mantener un alto rendimiento. Las estructuras de predicción de ramas también se han vuelto relevantes para la seguridad, ya que su comportamiento especulativo subyace a los ataques de ejecución transitoria como Spectre.

History

Los predictores estáticos simples y dinámicos de un bit dieron paso a los contadores de saturación de dos bits, luego a los predictores correlacionados y adaptativos de dos niveles a principios de la década de 1990, y a los predictores de torneo y de estilo neuronal en los núcleos de alto rendimiento. A medida que las segmentaciones se hicieron más profundas, la sofisticación del predictor creció correspondientemente para mantener tolerables las penalizaciones por predicción errónea.

Key figures

  • James E. Smith
  • Yale Patt
  • Tse-Yu Yeh
  • John L. Hennessy

Related topics

Seminal works

  • hennessy2019
  • patterson2020

Frequently asked questions

¿Qué sucede cuando una rama es predicha erróneamente?
El procesador ha buscado y ejecutado parcialmente instrucciones de forma especulativa en la ruta incorrecta. Al detectar la predicción errónea, descarta (anula) ese trabajo especulativo y reinicia la búsqueda desde el destino correcto, pagando una penalización aproximadamente proporcional a la profundidad de la segmentación.
¿Qué tan precisos son los predictores de ramas modernos?
Los predictores dinámicos modernos suelen superar el 95 por ciento de precisión en cargas de trabajo comunes al combinar el historial de ramas local y global. Esta alta precisión es lo que hace que las segmentaciones profundas y amplias valgan la pena, ya que cada predicción errónea desperdicia muchos ciclos de trabajo especulativo.

Methods for this concept

Related concepts