Out-of-Order Processor Register Renaming for Data Dependency Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data processing systems face challenges in managing data dependencies between registers of different sizes, particularly in out-of-order processors, where existing methods either incur significant hardware overhead or performance impact due to data hazards caused by aliasing between single-precision and double-precision registers.

Innovation Solution

The system employs scheduling circuitry to detect data dependencies between micro-operations and implements a dual mechanism for handling hazards: a fast mechanism for common program instructions and a slower mechanism for less frequent ones, allowing for efficient management of data dependencies without excessive hardware overhead, by mapping source registers of one size to multiple registers of another size within the register file.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple rename tags at the smallest granularity are utilized for all instructions to track data dependencies, then data dependency tracking capability is improved, but the amount of state data that must be managed increases significantly

Engineering Contradiction:
Improvedata dependency tracking capabilityVSAvoidamount of state data
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies local quality by differentiating the tracking granularity based on instruction type. For VFP instructions operating on 64-bit registers, only 64-bit granularity tracking is applied. For NEON instructions operating on 128-bit registers, both 128-bit and 64-bit granularity tracking are applied. This selective application of tracking granularity reduces the overall state data requirement while maintaining necessary dependency tracking capability for each instruction type.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent segments the register file into distinct sections: a VFP register file for 64-bit registers and a NEON register file for 128-bit registers. This segmentation allows independent tracking mechanisms for each register type, avoiding the need to track all registers at the finest granularity uniformly across the entire register file, thereby reducing state data complexity.

Inventive Principle:
Principle #1Segmentation

2Ease of manufacture

If a simple hazard detection approach is used to stall instructions when aliasing hazards are detected, then implementation simplicity is improved, but processor performance deteriorates significantly

Engineering Contradiction:
Improveimplementation simplicityVSAvoidprocessor performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent implements a dynamic hazard detection mechanism that adapts its behavior based on the instruction type and register usage patterns. The scheduling circuitry dynamically determines whether a hazard exists by considering the specific instruction types (VFP vs. NEON) and their register usage, rather than applying a static stalling rule. This dynamic approach allows the processor to avoid unnecessary stalls while still detecting real hazards, thus maintaining performance while implementing hazard detection.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces an intermediary scheduling circuitry layer between the instruction fetch/decode stage and the execution stage. This scheduling circuitry acts as a mediator that intelligently analyzes incoming instructions, determines potential hazards based on register aliasing between VFP and NEON operations, and makes informed decisions about instruction issuance timing. This intermediary layer provides sophisticated hazard management without requiring simple stalling, thus maintaining performance while detecting hazards.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8386754B2Renaming wide register source operand with plural short register source operands for select instructions to detect dependency fast with existing mechanism
Publication Date: 2013.02.26 ARM LTD
  • US8386754B2 patent drawing
  • US8386754B2 patent drawing
  • US8386754B2 patent drawing

AI summary

An out-of-order renaming processor is provided with a register file within which aliasing between registers of different sizes may occur. In this way a program instruction having a source register of a double precision size may alias with two single precision registers being used as destinations of one or more preceding program instructions. In order to track this data dependency the double precision register may be remapped into a micro-operation specifying two single precision registers as its source register. In this way, scheduling circuitry may use its existing hazard detection and management mechanisms to handle potential data hazards and dependencies. Not all program instructions having such data hazards between registers of different sizes are handled by this source register remapping. For these other program instructions a slower mechanism for dealing with the data dependency hazard is provided. This slower mechanism may, for example, be to drain all the preceding micro-operations from the execution pipelines before issuing the micro-operation having the data hazard.