IP Library › Granted Patent US 10,268,481
Granted Patent B2
US 10,268,481 · App. 15/918,106 · Granted Apr 23, 2019

Load/store unit for a processor, and applications thereof

Inventors: Meng-Bing Yu (San Jose, CA); Era K. Nangia (Los Altos, CA); Michael Ni (Cupertino, CA)
Assignee: ARM Finance Overseas Limited
G06F9/3826G06F9/383G06F9/384G06F9/3824G06F9/3836G06F9/3855G06F9/3857
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,268,481
App. No.
15/918,106
Granted
Apr 23, 2019
Kind
B2
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.

Claims (42)

1. A hardware 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, during 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.

2. The hardware processor of claim 1 , wherein the particular class of instructions includes instructions that read data from memory and that write data to memory.

3. The hardware processor of claim 1 , wherein the particular class of instructions includes instructions that read data from a register of a coprocessor.

4. The hardware processor of claim 1 , wherein each entry of the load/store queue includes a virtual address field for storing virtual address bits, a physical address field for storing physical address bits, and a data field for storing data bits.

5. The hardware processor of claim 1 , wherein each entry of the load/store queue includes a field for storing exception information.

6. The hardware processor of claim 1 , wherein the pointers stored in the load/store graduation buffer are completion buffer identification values.

7. The hardware processor of claim 1 , wherein each entry of the load/store graduation buffer includes a field for storing exception information.

8. A system, comprising:

a hardware 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, during 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 hardware processor.

9. The system of claim 8 , wherein the particular class of instructions includes instructions that read data from memory and that write data to memory.

10. The system of claim 8 , wherein each entry of the load/store queue includes a virtual address field for storing virtual address bits, a physical address field for storing physical address bits, and a data field for storing data bits.

11. The system of claim 8 , wherein the pointers stored in the load/store graduation buffer are completion buffer identification values.

12. A tangible computer readable storage medium that includes computer-readable code for generating a processor, the processor comprising:

computer-readable code to generate a load/store queue that includes a plurality of entries configured to store information associated with a particular class of instructions;

computer-readable code to generate a load/store graduation buffer that includes a plurality of entries configured to store pointers to the load/store queue; and

computer-readable code to generate control logic coupled to the load/store queue and the load/store graduation buffer,

wherein, during 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.

13. The tangible computer readable storage medium of claim 12 , wherein the particular class of instructions includes instructions that read data from memory and that write data to memory.

14. The tangible computer readable storage medium of claim 12 , wherein each entry of the load/store queue includes a virtual address field for storing virtual address bits, a physical address field for storing physical address bits, and a data field for storing data bits.

15. The tangible computer readable storage medium of claim 12 , wherein the pointers stored in the load/store graduation buffer are completion buffer identification values.

16. The tangible computer readable storage medium of claim 12 , wherein the processor is embodied in hardware description language software.

17. The tangible computer readable storage medium of claim 12 , wherein the processor is embodied in one of Verilog hardware description language software and VHDL hardware description language software.

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;

during 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.

19. The method of claim 18 , further comprising:

stalling processing of instructions associated with pointers stored in the load/store graduation buffer until a read request associated with a particular instruction is sent to a bus interface unit of the processor.

20. The method of claim 18 , further comprising:

stalling processing of instructions associated with pointers stored in the load/store graduation buffer until a write request associated with a particular instruction is accepted by a write-back buffer of the processor.

21. The method of claim 18 , wherein the processing step comprises:

allocating an entry for an instruction in a fill/store buffer.

22. The method of claim 18 , wherein the processing step comprises allocating an entry for an instruction in a load data queue.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2018
From: BRIDGE CROSSING, LLC
To: ARM FINANCE OVERSEAS LIMITED
Reel/Frame 045657/0674 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2018
From: MIPS TECHNOLOGIES, INC
To: BRIDGE CROSSING, LLC
Reel/Frame 045604/0732 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2018
From: YU, MENG-BING; NANGIA, ERA K.; NI, MICHAEL
To: MIPS TECHNOLOGIES, INC.
Reel/Frame 045173/0778 →
Continuity (2)
Continuation 11529728 · Sep 29, 2006
Related Publication 20180203702A1 · Jul 19, 2018