Cache Eviction Policy Decoupling via No-Update Load Operator

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processor architectures with hierarchical cache systems, the inefficiencies arise from the coupling of eviction policies with load instructions, leading to premature eviction of cache lines, increased latency, and wasted cache resources due to the serialization of threads waiting for data fetch, especially in multi-threaded environments where multiple threads access the same cache lines.

Innovation Solution

Implementing a method that decouples data pre-fetch from demand loads by using a 'no-update' operator in load instructions, which prevents the cache state information from being updated, allowing the eviction policy to respond solely to pre-fetch memory access requests rather than demand load operations, thereby optimizing cache line management and reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the eviction policy is coupled with demand load instructions, then cache state is updated on every load, but this causes premature eviction of cache lines before all threads can complete their demand loads

Engineering Contradiction:
Improvethread execution efficiencyVSAvoidthread stall latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the cache update mechanism by introducing a special load instruction type that does not update cache state information. This separates the data transfer function from the cache management function, allowing demand loads to occur without triggering eviction policy updates. The cache eviction mechanism is thus segmented into independent pre-fetch updates and demand load operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (the modified load instruction with no-update operator) that mediates between the demand load operation and the cache eviction policy. This intermediary prevents the direct coupling that causes the contradiction, allowing threads to perform demand loads without forcing cache state updates that would evict needed data.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple threads issue prefetch load instructions for the same cache line, then data fetch is coalesced efficiently, but demand loads may occur many cycles apart causing cache lines to be evicted

Engineering Contradiction:
Improvedata fetch efficiencyVSAvoidcache line retention time
Core Design Contradiction:
ProductivityVSDuration of action of stationary object

Solution Approach 1:

The patent segments the memory access operations into pre-fetch (which updates cache state) and demand load (which does not update cache state). This allows multiple threads to issue prefetch instructions that coalesce efficiently while updating cache state once, and then perform demand loads without additional state updates that would trigger evictions. The cache line retention is thus decoupled from the number of demand load operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by having threads issue prefetch load instructions before demand loads. The prefetch instructions populate the cache and update the eviction policy state in advance. Subsequent demand loads then occur without triggering additional evictions, ensuring cache lines remain retained for the duration needed by all threads.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If the cache prioritizes cache lines to remain longer, then demand loads can complete without stalls, but valuable cache capacity is wasted while other cache lines are evicted

Engineering Contradiction:
Improvethread stall reductionVSAvoidcache capacity utilization
Core Design Contradiction:
Loss of timeVSArea of stationary object

Solution Approach 1:

The patent segments cache state updates to occur only on pre-fetch operations, not on demand loads. This allows the cache to prioritize cache lines based on pre-fetch patterns (indicating future needs) rather than being influenced by every demand load operation. The eviction policy thus reflects actual data usage patterns more accurately, improving both retention time and capacity utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements feedback by having the eviction policy respond to pre-fetch patterns rather than demand load patterns. Pre-fetch instructions provide feedback about future data needs, allowing the cache to prioritize accordingly. Demand loads provide data transfer feedback without triggering eviction policy changes, creating a more accurate feedback loop for cache management.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9971699B2Method to control cache replacement for decoupled data fetch
Publication Date: 2018.05.15 NVIDIA CORP
  • US9971699B2 patent drawing
  • US9971699B2 patent drawing
  • US9971699B2 patent drawing

AI summary

A method, computer readable medium, and system are disclosed for decoupling data pre-fetch from demand loads. The method includes the steps of receiving, by a processor, a set of instructions that includes a load instruction; and executing, by the processor, the load instruction to perform a load operation. The load operation loads data from a cache unit into a register file. The load instruction includes a no-update operator that prevents the cache unit from updating the cache state information in response to the load operation. The result is that the eviction policy for the cache unit responds to the order of pre-fetch memory access requests rather than the demand load operations.