GPU Cache Aliasing for Texture Invalidation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional cache invalidation schemes in graphics processing units (GPUs) are excessive and wasteful, particularly when combining texture load/read operations with surface store/write operations, as they often require invalidating entire blocks of data due to lack of coherence between different operations.

Innovation Solution

Implementing a parallel processor with a cache that uses multiple aliases for a block of data, allowing each parallel counterpart to invalidate only its corresponding alias, thereby reducing the impact of cache invalidation and maintaining data coherence across parallel operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional cache invalidation schemes are used to maintain data coherence between texture load/read operations and surface store/write operations, then data coherence is preserved, but entire blocks of data must be invalidated excessively and wastefully

Engineering Contradiction:
Improvedata coherenceVSAvoiddata retention
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The patent segments the cache invalidation process by introducing alias tags that allow individual cache lines to be invalidated separately. Instead of invalidating entire cache blocks, the system creates unique aliases for each parallel operation's cache line, enabling granular invalidation control. This segmentation resolves the contradiction by maintaining coherence (reliability) while preserving other cache lines that don't need invalidation (reducing loss of substance).

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by making each cache line have its own unique alias tag rather than using a common block identifier. This allows the invalidation operation to affect only the specific local cache line associated with a particular parallel operation, rather than affecting the entire cache block. This localised approach maintains data coherence where needed while preserving data elsewhere, reducing wasteful invalidation.

Inventive Principle:
Principle #3Local quality

2Productivity

If parallel counterparts operate on the same block of data with conventional invalidation, then operations can be performed in parallel, but cache invalidation impact is amplified across all counterparts

Engineering Contradiction:
Improveparallel operation throughputVSAvoidcache invalidation impact
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the cache invalidation scope by creating unique aliases for each parallel counterpart's cache line access. When one parallel counterpart invalidates its cache line, only that specific aliased cache line is invalidated, not the entire block shared by all parallels. This maintains parallel productivity while reducing the time loss from invalidation by limiting the invalidation scope to only what's necessary.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The alias tag acts as an intermediary between the parallel operation identifiers and the actual cache storage. This intermediary layer allows the system to track which specific cache lines are accessed by which parallel counterparts, enabling selective invalidation. The intermediary resolves the contradiction by facilitating parallel operations while controlling the invalidation impact through the alias mapping mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If multiple parallel counterparts access and modify the same data block, then processing efficiency is improved, but data coherence management becomes complex and invalidation overhead increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcoherence management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the coherence management problem by creating unique aliases for each parallel counterpart's cache line access. This segmentation transforms the complex problem of managing coherence across multiple parallels into simpler individual alias tracking. Each alias independently tracks its associated cache line, reducing the overall complexity of coherence management while maintaining processing efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates alias copies of the cache line identifiers rather than directly managing the original block addresses. These alias copies serve as simplified representations that are easier to manage and track individually. The copying mechanism reduces complexity by working with these simpler alias identifiers instead of complex block management, while still enabling efficient parallel access and selective invalidation.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10121220B2System and method for creating aliased mappings to minimize impact of cache invalidation
Publication Date: 2018.11.06 NVIDIA CORP
  • US10121220B2 patent drawing
  • US10121220B2 patent drawing
  • US10121220B2 patent drawing

AI summary

A parallel processor and a method of reducing texture cache invalidation are disclosed. In one embodiment, the parallel processor includes a cache configured to receive lines of data; and a parallel execution unit associated with the cache and configured to execute parallel counterparts of an operation. The parallel counterparts, when executed, are configured to create, in the cache, corresponding aliases of a line of data pertaining to the operation such that the parallel counterparts are operable to invalidate only the corresponding aliases.