Client-Specific Shared Cache Replacement Policy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processor architectures with multiple instruction streams, shared translation lookaside buffers (TLBs) face performance issues due to cache thrashing, where one process's memory access patterns evict entries used by other processes, leading to increased cache miss rates and inefficient use of cache capacity.

Innovation Solution

Implementing a client-specific replacement policy in shared caches, where a restricted client's requests evict only from a subset of cache entries, while other clients can evict from any entry, using separate replacement information for each client to manage cache eviction and replacement.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a shared TLB is used for multiple instruction streams, then cache capacity is consolidated and shared, but cache thrashing occurs where one process's memory access patterns evict entries used by other processes, leading to increased cache miss rates

Engineering Contradiction:
Improvecache capacityVSAvoidcache hit rate
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The TLB cache is segmented into multiple client-specific portions, with each client having its own dedicated cache entries. This segmentation prevents different clients from evicting each other's entries, eliminating cache thrashing while maintaining shared cache capacity. Each client's memory access patterns are isolated in their own cache portion.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different portions of the TLB cache are assigned different qualities or characteristics tailored to specific clients. Each client receives cache entries optimized for their specific memory access patterns, allowing each client to have customized cache behavior while sharing the overall TLB structure.

Inventive Principle:
Principle #3Local quality

2Device complexity

If cache entries are replaced based on global recency of use, then cache management is simplified, but entries critical to one client may be evicted by another client's access patterns

Engineering Contradiction:
Improvecache management complexityVSAvoidclient-specific cache retention
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The cache management mechanism is segmented into client-specific replacement policies. Instead of a single global LRU policy, each client has its own replacement tracking, allowing independent management of cache entries for each client while maintaining overall simplicity through modular implementation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different replacement policies are applied to different client portions of the cache. Each client's cache entries are managed with policies tailored to their specific access patterns, ensuring that entries critical to one client are not evicted by another client's access patterns.

Inventive Principle:
Principle #3Local quality

3Speed

If the TLB cache size is limited to reduce latency, then access speed is improved, but cache capacity becomes insufficient for multiple concurrent instruction streams

Engineering Contradiction:
Improvememory access speedVSAvoidcache capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The TLB cache is divided into multiple smaller client-specific portions. Each client receives a dedicated portion sized according to their needs, allowing the overall cache to serve multiple concurrent instruction streams effectively. This segmentation enables better capacity utilization while maintaining fast access speeds through the distributed structure.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7415575B1Shared cache with client-specific replacement policy
Publication Date: 2008.08.19 NVIDIA CORP
  • US7415575B1 patent drawing
  • US7415575B1 patent drawing
  • US7415575B1 patent drawing

AI summary

A cache shared by multiple clients implements a client specific policy for replacing entries in the event of a cache miss. A request from any client can hit any entry in the cache. For purposes of replacing entries, at least of the clients is restricted, and when a cache miss results from a request by the restricted client, the entry to be replaced is selected from a fixed subset of the cache entries. When a cache misses results from a request by any client other than the restricted client, any cache entry, including a restricted entry, can be selected to be replaced.