|
|
|
|
|
|
|
Figure 7.42
Dataflow graph. |
|
|
|
|
|
|
|
|
Figure 7.43
Control flow graph with renaming of R3 and R4. |
|
|
|
|
|
|
|
|
7.6.7 Dealing with Out-of-Order Execution |
|
|
|
|
|
|
|
|
Out-of-order execution, especially when coupled with out-of-order instruction issue and multiple instruction issue, leads to an apparently chaotic machine state, even when the code is correctly executing. If an interrupt arises or some sort of an exception is taken (perhaps even a misguessed branch outcome), there can be a general ambiguity as to the exact source of the exception or how the machine state should be saved and restored for further instruction processing. There are two basic approaches to solving this problem: |
|
|
|
|
|
|
|
|
1. Live with it. This applies only to interrupts and involves the use of a device called an imprecise interrupt, which simply indicates that an exception has occurred someplace in some region of code without trying to isolate it further. This simple approach may be satisfactory |
|
|
|
|
|