Pixel Shader Thread Assembly via Shared Parameter Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multithreaded processing systems face challenges in reducing storage resources needed for pixel shader program threads, as existing methods require separate storage of common parameters for each thread, increasing die area and costs.

Innovation Solution

Pixels are assembled into launch groups within a pixel shader program thread buffer, sharing common parameters among multiple threads to minimize storage needs, allowing efficient use of limited parameter storage resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate copies of common parameters are stored for each pixel shader program thread, then each thread has full parameter access, but storage resources and die area increase significantly

Engineering Contradiction:
Improveparameter access completenessVSAvoidstorage resource consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges common parameters into a shared parameter storage location that is accessible by multiple pixel shader program threads. Instead of duplicating parameter copies in each thread's local storage, the system consolidates redundant parameter data into a single shared repository, allowing threads to access the same parameter instance. This directly reduces the quantity of stored data while maintaining complete parameter access for all threads.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared parameter storage structure serves multiple functions: it stores common parameters for multiple threads simultaneously, acts as a central repository that can be accessed by any thread needing those parameters, and reduces overall storage requirements. This universal storage mechanism eliminates the need for thread-specific parameter copies while ensuring all threads have access to the complete parameter set.

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

2Productivity

If more pixel shader program threads are executed simultaneously, then processing throughput increases, but storage resources for parameters are insufficient

Engineering Contradiction:
Improveprocessing throughputVSAvoidparameter storage capacity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

By merging common parameters into a shared storage location, the system enables more threads to execute simultaneously without proportionally increasing storage requirements. The shared parameter storage acts as a common resource pool that supports multiple concurrent threads, allowing the system to scale thread execution while maintaining efficient storage utilization.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system discards redundant parameter copies that would otherwise be stored in each thread's local memory. By eliminating these duplicate storages and recovering the space, the system can allocate resources to support a higher number of simultaneous thread executions, thereby increasing processing throughput without expanding the overall storage footprint.

Inventive Principle:
Principle #34Discarding and recovering

3Area of stationary object

If parameter storage size is reduced to save die area, then system cost decreases, but the ability to support concurrent threads is limited

Engineering Contradiction:
Improvedie areaVSAvoidthread concurrency support
Core Design Contradiction:
Area of stationary objectVSAdaptability or versatility

Solution Approach 1:

The patent merges parameter storage into a compact shared structure that reduces die area by eliminating redundant parameter copies. This consolidated storage approach maintains the ability to support multiple concurrent threads by providing a shared access mechanism, thus preserving thread concurrency capability while significantly reducing the physical area required for parameter storage.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Instead of copying parameter data to each thread's local storage (which consumes excessive space), the system uses a single shared copy that is referenced by multiple threads. This single-copy approach dramatically reduces storage requirements and die area while maintaining full parameter availability for all concurrent threads through shared access.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8081184B1Pixel shader program thread assembly
Publication Date: 2011.12.20 NVIDIA CORP
  • US8081184B1 patent drawing
  • US8081184B1 patent drawing
  • US8081184B1 patent drawing

AI summary

Systems and methods for assembling pixel shader program threads for execution based on resource limitations of a multithreaded processor may improve processing throughput. Pixels to be processed by the pixel shader program are assembled into a launch group for processing by the multithreaded processor as multiple shader program threads. The pixels are assembled based on parameter storage resource limitations of the multithreaded processor so that common parameters shared by multiple pixels are not stored separately for each pixel. Therefore, the limited parameter storage resources are efficiently used, allowing more shader program threads to execute simultaneously.