En arquitectura de computadoras , un predictor de destino de bifurcación es la parte de un procesador que predice el destino, 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 la unidad de ejecución del procesador calcule el destino de la instrucción de bifurcación .
La predicción del destino de la bifurcación no es lo mismo que la predicción de la bifurcación , que adivina si una bifurcación condicional se tomará o no de forma binaria.
En diseños de procesadores más paralelos , a medida que aumenta la latencia de la caché de instrucciones y se amplía el ancho de búsqueda, la extracción del destino de la bifurcación se convierte en un cuello de botella. La recurrencia es:
- La caché de instrucciones obtiene el bloque de instrucciones.
- Las instrucciones en el bloque se analizan para identificar bifurcaciones.
- Se identifica la primera rama prevista que se tomará.
- El objetivo de esa rama se calcula
- La búsqueda de instrucciones se reinicia en el destino de la bifurcación.
En máquinas donde esta recurrencia toma dos ciclos, la máquina pierde un ciclo completo de búsqueda después de cada bifurcación predicha. Dado que las bifurcaciones predichas ocurren cada 10 instrucciones aproximadamente, esto puede provocar 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 mitigar la pérdida, algunas máquinas implementan la predicción del destino de la bifurcación: dada la dirección de una bifurcación, predicen su destino. Un perfeccionamiento de la idea predice el inicio de una secuencia de instrucciones dada la dirección del inicio de la secuencia de instrucciones anterior.
Este predictor reduce la recurrencia anterior a:
- Calcula el hash de la dirección de la primera instrucción en una ejecución.
- Obtenga la predicción de las direcciones de los destinos de las bifurcaciones en esa secuencia de instrucciones.
- Seleccione la dirección correspondiente a la sucursal prevista.
El historial de destinos de bifurcación se almacena en una unidad de búfer de destino de bifurcación (BTB) dedicada o comparte su almacenamiento con la caché de instrucciones. El tamaño de la BTB puede variar considerablemente, pero suele 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 en la caché de instrucciones, por lo que esta recursión es mucho más rápida. Si no fuera lo suficientemente rápido, podría paralelizarse prediciendo las direcciones de destino de las bifurcaciones.
Véase también
Lecturas adicionales
- 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
Enlaces externos
- "Búferes 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 .
- Procesamiento de instrucciones
- esbozos de informática