Patent ID: 7461238

Claim:
A method of executing instructions in a processor, the method comprising: receiving a load instruction and a store instruction to be executed in the processor; determining if load-store conflict information encoded in both the load instruction and the store instruction indicates that the load instruction previously conflicted with the store instruction, wherein the load-store conflict information includes a conflict bit and history bits, and wherein detecting a conflict comprises: 1) determining if a page number encoded in the load instruction matches a page number encoded in the store instruction, wherein each page number has an associated page number validity bit that indicates if a respective page number is valid, wherein the page number of the load instruction and the page number of the store instruction are compared only if the page number validity bit is set for both the load instruction and the store instruction, wherein the page number represents which page of a cache an effective address references; 2) determining if a portion of a load effective address encoded in the load instruction matches a portion of a store effective address encoded in the store instruction upon detection of a match between the page number of the store instruction and the page number of the load instruction; and 3) setting the conflict bit and subsequently encoding the conflict bit in the load instruction and the store instruction upon detection of a match between the portion of a load effective address and the portion of the store effective address; scheduling execution of the load instruction and the store instruction so that execution of the load instruction and the store instruction do not result in a conflict only if the load-store conflict information is set for both the load instruction and the store instruction and the value stored in a plurality of history bits are above a threshold level; executing the load instruction and the store instruction; and changing the history bits, wherein the history bits are decremented if the load effective address does not match the store effective address and incremented if the load effective address and the store effective address match, wherein the history bits are indicative of a prediction level, wherein a higher value of the prediction level represents a greater chance of detecting a conflict between the load instruction and the store instruction during subsequent execution of the load instruction and the store instruction.