Page-Level Load Order Queue for Speculative Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processor architectures face performance limitations due to the full load order queue when speculatively executed load instructions target the program stack, as they disproportionately fill the queue, preventing further speculative execution.

Innovation Solution

Implementing a page-level tracked load order queue that distinguishes between load instructions targeting the program stack and others, using an activity counter to efficiently manage entries and prevent queue overflow by updating or removing entries based on the reorder buffer state.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If load instructions targeting the program stack are added to the load order queue, then the queue fills up quickly, but speculative execution is prevented when the queue is full

Engineering Contradiction:
Improvespeculative execution continuityVSAvoidload order queue capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the load order queue into two separate queues: a first load order queue for load instructions targeting the program stack and a second load order queue for other load instructions. This segmentation prevents stack loads from monopolizing the queue capacity, allowing speculative execution to continue without being blocked by queue full conditions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to queue management by tracking load instructions at the page level rather than individual instruction level for the first queue. Multiple load instructions targeting the same page are represented by a single entry with an activity counter, effectively adding a pagination dimension that reduces queue occupancy while maintaining execution reliability.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Quantity of substance

If multiple load instructions targeting the same page are tracked individually, then queue overflow is prevented, but storage efficiency decreases

Engineering Contradiction:
Improvequeue entry utilizationVSAvoidqueue capacity waste
Core Design Contradiction:
Quantity of substanceVSLoss of substance

Solution Approach 1:

The patent merges multiple load instructions targeting the same page into a single queue entry by tracking the page address and maintaining an activity counter. This merging approach consolidates redundant entries, improving storage efficiency while still preventing queue overflow through effective capacity management.

Inventive Principle:
Principle #5Merging (Combining)

3Device complexity

If a single queue is used for all load instructions, then implementation is simple, but performance degrades due to queue full conditions

Engineering Contradiction:
Improvequeue management structureVSAvoidspeculative execution throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the single load order queue into two separate queues based on the target memory region (stack vs. non-stack). This segmentation resolves the performance degradation caused by queue full conditions while maintaining relatively simple implementation through clear differentiation criteria and separate management of each queue.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20240176618A9Speculative execution using a page-level tracked load order queue
Publication Date: 2024.05.30 ADVANCED MICRO DEVICES INC
  • US20240176618A9 patent drawing
  • US20240176618A9 patent drawing
  • US20240176618A9 patent drawing

AI summary

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.