Unordered Load Store Queue Conflict Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional load/store queues in processors with out-of-order execution require large sizes to maintain instructions in program order, leading to inefficiencies in area and power usage, as they need to hold instructions from fetch to commitment, limiting scalability.

Innovation Solution

Implementing load and store instructions in load/store queues in execution order, using two content addressable memories (Address CAM and Age CAM) for conflict detection, allowing for smaller queue sizes by correlating addresses and sequence numbers to perform conflict analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If load and store instructions are held in program order from fetch to commitment, then correctness of out-of-order execution is maintained, but queue size becomes large leading to increased area and power consumption

Engineering Contradiction:
Improvecorrectness of out-of-order executionVSAvoidqueue size
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The queue is segmented into multiple banks (first bank and second bank) that can be independently managed. Instructions are distributed across banks based on their program order, allowing parallel processing and reducing the depth required in each individual bank. This segmentation enables the system to maintain program order semantics while reducing the area of each queue segment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of organization by using multiple banks with wraparound indexing. Instead of a single deep queue, the system uses multiple shallower queues arranged in banks, where the logical program order is maintained through banking and wrapping mechanisms. This dimensional transformation reduces the depth (area) while maintaining the required ordering properties.

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

2Reliability

If load and store instructions are held in program order from fetch to commitment, then proper conflict detection is enabled, but queue size becomes large leading to increased power consumption

Engineering Contradiction:
Improveconflict detection accuracyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by stationary object

Solution Approach 1:

The queue is divided into multiple banks that can be independently accessed and managed. Conflict detection is performed within each bank independently, reducing the power consumption of the detection logic while maintaining accuracy. The segmentation allows the system to detect conflicts in smaller, parallel units rather than requiring a single large sequential structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses wraparound indexing to create a logical extension of the physical queue structure. By implementing partial wraparound (where not all entries need to be physically present in sequence), the system achieves conflict detection capabilities of a larger queue while using fewer physical resources, thereby reducing power consumption.

Inventive Principle:
Principle #16Partial or excessive action

3Adaptability or versatility

If load and store instructions are held in program order, then scalability is limited, but changing to execution order requires complex conflict detection mechanisms

Engineering Contradiction:
ImprovescalabilityVSAvoidconflict detection mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The queue is segmented into multiple banks that can be independently scaled. Each bank maintains a portion of the program-ordered instructions, and the segmentation allows the overall structure to scale by adding more banks rather than increasing the depth of a single queue. This modular approach improves scalability while keeping individual conflict detection units relatively simple.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces banking and wraparound indexing as intermediary mechanisms that mediate between execution order processing and program order semantics. These intermediaries allow the conflict detection logic to operate on execution-ordered instructions while still maintaining the correctness guarantees of program order, thereby reducing the complexity of the detection mechanism itself.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8447911B2Unordered load/store queue
Publication Date: 2013.05.21 BOARD OF RGT THE UNIV OF TEXAS SYST
  • US8447911B2 patent drawing
  • US8447911B2 patent drawing
  • US8447911B2 patent drawing

AI summary

A method and processor for providing full load/store queue functionality to an unordered load/store queue for a processor with out-of-order execution. Load and store instructions are inserted in a load/store queue in execution order. Each entry in the load/store queue includes an identification corresponding to a program order. Conflict detection in such an unordered load/store queue may be performed by searching a first CAM for all addresses that are the same or overlap with the address of the load or store instruction to be executed. A further search may be performed in a second CAM to identify those entries that are associated with younger or older instructions with respect to the sequence number of the load or store instruction to be executed. The output results of the Address CAM and Age CAM are logically ANDed.