Unordered Load Store Queue Conflict Detection
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


