Issue No. 12 - December (2009 vol. 58)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TC.2009.95
Julio Sahuquillo Borrás , Universidad Politécnica de Valencia, Spain
Pedro López Rodríguez , Universidad Politécnica de Valencia, Spain
José Duato Marín , Universidad Politécnica de Valencia, Spain
Salvador Petit Martí , Universidad Politécnica de Valencia, Spain
Rafael Ubal Tena , Universidad Politécnica de Valencia, Spain
Current superscalar processors commit instructions in program order by using a reorder buffer (ROB). The ROB provides support for speculation, precise exceptions, and register reclamation. However, committing instructions in program order may lead to significant performance degradation if a long latency operation blocks the ROB head. Several proposals have been published to deal with this problem. Most of them retire instructions speculatively. However, as speculation may fail, checkpoints are required in order to rollback the processor to a precise state, which requires both extra hardware to manage checkpoints and the enlargement of other major processor structures, which, in turn, might impact the processor cycle. This paper focuses on out-of-order commit in a nonspeculative way, thus, avoiding checkpointing. To this end, we replace the ROB with a validation buffer (VB) structure. This structure keeps dispatched instructions until they are nonspeculative or mispeculated, which allows an early retirement. By doing so, the performance bottleneck is largely alleviated. An aggressive register reclamation mechanism targeted to this microarchitecture is also devised. As experimental results show, the VB structure is much more efficient than a typical ROB since, with only 32 entries, it achieves a performance close to an in-order commit microprocessor using a 256-entry ROB.
Instruction-level parallelism, out-of-order commit, long latency operations, control dependencies, exception handling.
Julio Sahuquillo Borrás, Pedro López Rodríguez, José Duato Marín, Salvador Petit Martí, Rafael Ubal Tena, "A Complexity-Effective Out-of-Order Retirement Microarchitecture", IEEE Transactions on Computers, vol. 58, no. , pp. 1626-1639, December 2009, doi:10.1109/TC.2009.95