Texture Cache Coherency via View Hashing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multiple views of a surface texture in texture processing hardware cause cache coherency and consistency issues, leading to increased cache misses and power consumption due to the need to invalidate all cache lines when data is written, which reduces cache performance.

Innovation Solution

A method that uses hash values associated with texture headers to determine potential aliasing between views, allowing only aliased cache entries to be invalidated, maintaining cache coherency and reducing unnecessary cache misses and system memory fetches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all cache lines are invalidated when data is written to any cache line, then cache coherency is maintained, but cache performance deteriorates and power consumption increases

Engineering Contradiction:
Improvecache coherencyVSAvoidcache performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the cache invalidation process by introducing view-specific cache entries and view identifiers. Instead of invalidating all cache lines uniformly, the system divides cache management into view-specific segments, allowing selective invalidation based on which view generated the write operation. This segmentation enables maintaining coherency for only the relevant view's cache entries rather than all cache lines.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by making cache coherency enforcement localized to specific views rather than applying it globally to all views. Each view has its own cache entries tagged with view identifiers, and invalidation operations are scoped to affect only the local view's cache entries. This localized approach maintains coherency where needed while avoiding unnecessary invalidations in other views.

Inventive Principle:
Principle #3Local quality

2Reliability

If all cache lines are invalidated when data is written, then cache coherency is maintained, but power consumption increases

Engineering Contradiction:
Improvecache coherencyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the cache invalidation process by introducing view-specific cache entries and view identifiers. Instead of invalidating all cache lines uniformly, the system divides cache management into view-specific segments, allowing selective invalidation based on which view generated the write operation. This segmentation enables maintaining coherency for only the relevant view's cache entries rather than all cache lines.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by performing invalidation only on the subset of cache entries that are actually affected by a write operation, rather than invalidating all cache lines. By using view identifiers to determine which cache entries belong to the writing view, the system performs just enough invalidation to maintain coherency without the excessive action of clearing the entire cache, thereby reducing power consumption.

Inventive Principle:
Principle #16Partial or excessive action

3Adaptability or versatility

If multiple views of a surface texture are simultaneously active, then texture processing flexibility is improved, but cache coherency problems arise

Engineering Contradiction:
Improvetexture processing flexibilityVSAvoidcache coherency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments cache management by view by introducing view identifiers that are associated with each cache entry. This segmentation allows multiple views to simultaneously access the texture cache without interfering with each other's coherency. Each view's cache entries are independently tracked and invalidated only when that specific view performs write operations, enabling flexible multi-view processing while maintaining reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces view identifiers as an intermediary mechanism that mediates between multiple views and the cache coherence protocol. These identifiers act as a intermediary layer that tracks which cache entries belong to which view, enabling the system to maintain coherency for each view independently while allowing simultaneous active views. This intermediary mechanism resolves the conflict between multi-view flexibility and cache coherency reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9448935B2Surface resource view hash for coherent cache operations in texture processing hardware
Publication Date: 2016.09.20 NVIDIA CORP
  • US9448935B2 patent drawing
  • US9448935B2 patent drawing
  • US9448935B2 patent drawing

AI summary

Techniques are disclosed for performing memory access operations. A texture unit receives a memory access operation that includes a tuple associated with a first view in a plurality of views. The texture unit retrieves a first hash value associated with a first texture header in a plurality of texture headers, where the first texture header is related to the first view. The texture unit retrieves a second hash value associated with a second texture header in the plurality of texture headers, where the second texture header is related to a second view. The texture unit determines whether the first view is potentially aliased with the second view, based on the first and second hash values. If so, then the texture unit invalidates a cache entry in a cache memory associated with the second texture header. Otherwise, the texture unit maintains the cache entry.