Dynamic Cache Partitioning via Hardware-Managed Usage Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for monitoring cache usage are limited in their ability to effectively apply this information for dynamic cache partitioning, particularly in managing shared cache resources among multiple entities without requiring software intervention.

Innovation Solution

A system with a shared cache divided into non-overlapping regions, where each processor core has storage for core-specific identifiers and a controller manages memory requests by tracking cache usage information and updating partition descriptors based on hit/miss results, allowing dynamic adjustment of cache allocation for entities, including those outside the processor cores.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If cache partitioning is implemented to manage shared cache resources among multiple entities, then cache resource management efficiency is improved, but device complexity increases due to the need for partition information storage and controller management

Engineering Contradiction:
Improvecache resource management efficiencyVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The shared cache is divided into multiple non-overlapping regions that can be independently allocated to different entities. Each region can be assigned to a specific processor core or entity, enabling isolated cache management while maintaining overall shared access. This segmentation allows the system to track and manage cache usage per entity without requiring complex global management mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A controller is introduced as an intermediary component between the cache and the processor cores/entities. The controller receives memory requests, determines the requesting entity, checks partition information, and directs the request to the appropriate cache region. This intermediary simplifies the overall system by centralizing the complex partition management logic in a dedicated component.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If dynamic cache partitioning is implemented based on cache usage information, then adaptability is improved, but device complexity increases due to the need for tracking and updating partition information

Engineering Contradiction:
ImproveadaptabilityVSAvoiddevice complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system implements feedback mechanisms where the controller monitors cache usage patterns and partition performance. Based on this feedback, the system can dynamically adjust partition assignments and cache allocation strategies. The controller updates partition information in response to observed usage patterns, enabling adaptive cache management that responds to changing workloads and access patterns.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The cache partitioning scheme is made dynamic rather than static. Partition assignments can be changed based on real-time or historical cache usage information. The system can transition between different partition configurations to optimize performance under varying conditions, allowing the same physical cache structure to adapt to different access patterns and entity requirements.

Inventive Principle:
Principle #15Dynamics

3Reliability

If cache regions are allocated exclusively to specific entities, then cache hit rate is improved by reducing conflicts, but loss of information increases as entities cannot access cache lines outside their allocated regions

Engineering Contradiction:
Improvecache hit rateVSAvoidaccessibility
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The cache is segmented into multiple regions that can be exclusively allocated to different entities for write operations, preventing write conflicts. However, the segmentation is designed such that entities can still read from any cache region, maintaining information accessibility while preventing conflicts in the allocated regions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different regions of the cache have different access qualities assigned to different entities. Each entity is granted exclusive write access to its allocated region while maintaining read access to all regions. This local quality differentiation allows entities to have exclusive control over their assigned regions for performance optimization while still being able to access information in other regions when needed.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10282299B2Managing cache partitions based on cache usage information
Publication Date: 2019.05.07 MARVELL ASIA PTE LTD
  • US10282299B2 patent drawing
  • US10282299B2 patent drawing
  • US10282299B2 patent drawing

AI summary

Partition information includes entries that each include an entity identifier and associated cache configuration information. A controller manages memory requests originating from processor cores, including: comparing at least a portion of an address included in a memory request with tags stored in a cache to determine whether the memory request results in a hit or a miss, and comparing an entity identifier included in the memory request with stored entity identifiers to determine a matched entry. The cache configuration information associated with the entity identifier in a matched entry is updated based at least in part on a hit or miss result. The associated cache configuration information includes cache usage information that tracks usage of the cache by an entity associated with the particular entity identifier, and partition descriptors that each define a different group of one or more of the regions.