next > ©2001 Harald Bögeholz

Global vs. local history

The above pattern detection scheme can be applied in two ways:

Implementing local history

To keep local history for different branches, we need a two-stage lookup: For some number of address bits a, keep a table of 2a shift registers with b bits each. Each of these indexes a separate table of 2b n-bit counters, bringing the total number of bits needed to 2a × b  +  2a+b × n.

This two-stage scheme and variations of it have been implemented in many designs, but not in MMIX. [Patt, Yeh]