Load/store unit for a processor, and applications thereof
First Claim
1. A processor that executes instructions out-of-program-order, comprising:
- a load/store queue that includes a plurality of entries configured to store information associated with a particular class of instructions;
a load/store graduation buffer that includes a plurality of entries configured to store pointers to the load/store queue; and
control logic coupled to the load/store queue and the load/store graduation buffer,wherein, upon graduation of a first instruction, belonging to the particular class of instructions, that is associated with a cache miss, the control logic causes a first pointer to be stored in the load/store graduation buffer that points to an entry in the load/store queue associated with the first instruction.
5 Assignments
0 Petitions
Accused Products
Abstract
A load/store unit for a processor, and applications thereof. In an embodiment, the load/store unit includes a load/store queue configured to store information and data associated with a particular class of instructions. Data stored in the load/store queue can be bypassed to dependent instructions. When an instruction belonging to the particular class of instructions graduates and the instruction is associated with a cache miss, control logic causes a pointer to be stored in a load/store graduation buffer that points to an entry in the load/store queue associated with the instruction. The load/store graduation buffer ensures that graduated instructions access a shared resource of the load/store unit in program order.
-
Citations
25 Claims
-
1. A processor that executes instructions out-of-program-order, comprising:
-
a load/store queue that includes a plurality of entries configured to store information associated with a particular class of instructions; a load/store graduation buffer that includes a plurality of entries configured to store pointers to the load/store queue; and control logic coupled to the load/store queue and the load/store graduation buffer, wherein, upon graduation of a first instruction, belonging to the particular class of instructions, that is associated with a cache miss, the control logic causes a first pointer to be stored in the load/store graduation buffer that points to an entry in the load/store queue associated with the first instruction. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system, comprising:
-
a processor that includes a load/store queue that includes a plurality of entries configured to store information associated with a particular class of instructions, a load/store graduation buffer that includes a plurality of entries configured to store pointers to the load/store queue, and control logic coupled to the load/store queue and the load/store graduation buffer, wherein, upon graduation of a first instruction, belonging to the particular class of instructions, that is associated with a cache miss, the control logic causes a first pointer to be stored in the load/store graduation buffer that points to an entry in the load/store queue associated with the first instruction; and a memory coupled to the processor. - View Dependent Claims (9, 10, 11)
-
-
12. A tangible computer readable storage medium that includes a processor embodied in software, the processor comprising:
-
a load/store queue that includes a plurality of entries configured to store information associated with a particular class of instructions; a load/store graduation buffer that includes a plurality of entries configured to store pointers to the load/store queue; and control logic coupled to the load/store queue and the load/store graduation buffer, wherein, upon graduation of a first instruction, belonging to the particular class of instructions, that is associated with a cache miss, the control logic causes a first pointer to be stored in the load/store graduation buffer that points to an entry in the load/store queue associated with the first instruction. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method for maintaining uncached load/store order in a processor that executes instructions out-of-program-order, comprising:
-
storing information associated with memory access instructions in a load/store queue, the load/store queue having a plurality of entries, each entry configured for storing information associated with a single instruction; upon graduation of a memory access instruction associated with a cache miss, storing a pointer value in a first-in-first-out load/store graduation buffer that points to an entry in the load/store queue associated with the instruction; and processing instructions associated with pointers stored in the load/store graduation buffer according to an order of the pointers stored in the load/store graduation buffer. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A method for processing memory access instructions in a processor that executes instructions out-of-program-order, comprising:
-
storing a completion buffer identification value for a graduating memory access instruction in a load/store graduation buffer; using bits of the stored completion buffer identification value to access an entry of a load/store queue associated with the instruction; retrieving information from the load/store queue entry; and determining whether to allocate an entry for the instruction in a fill/store buffer based on the retrieved information. - View Dependent Claims (24, 25)
-
Specification