Disaggregated Memory Pool Slice Assignment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data centers face inefficiencies due to resource stranding, where compute nodes are either idle or underutilized, leading to suboptimal resource allocation and high memory provisioning that exceeds actual usage, resulting in low total resource utilization.

Innovation Solution

A disaggregated memory pool is dynamically assigned to compute nodes in the form of slices, allowing flexible allocation and reallocation of memory resources, enabling efficient utilization and reducing waste through a request-based framework that manages memory allocation and deallocation without the need for hotplug protocols or additional hardware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory is provisioned in advance for each compute node, then reliability is improved, but device complexity and resource waste increase

Engineering Contradiction:
Improvememory availabilityVSAvoidmemory provisioning complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The memory pool is segmented into multiple slices that can be dynamically allocated to different compute nodes. Each slice represents a discrete unit of memory that can be independently managed, allowing the system to provide guaranteed memory availability while avoiding the complexity of pre-provisioning entire memory units to each node.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The memory allocation system transitions from static pre-provisioning to dynamic allocation. Memory slices can be assigned, unassigned, and reassigned based on actual computational needs, allowing the system to maintain reliability through on-demand allocation while reducing overall system complexity.

Inventive Principle:
Principle #15Dynamics

2Reliability

If memory is statically allocated to compute nodes, then reliability is improved, but adaptability deteriorates

Engineering Contradiction:
Improvememory allocation stabilityVSAvoidmemory reallocation flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system implements dynamic memory slice allocation where memory assignments can be adjusted in real-time based on computational workload demands. This allows the system to maintain stable memory availability for active workloads while simultaneously adapting to changing requirements by reallocating slices to different compute nodes as needed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The memory allocation system changes the parameter of memory assignment from fixed to variable. By controlling assignment and unassignment of memory slices based on computational needs, the system maintains reliability through controlled allocation while achieving adaptability through parameter adjustments in response to workload changes.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If hotplug protocols are implemented for dynamic memory allocation, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improvememory allocation flexibilityVSAvoidhotplug protocol complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the memory allocation control logic from complex hotplug protocols and implements a simplified assignment/unassignment mechanism. By removing the need for hotplug protocols entirely and using direct memory slice assignment to compute nodes, the system achieves the same adaptability with significantly reduced device complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

4Productivity

If memory slices are dynamically assigned and unassigned, then productivity is improved, but loss of time may increase during allocation operations

Engineering Contradiction:
Improvememory utilization efficiencyVSAvoidallocation operation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-segmenting the memory pool into slices and maintaining an assignment table that tracks current allocations. This preparation allows rapid assignment and unassignment operations to proceed efficiently without requiring complex real-time negotiations or protocol handshakes, thus improving productivity while minimizing time loss.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11853798B2Disaggregated memory pool assignment
Publication Date: 2023.12.26 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11853798B2 patent drawing
  • US11853798B2 patent drawing
  • US11853798B2 patent drawing

AI summary

Examples are disclosed that relate to a disaggregated memory pool. One example provides a memory system comprising a memory controller and memory attached to the memory controller and forming at least a portion of a disaggregated memory pool, the disaggregated memory pool including a plurality of slices that are each dynamically assigned to a respective compute node. The memory system is configured to receive a request to adjust an assignment of the memory pool to a requesting compute node, where the portion of the memory pool includes an unassigned slice that can satisfy the request, assign at least part of the unassigned portion to the requesting compute node, and where the portion of the memory pool does not include an unassigned slice that can satisfy the request, cause a request to be directed to another compute node to free at least one slice to the such compute node.