Predictor de destino de rama - Enciclopedia
En la 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 ejecutará a continuación, de una instrucción de bifurcación condicional o incondicional tomada antes de que el objetivo de la instrucción de bifurcación sea calculado por la unidad de ejecución del procesador. La predicción de objetivo de bifurcación no es lo mismo que la predicción de bifurcación, que supone si una bifurcación condicional será tomada o no tomada de manera binaria.
En diseños de procesadores más paralelos, a medida que la latencia de la caché de instrucciones se alarga y el ancho de recuperación se ensancha, la extracción de objetivo de bifurcación se convierte en un cuello de botella. La recurrencia es:
La caché de instrucciones recupera un bloque de instrucciones.
Las instrucciones en el bloque se escanean para identificar bifurcaciones.
Se identifica la primera bifurcación predicha como tomada.
Se calcula el objetivo de esa bifurcación.
La recuperación de instrucciones se reinicia en el objetivo de la bifurcación.
En las máquinas donde esta recurrencia toma dos ciclos, la máquina pierde un ciclo completo de recuperación después de cada bifurcación predicha como tomada. Como las bifurcaciones predichas ocurren cada 10 instrucciones o más o menos, esto puede forzar una disminución sustancial en el ancho de recuperación. Algunas máquinas con latencias de caché de instrucciones más largas podrían tener pérdidas aún mayores. Para aliviar la pérdida, algunas máquinas implementan predicción de objetivo de bifurcación: dada la dirección de una bifurcación, predicen el objetivo de esa bifurcación. Una refinamiento de la idea predice el inicio de una secuencia de instrucciones dada la dirección del inicio de la última secuencia de instrucciones consecutivas.
Este predictor reduce la recurrencia anterior a:
Hash la dirección de la primera instrucción en una secuencia.
Recupera la predicción para las direcciones de los objetivos de las bifurcaciones en esa secuencia de instrucciones.
Selecciona la dirección correspondiente a la bifurcación predicha como tomada.
Como la RAM del predictor puede ser del 5 al 10% del tamaño de la caché de instrucciones, la recuperación ocurre mucho más rápido que la recuperación de la caché de instrucciones, y por lo tanto, esta recurrencia es mucho más rápida. Si no fuera lo suficientemente rápida, podría ser paralelizada, prediciendo direcciones de objetivos de bifurcaciones.
Véase también
Control de bifurcación indirecta (IBC)
Barrera de predicción de bifurcación indirecta (IBPB)
Espectación restringida de bifurcación indirecta (IBRS)
Predictor de bifurcación indirecta de un solo hilo (STIBP)
Leer más
Driesen; Hölzle (1992), Predicción de bifurcación indirecta precisa
Ertl; Gregg (2001), El comportamiento de los intérpretes de máquinas virtuales eficientes en arquitecturas modernas
Enlaces externos
"Buffer de objetivos de bifurcación". (EE461)
Fog, Agner. "La microarquitectura de CPUs de Intel, AMD y VIA" (PDF). Recuperado el 9 de agosto de 2017.