System and method for permitting out-of-order execution of load and store instructions
First Claim
Patent Images
1. A method for assigning tags to load and store instructions, comprising the steps of:
- assigning first tags to each of the load and store instructions, wherein the first tags are incremented for each store instruction in program order; and
assigning second tags to each of the load and store instructions, wherein the second tags are incremented for each store instruction in program order that is preceded by a load instruction.
2 Assignments
0 Petitions
Accused Products
Abstract
In a load/store unit within a microprocessor, load and store instructions are executed out of order. The load and store instructions are assigned tags in a predetermined manner, and then assigned to load and store reorder queues for keeping track of the program order of the load and store instructions. Then when new load or store instructions are issued, the new load or store instructions are compared to entries within the load and store reorder queues to detect out of order problems.
37 Citations
21 Claims
-
1. A method for assigning tags to load and store instructions, comprising the steps of:
-
assigning first tags to each of the load and store instructions, wherein the first tags are incremented for each store instruction in program order; and
assigning second tags to each of the load and store instructions, wherein the second tags are incremented for each store instruction in program order that is preceded by a load instruction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
storing addresses of the load instructions in a load reorder queue in an order in accordance to the assigned second tags; and
storing addresses of the store instructions in a store reorder queue in an order in accordance to the assigned first tags.
-
-
9. A method for assigning tags to load and store instructions in a load/store unit, comprising the steps of:
-
assigning a store tag N and a load tag M to a first store instruction;
if a next load or store instruction in program order from the first store instruction is a second store instruction, then assigning a store tag N+1 and a load tag M to the second store instruction; and
if the next load or store instruction in program order from the first store instruction is a first load instruction, then assigning a store tag N and a load tag M to the first load instruction. - View Dependent Claims (10)
if a next load or store instruction in program order from the first load instruction is a third store instruction, then assigning a store tag N+1 and a load tag M+1 to the third store instruction; and
if the next load or store instruction in program order from the first store instruction is a second load instruction, then assigning a store tag N and a load tag M+1 to the second load instruction.
-
-
11. A processor comprising:
-
a load/store unit further comprising;
circuitry for issuing for execution load and store instructions in an out of order manner;
circuitry for assigning first tags to each of the load and store instructions, wherein the first tags are incremented for each store instruction in program order; and
circuitry for assigning second tags to each of the load and store instructions, wherein the second tags are incremented for each store instruction in program order that is preceded by a load instruction. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
a load reorder queue for storing addresses of the load instructions in an order in accordance to the assigned second tags.
-
-
19. A data processing system comprising:
-
a processor coupled by a bus system to a memory device, a storage device, an output device, and an input device, wherein the processor includes a plurality of execution units including a load/store unit comprising;
circuitry for assigning a store tag N and a load tag M to a first store instruction;
if a next load or store instruction in program order from the first store instruction is a second store instruction, then circuitry for assigning a store tag N+1 and a load tag M to the second store instruction; and
if the next load or store instruction in program order from the first store instruction is a first load instruction, then circuitry for assigning a store tag N and a load tag M to the first load instruction. - View Dependent Claims (20, 21)
if a next load or store instruction in program order from the first load instruction is a third store instruction, then circuitry for assigning a store tag N+1 and a load tag M+1 to the third store instruction; and
if the next load or store instruction in program order from the first store instruction is a second load instruction, then circuitry for assigning a store tag N and a load tag M+1 to the second load instruction.
-
-
21. The system as recited in claim 19, further comprising:
-
circuitry for executing the first load instruction;
circuitry for executing the first store instruction after the first load instruction;
a load reorder queue for detecting that the first load instruction and the first store instruction have an address byte overlap; and
circuitry for flushing the first load instruction in response to the load reorder queue detecting that the first load instruction and the first store instruction have the address byte overlap.
-
Specification