< previous page page_489 next page >

Page 489
0489-01.gif
Figure 7.48
Distributed reorder buffer method with forwarding.
0489-02.gif
Figure 7.49
Reorder buffer method with future file.
Each source operand requires two 5-bit comparators for its associative needs (12 ´ 4 = 48 5-bit comparators).
Each writable entry requires two Write ports (24 Write ports).
Each entry tag has to be compared to the result buses, with two buses assumed (24 4-bit comparators).
Altogether, this makes for a quite complex implementation.
To simplify the management of the reorder buffer, another technique can be used that adds a future register file to the reorder buffer method (Figure 7.49). This technique places functional unit results directly in the future register file. These results are available from the future file for dependent instructions. Upon receiving an exception, certain entries (those results beyond the point of the interrupt) in the future file may be invalidated, but the correct sequential register state is always available in the register file.
The cost of duplicating the register file, as in the future file method, may be too expensive for very large register sets, so a history buffer can be used (Figure 7.50). The history buffer contains only previously determined results overwritten by instructions whose predecessors have not completed. If an exception occurs, the appropriate values are restored into the future file. This restores the future file state to that of the sequential register

 
< previous page page_489 next page >