Instruction Completion Table Pointer Logic for Microprocessor Out-of-Order Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face challenges in ensuring that instructions complete in program order while handling multiple instructions per clock cycle, as they may issue and finish instructions out of order, leading to complexity in tracking and completing instructions efficiently.

Innovation Solution

The implementation of an Instruction Completion Table (ICT) with Ready to Complete (RTC) status bits and a controller that uses a count leading ones operation to determine which instructions are ready for completion, allowing for efficient completion of instructions in program order by identifying and updating the tail pointer for subsequent rounds.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If instructions are issued and completed out of order to improve processor throughput, then multiple instructions can be completed per clock cycle, but tracking and ensuring program order completion becomes complex

Engineering Contradiction:
Improveinstructions completed per clock cycleVSAvoidtracking complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The Instruction Completion Table is divided into multiple sections, with each section containing multiple entries. This segmentation allows the processor to track instructions in organized groups, making it easier to manage the complexity of out-of-order completion while maintaining program order guarantees. The controller can independently manage completion within each section.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediate data structures including the Ready to Complete vector, tail pointer, and head pointer that act as mediators between the out-of-order execution units and the program order completion requirement. These intermediaries translate the complex state of in-flight instructions into a manageable representation for the completion controller.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If traditional methods are used to track instruction completion, then program order is maintained, but separate count and add operations are required reducing efficiency

Engineering Contradiction:
Improveprogram order completionVSAvoidcompletion efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges the count and add operations into a single count leading ones operation. Instead of separately counting ready instructions and adding to a completion index, the controller performs a unified operation that directly determines the head pointer position, eliminating redundant computational steps and improving completion efficiency.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent replaces traditional mechanical counting and addition operations with a bitwise count leading ones operation. This substitution leverages efficient hardware bitwise operations to determine instruction completion boundaries, significantly improving speed and reducing the computational overhead of maintaining program order.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS11366671B2Completion mechanism for a microprocessor instruction completion table
Publication Date: 2022.06.21 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11366671B2 patent drawing
  • US11366671B2 patent drawing
  • US11366671B2 patent drawing

AI summary

Method and apparatus for a completion mechanism for a microprocessor are provided by identifying entries in a section of an Instruction Completion Table (ICT) that are marked as ready to complete via corresponding Ready to Complete (RTC) status bits; determining a tail pointer indicating a start of the entries in the ICT that are ready for completion; determining a head pointer that indicates an end of the entries in the ICT that are ready for completion; completing instructions included in the entries between the tail pointer and the head pointer; and updating the tail pointer to a value of the head pointer for a subsequent instruction completion round.