Predictor de objetivos de ramificación

Parte de un procesador de computadora

En arquitectura de computadoras , un predictor de objetivo de bifurcación es la parte de un procesador que predice el objetivo, es decir, la dirección de la instrucción que se ejecuta a continuación, de una instrucción de bifurcación condicional o de bifurcación incondicional tomada antes de que la unidad de ejecución del procesador calcule el objetivo de la instrucción de bifurcación .

La predicción del objetivo de la rama no es lo mismo que la predicción de rama , que adivina si una rama condicional se tomará o no de manera binaria.

En diseños de procesadores más paralelos , a medida que aumenta la latencia de la caché de instrucciones y el ancho de búsqueda se hace más amplio, la extracción del objetivo de la bifurcación se convierte en un cuello de botella. La recurrencia es:

  • La caché de instrucciones recupera un bloque de instrucciones
  • Las instrucciones en bloque se escanean para identificar ramas.
  • Se identifica la primera rama prevista tomada
  • Se calcula el objetivo de esa rama.
  • La búsqueda de instrucciones se reinicia en el destino de la rama

En las máquinas en las que esta recurrencia lleva dos ciclos, la máquina pierde un ciclo completo de búsqueda después de cada rama prevista tomada. Como las ramas previstas ocurren cada 10 instrucciones aproximadamente, esto puede forzar una caída sustancial en el ancho de banda de búsqueda. Algunas máquinas con latencias de caché de instrucciones más largas tendrían una pérdida aún mayor. Para mejorar la pérdida, algunas máquinas implementan la predicción del objetivo de la rama: dada la dirección de una rama, predicen el objetivo de esa rama. Un refinamiento de la idea predice el inicio de una ejecución secuencial de instrucciones dada la dirección del inicio de la ejecución secuencial de instrucciones anterior.

Este predictor reduce la recurrencia anterior a:

  • Hash de la dirección de la primera instrucción en una ejecución
  • Obtener la predicción de las direcciones de los destinos de las ramas en esa ejecución de instrucciones
  • Seleccione la dirección correspondiente a la sucursal prevista para su toma

Como la RAM predictora puede ser del 5 al 10 % del tamaño de la caché de instrucciones, la búsqueda se realiza mucho más rápido que la búsqueda de la caché de instrucciones, por lo que esta recurrencia es mucho más rápida. Si no fuera lo suficientemente rápida, se podría paralelizar prediciendo las direcciones de destino de las ramas de destino.

Véase también

Lectura adicional

  • Driesen; Hölzle (1992), Predicción precisa de ramas indirectas
  • Ertl; Gregg (2001), El comportamiento de los intérpretes de máquinas virtuales eficientes en arquitecturas modernas
  • "Buffers de destino de rama".(EE461)
  • Fog, Agner . "La microarquitectura de las CPU de Intel, AMD y VIA" (PDF) . Consultado el 9 de agosto de 2017 .


Retrieved from "https://en.wikipedia.org/w/index.php?title=Branch_target_predictor&oldid=1251412395"