Window Buffer Dependency Checking for Pixel Shader Read-After-Write Hazards

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In 3D graphics pipelines, read-after-write hazards occur due to out-of-order execution of threads in the pixel shader, which can lead to incorrect access of data units, necessitating a method to check dependencies between data units.

Innovation Solution

A method and apparatus for checking dependencies of data units involve a window buffer and a window releaser that receive memory-access completion notifications, update processing statuses, and ensure that data units are not accessed until processing is complete, using a window checker and arbiter to coordinate access requests and prevent hazards.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If threads are executed in parallel in the pixel shader, then processing speed is improved, but read-after-write hazards occur due to out-of-order execution

Engineering Contradiction:
Improveprocessing speedVSAvoiddata access correctness
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent applies preliminary action by establishing a dependency checking mechanism before threads access shared data units. The system proactively identifies and resolves potential read-after-write hazards by checking dependencies in advance, allowing parallel execution to proceed safely without actual conflicts occurring.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary dependency checking mechanism that mediates between parallel threads and shared data units. This intermediary layer monitors access patterns, tracks which threads have written to which data units, and prevents unauthorized reads before they cause hazards, thus enabling parallelism while maintaining data correctness.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If dependency checking is implemented to prevent read-after-write hazards, then data integrity is improved, but device complexity increases

Engineering Contradiction:
Improvedata integrityVSAvoiddependency checking mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the dependency checking function into discrete, manageable components. Instead of a monolithic complex system, the mechanism is segmented into individual dependency tracking units that operate independently for each data unit, making the overall system more modular and easier to implement.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements self-service by enabling threads to autonomously manage their own dependency information. Each thread tracks its own write operations and communicates completion status, allowing the dependency checking mechanism to function with minimal external intervention and reduced system complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10115176B2Methods for checking dependencies of data units and apparatuses using the same
Publication Date: 2018.10.30 GLENFLY TECH CO LTD
  • US10115176B2 patent drawing
  • US10115176B2 patent drawing
  • US10115176B2 patent drawing

AI summary

A memory-access completion notification associated with a data unit is received from a thread of a pixel shader. A processing status associated with the data unit is obtained from a window buffer. The processing status is updated to indicate that the data unit has not been processed by any thread. The updated processing status is written into the window buffer.