Memory Allocation Policy for Heterogeneous Memory Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If memory allocation is optimized for specific application needs, then system performance is improved, but memory management complexity increases
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.
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.
3Speed
If page fault handling is optimized by selecting appropriate memory devices, then data retrieval speed is improved, but memory policy complexity increases
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.
Data Source
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.


