Correlated or 2-level branch prediction
Outcomes of consecutive branches are not independent
Classical example
loop
….
if ( x = = 2) /* branch b1 */
x = 0;
if ( y = = 2) /* branch b2 */
y = 0;
if ( x != y) /* branch b3 */
do this
else do that
Previous slide
Next slide
Back to first slide
View graphic version