Victim Cache Allocation for Shared System Cache Thrashing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing systems face inefficiencies in handling data eviction due to cache thrashing, where data is repeatedly evicted from the shared system cache, leading to increased latency and power consumption as processors frequently access system memory.

Innovation Solution

Implementing a victim cache with a cache controller that allocates evicted data based on its usefulness, determined by factors such as miss requests, prefetch accuracy, and streaming hints, to store data that is likely to be accessed again, thereby reducing unnecessary evictions and cache thrashing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the shared system cache size is increased to store more data, then data retrieval efficiency is improved, but the available on-chip area is exceeded and design constraints are violated

Engineering Contradiction:
Improvedata retrieval efficiencyVSAvoidon-chip area
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The victim cache is nested within the shared system cache structure, creating a hierarchical storage system where the victim cache serves as an additional layer for storing evicted data that may be reused, effectively increasing storage capacity without proportionally increasing the primary cache area

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The solution adds a temporal dimension to cache storage by implementing a victim cache that retains evicted data for a period, transforming the cache from a simple replacement structure to a multi-layered temporal storage hierarchy that improves retrieval efficiency without expanding the primary cache area

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If all evicted data is stored in the shared system cache, then data availability is improved, but cache thrashing occurs and processors frequently access system memory with larger latency

Engineering Contradiction:
Improvedata availabilityVSAvoidaccess latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The allocator selectively assigns different qualities of storage to different data based on their usefulness metrics, storing only high-value evicted data in the victim cache while allowing low-value data to be quickly replaced, thereby reducing cache thrashing and improving access latency for frequently needed data

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system changes the parameter of data retention by introducing a usefulness threshold that determines whether evicted data should be retained in the victim cache or discarded, dynamically adjusting cache content based on predicted future utility rather than using a fixed retention policy

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If the victim cache stores all evicted data, then memory capacity is improved, but the allocator complexity increases due to multiple factors to evaluate

Engineering Contradiction:
Improvecache capacityVSAvoidallocator complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The allocator implements partial action by evaluating only the most critical usefulness factors rather than exhaustively analyzing all possible data characteristics, storing only the portion of evicted data that meets the usefulness threshold, thereby managing complexity while still improving cache capacity utilization

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10963392B1Victim allocations in shared system cache
Publication Date: 2021.03.30 APPLE INC
  • US10963392B1 patent drawing
  • US10963392B1 patent drawing
  • US10963392B1 patent drawing

AI summary

A system and method for efficiently handling data selected for eviction in a computing system. In various embodiments, a computing system includes one or more processors, a system memory, and a victim cache. The cache controller of a particular cache in a cache memory subsystem includes an allocator for determining whether to allocate data evicted from the particular cache into the victim cache. The data fetched into the first cache includes data fetched to service miss requests, which includes demand requests and prefetch requests. To determine whether to allocate, the allocator determines whether a usefulness of data fetched into the particular cache exceeds a threshold. If so, the evicted data is stored in the victim cache. If not, the evicted data bypasses the victim cache. Data determined to be accessed by a processor is deemed to be of a higher usefulness.