Las Ramas Condicionales presentes en los programas afectan significativamente el desempeño del sistema. Por lo tanto, debemos idear un mecanismo de predicción de bifurcación eficiente para obtener la dirección de destino de la bifurcación con alta precisión y, por lo tanto, minimizar las paradas asociadas con los riesgos de control.
En caso de que falle la predicción correcta de la dirección de destino, se producirá una penalización en términos de vaciar la canalización y devolver los procesadores al estado que tenían antes cuando estaba ejecutando la instrucción de bifurcación.
Tipos de técnicas de predicción de ramas:
la técnica de predicción de ramas puede ser de dos tipos:
- Técnica de predicción de rama estática
- Técnica de predicción de rama dinámica
Estos se explican a continuación a continuación.
1. Técnica de predicción de rama estática:
en el caso de la técnica de predicción de rama estática, el hardware subyacente asume que la rama no se toma siempre o que la rama se toma siempre.
Entendamos la predicción de ramas con un código de ejemplo:
//Code int a=0; while(a<5) { //branch instruction, condition either true or false if(a%2==0) {.....} a++; }
Salida:
supongamos que el hardware subyacente ha asumido que esa rama no se toma siempre. La salida predicha por el hardware subyacente y la salida real se muestra en la figura:
2. Técnica
de predicción de rama dinámica: en la técnica de predicción de rama dinámica, la predicción del hardware subyacente no es fija, sino que cambia dinámicamente. Esta técnica tiene una mayor precisión que la técnica estática.
Algunas técnicas de predicción de rama dinámica son:
- Técnica de predicción de bifurcación de 1 bit
- técnica de predicción de bifurcación de 2 bits
- Técnica de predicción de rama correlacionada
Estos se explican a continuación a continuación.
- Técnica de predicción de bifurcación de 1 bit:
en esta técnica, el hardware cambia su suposición justo después de una suposición falsa. Por ejemplo, si el hardware asume que se tomará la bifurcación pero en realidad no se toma la bifurcación, entonces en el siguiente paso el hardware asume que no se tomará la bifurcación y viceversa. viceversaLa máquina de predicción de bifurcaciones de 1 bit se muestra en la siguiente figura:
Explicación:
al principio, digamos que el hardware asume que se tomará la rama y, por lo tanto, en a = 0, se tomará la rama. En a=1, el hardware asume que se tomará la rama, pero no se toma la rama. Entonces, ahora en a=2, el hardware asume que no se tomará la rama, pero se toma la rama. En a=3, el hardware asume que se tomará la bifurcación, pero no se tomará la bifurcación. En a=4, el hardware asume que no se tomará la bifurcación, pero sí se tomará la bifurcación.La salida predicha por el hardware subyacente y la salida real se muestra en la figura:
- Predictor de bifurcación de 2 bits:
en esta técnica, el hardware subyacente no cambia su suposición justo después de una suposición incorrecta, sino que cambia su suposición después de dos suposiciones incorrectas consecutivas y viceversa.La máquina de predicción de bifurcaciones de 2 bits se muestra en la figura:
Explicación –
- Digamos que cuando a = 0 todo se restablece (00) y, por lo tanto, el hardware asume que no se debe tomar la rama y se toma la rama. Así que el estado actual es (01)
- Cuando a = 1, el hardware asume que no se toma la bifurcación y no se toma la bifurcación. Así que el estado actual es (00)
- Cuando a = 2, el hardware asume que no se toma la rama y se toma la rama. Entonces, el estado actual es (01)
- Cuando a = 3, el hardware asume que no se toma la bifurcación y no se toma la bifurcación. Entonces el estado actual es (10)
- Cuando a = 4, el hardware asume que no se toma la rama y se toma la rama. Por lo tanto, el estado actual es (00)
La salida predicha por el hardware subyacente y la salida real se muestra en la figura:
- Predicción de rama correlacionada:
no podemos obtener una precisión significativa del predictor de rama de 2 bits también debido a la interferencia con otras ramas. consideración el comportamiento reciente de otras ramas también.Fuente de información –
- Utiliza k bits menos significativos de la dirección de destino de la sucursal que se obtiene antes.
- También utiliza la tabla de historial local (LHH), que es una tabla de registros de desplazamiento donde el registro de desplazamiento se refiere al último resultado de m ramas que tienen los mismos k bits menos significativos.
- También utiliza la Tabla de predicción local para predecir el resultado según el estado en el que se encuentre.
Ejemplo:
ilustremos y entendamos esta técnica de predicción con el mismo ejemplo.Explicación paso a paso:
1. El k bit significativo mínimo (aquí k = 3) es 100, es decir, 4, por lo que apunta a la ubicación 4 en la tabla de historial local. En la ubicación 4, contiene 000, es decir, 0, por lo que apunta a la ubicación 0 en la tabla de predicción local. Contiene el estado 00, es decir, no se toma la rama, pero en realidad se toma la rama (0%2). Entonces ahora ambas tablas se actualizan.
El proceso completo se muestra en la figura:2. En la ubicación 4, ahora contiene 100 en la tabla de historial local, por lo que apunta a la ubicación 4 en la tabla de predicción local. Contiene el estado 00, es decir, rama no tomada, y en realidad no se toma rama. Entonces, en consecuencia, la tabla se actualiza.
El proceso completo se muestra en la figura:3. La ubicación 4 ahora contiene 010 en la tabla de historial local, por lo que apunta a la ubicación 2 en la tabla de predicción local. Contiene el estado 00, es decir, bifurcación no tomada, y en realidad la bifurcación está tomada. Entonces, en consecuencia, la tabla se actualiza.
El proceso completo se muestra en la figura:4. En la ubicación 4, ahora contiene 101 en la tabla de historial local, por lo que apunta a la ubicación 5 en la tabla de predicción local. Contiene el estado 00, es decir, bifurcación no tomada, y en realidad no se toma la bifurcación. Entonces, en consecuencia, la tabla se actualiza
. El proceso completo se muestra en la figura:5. En la ubicación 4 ahora contiene 010 en la tabla de historial local, por lo que apunta a la ubicación 2 en la tabla de predicción local. Contiene el estado 01, es decir, bifurcación no tomada, y en realidad la bifurcación está tomada. Entonces, en consecuencia, la tabla se actualiza
. El proceso completo se muestra en la figura:La salida predicha por el hardware subyacente y la salida real se muestra en la figura:
Entonces, si hay más de una rama y el proceso continúa así, las predicciones de rama correlacionada brindan la mayor precisión por encima de toda técnica.
Publicación traducida automáticamente
Artículo escrito por kumaravnish792 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA