Computer Architecture – Out-of-Order Execution. 1. Computer Architecture. Out-of-order Execution. By Yoav Etsion. With acknowledgement to Dan Tsafrir. Out-of-order execution (OoOE) is an approach to processing that allows instructions for high-performance microprocessors to begin execution as soon as their. Out-of-order instruction execution. • instructions are fetched in compiler-generated order. • instruction completion may be in-order (today) or out-of-order (older.
|Published:||2 December 2017|
|PDF File Size:||44.19 Mb|
|ePub File Size:||18.91 Mb|
Out-of-order execution - Wikipedia
In the out-of-order execution, a processor can execute I-2 instruction before I-1 instruction has been completed. This flexibility will improve the performance of the processor since it allows execution with less waiting time.
In IBM introduced Tomasula's algorithm which supports full out-of-order execution. In old processors, the processing of instruction is done in-order. The steps required for In-order processor are as follows: The processor retrieves program instructions from its memory.
If the input operands are available in the register the instruction is sent out of order execution execution unit.
Lecture 5: Out-of-order Execution
out of order execution If the operand in unavailable during the clock cycle the processor will wait until they are out of order execution. These are algorithms that keeps track of the details of the pipeline, deciding when and what to execute. The scoreboard knows or predicts when results will be available from instructions, so it knows when dependent instructions are able to be executed, and when they can write their results into destination registers.
In Tomasulo's algorithm, reservation stations are used to implicitly implement register renaming.
Other schemes add an actual physical register file and Register Alias Table for doing renaming, allowing the new scheme to eliminate more data out of order execution. Common data bus CDB. The common data bus is a network among the functional units used to communicate things like operands and reservation station tags.
The new pipeline is divided into three phases, each of which could take a number of clock cycles: This stuff is all out of order execution Chapter 2 Issue: The fetch unit keeps instructions in an instruction queue, in program order i.
These instructions are fetched with the assistance of branch prediction. The issue phase dequeues an instruction from this queue. The instruction is decoded to determine what functional units it will need. If there is a reservation station available at the function unit this instruction needs, send it there; otherwise, stall this instruction only because of the structural hazard.
Out of order execution the operands for the instruction are available, send them to the reservation station for that instruction.
Otherwise, send information about the source for those operands to the reservation station, which will wait for the operands.
This information takes out of order execution form of tags that name functional units and other reservation stations. Implicitly, by sending tags instead of register names to the reservation stations, the issue phase renames registers in a virtual set of registers.
For example, WAW hazards are no longer possible, since the same register in two different instructions corresponds to two different reservation stations. At the reservation station for this instruction, the following actions may be taken: