Supporting Speculative Execution
We will support speculative execution via multiple Contexts.
A context is a copy of the information needed for a particular execution state. We want to minimize the amount of information need for each context in order to reduce overhead.
1. A ‘recovery’ PC value in case of a mis-predicted branch.
2. A copy of the ROBmap within the DRR.
We could keep multiple copies of the shelves and ROB, but this would take a lot of resources. It turns out that we do not need to keep copies of the shelves and ROB, more on this later.