Memory Allocation Policy for Heterogeneous Memory Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computer memory systems face challenges in efficiently allocating and managing disparate types of memories to meet the varying needs of applications, leading to suboptimal performance and resource utilization due to the lack of a systematic approach to match memory attributes with application requirements.

Innovation Solution

A method that involves creating a standing memory policy based on user-requested memory buffer attributes, which allows processors to store and retrieve data from appropriate memory devices, ensuring that page faults are addressed by selecting the right type of memory for the specific application needs, utilizing a combination of virtual and physical memory attributes and coherent device memory to optimize memory allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If disparate types of memories are used to meet varying application needs, then memory system versatility is improved, but memory allocation complexity increases

Engineering Contradiction:
Improvememory system versatilityVSAvoidmemory allocation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The memory system is segmented into multiple discrete memory types (e.g., high-speed memory, standard memory, slow memory) with distinct attributes. The standing memory policy divides memory allocation decisions into attribute matching rules that independently evaluate each memory type's characteristics against application requirements, making the complex heterogeneous system manageable through structured segmentation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A standing memory policy acts as an intermediary layer between the heterogeneous memory subsystems and applications. This policy translates diverse application memory requirements into standardized attribute matching rules, mediating the complexity by providing a uniform interface for memory allocation decisions across different memory types.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If memory allocation is optimized for specific application needs, then system performance is improved, but memory management complexity increases

Engineering Contradiction:
Improvesystem performanceVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The standing memory policy is established in advance with pre-defined attribute matching rules that encode optimization strategies for different application types. By performing the memory allocation optimization logic beforehand in the policy definition phase, the system achieves high performance without requiring complex real-time management decisions during runtime.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system optimizes performance by changing memory allocation parameters dynamically based on application characteristics. The standing memory policy allows adjustment of memory attributes (such as speed, capacity, persistence) according to specific application needs, enabling parameter-based optimization without requiring complex management overhead.

Inventive Principle:
Principle #35Parameter changes

3Speed

If page fault handling is optimized by selecting appropriate memory devices, then data retrieval speed is improved, but memory policy complexity increases

Engineering Contradiction:
Improvedata retrieval speedVSAvoidmemory policy complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The standing memory policy applies local quality by assigning specific memory attributes to different regions or types of data based on their access patterns and requirements. When handling page faults, the policy evaluates the specific data's characteristics and retrieves it from the most appropriate memory device locally optimized for that data type, achieving high retrieval speed without requiring global policy complexity.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11307796B2Mapping memory allocation requests using various memory attributes
Publication Date: 2022.04.19 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11307796B2 patent drawing
  • US11307796B2 patent drawing
  • US11307796B2 patent drawing

AI summary

A method stores data that handles page faults in an appropriate memory device based on a standing memory policy. One or more processors receive user requested memory buffer attributes that describe memory buffer attributes needed for various processes. The processor(s) store the user requested memory buffer attributes in an operating system virtual memory representation that describes various types of memories used by the system, create a standing memory policy based on the user requested memory buffer attributes, and store data on an appropriate memory device based on the standing memory policy. The processor(s) receive a page fault, which is based on the data being called by a process but not being currently mapped by a memory management unit (MMU) into a virtual address space of the process. The processor(s) then retrieve and return the data stored on the appropriate memory device in order to address the page fault.