Two-Level Load Queue for Processor Replay and Ordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large load and store queues in processors limit out-of-order execution and performance due to the need for replaying load operations, which can exceed clock cycle time and restrict queue size.

Innovation Solution

Implementing a two-level load queue system, where a smaller load execution queue manages replay and a larger load retirement queue enforces ordering constraints, allowing for more pending load operations and wider out-of-order execution windows.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the load queue is made large to support more out-of-order execution, then the processor performance is improved, but the time required to scan for load operations needing replay exceeds the available clock cycle time

Engineering Contradiction:
Improveprocessor performanceVSAvoidreplay scanning time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent divides the load queue into two separate queues: a load retirement queue (LRQ) that tracks loads from initial execution to retirement and enforces ordering constraints, and a load execution queue (LEQ) that tracks loads from initial execution to forwarding of data and manages replay. This segmentation allows the LEQ to be kept small for fast replay scanning while the LRQ can be large to support extensive out-of-order execution, thereby resolving the contradiction between queue size and replay scanning time.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If the load queue size is increased to widen the out-of-order execution window, then more load operations can be pending, but the complexity of managing replay within clock cycle time increases

Engineering Contradiction:
Improveout-of-order execution windowVSAvoidreplay management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

By segmenting the load queue into LRQ and LEQ with distinct responsibilities, the patent simplifies replay management. The LEQ, being smaller and dedicated to execution tracking, requires less complex scanning logic while the LRQ handles retirement and ordering without involvement in replay management, thus reducing overall system complexity despite supporting a larger out-of-order execution window.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the replay management function from the overall load queue system and concentrates it in the LEQ. This extraction allows replay operations to be handled independently in a dedicated, smaller structure, reducing the complexity burden on the entire load queue system while maintaining large out-of-order execution capability in the LRQ.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If a single large load queue is used to track loads from initial execution to retirement, then ordering constraints can be enforced, but the queue size must be limited to allow replay scanning within clock cycle time

Engineering Contradiction:
Improveordering constraint enforcementVSAvoidload queue size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the load tracking function into two queues: the LRQ maintains ordering constraints from initial execution to retirement, while the LEQ manages execution tracking to forwarding. This segmentation allows the LRQ to be sized for reliable ordering enforcement without being constrained by replay scanning requirements, as replay management is handled separately in the LEQ.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10970077B2Processor with multiple load queues including a queue to manage ordering and a queue to manage replay
Publication Date: 2021.04.06 APPLE INC
  • US10970077B2 patent drawing
  • US10970077B2 patent drawing
  • US10970077B2 patent drawing

AI summary

In an embodiment, a processor includes a load/store unit that executes load/store operations. The load/store unit may implement a two-level load queue. One of the load queues, referred to as a load retirement queue (LRQ), may track load operations from initial execution to retirement. Ordering constraints may be enforced using the LRQ. The other load queue, referred to as a load execution queue (LEQ), may track loads from initial execution to forwarding of data. Replay may be managed by the LEQ. In an embodiment, the LEQ may be smaller than the LRQ, which may permit the management of replay while still meeting timing requirements. Additionally, the larger LRQ may permit more load operations to be pending (not retired) in the processor, widening the window for out of order execution and supporting potentially higher processor performance.