Dependence Matrix Segmentation for Load Miss Queue Tracking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing dependence matrices in high-performance processors fail to deallocate load instructions from the issue queue promptly due to their inability to track the availability of results for consumer instructions once the producer instructions are no longer in the queue, leading to reduced processor performance.
Innovation Solution
The proposed solution involves extending the dependence matrix to include additional columns for tracking dependent instructions in a load miss queue, allowing for the deallocation of load instructions before their results are available, while ensuring dependent instructions can still track the availability of their source operands by reallocating dependence entries from the issue queue to the load miss queue.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If load instructions are kept in the issue queue until their results are available, then consumer instructions can track source operand availability through the dependence matrix, but the issue queue cannot be efficiently utilized and processor performance is reduced
Solution Approach 1:
The dependence matrix is segmented into two separate structures: a first dependence matrix for tracking producer-consumer relationships when producers are in the issue queue, and a second dependence matrix for tracking relationships when producers are in the load miss queue. This segmentation allows independent management of dependence tracking for different queue states, enabling efficient queue utilization while maintaining accurate dependence information.
Solution Approach 2:
The load miss queue acts as an intermediary structure between the issue queue and the execution units. By introducing this intermediate queue and its associated dependence matrix, the system can temporarily hold deallocated load instructions and their dependence information, allowing consumer instructions to continue tracking source operands even after producers leave the issue queue.
2Productivity
If load instructions are deallocated from the issue queue before their results are available, then queue utilization increases and processor performance improves, but consumer instructions cannot track the availability of their source operands
Solution Approach 1:
When a load instruction is deallocated from the issue queue to the load miss queue, its dependence information (the column in the dependence matrix specifying which instructions depend on it) is copied from the first dependence matrix to the second dependence matrix. This copying ensures that consumer instructions can continue to track the availability of their source operands through the second dependence matrix even after the producer is no longer in the issue queue.
Solution Approach 2:
The system performs preliminary actions by pre-allocating a second dependence matrix structure and establishing the copying mechanism before load instructions need to be deallocated. This preliminary preparation ensures that when deallocation occurs, the dependence information is already in place in the second matrix, allowing immediate continuation of dependence tracking without information loss.
3Device complexity
If the dependence matrix tracks only instructions within the issue queue, then the structure remains simple, but instructions cannot be deallocated promptly and processor performance is reduced
Solution Approach 1:
The single dependence matrix structure is segmented into two separate dependence matrices: one associated with the issue queue and another associated with the load miss queue. Each matrix handles dependence tracking for its respective queue, allowing instructions to be deallocated from the issue queue without losing dependence information, as the information is preserved in the second matrix.
Solution Approach 2:
The system adds another dimension to the dependence tracking architecture by introducing a second dependence matrix alongside the first. This dimensional expansion allows the system to track dependence information across two different queue contexts (issue queue and load miss queue), enabling prompt deallocation while maintaining complete dependence tracking capability.
Data Source
Figure 1~2
Figure 3
Figure 4
AI summary
A mechanism is provided for tracking deallocated load instructions. A processor detects whether a load instruction in a set of instructions in an issue queue has missed. Responsive to a miss of the load instruction, an instruction scheduler allocates the load instruction to a load miss queue and deallocates the load instruction from the issue queue. The instruction scheduler determines whether there is a dependence entry for the load instruction in an issue queue portion of a dependence matrix. Responsive to the existence of the dependence entry for the load instruction in the issue queue portion of the dependence matrix, the instruction scheduler reads data from the dependence entry of the issue queue portion of the dependence matrix that specifies a set of dependent instructions that are dependent on the load instruction and writes the data into a new entry in a load miss queue portion of the dependence matrix.