GPU Pipeline Dependency Resolution via Instruction Marking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing units (GPUs) face challenges in efficiently resolving dependencies between different pipelines, particularly in mobile applications where complex circuitry for handling instruction dependencies consumes power and reduces performance, and existing techniques like fence instructions slow down processing.

Innovation Solution

The implementation of special-purpose pipelines for executing specific graphics instructions in parallel, where one pipeline marks instructions corresponding to the same group of graphics elements, allowing the second pipeline to stall until the first pipeline has completed execution, thereby reducing dependency resolution complexity and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If complex circuitry is used to handle instruction dependencies (e.g., register renaming techniques), then dependency resolution capability is improved, but processor area and power consumption increase

Engineering Contradiction:
Improvedependency resolution capabilityVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The processor is divided into multiple special-purpose pipelines (interpolation pipeline, sampling pipeline, blending pipeline) that each handle specific types of instructions. This segmentation allows dependencies to be resolved within individual pipelines without requiring complex cross-pipeline dependency handling circuitry, thereby reducing power consumption while maintaining reliable dependency resolution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A pipeline control unit acts as an intermediary that coordinates execution between the special-purpose pipelines. It receives instructions, determines which pipeline should execute them, and manages the timing and ordering of operations across pipelines, enabling simple dependency resolution without complex circuitry in each pipeline.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If fence instructions are used to handle dependencies, then dependency resolution is achieved, but processing performance is reduced

Engineering Contradiction:
Improvedependency resolutionVSAvoidprocessing performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

By segmenting the execution flow into dedicated pipelines for interpolation, sampling, and blending operations, the system eliminates the need for fence instructions that would otherwise be required to enforce ordering between these operations. Each pipeline naturally maintains the correct execution order for its instruction type, improving performance while ensuring dependency resolution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The pipeline control unit preliminarily determines the execution order and assigns instructions to appropriate pipelines before execution begins. This preliminary organization ensures that dependencies are resolved through the natural sequencing of pipeline execution rather than requiring runtime fence instructions, thereby maintaining high processing performance.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If different pipelines are used to process different types of instructions, then processing efficiency is improved, but dependency checking complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddependency checking complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The processor architecture is segmented into specialized pipelines (interpolation pipeline for interpolate instructions, sampling pipeline for sample instructions, blending pipeline for blend instructions). This segmentation simplifies dependency checking because each pipeline handles a specific instruction type with predictable execution characteristics, reducing the complexity of cross-pipeline dependency analysis while maintaining high processing efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The pipeline control unit serves as an intermediary that manages instruction dispatch and coordination between specialized pipelines. It tracks which pipeline is executing which instruction and manages data flow between pipelines, thereby simplifying dependency checking by centralizing the coordination logic rather than requiring complex interaction protocols between independent pipelines.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9519944B2Pipeline dependency resolution
Publication Date: 2016.12.13 APPLE INC
  • US9519944B2 patent drawing
  • US9519944B2 patent drawing
  • US9519944B2 patent drawing

AI summary

Techniques are disclosed relating to dependency resolution among processor pipelines. In one embodiment, an apparatus includes a first special-purpose pipeline configured to execute, in parallel, a first type of graphics instruction for a group of graphics elements and a second special-purpose pipeline configured to execute, in parallel, a second type of graphics instruction for the group of graphics elements. In this embodiment, the apparatus is configured, in response to dispatch of an instruction of the second type, to mark a particular instruction of the first type with information indicative of the dispatched instruction. In this embodiment, the particular instruction and the dispatched instruction correspond to the same group of graphics elements. In this embodiment, the apparatus is configured to stall performance of the dispatched instruction until the first special-purpose pipeline has completed execution of the marked particular instruction. Exemplary instruction types include interpolate and sample instructions.