Cache Subsystem Blocking Aggressive Neighbor Interference

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-programmed environments with shared caches, poorly behaving programs can negatively impact other programs by displacing their data from the shared cache without benefiting from it, leading to inefficient resource utilization and performance interference.

Innovation Solution

A system and method that tracks the cache hit rates of processing entities and allocates data in a shared cache based on a figure of merit, prioritizing well-behaved programs by placing poorly behaving programs' data at lower levels in the cache replacement stack, thereby reducing their impact on other cores.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a shared cache is used by multiple processing entities, then cache resource utilization is improved, but poor cache behavior by one entity can negatively impact other entities

Engineering Contradiction:
Improvecache resource utilizationVSAvoidperformance interference from poorly behaving programs
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent applies local quality by differentiating cache allocation quality based on the behavior of individual processing entities. Well-behaved entities receive favorable allocation positions in the replacement stack, while poorly-behaved entities receive less favorable positions. This creates localized quality differences in cache service based on entity performance characteristics, resolving the contradiction between shared resource utilization and prevention of harmful interference.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent segments the cache replacement policy into multiple levels or positions within the replacement stack. Instead of a uniform replacement policy for all entities, the system divides the replacement hierarchy into segments where different entities are placed at different levels based on their cache behavior. This segmentation allows the system to maintain shared cache resources while preventing poorly-behaved entities from adversely affecting well-behaved ones.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If cache allocation is based on fair sharing among all processing entities, then resource fairness is improved, but aggressive neighbors can still displace beneficial data

Engineering Contradiction:
Improvecache allocation fairnessVSAvoiddata retention for well-behaved programs
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements dynamic cache allocation where the allocation position in the replacement stack is not fixed but changes based on the real-time cache behavior of processing entities. The system continuously monitors hit rates and adjusts allocation positions accordingly. This dynamic approach maintains fairness by adapting to current behavior patterns while ensuring reliability by protecting data from well-behaved programs that demonstrate consistent cache utility.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent employs feedback mechanisms where cache hit rates of processing entities are monitored and used to adjust future cache allocation decisions. The system feeds back performance information to the cache controller, which then modifies allocation positions in the replacement stack. This feedback loop ensures that fairness is maintained through adaptive response to actual usage patterns while protecting beneficial data through continuous performance monitoring.

Inventive Principle:
Principle #23Feedback

3Device complexity

If all processing entities are treated equally in cache allocation, then implementation simplicity is improved, but system performance is reduced due to aggressive neighbor interference

Engineering Contradiction:
Improvecache management complexityVSAvoidoverall system performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements a self-service mechanism where processing entities effectively allocate their own cache positions through their demonstrated behavior. The cache controller automatically adjusts allocation based on observed hit rates without requiring complex external intervention or manual configuration. This self-service approach maintains relative implementation simplicity while improving system performance by allowing the system to self-regulate based on actual usage patterns.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes the parameter of cache allocation position based on the cache behavior parameter (hit rate) of processing entities. Instead of using a fixed allocation scheme, the system dynamically adjusts the allocation parameter according to performance metrics. This parameter change approach resolves the contradiction by introducing performance-based differentiation without requiring fundamentally complex management structures.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7603522B1Blocking aggressive neighbors in a cache subsystem
Publication Date: 2009.10.13 GLOBALFOUNDRIES US INC
  • US7603522B1 patent drawing
  • US7603522B1 patent drawing
  • US7603522B1 patent drawing

AI summary

A system and method for managing a cache subsystem. A system comprises a plurality of processing entities, a cache shared by the plurality of processing entities, and circuitry configured to manage allocations of data into the cache. Cache controller circuitry is configured to allocate data in the cache at a less favorable position in the replacement stack in response to determining a processing entity which corresponds to the allocated data has relatively poor cache behavior compared to other processing entities. The circuitry is configured to track a relative hit rate for each processing entity, such as a thread or processor core. A figure of merit may be determined for each processing entity which reflects how well a corresponding processing entity is behaving with respect to the cache. Processing entities which have a relatively low figure of merit may have their data allocated in the shared cache at a lower level in the cache replacement stack.