Load/store dependency predictor optimization for replayed loads
First Claim
1. A processor comprising:
- a load-store dependency predictor comprising a table having a plurality of entries; and
circuitry configured to;
detect a first load instruction;
determine that the first load instruction matches a first entry in the table, wherein the first entry includes an indication as to whether a previous ordering violation resulted in a flush event or a replay event; and
responsive to determining the first load instruction caused a flush event during a previous execution of the first load instruction, establish a dependency of the first load instruction on a store instruction responsive to determining a confidence value stored in the first entry is greater than a first threshold;
andresponsive to determining the first load instruction caused a replay event during the previous execution of the first load instruction, establish a dependency of the first load instruction on the store instruction responsive to determining the confidence value stored in the first entry is greater than a second threshold different from the first threshold.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, apparatuses, and methods for optimizing a load-store dependency predictor (LSDP). When a younger load instruction is issued before an older store instruction and the younger load is dependent on the older store, the LSDP is trained on this ordering violation. A replay/flush indicator is stored in a corresponding entry in the LSDP to indicate whether the ordering violation resulted in a flush or replay. On subsequent executions, a dependency may be enforced for the load-store pair if a confidence counter is above a threshold, with the threshold varying based on the status of the replay/flush indicator. If a given load matches on multiple entries in the LSDP, and if at least one of the entries has a flush indicator, then the given load may be marked as a multimatch case and forced to wait to issue until all older stores have issued.
111 Citations
20 Claims
-
1. A processor comprising:
-
a load-store dependency predictor comprising a table having a plurality of entries; and circuitry configured to; detect a first load instruction; determine that the first load instruction matches a first entry in the table, wherein the first entry includes an indication as to whether a previous ordering violation resulted in a flush event or a replay event; and responsive to determining the first load instruction caused a flush event during a previous execution of the first load instruction, establish a dependency of the first load instruction on a store instruction responsive to determining a confidence value stored in the first entry is greater than a first threshold; and responsive to determining the first load instruction caused a replay event during the previous execution of the first load instruction, establish a dependency of the first load instruction on the store instruction responsive to determining the confidence value stored in the first entry is greater than a second threshold different from the first threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
detecting a first load instruction; determining that the first load instruction matches a first entry in a table of a load-store dependency predictor, wherein the first entry includes an indication as to whether a previous ordering violation resulted in a flush event or a replay event; and responsive to determining the first load instruction caused a flush event during a previous execution of the first load instruction, establishing a dependency of the first load instruction on a store instruction responsive to determining a confidence value stored in the first entry is greater than a first threshold; and responsive to determining the first load instruction caused a replay event during the previous execution of the first load instruction, establishing a dependency of the first load instruction on the store instruction responsive to determining the confidence value stored in the first entry is greater than a second threshold different from the first threshold. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computing system comprising:
-
a memory; and a processor comprising a load-store dependency predictor, wherein the processor is configured to; detect a first load instruction; determine that the first load instruction matches a first entry in a table in the load-store dependency predictor, wherein the first entry includes an indication as to whether a previous ordering violation resulted in a flush event or a replay event; and responsive to determining the first load instruction caused a flush event during a previous execution of the first load instruction, establish a dependency of the first load instruction on a store instruction responsive to determining a confidence value stored in the first entry is greater than a first threshold; and responsive to determining the first load instruction caused a replay event during the previous execution of the first load instruction, establish a dependency of the first load instruction on the store instruction responsive to determining the confidence value stored in the first entry is greater than a second threshold different from the first threshold. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification