Dynamic memory disambiguation in the presence of out-of-order store issuing

Document Type

Conference Proceeding

Publication Date



Department of Computer Science


With the help of the memory dependence predictor the instruction scheduler can speculatively issue load instructions at the earliest possible time without causing significant amounts of memory order violations. For maximum performance, the scheduler must also allow full out-of-order issuing of store instructions since any superfluous ordering of stores results in false memory dependencies which adversely affect the timely issuing of dependent loads. Unfortunately, simple techniques of detecting memory order violations do not work well when store instructions issue out-of-order since they yield many false memory order violations. By using a novel memory order violation detection mechanism that is employed in the retire logic of the processor and delaying the checking for memory order violations, we are able to allow full out-of-order issuing of store instructions without causing false memory order violations. In addition, our mechanism can take advantage of data value redundancy. We present an implementation of our technique using the store set memory dependence predictor. An out-of-order superscalar processor that uses our technique delivers an IPC which is within 100, 96 and 85% of a processor equipped with an ideal memory disambiguator at issue widths of 8, 16 and 32 instructions respectively.

Publisher's Statement

Copyright © 1999, IEEE. Publisher’s version of record: https://doi.org/10.1109/MICRO.1999.809454

Publication Title

MICRO-32. Proceedings of the 32nd Annual ACM/IEEE International Symposium on Microarchitecture