Branch Control Stack for Graphics Processor Flow

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In graphics processor architectures, the increased complexity of programs and higher operating frequencies lead to higher power consumption and voltage requirements, particularly due to the need to access and decode condition code values stored in general-purpose registers for branch instructions, which can be inefficient.

Innovation Solution

Implementing a branch control stack within a graphics processing unit (GPU) that generates and manipulates condition code values using stack operations, allowing condition code values to be accessed via a pointer, thereby reducing the need to access general-purpose registers and lowering power consumption by enabling conditional branching without address decoding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by stationary object

If condition code values are stored in general-purpose registers for branch instruction evaluation, then the processor can execute branch instructions, but the power consumption and voltage requirements increase due to register access and address decoding

Engineering Contradiction:
Improvepower consumptionVSAvoidbranch instruction evaluation efficiency
Core Design Contradiction:
Use of energy by stationary objectVSEase of operation

Solution Approach 1:

The patent extracts the condition code storage function from general-purpose registers and implements a dedicated branch control stack. This separation allows condition codes to be stored and accessed without involving the general-purpose register file and its associated address decoding logic, thereby reducing power consumption while maintaining branch evaluation functionality.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The branch control stack acts as an intermediary structure between the execution units that generate condition codes and the branch instruction evaluation logic. By using a stack-based mechanism with simple pointer operations instead of general-purpose register access, the system reduces the complexity and power consumption of address decoding while enabling efficient condition code retrieval for branch decisions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If a multi-stage scalar pipeline is used to execute instructions at higher frequencies, then instruction execution speed increases, but power consumption increases due to higher operating voltages

Engineering Contradiction:
Improveinstruction execution frequencyVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by stationary object

Solution Approach 1:

The patent segments the condition code storage and retrieval operation into simple stack push/pop operations that can be executed efficiently within the multi-stage pipeline. By breaking down the branch evaluation process into discrete pipeline stages that operate on stack data, the design enables high-frequency operation without requiring proportionally higher voltages, as each stage performs a limited, well-defined function.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the data access parameter from general-purpose register addressing (which requires complex address decoding and higher voltages) to stack pointer-based accessing (which uses simpler increment/decrement operations). This parameter change enables the pipeline to operate at higher frequencies with reduced voltage requirements, as the stack access mechanism has lower switching costs and power consumption.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8595473B2Method and apparatus for performing control of flow in a graphics processor architecture
Publication Date: 2013.11.26 VIA TECH INC
  • US8595473B2 patent drawing
  • US8595473B2 patent drawing
  • US8595473B2 patent drawing

AI summary

Methods and systems for performing control of flow in a graphics processor architecture are provided. For example, in at least one embodiment, a computing system includes a memory storing a plurality of instructions and a graphics processing unit. The graphics processing unit is configured to process the instructions according to a multi-stage scalar pipeline and store condition code values in the branch control stack. The graphics processing unit is further configured to process branch instructions using condition code values stored in the condition register at the top of the branch control stack.