Pipelining
Predicción dinámica de brincos
Introducción
 En base a la historia de la instrucción, predecir si
habrá o no brinco.
 Se necesita una tabla de historia de brincos, llamada
también buffer de predicción de brincos.
 La tabla es una memoria pequeña indexada por la
parte baja de la dirección de la instrucción de brinco.
 La tabla contiene uno o mas bits indicando si el
brinco fue recientemente tomado o no.
 La predicción se hace en la etapa IF del brinco.
Universidad de Sonora
Arquitectura de Computadoras
2
Tabla de 1 bit
 Un bit que indica si la última vez el brinco fue
tomado o no.
 Desventaja: mala precisión aun con brincos que son
casi siempre tomados.
 Ejemplo: suponer la segunda vez que se ejecuta un
brinco de un ciclo. El brinco se toma 9 veces
seguidas y luego no se toma.
 El sistema de 1 bit se equivoca dos veces.
Universidad de Sonora
Arquitectura de Computadoras
3
Tabla de 1 bit
 Se equivoca en la primera iteración. El bit se quedó
en 0 al final de la primera ejecución y predice no
tomado, pero el brinco se toma.
 Se equivoca en la última iteración. El bit está en 1
porque el brinco se ha tomado 9 veces consecutivas
y predice tomado, pero el brinco no se toma.
 Precisión: 80% en un brinco que se toma el 90%.
Universidad de Sonora
Arquitectura de Computadoras
4
Tabla de 2 bits
 La predicción debe estar mal dos veces antes de
cambiarla.
 Se modela usando una máquina de estados finitos.
Universidad de Sonora
Arquitectura de Computadoras
5
Tabla de 2 bits
Universidad de Sonora
Arquitectura de Computadoras
6
Tabla de 2 bits
 Fácil de implementar con un contador de 2 bits.
 Si la predicción es acertada el contador se
incrementa.
 Si la predicción no es acertada el contador se
decrementa.
 Estados 0 y 1 predicen brinco no tomado.
 Estados 2 y 3 predicen brinco tomado.
 En el ejemplo anterior, este método tiene precisión
del 90%, solo se equivoca en la última iteración.
Universidad de Sonora
Arquitectura de Computadoras
7
Otras mejoras
 Buffer de destinos de brincos. Memoria cache para
guardar el destino de los últimos brincos.
 Predictor de correlación. Combina comportamiento
local de un brinco en particular con información
global acerca del comportamiento de algunos
brincos recientemente ejecutados.
 Predictor de brincos estilo torneo. Tiene varias
predicciones para un mismo brinco y un mecanismo
para seleccionar que predictor usar para un brinco
en particular.
Universidad de Sonora
Arquitectura de Computadoras
8
Otras mejoras
 Un predictor estilo torneo típico tiene dos
predicciones para cada brinco, uno basado en
información global de brincos y otro en información
local. El selector escoge que predictor usar para un
brinco en particular. El selector se puede
implementar parecido a las tablas de 1 y 2 bits,
favoreciendo al predictor que haya sido mas preciso.
Universidad de Sonora
Arquitectura de Computadoras
9
Descargar

ppt - Universidad de Sonora