Layered memory management system with persistent perception

By coordinating intelligent memory allocation, lifecycle management, and independent persistent channels, the problem of insufficient consideration of persistent storage characteristics in existing memory management technologies has been solved, achieving efficient memory resource utilization and improved system performance.

CN120994374APending Publication Date: 2025-11-21SCHOOL OF SOFTWARE ZHEJIANG UNIV (NINGBO) MANAGEMENT CENT (NINGBO SOFTWARE EDUCATION CENT) +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511078368.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-08-01
Publication Date
2025-11-21

AI Technical Summary

Technical Problem

Existing memory management strategies fail to fully consider the characteristics of persistent storage, resulting in a decline in computing system performance under high load and strong persistence requirements.

Method used

A persistence-aware memory tiered management system is proposed, comprising an intelligent memory allocation module, a lifecycle management module, a heat-based object migration module, and an independent persistence channel module. Through adaptive decision-making, metadata management, and asynchronous migration mechanisms, the system optimizes data management for DRAM, CXL memory, and persistent storage.

Benefits of technology

It achieves intelligent memory allocation, object lifecycle management, and decoupling of persistence and migration paths under a multi-node heterogeneous memory architecture, improving system performance, resource utilization, and the flexibility and stability of data management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120994374A_ABST
    Figure CN120994374A_ABST
Patent Text Reader

Abstract

The invention discloses a memory hierarchical management system with persistent perception. The system comprises an intelligent memory allocation module used for receiving a memory request submitted by an application program; the life cycle management module is used for creating and maintaining metadata of the object after the memory object is allocated; the object migration module based on popularity grading is used for respectively maintaining an active linked list and an inert linked list in the DRAM node and the CXL memory node; and the independent persistent channel module is used for asynchronously writing the memory object with the persistent requirement into the persistent storage node through a dedicated channel independent of the conventional migration path. According to the method, intelligent memory allocation, object life cycle management, dynamic migration mechanism and independent persistent path collaboration under a multi-node heterogeneous memory architecture (namely a DRAM node, a CXL memory node and a disk) are realized, so that the system performance, the resource utilization rate and the flexibility of data management are improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The application relates to the technical field of computer system hardware management and maintenance, and particularly relates to a persistent-aware memory hierarchical management system. BACKGROUND

[0002] With the development of big data, artificial intelligence and high-performance computing, the demand for memory of computing systems is rapidly growing, but the traditional CPU-DRAM memory architecture gradually exposes bottlenecks in scalability, bandwidth and access delay. Especially in multi-core processing, heterogeneous computing and large-scale data processing applications, the memory system needs more efficient management strategies to cope with the performance differences between different storage media.

[0003] As a new type of high-speed interconnection protocol, CXL provides new possibilities for memory expansion, forming a multi-level memory architecture between DRAM and CXL. However, existing hierarchical management strategies mostly focus on data allocation between DRAM and CXL, and fail to fully consider the characteristics of persistent storage, resulting in performance degradation of the system in high-load and strong-persistence-demand scenarios. How to efficiently manage data between DRAM, CXL and persistent storage, and fully utilize the advantages of different storage layers, has become an important challenge to improve the performance and stability of computing systems. SUMMARY

[0004] To solve the above problems, the application provides a persistent-aware memory hierarchical management system.

[0005] The application includes:

[0006] An intelligent memory allocation module is configured to receive a memory request submitted by an application program, and to adaptively decide to allocate a memory object to a DRAM node, a CXL memory node or a persistent storage node according to object attribute information carried in the request and real-time collected state data of the DRAM node, the CXL memory node and the persistent storage node;

[0007] A life cycle management module is configured to create and maintain metadata of the memory object after the memory object is allocated, wherein the metadata at least includes object size, storage node type, hotness level, access frequency, access timestamp, historical access information and persistent state; the life cycle management module is further configured to dynamically update the metadata according to access behaviors of the object during running, and to trigger upgrade or downgrade operations of the object between the DRAM node and the CXL memory node according to the metadata;

[0008] The object migration module based on the heat level grading is used for maintaining active and lazy lists in DRAM nodes and CXL memory nodes respectively, classifying and managing objects according to the heat level, and migrating objects between the lists or between the nodes through an asynchronous migration mechanism.

[0009] The independent persistent channel module is used for writing memory objects with persistent requirements into a persistent storage node through a dedicated channel independent of a regular migration path, and restoring the objects to the DRAM node or the CXL memory node according to historical access information of the objects when the objects are reloaded, so as to decouple the persistent path and the migration path.

[0010] Further, the intelligent memory allocation module further determines the target node according to the following factors when making a decision:

[0011] a) the remaining capacity of the current DRAM node and the CXL memory node;

[0012] b) the real-time load pressure of the node;

[0013] c) whether the access mode of the object is high-frequency access;

[0014] d) whether the object explicitly declares a persistent requirement or an expected life cycle exceeds a preset threshold.

[0015] Further, the life cycle management module stores metadata in a dedicated metadata area independent of the user space, and guarantees the consistency of the metadata under concurrent access through atomic operations.

[0016] Further, the object migration module based on the heat level grading is respectively provided with:

[0017] a) an active list used for storing objects with a heat level higher than a first threshold;

[0018] b) a lazy list used for storing objects with a heat level lower than a second threshold;

[0019] c) an upgrade / demote candidate queue used for buffering objects for an observation period before migration.

[0020] Further, the observation period is configured as an adjustable parameter, and is not less than 100 times of a system clock period by default, so as to suppress frequent migration caused by short-term access jitter.

[0021] Further, the independent persistent channel module further includes:

[0022] a) a small object persistent submodule used for performing persistence through the DRAM node when the object size is less than or equal to a preset threshold;

[0023] b) a large object persistence submodule for performing persistence through a CXL memory node when the object size is greater than the threshold value;

[0024] c) a metadata synchronization submodule for synchronously writing the complete access history and metadata of the object to the persistent storage node during the persistence process.

[0025] Further, the asynchronous migration mechanism adopts a work-stealing-based task queue model to balance the migration load and reduce the interference to the application program threads in a multi-core processor environment.

[0026] Further, the lifecycle management module automatically generates a demotion request and adds the object to the lazy list when it is detected that the object hotness is continuously lower than a third threshold value for N sampling periods; N is a positive integer, and the default value range is 3 to 10.

[0027] Further, the independent persistence channel module determines whether to restore the object to the DRAM node or the CXL memory node according to the average value of the last K access intervals in the historical access information of the object when the object is reloaded; K is a positive integer, and the default value range is 5 to 20.

[0028] Further, the intelligent memory allocation module, the lifecycle management module, the object migration module, and the independent persistence channel module all run in the operating system kernel space and are exposed to the user space application program through a unified ioctl or mmap interface.

[0029] The present application has the following advantages: the present application realizes the cooperation of intelligent memory allocation, object lifecycle management, dynamic migration mechanism, and independent persistence path in a multi-node heterogeneous memory architecture (i.e., DRAM node, CXL memory node, and disk), thereby improving system performance, resource utilization, and flexibility of data management. BRIEF DESCRIPTION OF DRAWINGS

[0030] Figure 1 a running flowchart of the persistent-aware memory allocation;

[0031] Figure 2 a running flowchart of the migration, adjustment, and persistence of memory objects. DETAILED DESCRIPTION

[0032] In order to make the above-mentioned purposes, features, and advantages of the present application more obvious and easy to understand, the specific embodiments of the present application will be described in detail below with reference to the accompanying drawings.

[0033] In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present application. However, it will be apparent to one skilled in the art that the present application can be practiced without the specific details set forth in this description. In other instances, well-known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present application.

[0034] The technical solution of the present application mainly includes the following aspects:

[0035] I. Intelligent memory allocation mechanism

[0036] The present application proposes an intelligent memory allocation mechanism based on access characteristics and system state. The application program submits a memory request through a memory allocation interface. After receiving the request, the system combines real-time memory state data for comprehensive analysis, and determines the target memory allocation node using an adaptive decision algorithm.

[0037] If the DRAM resource is sufficient and the request object is high-frequency access data, it is preferentially allocated to the DRAM node to reduce access delay; if the DRAM resource is tight and the CXL resource is abundant, the object is allocated to the CXL node to ensure smooth overall system operation. When the object has a persistent demand or a longer expected life cycle and lower access frequency, the system can directly allocate it to the CXL node to realize persistent storage through the node.

[0038] II. Memory object life cycle management

[0039] The present application provides a complete life cycle management mechanism. After completing the memory object allocation, the system immediately creates and maintains its metadata information, including: allocation size, address, storage type, heat level, access frequency, access timestamp, historical information, and persistent state. The metadata is managed in a separate space, supporting dynamic updating of the object's state during operation.

[0040] The system dynamically adjusts its management strategy by continuously monitoring the object's access behavior and judging the object's heat change. For example, when the object's heat increases, it can be marked as an upgrade candidate object and migrated to a faster memory level in subsequent scheduling; when the object is in a low access state for a long time, its priority is reduced and it can be downgraded to a slow or persistent node. The life cycle management mechanism also supports complete metadata recording before object persistence and intelligent placement when the object is reloaded, avoiding unnecessary migration.

[0041] III. Object migration mechanism based on heat grading

[0042] The application constructs a memory object migration mechanism based on heat evaluation. The system maintains an "active list" and an "inactive list" for DRAM and CXL nodes respectively, and stores objects according to their heat levels. The daemon periodically polls the memory state to evaluate object heat, access frequency, access delay, and persistent history information, and dynamically adjusts the object's belonging in the list.

[0043] When the number of objects in the list exceeds the preset upper limit, the system will put the excess objects into the upgrade or downgrade candidate queue. The objects in the candidate queue need to go through an observation period before being migrated. If the migration conditions are met continuously, the migration operation is executed asynchronously. This buffering mechanism effectively avoids unnecessary frequent migration caused by short-term access fluctuations, ensuring system performance stability.

[0044] IV. Independent channel coordination mechanism with separate persistent and migration paths

[0045] The application further proposes a decoupled design of the persistent path and the conventional migration path. When the system detects that some memory objects have persistent needs, it does not go through the normal memory hierarchy downgrade path, but writes the objects asynchronously to the disk through an independent persistent channel, and completely retains their access history and metadata information.

[0046] The system determines whether to perform the persistent operation through the DRAM node or the CXL node according to the object size and the persistent priority. The writing of the persistent data does not block the main memory process, and at the same time, when the object is accessed again, its loading position is determined based on its access history, achieving efficient recovery. This mechanism supports background asynchronous writing, optimizing data consistency and system load balancing.

[0047] Embodiment I

[0048] Reference Figure 1 For the first embodiment of the application, the embodiment provides a running process of a persistent-aware memory allocation module, including receiving and processing of memory allocation requests and life cycle management of memory objects.

[0049] S1, receiving and intelligent decision of memory allocation request;

[0050] Specifically, the receiving of the memory request refers to that the application program first initiates a request to the allocator through a memory allocation interface, and transmits attributes such as object size, expected life cycle, access mode (optional persistent declaration). The intelligent decision refers to that the system analyzes the basic information of the request, including the size, expected life cycle and access mode of the memory object, and combines the real-time data collected by the monitor including the remaining capacity, load pressure, access delay distribution and historical access mode of the DRAM node and the CXL node to determine the location of the memory allocation.

[0051] After collecting the memory state information, the system makes decisions based on the current memory load and the characteristics of the application request. If the DRAM node resources are sufficient and the memory object requested is high-frequency access data, the allocator will directly allocate space in the DRAM node to provide the lowest access delay. Conversely, if the DRAM node is heavily loaded and the CXL node memory still has enough available space, the system will prefer to allocate the memory object to the CXL node to reduce the occupation of DRAM node resources, thereby improving the overall memory utilization.

[0052] More specifically, the system first determines the remaining memory size of the DRAM node and the CXL node. If the DRAM node memory is sufficient and the CXL node memory is insufficient, the memory object will be allocated to the DRAM node to maximize the efficiency of the object. Conversely, if the DRAM node memory is insufficient and the CXL node has more memory, the memory object will be preferentially allocated to the CXL node to ensure that the memory object can be used normally. If the memory of both nodes is sufficient, if the application explicitly declares that the object needs to be persistent or the object has a long expected life cycle and low access frequency, the system will directly allocate it to the CXL node for persistence through the CXL node channel to reduce the impact of memory object persistence on overall system efficiency. If not, it will be allocated to the DRAM node to optimize the overall system efficiency.

[0053] Through the analysis of the request and the intelligent decision of the system, seamless connection between DRAM node, CXL node and persistent storage is realized. The system not only can adaptively optimize according to the current memory load and application request characteristics, but also can continuously adjust the strategy during running to ensure that the memory resources are always reasonably and efficiently utilized. This intelligent allocation and migration mechanism enables high-performance computing, databases, big data analysis and other applications to achieve more stable and optimized performance in a multi-level storage architecture.

[0054] S2, memory object creation and its life cycle management;

[0055] Specifically, after the allocator determines the target memory node, the system creates the corresponding memory object in the node, while ensuring that all necessary metadata is stored. The life cycle management of the memory object refers to the storage and management of the metadata information of the memory object, so that the system can track its state throughout the object's life cycle.

[0056] After the allocator determines the location of the memory object, metadata is created and recorded, including the allocation size of the memory object, the allocation address, the storage node type, the initial hotness score, the access frequency counter, the access timestamp, the history information, the persistence state (whether it is a persistent object), etc. These metadata are managed in a separate space in the system, which is allocated and recycled by the system to ensure that the allocation of all metadata is independent and does not affect the efficiency of the overall system. After the object is created, the monitor continuously tracks its access state and dynamically adjusts the metadata to ensure that the memory management strategy can adapt to the running state of the application in real time.

[0057] More specifically, if a certain object is considered to be low-frequency access data in the initial allocation stage and is therefore stored in the CXL node memory, but the access frequency subsequently increases significantly, the system updates its hotness level according to the latest state and marks the object as a candidate for upgrading. In the subsequent memory scheduling process, the allocator may decide whether to migrate it to the DRAM node based on these dynamic information to optimize access performance.

[0058] On the contrary, if a certain memory object is initially allocated in the DRAM node but is in a low access state for a long time, the system may reduce its priority and gradually downgrade it to the CXL node or further persistent storage to release DRAM node resources for more important data.

[0059] In addition, the life cycle management of the system also ensures that all related information of each object can be recorded and utilized completely before it is recycled. For objects that have been persisted to disk, the system can also refer to their historical usage data when they are reloaded into memory, and can directly decide whether to put them directly into the DRAM node or the CXL node to reduce unnecessary migration overhead.

[0060] By recording and analyzing the full life cycle data of the memory object, the future memory usage mode is optimized. This life cycle management based on historical access behavior enables the system to more accurately improve memory access efficiency while reducing overall memory management costs.

[0061] Embodiment Two

[0062] Reference Figure 2 This is the second embodiment of the present application. The previous embodiment introduced the initialization of the memory object and the management of its life cycle. This embodiment introduces how the system migrates and adjusts the memory object during the application running process, and how the memory object is persisted.

[0063] S1, determine whether to migrate through hotness classification

[0064] Specifically, the hotness-based hierarchical migration strategy refers to that during the application running process, the monitor creates a daemon process responsible for continuously polling the DRAM nodes and the CXL node to track the state of the memory objects in real time, and classifies and manages the memory objects according to the real-time updated hotness scores.

[0065] The system sets active lists and lazy lists in the DRAM nodes and the CXL node, totaling 4 lists, for the classification and management of the memory objects. Among them, the active list mainly stores objects with high hotness and high access frequency, and the lazy list stores objects with low hotness and long time without access, which are regarded as low-priority data.

[0066] During the application running process, the monitor continuously polls the memory objects of the two DRAM nodes and the CXL node at a certain frequency, collects memory usage, analyzes the key attributes of each memory object, including hotness, access delay, access frequency, and disk storage related information, calculates the hotness of the memory object according to the key indicators such as access delay, access frequency, and disk information, and uses it to judge whether the object is still active.

[0067] Further, the access delay is used to measure the performance of memory access, so as to identify whether there is an access bottleneck caused by excessive use of the CXL node;

[0068] Further, the access frequency, combined with historical data, can be used to predict the future access pattern of the object and assist in memory migration decision-making;

[0069] Further, the disk information mainly involves the storage location of the persistent data, the last loading time, etc., to support the hierarchical management of hot and cold data.

[0070] If the system judges that the hotness of a memory object changes from low to high, it will be converted to the active queue, and if it judges that the hotness of a memory object changes from high to low, it will be converted to the lazy queue.

[0071] This list classification method can ensure that the memory objects of each node can be reasonably used, and at the same time, the migration of memory objects between nodes can be more efficient.

[0072] S2, migration based on promotion and demotion queues

[0073] Specifically, the migration based on promotion and demotion queues refers to that when the memory objects are migrated between the DRAM nodes and the CXL node, it is performed through the demotion queue set by the DRAM node and the promotion queue set by the CXL node.

[0074] During the application running process, the monitor continuously rates the hotness of the memory object, classifying it into an active list or an inert list. The system adds an upper limit to the active list and the respective inert list. If there are more memory objects in the CXL node in the active list, causing an event of exceeding the upper limit of the active list, the system migrates the newly generated memory object causing the exceeding to the upgrade queue. Similarly, if there are more memory objects in the DRAM node in the inert list, causing an event of exceeding the upper limit of the inert list, the system migrates the newly generated memory object causing the exceeding to the downgrade queue.

[0075] The migration of the memory object in the upgrade and downgrade queues does not occur immediately, but is first placed in the candidate queue of the respective node, and the access pattern is observed for a period of time. If the object continuously remains in a high access state and accumulates to a certain number, the memory object is formally migrated. In addition, the system migration adopts an asynchronous migration manner to reduce the impact on the application running efficiency. Through this buffering mechanism, the system can effectively reduce the problem of frequent data migration caused by short-term access fluctuations, and maintain the stability of the overall performance.

[0076] The entire upgrade and downgrade queue mechanism can effectively filter short-term access fluctuations and significantly reduce system jitter caused by frequent migration. At the same time, by using an asynchronous migration manner, the application performance is avoided from being blocked, and the stability and resource utilization efficiency of the heterogeneous memory system are significantly improved while achieving adaptive load balancing between the DRAM and the CXL node.

[0077] S3, independent persistent channel cooperation;

[0078] Specifically, the independent persistent channel cooperation refers to that the persistent operation is separated from the standard memory upgrade and downgrade migration path, and an independent persistent channel is used.

[0079] During the application running process, when the system continuously polls the persistent monitoring and finds that some objects have persistent requirements, the objects are marked as persistent candidates, and are distinguished from ordinary upgrade and downgrade operations in the memory scheduling process.

[0080] Specifically, if a memory object that needs to be persisted is small in size, the memory object is persisted through the DRAM node, and otherwise, if the memory object that needs to be persisted is large in size, the memory object is persisted through the CXL node. When the persistent channel is started, the data is not directly migrated to the CXL node according to the ordinary downgrade process, but the system writes the data into the disk through a special persistent channel, and at the same time ensures that all related metadata information is properly stored. In this way, even if the object is persisted to the disk, its access history can still be maintained by the system, thereby supporting subsequent fast loading and access, without affecting the normal migration operation of other objects.

[0081] In addition, during system operation, when the system detects that a certain object has not been accessed for a long time and is expected to have a low access frequency in the future, the persistence module triggers a background process to asynchronously write the data of the object to disk without blocking the normal use of the current memory. When subsequent memory objects need to be truly persisted, only the newly added part needs to be modified, greatly improving efficiency. When certain memory objects need to be accessed, they can be loaded back into the appropriate memory node from the disk through a special recovery mechanism based on the previous historical access state, ensuring that the memory objects can be used reasonably.

[0082] In summary, the present application decouples the persistence path and the migration path, enabling the system to achieve stable persistent storage of data while ensuring efficient memory management. This independent persistence channel not only reduces the interference of the ordinary migration process, but also further optimizes the allocation of storage resources in the system, making the management of persistent data more flexible and efficient. Combined with intelligent monitoring and access pattern analysis, the system can find the best balance between data migration and persistence, thereby improving performance while improving the scalability and stability of the overall storage system.

[0083] It should be noted that the above embodiments are only used to illustrate the technical solutions of the present application and not to limit it. Although the present application has been described in detail with reference to the preferred embodiments, those skilled in the art should understand that the technical solutions of the present application can be modified or replaced by equivalents without departing from the spirit and scope of the present application, which should be covered by the scope of the claims of the present application.

Claims

1. A persistence-aware memory tiered management system, characterized in that, include: The intelligent memory allocation module is used to receive memory requests submitted by applications and, based on the object attribute information carried in the request and the real-time collected status data of DRAM nodes, CXL memory nodes and persistent storage nodes, adaptively decide to allocate memory objects to DRAM nodes, CXL memory nodes or persistent storage nodes. The lifecycle management module is used to create and maintain the metadata of the memory object after it is allocated. The metadata includes at least the object size, storage node type, popularity level, access frequency, access timestamp, historical access information, and persistence status. The lifecycle management module is also used to dynamically update the metadata according to the access behavior of the object during runtime, and trigger the upgrade or downgrade operation of the object between the DRAM node and the CXL memory node accordingly. The object migration module based on popularity ranking is used to maintain active linked lists and lazy linked lists in DRAM nodes and CXL memory nodes respectively, classify and manage objects according to their popularity ranking, and migrate objects between linked lists or nodes through an asynchronous migration mechanism. It also includes an independent persistence channel module, which asynchronously writes memory objects with persistence requirements to persistent storage nodes through a dedicated channel independent of the regular migration path, and restores them to DRAM nodes or CXL memory nodes based on their historical access information when the objects are reloaded, thereby decoupling the persistence path from the migration path.

2. The system according to claim 1, characterized in that, The intelligent memory allocation module further determines the target node based on the following factors when making decisions: a) Remaining capacity of the current DRAM node and CXL memory node; b) Real-time load pressure of the node; c) Whether the object's access pattern is high-frequency; d) Whether the object explicitly declares a need for persistence or whether its expected lifecycle exceeds a preset threshold.

3. The system according to claim 1, characterized in that, The lifecycle management module stores metadata in a dedicated metadata area independent of the user space and ensures the consistency of metadata under concurrent access through atomic operations.

4. The system according to any one of claims 1 to 3, characterized in that, The heat-based object migration module is configured in both the DRAM node and the CXL memory node: a) An active linked list, used to store objects whose popularity level is higher than the first threshold; b) Lazy linked list, used to store objects whose heat level is below the second threshold; c) Upgrade / downgrade candidate queue, used for observation period buffering of objects before migration.

5. The system according to claim 4, characterized in that, The observation period is configured as an adjustable parameter, with a default value not less than 100 times the system clock cycle, in order to suppress frequent migrations caused by short-term access jitter.

6. The system according to claim 1, characterized in that, The independent persistent channel module further includes: a) Small object persistence submodule, used to perform persistence through DRAM nodes when the object size is less than or equal to a preset threshold; b) Large object persistence submodule, used to perform persistence through CXL memory nodes when the object size is greater than the threshold; c) Metadata synchronization submodule, used to synchronously write the complete access history and metadata of an object to the persistent storage node during the persistence process.

7. The system according to claim 1, characterized in that, The asynchronous migration mechanism employs a task queue model based on work stealing to balance the migration load and reduce interference with application threads in a multi-core processor environment.

8. The system according to claim 1 or 3, characterized in that, When the lifecycle management module detects that the popularity of an object is below the third threshold for N consecutive sampling periods, it automatically generates a degradation request and adds it to the lazy list; N is an adjustable positive integer, with a default value range of 3 to 10.

9. The system according to claim 6, characterized in that, When an object is reloaded, the independent persistent channel module determines whether to restore it to a DRAM node or a CXL memory node based on the average of the K most recent access intervals in its historical access information; K is an adjustable positive integer, with a default value range of 5 to 20.

10. The system according to claim 1, characterized in that, The intelligent memory allocation module, lifecycle management module, object migration module, and independent persistence channel module all run in the operating system kernel space and are exposed to user space applications through a unified ioctl or mmap interface.