Memory pooling management system, memory pooling management method, electronic equipment and storage medium

By configuring address mapping relationships and operating system management in cloud servers, memory pooling management is realized, solving the problem of underutilization of cloud server memory resources, improving the reliability of memory management and reducing costs.

CN120407138APending Publication Date: 2025-08-01ALIBABA DAMO (HANGZHOU) TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202410138223.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-01-31
Publication Date
2025-08-01

AI Technical Summary

Technical Problem

In the prior art, when the memory requirements of cloud applications in cloud servers are not met, the storage capacity of other hosts in the rack of cloud servers is not fully utilized, and achieving efficient memory pooling management requires special software and hardware configurations, resulting in high deployment costs.

Method used

The first server configures the address mapping relationship between the first virtual memory and the extended device memory, and uses the extension switch to configure the address mapping relationship between the extended device memory and the pooled host memory, and combines the first and second operating systems to divide the pooled memory in the host memory to realize flexible memory management.

Benefits of technology

It balances memory resource capacity and user workload requirements, improves the reliability of memory pooling management, reduces latency and costs, and does not require changes to the application's source code.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120407138A_ABST
    Figure CN120407138A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a memory pooling management system, a memory pooling management method, electronic equipment and a storage medium. The memory pooling management system comprises a first server used for creating an expansion device memory through a first operating system and configuring a first address mapping relation between a first virtual memory and the expansion device memory; the second server is used for dividing a pooling host memory in a host memory of the second server through a second operating system; and the expansion switch is in communication connection with the first server through a first bus, is in communication connection with the second server through a second bus, and is used for configuring a second address mapping relation between the expansion equipment memory and the pooling host memory. The first server searches the first address mapping relation based on the virtual address to obtain an intermediate physical address, the extension switch routes the intermediate physical address to the access physical address, and the second server accesses the pooling host memory based on the access physical address.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present invention relate to the field of computer technology, and in particular, to a memory pooling management system, a memory pooling management method, an electronic device, and a storage medium. Background Art

[0002] Cloud services can provide flexible and elastic resource allocation based on virtualization and distributed computing. Through cloud services, users can deploy applications on cloud servers without caring about the underlying infrastructure and hardware details.

[0003] Generally, the memory requirements of cloud applications in cloud servers are usually much greater than the memory capacity that a single cloud server host can provide. Connecting extended memory to the host memory through a high-speed bus such as CXL can provide more memory capacity. However, the extended memory is a statically configured memory-only device, making it impossible to achieve an optimal balance between the memory resource capacity and the requirements of the user workload.

[0004] In addition, when the memory requirements of cloud applications in cloud server hosts are not met, the storage capacity of other hosts within the rack of the cloud server may still not be fully utilized. An effective solution to this challenge is to flexibly manage memory as a resource pool, that is, memory pooling management.

[0005] However, implementing efficient memory pooling management requires specialized software configuration and hardware configuration, and the deployment cost for applying it to existing cloud servers is relatively high. Therefore, an efficient and low-cost memory pooling management solution is needed. Summary of the Invention

[0006] In view of this, the embodiments of the present invention provide a memory pooling management system, a memory pooling management method, an electronic device, and a storage medium to solve the above problems.

[0007] According to the first aspect of the embodiments of the present invention, a memory pooling management system is provided, including: a first server for creating extended device memory through a first operating system and configuring a first address mapping relationship between the first virtual memory and the extended device memory; a second server for partitioning pooled host memory in the host memory of the second server through a second operating system; an extended switch communicatively connected to the first server through a first bus and communicatively connected to the second server through a second bus, where the extended switch is used to configure a second address mapping relationship between the extended device memory and the pooled host memory. The first server is used to find the first address mapping relationship based on the virtual address in the memory access request from the first operating system to obtain an intermediate physical address, the extended switch is used to route the intermediate physical address to an access physical address based on the second address mapping relationship, and the second server is used to access the pooled host memory based on the access physical address.

[0008] In another embodiment of the present invention, the first operating system sends a memory allocation request to the extended switch via the first bus, and the extended switch forwards the memory allocation request to the second operating system via the second bus, and the second operating system responds to the memory allocation request and partitions pooled host memory in the host memory of the second server.

[0009] In another embodiment of the present invention, a first processor running the first operating system receives the memory allocation request sent by the first operating system and sends a first interrupt instruction to the extended switch through the first bus to send the memory allocation request to the extended switch.

[0010] In another embodiment of the present invention, a second processor running the second operating system receives a second interrupt instruction sent by the extended switch through the second bus, responds to the second interrupt instruction, receives the memory allocation request, and responds to the memory allocation request to partition pooled host memory in the host memory of the second server.

[0011] In another embodiment of the present invention, when the free memory space in the host memory meets the memory allocation request, the second operating system creates the pooled host memory from the free memory space and returns a creation completion confirmation to the extended switch.

[0012] In another embodiment of the present invention, the memory allocation request includes a first base address for expanding the device memory, the creation completion confirmation includes a second base address of the pooled host memory, and the expansion switch generates a second address mapping table between the expanded device memory and the pooled host memory based on the first base address and the second base address, as an entry of the address routing table, and returns an allocation completion confirmation to the first operating system.

[0013] In another embodiment of the present invention, the first operating system sends a memory allocation request to the expansion switch via the access protocol of the first bus, and the expansion switch forwards the memory allocation request to the second operating system via the access protocol of the second bus. The pooled host memory is a large-page memory with continuous physical addresses.

[0014] In another embodiment of the present invention, the first operating system sends a memory release request to the expansion switch via the first bus, and the expansion switch marks the second mapping relationship as invalid in response to the memory release request.

[0015] In another embodiment of the present invention, the expansion switch forwards the memory release request to the second operating system via the second bus, and the second operating system releases the pooled host memory in response to the memory release request.

[0016] In another embodiment of the present invention, the expanded device memory is created in the first operating system when the host memory of the first server meets the memory expansion condition.

[0017] In another embodiment of the present invention, the memory expansion condition indicates that a physical memory page fault exception occurs when an application installed in the first operating system is running, and / or the physical memory capacity of the first server is less than a preset threshold.

[0018] In another embodiment of the present invention, the first operating system is specifically configured to configure page table entries and page descriptors. The page table entries indicate the correspondence between the memory page identifiers of the first virtual memory and the memory page identifiers of the expanded device memory, and the page descriptors are used to store the metadata structure of each physical page of the first operating system.

[0019] In another embodiment of the present invention, the expansion switch is further configured to add an identifier of the second server to the second mapping relationship, so that the second mapping relationship points to the corresponding second server.

[0020] According to a second aspect of an embodiment of the present invention, a memory pooling management method is provided, including: creating extended device memory through a first operating system of a first server, and configuring a first address mapping relationship between a first virtual memory and the extended device memory; partitioning pooled host memory in a host memory of the second server through a second operating system of the second server; configuring a second address mapping relationship between the extended device memory and the pooled host memory through an extended switch; based on the first server, looking up the first address mapping relationship according to a virtual address in a memory access request from the first operating system to obtain an intermediate physical address; based on the second address mapping relationship through the extended switch, routing the intermediate physical address to an access physical address; based on the second server, accessing the pooled host memory according to the access physical address.

[0021] According to a third aspect of an embodiment of the present invention, an electronic device is provided, including: a processor, a memory, a communication interface, and a communication bus, where the processor, the memory, and the communication interface complete communication with each other through the communication bus; the memory is used to store at least one executable instruction, and the executable instruction causes the processor to execute an operation corresponding to the method described in the first aspect.

[0022] According to a fourth aspect of an embodiment of the present invention, a computer storage medium is provided, on which a computer program is stored, and when the program is executed by a processor, the method described in the first aspect is implemented.

[0023] In the solution of the embodiment of the present invention, the first server configures a first address mapping relationship between the first virtual memory and the extended device memory, the extended switch configures a second address mapping relationship between the extended device memory and the pooled host memory, and the second server partitions the pooled host memory in the host memory of the second server, realizing a mapping relationship between the pooled host memory and the first virtual memory. Therefore, the first server looks up the first address mapping relationship according to the virtual address in the memory access request from the first operating system to obtain an intermediate physical address, the extended switch routes the intermediate physical address to the access physical address based on the second address mapping relationship, and the second server accesses the pooled host memory according to the access physical address, balancing the requirements of the memory resource capacity and the user workload, improving the reliability of the memory pooling management. The first server and the second server are connected to the extended switch through the first bus and the second bus, reducing the latency of the memory pooling management. In addition, the first address mapping relationship is configured through the first operating system, and the pooled host memory is partitioned through the second operating system, without modifying the source code of the application program, reducing the cost of the memory pooling management. Description of the Drawings

[0024] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings required for the description of the embodiments or the prior art. Obviously, the drawings in the following description are only some embodiments described in the embodiments of the present invention. For those of ordinary skill in the art, other drawings can also be obtained based on these drawings.

[0025] Figure 1 Schematic block diagram of the memory pooling management architecture for some embodiments of the present invention.

[0026] Figure 2 Schematic block diagram of the memory pooling management system for other embodiments of the present invention.

[0027] Figure 3A For Figure 2 Schematic diagram of the address mapping process of the embodiment.

[0028] Figure 3B For Figure 2 Schematic diagrams of the memory allocation process and the memory release process of the embodiment.

[0029] Figure 4A For Figure 2 Schematic diagram of the memory allocation process of the embodiment.

[0030] Figure 4B For Figure 2 Schematic diagram of the address mapping process of the embodiment.

[0031] Figure 5 Flowchart of the steps of the memory pooling management method for other embodiments of the present invention.

[0032] Figure 6 Schematic diagram of the structure of an electronic device for other embodiments of the present invention. Detailed implementation manners

[0033] To enable those skilled in the art to better understand the technical solutions in the embodiments of the present invention, the following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only some embodiments of the embodiments of the present invention, rather than all the embodiments. Based on the embodiments in the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art shall fall within the scope of protection of the embodiments of the present invention.

[0034] The following further illustrates the specific implementation of the embodiments of the present invention in conjunction with the drawings of the embodiments of the present invention.

[0035] Figure 1 Schematic block diagram of the memory pooling management architecture for some embodiments of the present invention. As Figure 1As shown in the figure, host #1 and host #2, which are cloud servers, are connected to an expansion switch through a first bus and a second bus. The expansion switch, which can also be referred to as an intelligent switch, is a switch used for memory pooling management. The expansion switch can be configured based on FPGA or ASIC so that it can efficiently execute communication protocol processing or data processing in a specific mode. In addition, the first bus and the second bus can be high-speed buses. By connecting the first bus and the second bus to the expansion switch, efficient and low-latency data transmission can be performed between host #1 and host #2 to achieve efficient memory pooling management.

[0036] Furthermore, a processor, a host memory, and a local agent for memory pooling management are provided in host #1 and host #2. It should be understood that the local agent can also be part of the non-processing core of the processor, including a memory controller and a bus controller. The bus controller is used to control the data processed by the processor to be sent via the first bus or the second bus, or to receive the data sent by the first bus or the second bus for the processor to process. The memory controller can implement the management of the address mapping table between virtual addresses and physical addresses and the data access management for the host memory, etc.

[0037] The following will combine Figure 2 to describe in detail the memory pooling management system of some other embodiments of the present invention. Figure 2 The memory pooling management system can be based on Figure 1 the memory pooling management architecture. Figure 2 The memory pooling management system includes:

[0038] In addition, the first server 210 is used to create an extended device memory through a first operating system and configure a first address mapping relationship between the first virtual memory and the extended device memory.

[0039] It should be understood that the extended device memory can be the memory space of a host-managed device memory (HDM). In addition, a host memory such as DRAM can also be provided in the first server.

[0040] It should also be understood that the first operating system is specifically used to configure page table entries and page descriptors. The page table entries indicate the correspondence between the memory page identifiers of the first virtual memory and the memory page identifiers of the extended device memory, and the page descriptors are used to store the metadata structure of each physical page of the first operating system. As Figure 3A shown, the first operating system constructs a first address mapping relationship with the page table entries and page descriptors.

[0041] In addition, the second server 220 is used to divide a pooled host memory in the host memory of the second server through a second operating system.

[0042] It should be understood that the host memory set in the second server can be a volatile storage medium such as DRAM. The pooled host memory is at least a part of the physical memory space of the host memory. In addition, the second server 220 can also use the address mapping relationship between the second virtual memory and the remaining host memory for memory access local to the second server.

[0043] In addition, the expansion switch 230 is communicatively connected to the first server through the first bus 240 and to the second server through the second bus 250. The expansion switch 230 is used to configure a second address mapping relationship between the expansion device memory and the pooled host memory, as Figure 3A shown.

[0044] It should be understood that the expansion switch can be configured by an FPGA or an ASIC to achieve efficient data processing. The second address mapping relationship can be configured in a storage medium such as DRAM or SRAM. In addition, a routing module can be provided in the expansion switch, and the routing module performs address routing based on the second address mapping relationship, as Figure 3A shown. In addition, the first bus and the second bus can be any type of high-speed bus, for example, CXL, etc. The expansion switch further includes a communication interface connected to the first bus and the second bus.

[0045] In addition, the first server 210 is used to look up the first address mapping relationship based on the virtual address in the memory access request from the first operating system to obtain an intermediate physical address. The expansion switch 230 is used to route the intermediate physical address to an access physical address based on the second address mapping relationship. The second server 220 is used to access the pooled host memory based on the access physical address.

[0046] In the solution of the embodiment of the present invention, the first server configures a first address mapping relationship between the first virtual memory and the expansion device memory, the expansion switch configures a second address mapping relationship between the expansion device memory and the pooled host memory, and the second server divides the pooled host memory in the host memory of the second server, realizing the mapping relationship between the pooled host memory and the first virtual memory. Therefore, the first server looks up the first address mapping relationship based on the virtual address in the memory access request from the first operating system to obtain an intermediate physical address, and the expansion switch is based on the second address mapping relationship ( Figure 3BIn the address mapping table), the intermediate physical address is routed to the access physical address, and the second server accesses the pooled host memory based on the access physical address, balancing the memory resource capacity and the requirements of the user workload, improving the reliability of memory pooling management. The first server and the second server are connected to the expansion switch through the first bus and the second bus, reducing the latency of memory pooling management. In addition, the first address mapping relationship is configured by the first operating system, and the pooled host memory is partitioned by the second operating system without modifying the source code of the application program, reducing the cost of memory pooling management.

[0047] In some other examples, the first operating system sends a memory allocation request to the expansion switch via the first bus, and the expansion switch forwards the memory allocation request to the second operating system via the second bus. The second operating system responds to the memory allocation request and partitions the pooled host memory in the host memory of the second server, thereby allocating the pooled host memory that the first server can use in the second server with low latency and high efficiency through the first bus and the second bus.

[0048] In some other examples, the first processor running the first operating system receives the memory allocation request sent by the first operating system and sends a first interrupt instruction to the expansion switch through the first bus to send the memory allocation request to the expansion switch. For example, as Figure 3B shown, the interrupt module of the first server sends a first interrupt instruction to the expansion switch to send the memory allocation request to the expansion switch, thereby reliably executing the memory allocation process by reusing the interrupt mechanism between the expansion switch and the first processor. Further, the memory allocation request can be sent through the peripheral access protocol of the first bus, reusing the peripheral access protocol of the first bus and improving the efficiency of memory allocation. For example, the peripheral access protocol of the first bus can be the CXL.io protocol.

[0049] In some other examples, the second processor running the second operating system receives the second interrupt instruction sent by the expansion switch through the second bus, and in response to the second interrupt instruction, receives the memory allocation request, and in response to the memory allocation request, partitions the pooled host memory in the host memory of the second server. For example, as Figure 3B shown, the interrupt module of the second server partitions the pooled host memory in response to the second interrupt instruction of the expansion switch, thereby reliably executing the memory allocation process by reusing the interrupt mechanism between the expansion switch and the second processor. Further, the pooled host memory can be partitioned through the peripheral access protocol of the second bus, reusing the peripheral access protocol of the second bus and improving the efficiency of memory allocation. For example, the peripheral access protocol of the second bus can be the CXL.io protocol.

[0050] Further, the second processor returns a response to the second interrupt instruction to the expansion switch, and the second processor continues the process interrupted by the second interrupt instruction. Wherein, the response to the second interrupt instruction indicates that the partitioning of the pooled host memory is completed in the host memory of the second server.

[0051] Further, the expansion switch returns a response to the first interrupt instruction to the first processor and continues to execute the process interrupted by the first interrupt instruction. Wherein, the response to the first interrupt instruction indicates that the expansion switch provides the partitioned pooled host memory to the first server.

[0052] In some other examples, when the free memory space in the host memory of the second operating system meets the memory allocation request, the second operating system creates a pooled host memory from the free memory space and returns a creation completion confirmation to the expansion switch, thereby reliably and efficiently allocating the pooled host memory. For example, the expansion switch can sequentially ask each second server for the pooled host memory that meets the memory allocation request based on a preset order (e.g., randomly). When the current second server receives the memory allocation request, if there is no pooled host memory that meets the memory allocation request in the second server, it can return a notification of memory allocation failure to the expansion switch. Thus, the expansion switch sends the memory allocation request to the next second server until the expansion switch receives the pooled host memory that meets the memory allocation request and the creation completion confirmation, thereby further reliably and efficiently allocating the pooled host memory.

[0053] Further, the memory allocation request includes the first base address of the extended device memory, and the creation completion confirmation includes the second base address of the pooled host memory. The expansion switch generates a second address mapping table between the extended device memory and the pooled host memory based on the first base address and the second base address, as an entry in the address routing table, and returns an allocation completion confirmation to the first operating system. That is to say, the pooled host memory of each second server can be configured in an entry of an address routing table to achieve efficient memory pooling management, as Figure 4A shown.

[0054] Further, the expansion switch is further configured to add the identifier of the second server to the second mapping relationship, so that the second mapping relationship points to the corresponding second server. For example, the pooled host memory corresponds to the identifier of the second server. For example, the identifier of the second server can be added to the entry of the address routing table corresponding to the second server to form a corresponding relationship between the identifier of the second server, the pooled host memory, and the extended device memory.

[0055] Specifically, as Figure 4BAs shown, in the first server, the first virtual memory has a memory space from V_start to V_end, the host memory has a memory space from 0x0 to 0x100,0000,0000, the extended device memory has a memory space from 0x100,0000,0000 to 0x104,0000,0000, and the first operating system establishes a first address mapping relationship between the two. In the second server, the pooled host memory has a memory space from 0x0 to 0xZZZZ,ZZZZ,ZZZZ. In the extended switch, the memory space corresponding to the extended device memory is from 0x0 to 0x4,0000,0000, and each entry in the established second address mapping relationship (i.e., the address routing table from 0x0 to 0x10) is the corresponding relationship between the extended device memory and the pooled host memory. For example, when performing a remote memory access, the virtual address of the first virtual memory is 0xXXXXXXXXXX. By looking up the first address mapping relationship, the intermediate physical address 0x101,0000,0000 is obtained in the extended device memory. Then, the corresponding intermediate physical address 0x1,0000,0000 is determined in the extended switch, and based on the entry 0x4 in the address routing table, the access physical address 0xYYYYYYYYYYYY is obtained to access the pooled host memory.

[0056] In some other examples, the first operating system sends a memory allocation request to the extended switch via the access protocol of the first bus, and the extended switch forwards the memory allocation request to the second operating system via the access protocol of the second bus. The pooled host memory is a large page memory with continuous physical addresses. When reusing the access protocol of the second bus to access the second processor, the pooled host memory is a large page memory with continuous physical addresses, which is beneficial for efficiently reading and writing the pooled host memory and further improves the memory pooling management efficiency.

[0057] In some other examples, the first operating system sends a memory release request to the extended switch via the first bus. For example, as Figure 3B shown, the first server sends a memory release request to the extended switch via the first bus through the interrupt module. Without loss of generality, the first processor running the first operating system receives the memory release request sent by the first operating system and sends a third interrupt instruction to the extended switch through the first bus to send the memory release request to the extended switch.

[0058] Accordingly, in response to the memory release request, the extended switch marks the second mapping relationship as invalid. In this example, the memory release request sent via the first bus releases the second mapping relationship, freeing up more available storage space and efficiently performing memory pooling management. Without loss of generality, the second processor running the second operating system receives the fourth interrupt instruction sent by the extended switch via the second bus, and in response to the fourth interrupt instruction, receives the memory release request and, in response to the memory release request, releases the pooled host memory in the host memory of the second server.

[0059] In some other examples, the extended switch forwards the memory release request to the second operating system via the second bus, and the second operating system responds to the memory release request by releasing the pooled host memory. For example, as Figure 3B shown, the second server responds to the memory release request through the interrupt module and releases the pooled host memory. In this example, the memory release request sent via the second bus releases the pooled host memory, enabling the second server to have more available host memory capacity and efficiently performing memory pooling management.

[0060] In some other examples, when the host memory of the first server in the first operating system meets the memory expansion condition, extended device memory is created.

[0061] Specifically, the memory expansion condition indicates that a physical memory page fault exception occurs when an application installed in the first operating system is running, and / or the physical memory capacity of the first server is less than a preset threshold. That is, when the memory expansion condition indicates that a physical memory page fault exception occurs when an application installed in the first operating system is running, it is beneficial to timely allocate the pooled host memory to enable the application to run normally, while avoiding resource waste caused by premature allocation of the pooled host memory. In addition, when the physical memory capacity of the first server is less than the preset threshold, the pooled host memory can be timely allocated, improving the reliability of memory allocation.

[0062] Next, Figure 5 the memory pooling management method of some other embodiments of the present invention will be described in detail. Figure 5 The memory pooling management method includes:

[0063] S510: Create extended device memory through the first operating system of the first server and configure a first address mapping relationship between the first virtual memory and the extended device memory.

[0064] S520: Divide pooled host memory in the host memory of the second server through the second operating system of the second server.

[0065] S530: Configure a second address mapping relationship between the extended device memory and the pooled host memory through an extended switch.

[0066] S540: Through the first server, based on the virtual address in the memory access request from the first operating system, look up the first address mapping relationship to obtain an intermediate physical address.

[0067] S550: Through the extended switch, based on the second address mapping relationship, route the intermediate physical address to an access physical address.

[0068] S560: Through the second server, access the pooled host memory based on the access physical address.

[0069] In the solution of the embodiment of the present invention, the first server configures a first address mapping relationship between the first virtual memory and the extended device memory, the extended switch configures a second address mapping relationship between the extended device memory and the pooled host memory, and the second server divides the pooled host memory in the host memory of the second server to implement the mapping relationship between the pooled host memory and the first virtual memory. Therefore, the first server looks up the first address mapping relationship based on the virtual address in the memory access request from the first operating system to obtain an intermediate physical address, the extended switch routes the intermediate physical address to an access physical address based on the second address mapping relationship, and the second server accesses the pooled host memory based on the access physical address, balancing the requirements of memory resource capacity and user workload, improving the reliability of memory pooling management. The first server and the second server are connected to the extended switch through the first bus and the second bus, reducing the latency of memory pooling management. In addition, the first address mapping relationship is configured by the first operating system, and the pooled host memory is divided by the second operating system without modifying the source code of the application program, reducing the cost of memory pooling management.

[0070] For the specific implementation of each step of the memory pooling management method, reference can be made to the corresponding description in the embodiment of the above-mentioned memory pooling management system, and it has corresponding beneficial effects, which will not be elaborated here. Those skilled in the art can clearly understand that for the convenience and conciseness of description, the specific working process of the above-described method can refer to the corresponding process description in the foregoing system embodiment, which will not be elaborated here.

[0071] Refer to Figure 6 , which shows a schematic structural diagram of an electronic device according to another embodiment of the present invention. The specific implementation of the electronic device in the specific embodiment of the present invention is not limited.

[0072] As Figure 6As shown, the electronic device may include: a processor 602 for executing program 610, a communications interface 604, a memory 606, and a communication bus 608.

[0073] The processor, the communication interface, and the memory communicate with each other via the communication bus.

[0074] The communication interface is used to communicate with other electronic devices or servers.

[0075] The processor is used to execute the program, and specifically can execute the relevant steps in the above method embodiments.

[0076] Specifically, the program may include program code, and the program code includes computer operation instructions.

[0077] The processor may be a CPU, or a specific integrated circuit ASIC (Application Specific Integrated Circuit), or one or more integrated circuits configured to implement the embodiments of the present invention. One or more processors included in the intelligent device may be of the same type of processor, such as one or more CPUs; or may be of different types of processors, such as one or more CPUs and one or more ASICs.

[0078] The memory is used to store the program. The memory may include high-speed RAM memory, and may also include non-volatile memory, such as at least one disk memory.

[0079] The program may include multiple computer instructions. Specifically, the program can enable the processor to execute the operations corresponding to the first server, the second server, or the extended switch in the memory pooling management system described in any one of the foregoing multiple method embodiments through the multiple computer instructions.

[0080] For the specific implementation of each step in the program, reference can be made to the corresponding steps and descriptions in the corresponding units in the above method embodiments, and there are corresponding beneficial effects, which will not be elaborated here. Those skilled in the art can clearly understand that for the convenience and conciseness of description, the specific working processes of the above-described devices and modules can refer to the corresponding process descriptions in the foregoing method embodiments, and will not be elaborated here.

[0081] The embodiments of the present invention further provide a computer storage medium, on which a computer program is stored, and when the program is executed by a processor, the method described in any one of the foregoing multiple method embodiments is implemented. The computer storage medium includes, but is not limited to: Compact Disc Read-Only Memory (CD-ROM), Random Access Memory (RAM), floppy disk, hard disk, magneto-optical disk, etc.

[0082] The embodiments of the present invention further provide a computer program product, including computer instructions, and the computer instructions direct a computing device to perform operations corresponding to a first server, a second server, or an extended switch in the memory pooling management system in the above multiple method embodiments.

[0083] In addition, it should be noted that the information related to users (including but not limited to user device information, user personal information, etc.) and data (including but not limited to sample data for training a model, data for analysis, stored data, displayed data, etc.) involved in the embodiments of the present invention are all information and data authorized by the users or fully authorized by all parties, and the collection, use, and processing of the relevant data need to comply with relevant regulations and standards, and corresponding operation entrances are provided for users to select authorization or rejection.

[0084] It should be pointed out that according to the needs of implementation, each component / step described in the embodiments of the present invention can be split into more components / steps, or two or more components / steps or partial operations of the components / steps can be combined into new components / steps to achieve the purpose of the embodiments of the present invention.

[0085] The method according to an embodiment of the present invention can be implemented in hardware, firmware, or as software or computer code that can be stored in a recording medium (such as a CD-ROM, RAM, floppy disk, hard disk, or magneto-optical disk), or as computer code originally stored in a remote recording medium or a non-transitory machine-readable medium and downloaded through a network and to be stored in a local recording medium, so that the method described herein can be stored as such software processing on a recording medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware (such as an Application Specific Integrated Circuit (ASIC) or a Field Programmable Gate Array (FPGA)). It can be understood that a computer, a processor, a microprocessor controller, or programmable hardware includes a storage component (such as a Random Access Memory (RAM), a Read-Only Memory (ROM), a flash memory, etc.) that can store or receive software or computer code, and when the software or computer code is accessed and executed by the computer, the processor, or the hardware, the method described herein is implemented. In addition, when a general-purpose computer accesses the code for implementing the method shown herein, the execution of the code converts the general-purpose computer into a dedicated computer for executing the method shown herein.

[0086] Those of ordinary skill in the art can realize that the units and method steps of each example described in combination with the embodiments disclosed herein can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. A professional technician can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the embodiments of the present invention.

[0087] The above embodiments are only used to illustrate the embodiments of the present invention, rather than to limit the embodiments of the present invention. Those of ordinary skill in the relevant technical field can also make various changes and modifications without departing from the spirit and scope of the embodiments of the present invention. Therefore, all equivalent technical solutions also belong to the scope of the embodiments of the present invention. The patent protection scope of the embodiments of the present invention shall be defined by the claims.

Claims

1. A memory pooling management system, comprising: A first server, configured to create extended device memory through a first operating system and configure a first address mapping relationship between the first virtual memory and the extended device memory; A second server, configured to partition pooled host memory in the host memory of the second server through a second operating system; An extended switch, communicatively connected to the first server through a first bus and communicatively connected to the second server through a second bus, the extended switch being configured to configure a second address mapping relationship between the extended device memory and the pooled host memory; Wherein, the first server is configured to look up the first address mapping relationship based on the virtual address in the memory access request from the first operating system to obtain an intermediate physical address, the extended switch is configured to route the intermediate physical address to an access physical address based on the second address mapping relationship, and the second server is configured to access the pooled host memory based on the access physical address.

2. The system according to claim 1, wherein The first operating system sends a memory allocation request to the extended switch via the first bus, the extended switch forwards the memory allocation request to the second operating system via the second bus, and the second operating system responds to the memory allocation request and partitions pooled host memory in the host memory of the second server.

3. The system according to claim 2, wherein A first processor running the first operating system receives the memory allocation request sent by the first operating system and sends a first interrupt instruction to the extended switch through the first bus to send the memory allocation request to the extended switch.

4. The system according to claim 2, wherein, A second processor running the second operating system receives a second interrupt instruction sent by the extended switch through the second bus, responds to the second interrupt instruction, receives the memory allocation request, and responds to the memory allocation request by partitioning pooled host memory in the host memory of the second server.

5. The system according to claim 2, wherein When the free memory space in the host memory of the second operating system meets the memory allocation request, the second operating system creates the pooled host memory from the free memory space and returns a creation completion confirmation to the extended switch.

6. The system according to claim 5, wherein The memory allocation request includes a first base address of the extended device memory, the creation completion confirmation includes a second base address of the pooled host memory, the extended switch generates a second address mapping table between the extended device memory and the pooled host memory based on the first base address and the second base address as an entry in the address routing table, and returns an allocation completion confirmation to the first operating system.

7. The system according to claim 2, wherein, The first operating system sends a memory allocation request to the extended switch via the access protocol of the first bus, the extended switch forwards the memory allocation request to the second operating system via the access protocol of the second bus, and the pooled host memory is a large page memory with continuous physical addresses.

8. The system according to claim 2, wherein, The first operating system sends a memory release request to the extended switch via the first bus, and the extended switch marks the second mapping relationship as invalid in response to the memory release request.

9. The system according to claim 8, wherein, The extension switch forwards the memory release request to the second operating system via the second bus, and the second operating system releases the pooled host memory in response to the memory release request.

10. The system according to claim 1, wherein, In the first operating system, when the host memory of the first server meets the memory extension condition, the extended device memory is created.

11. The system according to claim 10, wherein, The memory extension condition indicates that a physical memory page fault exception occurs when an application installed in the first operating system is running, and / or the physical memory capacity of the first server is less than a preset threshold.

12. The system according to claim 1, wherein, The first operating system is specifically configured to configure page table entries and page descriptors. The page table entries indicate the correspondence between the memory page identifiers of the first virtual memory and the memory page identifiers of the extended device memory, and the page descriptors are used to store the metadata structure of each physical page of the first operating system.

13. The system according to claim 1, wherein, The extension switch is further configured to add the identifier of the second server to the second mapping relationship, so that the second mapping relationship points to the corresponding second server.

14. A memory pooling management method, comprising: Creating extended device memory through the first operating system of the first server, and configuring a first address mapping relationship between the first virtual memory and the extended device memory; Partitioning pooled host memory in the host memory of the second server through the second operating system of the second server; Configuring a second address mapping relationship between the extended device memory and the pooled host memory through an extension switch; Based on the first server, looking up the first address mapping relationship according to the virtual address in the memory access request from the first operating system to obtain an intermediate physical address; Based on the second address mapping relationship, routing the intermediate physical address to an access physical address through the extension switch; Based on the second server, accessing the pooled host memory according to the access physical address.

15. An electronic device, comprising: A processor, a memory, a communication interface, and a communication bus. The processor, the memory, and the communication interface complete mutual communication through the communication bus; The memory is used to store at least one executable instruction, and the executable instruction causes the processor to execute the operations corresponding to the first server, the second server, or the extension switch in the memory pooling management system according to any one of claims 1-12.

16. A computer storage medium, on which a computer program is stored, and when the program is executed by a processor, it implements the operations corresponding to the first server, the second server, or the extension switch in the memory pooling management system according to any one of claims 1-13.

Citation Information

Cited By

  • Data writing method and device, data reading method and device and electronic equipment

    CN121411708A