Microprocessor Issue Queue Back-to-Back Instruction Wake-Up

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional superscalar processors face timing critical paths due to instruction tag comparisons after a producer instruction has been selected for issue, which hinders optimal issue bandwidth when issuing instructions with operand dependencies.

Innovation Solution

The processor employs an issue queue with a target table and 'consumer_qpos' bit field to track operand dependencies by associating pointers between instructions, allowing dependent instructions to be woken up immediately after the producer instruction's issue, eliminating the need for extra clock cycles.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the processor compares instruction tags after the producer instruction has been selected for issue to identify dependent instructions, then data dependencies are correctly tracked, but a timing critical path is created that prevents optimal issue bandwidth

Engineering Contradiction:
Improvedependency tracking accuracyVSAvoidissue bandwidth
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs dependency tracking by comparing instruction tags during the instruction dispatch phase, before the producer instruction is selected for issue. This preliminary action populates a target table with target instruction tags and associates consumer queue positions with producer instructions. When the producer instruction is later issued, the dependent instructions are already identified and can be immediately woken up, eliminating the timing critical path that would otherwise exist if tag comparisons were performed after issue selection.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the processor issues dependent instructions in the cycle immediately following the producer instruction, then optimal issue bandwidth is achieved, but this creates a timing critical path due to post-issue tag comparisons

Engineering Contradiction:
Improveissue bandwidthVSAvoidtiming critical path
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs dependency tracking by comparing instruction tags during the instruction dispatch phase, before the producer instruction is selected for issue. This preliminary action populates a target table with target instruction tags and associates consumer queue positions with producer instructions. When the producer instruction is later issued, the dependent instructions are already identified and can be immediately woken up, eliminating the timing critical path that would otherwise exist if tag comparisons were performed after issue selection.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a target table as an intermediary data structure that stores target instruction tags and consumer queue positions. This table acts as a mediator between the instruction dispatch unit and the issue queue, allowing dependency information to be pre-computed and stored. When a producer instruction is issued, the target table enables rapid retrieval of dependent instruction positions without requiring real-time tag comparisons, thus eliminating the timing critical path while maintaining optimal issue bandwidth.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9971600B2Techniques to wake-up dependent instructions for back-to-back issue in a microprocessor
Publication Date: 2018.05.15 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9971600B2 patent drawing
  • US9971600B2 patent drawing
  • US9971600B2 patent drawing

AI summary

Techniques are disclosed for back-to-back issue of instructions in a processor. A first instruction is stored in a queue position in an issue queue. The issue queue stores instructions in a corresponding queue position. The first instruction includes a target instruction tag and at least a source instruction tag. The target instruction tag is stored in a table storing a plurality of target instruction tags associated with a corresponding instruction. Each stored target instruction tag specifies a logical register that stores a target operand. Upon determining, based on the source instruction tag associated with the first instruction and the target instruction tag associated with a second instruction, that the first instruction is dependent on the second instruction, a pointer to the first instruction is associated with the second instruction. The pointer is used to wake up the first instruction upon issue of the second instruction.