Coalescing Compressed Data Writes to Avoid Read-Modify-Write

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In graphics processing, modifying compressed data tiles in memory is inefficient due to the need for read-modify-write operations, which cause performance penalties as modern DRAMs struggle to switch from read to write mode quickly and result in de-pipelining of the frame buffer.

Innovation Solution

The system coalesces multiple write operations into a single write operation if data blocks completely cover a single compression tile, avoiding the need for read-modify-write operations by combining and writing data blocks as a single, coalesced operation to the frame buffer, ensuring efficient data transfer and maintaining continuous streaming.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If compressed tiles are modified in-memory, then data can be updated, but read-modify-write operations are required which cause performance penalties

Engineering Contradiction:
Improvedata modification capabilityVSAvoidperformance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The frame buffer is divided into compression tiles, each capable of independent compression. The system segments data blocks to match tile boundaries, enabling efficient updates without read-modify-write operations when data blocks align with tile edges.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary alignment of data blocks to compression tile boundaries before write operations. By pre-organizing data blocks to match tile boundaries, the system eliminates the need for read-modify-write cycles, improving performance while maintaining modification capability.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If read-modify-write operations are performed, then compressed tile data can be updated, but DRAM switching from read to write mode becomes slow

Engineering Contradiction:
Improvecompressed data updateVSAvoidDRAM mode switching speed
Core Design Contradiction:
Ease of operationVSSpeed

Solution Approach 1:

The system performs preliminary alignment of data blocks to compression tile boundaries before write operations. By pre-organizing data blocks to match tile boundaries, the system eliminates the need for read-modify-write cycles, improving performance while maintaining modification capability.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If read-modify-write operations are performed, then compressed tile data can be modified, but frame buffer de-pipelining occurs

Engineering Contradiction:
Improvecompressed tile modificationVSAvoidcontinuous streaming capability
Core Design Contradiction:
Ease of operationVSDuration of action of stationary object

Solution Approach 1:

The frame buffer is divided into compression tiles, each capable of independent compression. The system segments data blocks to match tile boundaries, enabling efficient updates without read-modify-write operations when data blocks align with tile edges.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary alignment of data blocks to compression tile boundaries before write operations. By pre-organizing data blocks to match tile boundaries, the system eliminates the need for read-modify-write cycles, improving performance while maintaining modification capability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8427495B1Coalescing to avoid read-modify-write during compressed data operations
Publication Date: 2013.04.23 NVIDIA CORP
  • US8427495B1 patent drawing
  • US8427495B1 patent drawing
  • US8427495B1 patent drawing

AI summary

Write operations to a unit of compressible memory, known as a compression tile, are examined to see if data blocks to be written completely cover a single compression tile. If the data blocks completely cover a single compression tile, the write operations are coalesced into a single write operation and the single compression tile is overwritten with the data blocks. Coalescing multiple write operations into a single write operation improves performance, because it avoids the read-modify-write operations that would otherwise be needed.