Graphics Processor Thread Termination Tracking Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing systems face inefficiencies in managing thread termination during co-operative execution states, where all execution lanes must remain active until specific processing operations are finished, hindering early termination of threads that contribute to unnecessary work.

Innovation Solution

A mechanism is introduced to track and store thread termination events, allowing for immediate termination when possible without interfering with co-operative state operations, and subsequent termination once the co-operative state has concluded.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If execution lanes remain active during co-operative state operations, then processing operations can be completed, but threads that should be terminated continue to execute unnecessarily

Engineering Contradiction:
Improveshader program efficiencyVSAvoidcomputational expense
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent records thread termination events that occur during co-operative state operations, preparing to terminate threads early once the co-operative state ends. This preliminary recording allows the system to minimize unnecessary thread execution without interfering with ongoing co-operative operations, thereby improving efficiency while reducing computational waste.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If threads are terminated immediately upon termination events, then unnecessary work is prevented, but co-operative state operations may be interfered with

Engineering Contradiction:
Improvethread execution timeVSAvoidco-operative state operation integrity
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent implements a dynamic thread termination mechanism that adapts to the execution state. During co-operative state operations, termination events are recorded rather than executed immediately. Once the co-operative state ends, the recorded terminations are executed. This dynamic approach ensures co-operative operations complete reliably while still achieving early termination benefits when appropriate.

Inventive Principle:
Principle #15Dynamics

3Productivity

If all execution lanes are kept active during co-operative state, then processing operations can proceed, but resource usage increases

Engineering Contradiction:
Improveprocessing operation completionVSAvoidexecution lane resource usage
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent segments thread management into two phases: during co-operative state operations, execution lanes remain active to complete processing; after co-operative state ends, recorded thread terminations are executed to deactivate unnecessary lanes. This segmentation allows the system to balance resource usage with productivity by keeping lanes active only when necessary for co-operative operations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11900522B2Graphics processing
Publication Date: 2024.02.13 ARM LTD
  • US11900522B2 patent drawing
  • US11900522B2 patent drawing
  • US11900522B2 patent drawing

AI summary

Disclosed is a method of handling thread termination events within a graphics processor when a group of plural execution lanes are executing in a co-operative state. When a group of lanes is in the co-operative state, in response to the graphics processor encountering an event that means that a subset of one or more execution threads associated with the group of execution lanes in the co-operative state should be terminated: it is determined whether a condition to immediately terminate the subset of one or more execution threads is met. When the condition is not met, the group of execution lanes continue their execution in the co-operative state, but a record is stored to track that the threads in the subset of one or more execution threads should subsequently be terminated.