Dependence Matrix Segmentation for Load Miss Queue Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprocessor performanceVSAvoiddependence tracking complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvequeue utilizationVSAvoiddependence information
Core Design Contradiction:
ProductivityVSLoss of information

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.

Inventive Principle:
Principle #26Copying

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvedependence matrix structureVSAvoidinstruction deallocation efficiency
Core Design Contradiction:
Device complexityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

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

Data Source

PatentEP2411908B1Tracking deallocated load instructions using a dependence matrix
Publication Date: 2013.05.08 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • EP2411908B1 patent drawingFigure 1~2
  • EP2411908B1 patent drawingFigure 3
  • EP2411908B1 patent drawingFigure 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.