Instruction fetch hardware fetches instructions from the I-cache and simultaneously generates traces of 8 to 32 instructions including predicted conditional branches.
Traces are built as the program executes and they are stored in a trace cache.
A trace fetch unit reads traces from the trace cache and parcels them out to the parallel PEs.
Next trace prediction speculates on the next traces to be executed,
- Next trace prediction predicts multiple branches per cycle.
- Data prediction speculates on the trace's input data values.Constant value prediction predicts 80% correct for gcc.
A trace cache miss causes a trace to be built through conventional instruction fetching with branch prediction.
Trace processor is similar to multiscalar except for its use of hardware-generated dynamic traces rather than compiler-generated static tasks.