Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Predicción de saltos
2
Stall pipeline Es el esquema mas simple para manejar los saltos. Hacer Freeze o flush del pipeline, detener o borrar cualquier instruccion despues del branch hasta que el destino del branch sea determinado. Ventaja: simple en Hardware y Software.
3
Predict Not Taken Una mejor performance, y solo un poco mas compleja. La idea es predecir siempre el salto como NO TOMADO. El hardware continua cargando las intrucciones como si el branch no fuera tomado. Se debe tener cuidad de no cambiar la maquina de estados (UC – PC) hasta que el salto sea determinado feacientemente La complejidad se basa en: se debe poder implementar un “vuelta atras” por si el salto se toma.
4
Predict Not Taken
5
Predict Taken Un esquema alternativo es predecir el branch como siempre tomado. Tan pronto como el branch es decodificado se calcula la dirección de la nueva instrucción y continuando, desde ese nuevo punto.
6
Delayed Branch En un salto demorado, el ciclo de ejecución con un salto de longitud n Branch instr sequential successor 1 sequential successor sequential successor n Los sucesores secuenciales estan en los branch- delay slots. Estas instrucciones son ejecutadas sin importar si se toma o no el salto.
7
Delayed Branch
8
Delayed Branch (compilador)
EL trabajo del compilador es hacer que la sucesión de instrucciones sea valida y útil. Existen 3 esquemas para predecir: From before branch From target From fall through
9
Delayed Branch
10
En Intel asymmetric design in the Pentium:
The state follows the +arrows when the branch instruction jumps, and the -arrows when not jumping. The branch instruction is predicted to jump next time if in state 2 or 3, and to not jump when in state 0 or 1.
11
En Intel II symmetric design:
This is how the branch prediction should work. The state is incremented when jumping (+arrows) and decremented when not jumping (-arrows).
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.