IP Library › Granted Patent US 11,733,902
Granted Patent B2
US 11,733,902 · App. 17/302,355 · Granted Aug 22, 2023

Integrating and increasing performance of disaggregated memory in operating systems

Inventors: Panagiotis Koutsovasilis (Dublin, IE); Michele Gazzetti (Dublin, IE); Christian Pinto (Dublin, IE)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F3/0647G06F3/0604G06F3/067
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,733,902
App. No.
17/302,355
Granted
Aug 22, 2023
Kind
B2
Abstract

Local memory and disaggregated memory may be identified and monitored for integrating disaggregated memory in a computing system. Candidate data may be migrated between the local memory and disaggregated memory to optimize allocation of disaggregated memory and migrated data according to a dynamic set of migration criteria.

Claims (45)

1. A method for integrating disaggregated memory in a cloud computing environment by one or more processors comprising:

initiating boot of a physical server having disaggregated memory as part of a cloud computing infrastructure and local memory associated with an operating system (OS) of the physical server;

during initialization of the OS, exposing the disaggregated memory to the OS using a disaggregated memory controller residing within the physical server by creating one or more disaggregated memory domains of the physical server by the disaggregated memory controller, wherein the one or more disaggregated memory domains are initially assigned only a selected amount of memory to successfully allocate mandatory OS data structures for managing a memory domain as a hybrid memory domain between the local memory and the disaggregated memory, wherein the disaggregated memory is attached to the one or more disaggregated memory domains subsequent to the creation of the one or more disaggregated memory domains and prior to the OS completing the boot, and wherein a memory balancing service is initiated as the OS completes the boot of the physical server;

responsive to completing the boot and initializing the memory balancing service, dynamically identifying and monitoring both the local memory associated with the OS and the disaggregated memory; and

migrating candidate data between the local memory associated with the OS and the disaggregated memory according to a dynamic set of migration criteria, wherein the migration is performed transparently to the OS by integrating the disaggregated memory with a kernel non-uniform memory access (NUMA) architecture associated with the OS.

2. The method of claim 1 , further including migrating the candidate data between different memory tiers of the local memory or the disaggregated memory, wherein the local memory and the disaggregated memory include a plurality of memory types and performance characteristics.

3. The method of claim 1 , further including balancing the candidate data between the local memory and the disaggregated memory based on access frequency of the candidate data.

4. The method of claim 1 , further including minimizing a performance penalty of the disaggregated memory by migrating the candidate data from the disaggregated memory to the local memory.

5. The method of claim 1 , further including controlling the local memory and the disaggregated memory by an operating system.

6. The method of claim 1 , further including ranking available memory domains associated with the local memory and the disaggregated memory based on the dynamic set of migration criteria.

7. The method of claim 1 , further including:

determining computational performance from each of the local memory and the disaggregated memory based on migrating the candidate data between the local memory and disaggregated memory, wherein the dynamic set of migration criteria includes at least access frequency, access latency, and performance characteristics;

collecting feedback information from the local memory and the disaggregated memory; and

initializing a machine learning mechanism to adjust the dynamic set of migration criteria based on the feedback information.

8. A system for integrating disaggregated memory in a computing environment, comprising:

one or more computers with executable instructions that when executed cause the system to:

initiating boot of a physical server having disaggregated memory as part of a cloud computing infrastructure and local memory associated with an operating system (OS) of the physical server;

during initialization of the OS, expose the disaggregated memory to the OS using a disaggregated memory controller residing within the physical server by creating one or more disaggregated memory domains of the physical server by the disaggregated memory controller, wherein the one or more disaggregated memory domains are initially assigned only a selected amount of memory to successfully allocate mandatory OS data structures for managing a memory domain as a hybrid memory domain between the local memory and the disaggregated memory, wherein the disaggregated memory is attached to the one or more disaggregated memory domains subsequent to the creation of the one or more disaggregated memory domains and prior to the OS completing the boot, and wherein a memory balancing service is initiated as the OS completes the boot of the physical server;

responsive to completing the boot and initializing the memory balancing service, dynamically identify and monitor both the local memory associated with the OS and the disaggregated memory; and

migrate candidate data between the local memory associated with the OS and the disaggregated memory according to a dynamic set of migration criteria, wherein the migration is performed transparently to the OS by integrating the disaggregated memory with a kernel non-uniform memory access (NUMA) architecture associated with the OS.

9. The system of claim 8 , wherein the executable instructions when executed cause the system to migrate the candidate data between different memory tiers of the local memory or the disaggregated memory, wherein the local memory and the disaggregated memory include a plurality of memory types and performance characteristics.

10. The system of claim 8 , wherein the executable instructions when executed cause the system to balance the candidate data between the local memory and the disaggregated memory based on access frequency of the candidate data.

11. The system of claim 8 , wherein the executable instructions when executed cause the system to minimize a performance penalty of the disaggregated memory by migrating the candidate data from the disaggregated memory to the local memory.

12. The system of claim 8 , wherein the executable instructions when executed cause the system to control the local memory and the disaggregated memory by an operating system.

13. The system of claim 8 , wherein the executable instructions when executed cause the system to rank available memory domains associated with the local memory and the disaggregated memory based on the dynamic set of migration criteria.

14. The system of claim 8 , wherein the executable instructions when executed cause the system to:

determine computational performance from each of the local memory and disaggregated memory based on migrating the candidate data between the local memory and the disaggregated memory, wherein the dynamic set of migration criteria includes at least access frequency, access latency, and performance characteristics;

collect feedback information from the local memory and the disaggregated memory; and

initialize a machine learning mechanism to adjust the dynamic set of migration criteria based on the feedback information.

15. A computer program product for integrating disaggregated memory in a computing environment, the computer program product comprising:

one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instruction comprising:

program instructions to initiate boot of a physical server having disaggregated memory as part of a cloud computing infrastructure and local memory associated with an operating system (OS) of the physical server;

program instructions to, during initialization of the OS, expose the disaggregated memory to the OS using a disaggregated memory controller residing within the physical server by creating one or more disaggregated memory domains of the physical server by the disaggregated memory controller, wherein the one or more disaggregated memory domains are initially assigned only a selected amount of memory to successfully allocate mandatory OS data structures for managing a memory domain as a hybrid memory domain between the local memory and the disaggregated memory, wherein the disaggregated memory is attached to the one or more disaggregated memory domains subsequent to the creation of the one or more disaggregated memory domains and prior to the OS completing the boot, and wherein a memory balancing service is initiated as the OS completes the boot of the physical server;

program instructions to, responsive to completing the boot and initializing the memory balancing service, dynamically identify and monitor both the local memory associated with the OS and the disaggregated memory; and

program instructions to migrate candidate data between the local memory associated with the OS and the disaggregated memory according to a dynamic set of migration criteria, wherein the migration is performed transparently to the OS by integrating the disaggregated memory with a kernel non-uniform memory access (NUMA) architecture associated with the OS.

16. The computer program product of claim 15 , further including program instructions to:

migrate the candidate data between different memory tiers of the local memory or the disaggregated memory, wherein the local memory and the disaggregated memory include a plurality of memory types and performance characteristics; and

balance the candidate data between the local memory and the disaggregated memory based on access frequency of the candidate data.

17. The computer program product of claim 15 , further including program instructions to minimize a performance penalty of the disaggregated memory by migrating the candidate data from the disaggregated memory to the local memory.

18. The computer program product of claim 15 , further including program instructions to control the local memory and the disaggregated memory by an operating system.

19. The computer program product of claim 15 , further including program instructions to rank available memory domains associated with the local memory and the disaggregated memory based on the dynamic set of migration criteria.

20. The computer program product of claim 15 , further including program instructions to:

determine computational performance from each of the local memory and the disaggregated memory based on migrating the candidate data between the local memory and the disaggregated memory, wherein the dynamic set of migration criteria includes at least access frequency, access latency, and performance characteristics;

collect feedback information from the local memory and the disaggregated memory; and

initialize a machine learning mechanism to adjust the dynamic set of migration criteria based on the feedback information.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2021
From: KOUTSOVASILIS, PANAGIOTIS; GAZZETTI, MICHELE; PINTO, CHRISTIAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 056100/0324 →
Continuity (1)
Related Publication 20220350518A1 · Nov 3, 2022