GPU Register File Operand Routing for Power Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing units (GPUs) face significant power consumption and routing resource challenges when executing gradient-type instructions, as they require operands from other execution instances, particularly in mobile devices where battery power is limited.

Innovation Solution

The implementation of an apparatus that sources operands for gradient-type instructions from a register file and selects them before routing to appropriate execution instances, reducing the need for power-consuming operand routing by ensuring all operands are accessed via the register file, thereby minimizing inter-pipeline dependencies and power usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If operands are routed directly between execution instances for gradient instructions, then execution speed is improved, but power consumption increases

Engineering Contradiction:
Improveexecution speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The patent introduces the register file as an intermediary component between execution instances. Instead of routing operands directly between execution instances, all operand access (including those from neighboring instances) goes through the register file, which mediates the data flow and reduces direct inter-instance routing requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The register file serves multiple functions: it acts as both the primary operand source for each execution instance and as a shared repository for operands from neighboring instances. This multi-functional design eliminates the need for separate dedicated routing paths for gradient operations.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If operands are sourced from multiple locations including forwarded results, then instruction execution flexibility is improved, but routing complexity increases

Engineering Contradiction:
Improveinstruction execution flexibilityVSAvoidrouting complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the operand selection function from the routing infrastructure and consolidates it in the register file. By taking out the complexity of multi-location operand sourcing and centralizing it in the register file's selection logic, the routing network itself becomes simpler while retaining execution flexibility.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If execution instances are grouped in 2×2 blocks for gradient operations, then gradient computation capability is improved, but routing resource consumption increases

Engineering Contradiction:
Improvegradient computation capabilityVSAvoidrouting resources
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent merges the operand sourcing paths for all four execution instances in a 2×2 block through the shared register file. Instead of maintaining separate routing paths for each instance's neighboring operands, the register file consolidates these paths, reducing the total quantity of routing resources required while preserving gradient computation capability.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9183611B2Apparatus implementing instructions that impose pipeline interdependencies
Publication Date: 2015.11.10 APPLE INC
  • US9183611B2 patent drawing
  • US9183611B2 patent drawing
  • US9183611B2 patent drawing

AI summary

Techniques are disclosed relating to implementation of gradient-type graphics instructions. In one embodiment, an apparatus includes first and second execution pipelines and a register file. In this embodiment, the register file is coupled to the first and second execution pipelines and configured to store operands for the first and second execution pipelines. In this embodiment, the apparatus is configured to determine that a graphics instruction imposes a dependency between the first and second pipeline. In response to this determination, the apparatus is configured to read a plurality of operands from the register file including an operand assigned to the second execution pipeline and to select the operand assigned to the second execution pipeline as an input operand for the first execution pipeline. The apparatus may be configured such that operands assigned to the second execution pipeline are accessible by the first execution pipeline only via the register file and not from other locations.