Shared Memory Pool Caching for Multi-CPU Thin Provisioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing platforms face inefficiencies in memory utilization due to workloads using less memory than allocated, leading to idle resources and high costs from overprovisioning of memory, which is a costly component in data centers.

Innovation Solution

Implement memory thin provisioning using a shared memory pool across multiple compute nodes, dynamically allocating and deallocating memory at page or cache line granularity, with inclusive or exclusive cache configurations, and address translation for shared memory transactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory is overprovisioned to ensure adequate resources for all workloads, then reliability of memory availability is improved, but cost and resource efficiency deteriorate due to idle memory resources

Engineering Contradiction:
Improvememory availabilityVSAvoidphysical memory needed
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Multiple compute nodes are merged to share a common memory pool through the fabric interconnect. Instead of each compute node having dedicated memory, the memory resources are consolidated into a shared pool that serves multiple compute nodes, improving utilization efficiency while maintaining adequate availability for all workloads.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Memory allocation is made dynamic rather than static. The system continuously monitors workload demands and dynamically allocates memory from the shared pool to compute nodes based on actual needs. This allows memory resources to be flexibly reassigned between workloads, ensuring reliability while reducing the total quantity of physical memory required.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If memory is allocated statically to each compute node, then ease of operation is improved, but memory resource efficiency deteriorates due to idle resources when workloads use less allocated memory

Engineering Contradiction:
Improvememory allocation simplicityVSAvoidmemory utilization efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The memory management system operates autonomously to monitor workload demands and automatically allocate memory from the shared pool to compute nodes as needed. This self-service approach maintains ease of operation for users while dramatically improving memory utilization efficiency, as memory is dynamically assigned based on actual workload requirements rather than static allocation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements continuous feedback monitoring of workload memory consumption patterns. Based on this feedback, the memory management controller dynamically adjusts allocations from the shared pool, ensuring that compute nodes receive adequate memory while minimizing idle resources. This feedback mechanism maintains operational simplicity while optimizing utilization.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If memory capacity is increased to handle growing workload demands, then adaptability is improved, but cost deteriorates due to expensive memory components

Engineering Contradiction:
Improveworkload demand flexibilityVSAvoidmemory capacity
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The shared memory pool serves multiple compute nodes simultaneously, making the memory resources universal rather than dedicated. This multi-functionality allows the same physical memory capacity to support a larger total workload demand across the system, improving adaptability without proportionally increasing the quantity of memory required.

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

Solution Approach 2:

Memory capacity allocation is dynamic and adaptable to changing workload demands. When workload requirements increase, the system can allocate additional memory from the shared pool to affected compute nodes. When demands decrease, memory is freed back to the pool for reallocation. This dynamic approach provides adaptability while optimizing the total memory capacity needed.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12373335B2Memory thin provisioning using memory pools
Publication Date: 2025.07.29 INTEL CORP
  • US12373335B2 patent drawing
  • US12373335B2 patent drawing
  • US12373335B2 patent drawing

AI summary

Examples described herein relate to memory thin provisioning in a memory pool of one or more dual in-line memory modules or memory devices. At any instance, any central processing unit (CPU) can request and receive a full virtual allocation of memory in an amount that exceeds the physical memory attached to the CPU (near memory). A remote pool of additional memory can be dynamically utilized to fill the gap between allocated memory and near memory. This remote pool is shared between multiple CPUs, with dynamic assignment and address re-mapping provided for the remote pool. To improve performance, the near memory can be operated as a cache of the pool memory. Inclusive or exclusive content storage configurations can be applied. An inclusive cache configuration can include an entry in a near memory cache also being stored in a memory pool whereas an exclusive cache configuration can provide an entry in either a near memory cache or in a memory pool but not both. Near memory cache management includes current data location tracking, access counting and other caching heuristics, eviction of data from near memory cache to pool memory and movement of data from pool memory to memory cache.