Context-Indexed Cache Invalidation Filtering for Multi-Core CPUs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In systems with multiple CPU cores, invalidation requests for cache data can lead to performance issues due to the need to share and process these requests across all cores, causing inefficiencies and performance penalties, especially when one core repeatedly issues invalidations.

Innovation Solution

Implementing a data processing apparatus with cache circuitry indexed by execution contexts, receive circuitry for invalidation requests, invalidation circuitry, and filter circuitry to selectively invalidate data based on conditions, reducing unnecessary cache flushes by filtering irrelevant requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the entire cache is flushed in response to invalidation requests, then cache consistency is maintained, but cache performance deteriorates due to repeated full flushes

Engineering Contradiction:
Improvecache consistencyVSAvoidcache performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the cache invalidation process by introducing execution context identifiers that divide the cache into context-specific regions. Instead of flushing the entire cache, only the relevant context-specific cache lines are invalidated. This segmentation allows the cache to maintain consistency for affected contexts while preserving data in other contexts, thereby maintaining cache performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by making the cache invalidation targeted rather than universal. Each cache line is associated with a specific execution context, allowing the system to apply invalidation locally to only those cache lines that need it, rather than flushing the entire cache. This localized approach maintains overall cache performance while ensuring consistency where required.

Inventive Principle:
Principle #3Local quality

2Reliability

If cache checks are performed for each invalidation request, then cache consistency is ensured, but processing time increases

Engineering Contradiction:
Improvecache consistencyVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-associating execution context identifiers with cache lines during cache population. This pre-tagging allows the invalidation logic to quickly identify relevant cache lines using the context identifier from the invalidation request, avoiding the need for exhaustive checks of all cache lines. The preliminary association of context identifiers enables fast targeted invalidation while maintaining consistency.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If invalidation requests are shared across all CPU cores, then system-wide cache consistency is maintained, but performance impact increases due to repeated invalidations from single cores

Engineering Contradiction:
Improvesystem-wide cache consistencyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the invalidation propagation mechanism by introducing execution context identifiers that allow each core to track which contexts it is affected by. Instead of broadcasting invalidations to all cores regardless of relevance, the system can filter invalidations based on context identifiers, reducing the burden on cores that are not affected by particular invalidation requests while maintaining system-wide consistency where needed.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12475047B2Filtering invalidation requests
Publication Date: 2025.11.18 ARM LTD
  • US12475047B2 patent drawing
  • US12475047B2 patent drawing
  • US12475047B2 patent drawing

AI summary

A data processing apparatus is provided. Cache circuitry caches data, the data being indexed according to execution contexts of processing circuitry. Receive circuitry receives invalidation requests each referencing a specific execution context in the execution contexts. Invalidation circuitry invalidates at least some of the data in the cache circuitry and filter circuitry filters the invalidation requests based on at least one condition and, when the condition is met, causes the invalidation circuitry to invalidate the data in the cache circuitry.