Multi-tenant Cache Fine-grained Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing systems, the disparity in frequency and bandwidth between CPUs/accelerators and memory leads to inefficiencies in cache allocation, as increasing cache size slows down operating frequency, and existing allocation methods either waste resources or fail to prioritize tenants effectively in multi-tenant environments.

Innovation Solution

Implementing a fine-grained allocation method in multi-tenant caches, where a guaranteed minimum number of entries are reserved for each tenant, allowing dynamic reallocation based on usage, ensuring that unused entries can be borrowed by other tenants, thus optimizing resource utilization and maintaining performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If cache size is increased to minimize CPU/Accelerator versus memory performance discrepancy, then cache capacity increases, but operating frequency decreases

Engineering Contradiction:
Improvecache sizeVSAvoidoperating frequency
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The cache allocation is made dynamic through per-tenant counters that track and adjust entry allocation in real-time. The system dynamically determines which cache entries to allocate to which tenants based on current usage patterns and guarantees, allowing the cache to adapt its configuration without changing physical hardware or sacrificing operating frequency.

Inventive Principle:
Principle #15Dynamics

2Quantity of substance

If more cache ways are added to increase cache size, then cache capacity increases, but operating frequency slows down

Engineering Contradiction:
Improvecache capacityVSAvoidoperating frequency
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The cache is segmented into tenant-specific allocated entries identified by unique tenant IDs. Each tenant has a guaranteed minimum number of entries reserved for them, and the cache is further segmented into allocated and unallocated portions. This segmentation allows independent management of cache resources without requiring additional cache ways.

Inventive Principle:
Principle #1Segmentation

3Productivity

If cache entries are reserved for multiple tenants, then resource utilization improves, but allocation flexibility decreases

Engineering Contradiction:
Improveresource utilizationVSAvoidallocation flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system maintains allocation flexibility through dynamic counter-based tracking. When a tenant's counter is below their guaranteed minimum, new entries are allocated and the counter increments. When a tenant's counter reaches their guarantee, further allocation requires borrowing from unallocated entries or other tenants. This dynamic adjustment mechanism preserves both resource utilization and allocation flexibility.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The cache allocation parameters are changed dynamically through counter values that reflect current allocation states. The system monitors counter values against guaranteed minimums and adjusts allocation decisions accordingly, allowing the cache to adapt to changing tenant needs while maintaining service level agreements.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11983117B2Fine-grained multi-tenant cache management
Publication Date: 2024.05.14 XILINX INC
  • US11983117B2 patent drawing
  • US11983117B2 patent drawing
  • US11983117B2 patent drawing

AI summary

The embodiments herein describe a multi-tenant cache that implements fine-grained allocation of the entries within the cache. Each entry in the cache can be allocated to a particular tenant—i.e., fine-grained allocation—rather than having to assign all the entries in a way to a particular tenant. If the tenant does not currently need those entries (which can be tracked using counters), the entries can be invalidated (i.e., deallocated) and assigned to another tenant. Thus, fine-grained allocation provides a flexible allocation of entries in a hardware cache that permits an administrator to reserve any number of entries for a particular tenant, but also permit other tenants to use this bandwidth when the reserved entries are not currently needed by the tenant.