Predicción de saltos

11
Predicción de saltos

description

Predicción de saltos. 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. - PowerPoint PPT Presentation

Transcript of Predicción de saltos

Page 1: Predicción de saltos

Predicción de saltos

Page 2: Predicción de saltos

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.

Page 3: Predicción de saltos

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.

Page 4: Predicción de saltos

Predict Not Taken

Page 5: Predicción de saltos

Predict TakenUn 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.

Page 6: Predicción de saltos

Delayed BranchEn un salto demorado, el ciclo de ejecución

con un salto de longitud n

Branch instr sequential successor 1 sequential successor 2 . . . . . 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.

Page 7: Predicción de saltos

Delayed Branch

Page 8: Predicción de saltos

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

Page 9: Predicción de saltos

Delayed Branch

Page 10: Predicción de saltos

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.

Page 11: Predicción de saltos

En Intel IIsymmetric design:This is how the branch prediction should work. The state is incremented when jumping (+arrows) and decremented when not jumping (-arrows).