Parallel Blit Corral Segmentation for Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In parallel graphics processing systems, blit operations face challenges in maintaining data integrity due to out-of-order execution, which can result in reading stale data and overwriting valid data, especially when destination and source pixel areas overlap.

Innovation Solution

The method involves dividing blit operations into batches, allowing reads and writes to occur asynchronously within each batch while ensuring all reads are completed before writes, using a 'corral' structure defined by entry and exit points across parallel processors to maintain data integrity and facilitate parallel processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If out-of-order execution is used to improve parallel processing performance, then processing speed increases, but data integrity deteriorates due to reading stale data and overwriting valid data

Engineering Contradiction:
Improveparallel processing performanceVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The blit operation is divided into batches of pixels, where each batch is processed independently through the corral mechanism. This segmentation allows out-of-order execution within batches while maintaining data integrity across the entire blit operation, as each batch's reads and writes are confined and managed separately.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The corral structure acts as an intermediary mechanism between read operations and write operations. It mediates the interaction by ensuring that all reads for a batch are completed before writes begin, while still allowing parallel processing. The corral manages the dependency ordering without requiring sequential execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If traditional serial processing is used to maintain data integrity, then data correctness is preserved, but processing speed decreases

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

By segmenting the blit operation into batches, the system enables parallel processing while maintaining data integrity. Each batch can be processed independently through the corral, allowing multiple batches to execute in parallel without interfering with each other's read-write ordering requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The corral mechanism maintains continuous processing by allowing reads and writes to proceed without idle waiting. Once a batch enters the corral, reads and writes continue through the batch pipeline without interruption, maximizing throughput while preserving ordering constraints.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If reads and writes are performed sequentially to ensure correctness, then data integrity is maintained, but operation time increases

Engineering Contradiction:
Improveblit correctnessVSAvoidoperation duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The corral serves as an intermediary that decouples read operations from write operations. It allows reads to proceed independently and then mediates the transition to writes, ensuring correctness without requiring sequential execution. This reduces the time penalty associated with strict sequential processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Reads for a batch are performed preliminarily before writes begin. The corral ensures that all reads for a batch are completed in advance, allowing writes to start immediately without waiting for read completion. This preliminary action eliminates idle time while maintaining correctness.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8059128B1Apparatus and method for performing blit operations across parallel processors
Publication Date: 2011.11.15 NVIDIA CORP
  • US8059128B1 patent drawing
  • US8059128B1 patent drawing
  • US8059128B1 patent drawing

AI summary

A method of performing a blit operation in a parallel processing system includes dividing a blit operation into batches of pixels, performing reads of pixels associated with a first batch in any order, confirming that all reads of pixels associated with the first batch are completed, and performing writes of pixels associated with the first batch in any order. The pixels of the first batch and pixels of additional batches are applied to parallel processors, where the parallel processors include a corral defined by entry points and exit points distributed across the parallel processors.