Operand Dependency Tracking for Register Pair Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern out-of-order microprocessor implementations only support tracking of three source registers per instruction, which is insufficient for correct execution of two-operand quad instructions operating on register pairs, leading to issues with operand dependency and increased latency.

Innovation Solution

Inserting a move instruction in the instruction scheduling dependency graph ensures operand readiness for all operands used by instructions operating on register pairs, eliminating the need for scratch registers and subsequent copy instructions, thereby reducing overhead and latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional out-of-order execution tracking is used for three source registers, then implementation complexity is reduced, but it cannot correctly execute two-operand quad instructions operating on register pairs

Engineering Contradiction:
Improvesupport for quad instructions operating on register pairsVSAvoidoperand dependency tracking complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the quad instruction into two separate internal instructions (instr1 and instr2), each operating on individual register pairs. This segmentation allows the existing three-source-register tracking mechanism to be applied to each segmented instruction, while the move instruction bridges the segmentation to maintain original instruction semantics

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a move instruction as an intermediary element in the dependency graph. This move instruction acts as a mediator that connects the two segmented internal instructions, ensuring that operand dependencies are properly tracked and that both instr1 and instr2 receive their operands in synchronization without requiring complex four-source-register tracking

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If internal instructions are issued independently without synchronization, then issue logic complexity is reduced, but operands may not be simultaneously available causing execution errors

Engineering Contradiction:
Improveinstruction issue rateVSAvoidoperand availability synchronization
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a feedback mechanism through the move instruction in the dependency graph. The move instruction creates a dependency loop that provides feedback to the issue logic, ensuring that instr1 and instr2 are only issued when their operands are simultaneously ready. This feedback ensures reliability while maintaining high productivity through out-of-order execution of other independent instructions

Inventive Principle:
Principle #23Feedback

3Reliability

If scratch registers and copy instructions are used to handle operand dependencies, then operand readiness is ensured, but chip area and latency increase

Engineering Contradiction:
Improveoperand readinessVSAvoidchip area
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent enables the instruction scheduling system to self-manage operand dependencies through the move instruction mechanism. Instead of requiring external scratch registers and copy instructions, the system uses the move instruction embedded in the dependency graph to automatically ensure operand readiness, thereby eliminating the need for additional chip area while maintaining reliability

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10671398B2Low-overhead, low-latency operand dependency tracking for instructions operating on register pairs in a processor core
Publication Date: 2020.06.02 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10671398B2 patent drawing
  • US10671398B2 patent drawing
  • US10671398B2 patent drawing

AI summary

A computer processing system is provided. The computer processing system includes a processor configured to insert a move instruction in an instruction scheduling dependency graph generated for operands of the instruction operating on register pairs to ensure operand readiness for all of the operands used by the instruction operating on register pairs.