Thread Exclusivity Instruction for Serial Graphics Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems face inefficiencies in executing shader programs due to the lack of mechanisms to ensure serial processing of graphics items, leading to unnecessary resource consumption, particularly in parallel multithreaded environments like modern mobile devices.

Innovation Solution

Incorporating a 'thread exclusivity instruction' in shader programs that allows only a subset of execution threads to execute specific instructions, ensuring that only one thread can proceed at a time, thereby implementing serial processing and reducing resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallel multithreaded execution is used in graphics processing, then processing throughput is improved, but resource consumption increases and serial processing requirements cannot be met

Engineering Contradiction:
Improveprocessing throughputVSAvoidresource consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system dynamically switches between parallel and serial execution modes based on the instruction type. Parallel execution is used for general processing to maximize throughput, while serial execution is activated specifically when thread exclusivity instructions are encountered, allowing the system to adapt its behavior to match the actual processing requirements and reduce unnecessary resource consumption

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Instead of forcing all threads to execute serially or all in parallel, the patent applies different execution modes to different instruction segments. Thread exclusivity instructions create localized serial execution regions where only one thread executes at a time, while other instructions continue to execute in parallel, providing local quality control over execution behavior

Inventive Principle:
Principle #3Local quality

2Speed

If parallel execution threads are allowed to execute simultaneously, then processing speed is improved, but correctness of serial operations cannot be guaranteed

Engineering Contradiction:
Improveprocessing speedVSAvoidcorrectness of serial operations
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

Thread exclusivity instructions act as intermediary control mechanisms that mediate between parallel execution threads. These instructions insert serial execution barriers that coordinate thread behavior, ensuring that when serial operations are required, only one thread executes at a time, thereby guaranteeing correctness while allowing parallel execution to proceed elsewhere

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If all execution threads execute all instructions, then completeness of processing is ensured, but efficiency is reduced due to unnecessary execution

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcompleteness of processing
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements partial execution where execution threads selectively execute only the instructions relevant to them. Thread exclusivity instructions enable this by allowing threads to skip or sleep during serial execution segments, performing only the partial action needed for their specific data items while maintaining overall processing completeness

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10943323B2Data processing systems
Publication Date: 2021.03.09 ARM LTD
  • US10943323B2 patent drawing
  • US10943323B2 patent drawing
  • US10943323B2 patent drawing

AI summary

An instruction is included in a program, which instruction causes execution threads of a processor executing the program to determine whether they satisfy a condition which can only be satisfied by a subset of one or more execution threads at any one time. If a thread satisfies the condition, it executes subsequent instructions in the program. Otherwise, the thread sleeps. The subsequent instructions in the program can accordingly be executed by one execution thread subset at a time in serial order.