Un predictor dinámico trabaja en tiempo de ejecución, intentando aprender el comportamiento del programa para predecir con la mínima tasa de fallos si un salto será o no tomado.Para almacenar todas las posibles instrucciones del PC, se necesitaríanAsí, las tablas de predicción guardan unos valores que se utilizan para predecir el comportamiento del siguiente salto.Guarda un bit de historia que dice si el salto fue tomado o no la última vez.Usa un contador de 2 bits para cada salto, con lo que puede contar hasta cuatro valores en binario (00, 01, 10 y 11, en decimal: 0, 1, 2 y 3), si el salto anteriormente fue tomado, incrementa el contador, en caso contrario lo decrementa, y predecirá que el salto es tomado si se encuentra en los valores 10 o 11, y predecirá no tomado en caso de que sea 00 o 01.Con lo que consigue mayor número de aciertos que el anterior, además de un reajuste más real del comportamiento del salto, no variando la predicción por un salto puntual.Tendríamos ahora varias tablas funcionando como predictores de historia independientes entre sí.En caso de que la dirección se encuentre en el BTB pero la predicción (salto tomado o no tomado) falle, se modificará la entrada correspondiente del BTB para predecir los futuros saltos correctamente.