Memory Tiering Near Far Swap Buffer OS Visibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The high cost of DDR SDRAM used as near memory in datacenter servers, which is typically around 50% of the total costs, and the fact that near memory is not visible or accessible to the Operating System, limiting its utilization.

Innovation Solution

Implementing memory multi-tiering by using near memory as a swap buffer for far memory instead of dedicated cache memory, allowing the CPU to continue caching data while exposing near and far memory to the OS as addressable system memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If near memory is used as dedicated cache memory for CPU, then CPU access speed is improved, but OS accessibility and memory utilization are worsened

Engineering Contradiction:
ImproveCPU access speedVSAvoidOS accessibility
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The near memory is designed to serve multiple functions simultaneously: it acts as cache memory for the CPU to maintain high access speed, while also being exposed as system memory to the OS for general-purpose storage and swapping operations. This multi-functionality resolves the contradiction by allowing the same memory resource to benefit both CPU performance and OS accessibility.

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

Solution Approach 2:

The memory management system dynamically adjusts the role and usage of near memory based on system conditions. The memory can switch between being primarily CPU cache, OS-accessible system memory, or swap buffer depending on workload requirements, allowing optimal performance characteristics to be maintained while providing OS accessibility when needed.

Inventive Principle:
Principle #15Dynamics

2Productivity

If near memory is used as dedicated cache memory, then CPU performance is improved, but capital investment costs are worsened

Engineering Contradiction:
ImproveCPU performanceVSAvoidcapital investment
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

By making near memory accessible to both CPU and OS simultaneously, the same memory capacity serves dual purposes: fast caching for CPU performance and expandable system memory for capacity needs. This eliminates the need for separate memory allocations, reducing total capital investment while maintaining performance benefits.

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

Solution Approach 2:

The invention merges the traditionally separate cache memory and system memory into a unified memory space that is accessible by both CPU and OS. This consolidation reduces the total amount of memory hardware needed, as the near memory fulfills multiple roles that previously required distinct memory components.

Inventive Principle:
Principle #5Merging (Combining)

3Quantity of substance

If near memory is exposed to OS as system memory, then memory capacity and accessibility are improved, but CPU access speed may be worsened

Engineering Contradiction:
Improvememory capacityVSAvoidCPU access speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The memory system is segmented into different accessible regions: a portion of near memory is optimized for CPU access as cache, while another portion is exposed to OS as system memory. This segmentation allows CPU performance-critical operations to use the fast cache portion, while the OS can utilize other portions for storage and swapping, maintaining speed for CPU operations while providing expanded capacity to the OS.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different regions of the near memory have different quality characteristics optimized for different purposes. The memory architecture provides locally optimized access paths: direct fast access for CPU cache operations, and controlled access through the memory controller for OS system memory operations. This local quality differentiation maintains high speed for CPU operations while providing expanded capacity to the OS.

Inventive Principle:
Principle #3Local quality

4Adaptability or versatility

If near memory is used as swap buffer for far memory, then memory utilization and OS accessibility are improved, but device complexity is worsened

Engineering Contradiction:
Improvememory utilizationVSAvoidmemory management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The memory management system implements self-service mechanisms where the memory controller automatically manages the swap buffer operations between near and far memory. The system monitors memory usage patterns and performs swapping operations autonomously without requiring complex external management, reducing the apparent device complexity while maintaining high utilization and accessibility.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20250110829A1Memory tiering techniques in computing systems
Publication Date: 2025.04.03 MICROSOFT TECHNOLOGY LICENSING LLC
  • US20250110829A1 patent drawing
  • US20250110829A1 patent drawing
  • US20250110829A1 patent drawing

AI summary

Techniques of memory tiering in computing devices are disclosed herein. One example technique includes retrieving, from a first tier in a first memory, data from a data portion and metadata from a metadata portion of the first tier upon receiving a request to read data corresponding to a system memory section. The method can then include analyzing the data location information to determine whether the first tier currently contains data corresponding to the system memory section in the received request. In response to determining that the first tier currently contains data corresponding to the system memory section in the received request, transmitting the retrieved data from the data portion of the first memory to the processor in response to the received request. Otherwise, the method can include identifying a memory location in the first or far memory that contains data corresponding to the system memory section and retrieving the data from the identified memory location.