This is accomplished by reservation stations, from which instructions go to the execution unit when ready, as opposed to the FIFO queue of each execution unit of the 6600. Another advantage the Model 91 has over the 6600 is the ability to execute out-of-order the instructions at the same execution unit, not just between the units like the 6600. In the Model 91 the register renaming is implemented by a bypass termed Common Data Bus (CDB) and memory source operand buffers, leaving the physical architectural registers unused for many cycles as the oldest state of registers addressed by any unexecuted instruction is found on the CDB. An instruction addressing a write into a register r n can be executed before an earlier instruction using the register r n is executed, by actually writing into an alternative (renamed) register alt-r n, which is turned into a normal ("architectural") register r n only when all the earlier instructions addressing r n have been executed, but until then r n is given for earlier instructions and alt-r n for later ones addressing r n. Ībout two years later, the IBM System/360 Model 91 (1966) introduced register renaming with Tomasulo's algorithm, which dissolves false dependencies (WAW and WAR), making full out-of-order execution possible. The WAW is worse than WAR for the 6600, because when an execution unit encounters a WAR, the other execution units still receive and execute instructions, but upon a WAW the assignment of instructions to execution units stops, and they can not receive any further instructions until the WAW-causing instruction's destination register has been written to by earlier instruction. The 6600 lacks the means to avoid stalling an execution unit on false dependencies ( write after write (WAW) and write after read (WAR) conflicts, respectively termed "first order conflict" and "third order conflict" by Thornton, who termed true dependencies ( read after write (RAW)) as "second order conflict") because each address has only a single location referable by it. It permits an instruction to execute if its source operand (read) addresses aren't to be written to by any unexecuted earlier instruction (true dependency) and the destination (write) address not be an address used by any unexecuted earlier instruction (false dependency). Thornton, which uses a scoreboard to avoid conflicts. The first machine to use out-of-order execution was the CDC 6600 (1964), designed by James E. Out-of-order execution is a restricted form of data flow computation, which was a major research area in computer architecture in the 1970s and early 1980s. In doing so, the processor can avoid being idle while waiting for the preceding instruction to complete and can, in the meantime, process the next instructions that are able to run immediately and independently. In this paradigm, a processor executes instructions in an order governed by the availability of input data and execution units, rather than by their original order in a program. In computer engineering, out-of-order execution (or more formally dynamic execution) is a paradigm used in most high-performance central processing units to make use of instruction cycles that would otherwise be wasted. Computing paradigm to improve computational efficiency
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |