NUMA Cache Allocation Vector for Latency Variability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core microprocessors, the physically distributed nature of shared caches leads to variable latency and inconsistent performance due to applications or virtual machines accessing cache resources at varying distances, causing degraded performance for other applications or virtual machines.

Innovation Solution

A processor-based system with configurable combined private and shared caches uses sub-NUMA bit masks and client allocation bit masks to generate a cache allocation vector, dynamically allocating cache resources based on proximity and availability, ensuring efficient utilization and minimizing latency disparities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a shared L3 cache is physically distributed across multiple processing cores, then cache capacity is increased and more applications can access cache resources, but latency variability increases and performance consistency deteriorates due to varying physical distances from different cores to cache portions

Engineering Contradiction:
Improvecache capacityVSAvoidlatency variability
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The shared L3 cache is segmented into multiple cache modules, with each module physically associated with a specific processing core. This segmentation allows the cache to be divided into manageable units that can be selectively accessed, reducing the physical distance any single core needs to traverse and thereby reducing latency variability while maintaining total cache capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each processing core is given preferential access to the cache module physically closest to it, creating local quality differences in cache access. This ensures that each core has a 'local' cache portion with minimal access latency, while still allowing access to remote cache portions when necessary, thus reducing overall latency variability.

Inventive Principle:
Principle #3Local quality

2Productivity

If shared L3 cache resources are freely accessible to all applications, then resource utilization is maximized, but performance degradation occurs for other applications due to excessive consumption by individual applications or virtual machines

Engineering Contradiction:
Improveresource utilizationVSAvoidperformance consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The cache allocation system dynamically adjusts which cache modules are accessible to which applications based on runtime conditions, application priorities, and current system state. This dynamic allocation prevents any single application from monopolizing cache resources while maintaining high overall utilization through flexible reconfiguration.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback mechanisms that monitor cache usage patterns and performance metrics, then use this information to adjust cache allocation decisions. When an application consumes excessive cache resources, the system detects this through feedback and reallocates cache modules to maintain performance consistency across all applications.

Inventive Principle:
Principle #23Feedback

3Loss of time

If cache allocation is optimized for proximity to reduce latency, then performance consistency improves, but cache resource utilization may decrease due to preferential allocation to nearby cores

Engineering Contradiction:
Improvelatency consistencyVSAvoidcache resource utilization
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

Each cache module is designed to serve multiple functions and be accessible to multiple processing cores, not just the locally-associated core. While each core has preferential access to its local module, the modules are universally accessible to other cores when needed, ensuring both low latency for local access and high utilization through shared access to remote modules.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The cache system creates a composite structure where locally-optimized cache modules are combined with remotely-accessible cache modules, forming a unified cache hierarchy that exhibits both low-latency characteristics (from local modules) and high utilization characteristics (from remote module sharing).

Inventive Principle:
Principle #40Composite materials

Data Source

PatentEP4352622B1Apparatus and method for controlling allocations in a shared cache of a NUMA system
Publication Date: 2026.03.25 AMPERE COMPUTING LLC
  • EP4352622B1 patent drawingFigure 1
  • EP4352622B1 patent drawingFigure 2
  • EP4352622B1 patent drawingFigure 3A

AI summary

A processor-based system receives a cache allocation request to allocate a line in a shared cache, which may further include a client identification (ID). The cache allocation request and the client ID are compared to a sub-non-uniform memory access (NUMA) (sub-NUMA) bit mask (219a) and a client allocation bit mask (219b) to generate a cache allocation vector (219c). The sub-NUMA bit mask indicates that processing cores associated with a sub-NUMA region are available, whereas processing cores associated with other sub-NUMA regions are not available, and the client allocation bit mask indicates that processing cores are available. The sub-NUMA bit mask and the client allocation bit mask are combined to create a cache allocation vector for selecting a processing core that is to receive the cache allocation request.