Eager (multipath) execution
Execution proceeds down both paths of a branch, and no prediction is made.
When a branch resolves, all operations on the non-taken path are discarded.
Oracle execution: eager execution with unlimited resources
- gives the same theoretical maximum performance as a perfect branch prediction
With limited resources, the eager execution strategy must be employed carefully.
Mechanism is required that decides when to employ prediction and when eager execution: e.g. a confidence estimator
Rarely implemented (IBM mainframes) but some research projects:
- Dansoft processor, Polypath architecture, selective dual path execution, simultaneous speculation scheduling, disjoint eager execution