Deferred Virtual Address Computation for Cache Tag Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional systems face performance issues in computing unique virtual addresses and cache tag comparisons for multiple threads, leading to increased dedicated circuitry requirements and reduced performance as the number of parallel threads increases.

Innovation Solution

The system defers complete virtual address computation until after a cache tag comparison, using a thread group address to determine cache hits/misses, and computes unique virtual addresses only when necessary, eliminating the need for dedicated circuitry for each thread and serializing cache accesses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If unique virtual addresses are computed in parallel for each thread, then address computation is completed, but dedicated circuitry increases and performance decreases

Engineering Contradiction:
Improveaddress computation throughputVSAvoiddedicated circuitry
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the address computation function into a shared resource that serves multiple threads, rather than providing dedicated circuitry for each thread. The address computation unit is shared across thread groups, reducing overall hardware complexity while maintaining computational capability through time-multiplexed access.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent performs preliminary actions by computing addresses for threads that experience cache misses, while threads with cache hits can proceed without waiting for complete address computation. This staged approach allows productive threads to advance while address computation for non-productive threads is deferred.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If dedicated circuitry is provided for each thread, then unique virtual address computation is enabled, but the amount of dedicated circuitry increases

Engineering Contradiction:
Improveaddress computation accuracyVSAvoiddedicated circuitry
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The address computation unit is designed as a universal resource that can serve multiple threads sequentially, rather than having dedicated units for each thread. The same computation logic is reused across different thread groups, achieving multi-functionality that reduces hardware complexity while maintaining accurate address computation for each thread.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

Threads that experience cache misses self-service by waiting for address computation to complete, while threads with cache hits continue execution without being blocked. This self-service mechanism allows the system to maintain reliability for address computation while avoiding the need for complex coordination circuitry.

Inventive Principle:
Principle #25Self-service

3Speed

If cache tag comparison is performed in parallel for each thread, then cache hits/misses are determined, but dedicated circuitry for comparison increases

Engineering Contradiction:
Improvecache lookup speedVSAvoidcache tag comparison circuitry
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent performs partial cache tag comparison using only the thread group address portion that is common to all threads in a group. This partial comparison is sufficient to determine whether any thread in the group might have a cache hit, avoiding the need for full parallel comparison of complete virtual addresses for each thread.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The virtual address is segmented into thread group address portions and thread-specific portions. The cache tag comparison uses only the thread group address segment, which is shared among threads in the group. This segmentation allows simplified comparison circuitry while maintaining cache lookup functionality.

Inventive Principle:
Principle #1Segmentation

4Productivity

If the number of parallel threads increases, then processing capacity increases, but the amount of dedicated circuitry increases and performance reduces

Engineering Contradiction:
Improveparallel processing capacityVSAvoiddedicated circuitry
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically adjusts the number of threads that can be serviced by the address computation unit based on cache hit/miss patterns. When many threads experience cache hits, fewer address computation resources are needed. When cache misses occur, the system dynamically allocates computation cycles to those threads, allowing the system to handle variable thread counts efficiently without proportional increases in dedicated circuitry.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8458440B2Deferred complete virtual address computation for local memory space requests
Publication Date: 2013.06.04 NVIDIA CORP
  • US8458440B2 patent drawing
  • US8458440B2 patent drawing
  • US8458440B2 patent drawing

AI summary

One embodiment of the present invention sets forth a technique for computing virtual addresses for accessing thread data. Components of the complete virtual address for a thread group are used to determine whether or not a cache line corresponding to the complete virtual address is not allocated in the cache. Actual computation of the complete virtual address is deferred until after determining that a cache line corresponding to the complete virtual address is not allocated in the cache.