IP Library Granted Patent US 12705054
Granted Patent B2
US 12705054 · App. 17/543,952 · Granted Aug 11, 2026

Speculative execution using a page-level tracked load order queue

Inventor: Krishnan V. Ramani (Santa Clara, CA)
Assignee: ADVANCED MICRO DEVICES, INC.
G06F9/30043G06F9/3851G06F12/0875G06F2212/452
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 12705054
App. No.
17/543,952
Granted
Aug 11, 2026
Kind
B2
Abstract

Speculative execution using a page-level tracked load order queue includes: determining that a first load instruction targets a determined memory region; and in response to the first load instruction targeting the determined memory region, adding an entry to a page-level tracked load order queue instead of a load order queue, where the entry indicates a page address of a target of the first load instruction.

Claims (41)

1 . A method for speculative execution using multiple queues including at least a first queue and a second queue, the method comprising:

adding a first entry to the first queue for a first load instruction based on the first load instruction targeting a memory area outside of a current program stack, wherein each entry in the first queue identifies a particular memory address; and

adding a second entry to the second queue for a second load instruction based on the second load instruction targeting the current program stack, wherein each entry in the second queue identifies a page of memory.

2 . The method of claim 1 , further comprising:

updating an activity counter of the second entry in response to a third load instruction that targets the current program stack and targets a page address identified in the second entry.

3 . The method of claim 1 , further comprising removing, based on a state of a re-order buffer, the second entry from the second queue.

4 . The method of claim 3 , wherein removing, based on the state of the re-order buffer, the second entry from the second queue comprises:

decrementing, based on the state of the re-order buffer, an activity counter of the second entry; and

removing the second entry from the second queue based on the activity counter.

5 . The method of claim 1 , further comprising determining that the second load instruction targets a memory address relative to a stack pointer.

6 . The method of claim 1 , wherein the second load instruction is associated with a first thread, and the method further comprises:

receiving a query from a second thread indicating a store instruction target; and

initiating a pipeline flush in response to the store instruction target comprising a page address identified in the second entry.

7 . The method of claim 1 , wherein the second queue is a page-level tracked load order queue.

8 . A load store unit for speculative execution using multiple queues including at least a first queue and a second queue, the load store unit configured to:

add a first entry to the first queue for a first load instruction based on the first load instruction targeting a memory area outside of a current program stack, wherein each entry in the first queue identifies a particular memory address; and

add a second entry to the second queue in response to a second load instruction that targets the current program stack, wherein each entry in the second queue identifies a page of memory.

9 . The load store unit of claim 8 , wherein the load store unit is further configured to:

update an activity counter of the second entry in response to a third load instruction that targets the current program stack and target a page address identified in the second entry.

10 . The load store unit of claim 8 , wherein the load store unit is further configured to remove, based on a state of a re-order buffer, the second entry from the second queue.

11 . The load store unit of claim 10 , wherein the load store unit removes the second entry from the second queue by:

decrementing, based on the state of the re-order buffer, an activity counter of the second entry; and

removing the second entry from the second queue based on the activity counter.

12 . The load store unit of claim 8 , wherein the load store unit is further configured to determine that the second load instruction targets a memory address relative to a stack pointer.

13 . The load store unit of claim 8 , wherein the second load instruction is associated with a first thread, and the load store unit is further configured to:

receive a query from a second thread indicating a store instruction target; and

initiate a pipeline flush in response to the store instruction target comprising a page address identified in the second entry.

14 . A processor for speculative execution using multiple queues, comprising:

a first queue comprising a plurality of entries each identifying a particular memory address, wherein the processor is configured to add a first entry to the first queue for a first load instruction based on the first load instruction targeting a memory area outside of a current program stack; and

a second queue comprising a plurality of entries each identifying a page of memory, wherein the processor is configured to add a second entry to the second queue for a second load instruction based on the second load instruction targeting the current program stack.

15 . The processor of claim 14 , wherein the processor is further configured to:

update an activity counter of the second entry in response to a third load instruction that targets the current program stack and targets a page address identified in the second entry.

16 . The processor of claim 14 , wherein the processor is further configured to remove, based on a state of a re-order buffer, the second entry from the second queue.

17 . The processor of claim 16 , wherein the processor removes the second entry from the second queue by:

decrementing, based on the state of the re-order buffer, an activity counter of the second entry; and

removing the second entry from the second queue based on the activity counter.

18 . The processor of claim 14 , wherein the second load instruction targets a memory address relative to a stack pointer.

19 . The processor of claim 14 , wherein the second load instruction is associated with a first thread, and the processor is further configured to:

receive a query from a second thread indicating a store instruction target; and

initiate a pipeline flush in response to the store instruction target comprising a page address identified in the second entry.

20 . The processor of claim 14 , wherein the second queue is a page-level tracked load order queue.