IP Library Granted Patent US 10,996,876
Granted Patent B2
US 10,996,876 · App. 15/712,409 · Granted May 4, 2021

Systems and methods for dynamically modifying memory namespace allocation based on memory attributes and application requirements

Inventors: Parmeshwr Prasad (Bengaluru, IN); Yogesh P. Kulkarni (Round Rock, TX)
Assignee: Dell Products L.P.
G06F3/0631G06F3/061G06F3/0619G06F3/0646G06F3/0649G06F3/0685G06F11/07
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 10,996,876
App. No.
15/712,409
Granted
May 4, 2021
Kind
B2
Abstract

In accordance with embodiments of the present disclosure, an information handling system may include a processor, a memory communicatively coupled to the processor, and an allocation agent embodied in a program of executable instructions and configured to, when executed by the processor, maintain an attribute index setting forth one or more attributes for each of one or more memory modules of the memory, and based on the one or more attributes and one or more memory requirements of an application executing on the information handling system, dynamically allocate the one or more memory modules to a namespace associated with the application.

Claims (44)

1. An information handling system comprising:

a motherboard including a central processing unit (CPU);

a memory coupled to the CPU by a first bus, wherein the memory includes one or more memory modules;

a BIOS coupled to the CPU by a second bus, wherein the BIOS includes allocation agent instructions, executable by the CPU, wherein the allocation agent instructions, when executed by the CPU, cause the CPU to perform namespace allocation operations, wherein the namespace allocation operations include:

maintaining information indicative of one or more memory modules allocated to a particular namespace;

maintaining an attribute index indicative of one or more attributes of the one or more memory modules allocated to the particular namespace;

determining a memory requirement for an application program associated with the particular namespace;

responsive to determining that one or more memory modules allocated to the particular namespace do not satisfy the memory requirement, dynamically reallocating memory modules to the particular namespace to obtain reallocated memory modules, wherein the reallocated memory modules satisfy the memory requirement; and

responsive to detecting that a particular attribute of the reallocated memory modules differs from the particular attribute of previously allocated memory modules, updating the attribute index.

2. The information handling system of claim 1 , wherein the one or more memory modules comprise one or more persistent memory modules, each persistent memory module comprising volatile memory and non-volatile memory.

3. The information handling system of claim 2 , wherein the one or more attributes for a particular memory module are indicative of an efficiency of the particular memory module for performing a save operation from the volatile memory of the particular memory module to the non-volatile memory of the particular memory module.

4. The information handling system of claim 1 , wherein the one or more attributes include at least one of memory side cache information, memory hit information, memory miss information, memory bandwidth information, memory latency information, memory hierarchy level information, and an attribute score.

5. The information handling system of claim 1 , wherein the allocation agent instructions are further configured to maintain a resource affinity table defining allocations of memory modules to namespaces and dynamically update the resource affinity table responsive to dynamically allocating the one or more memory modules to the namespace.

6. The information handling system of claim 1 , wherein the allocation agent instructions are further configured to dynamically allocate the one or more memory modules to the namespace associated with the application by reallocating the one or more memory modules responsive to the one or more attributes failing to satisfy the one or more memory requirements of the application.

7. The information handling system of claim 1 , wherein the allocation agent instructions are further configured to, responsive to a change in the one or more memory requirements or a change in the one or more attributes:

determine if the one or more memory requirements are satisfied by the one or more attributes; and

reallocate the one or more modules responsive to the one or more attributes failing to satisfy the one or more memory requirements of the application.

8. The information handling system of claim 1 , wherein the allocation agent instructions are further configured to dynamically allocate the one or more memory modules to a namespace associated with the application by reallocating a subject namespace from a portion of a memory module to another portion of the memory module or to another memory module.

9. A method comprising:

maintaining, by a central processing unit of an information handling system, information indicative of one or more memory modules allocated to a particular namespace;

maintaining an attribute index indicative of one or more attributes of the one or more memory modules allocated to the particular namespace;

determining a memory requirement for an application program associated with the particular namespace;

responsive to determining that one or more memory modules allocated to the particular namespace do not satisfy the memory requirement, dynamically reallocating memory modules to the particular namespace to obtain reallocated memory modules, wherein the reallocated memory modules satisfy the memory requirement; and

responsive to detecting that a particular attribute of the reallocated memory modules differs from the particular attribute of previously allocated memory modules, updating the attribute index.

10. The method of claim 9 , wherein the one or more memory modules comprise one or more persistent memory modules, each persistent memory module comprising volatile memory and non-volatile memory.

11. The method of claim 10 , wherein the one or more attributes for a particular memory module are indicative of an efficiency of the particular memory module for performing a save operation from the volatile memory of the particular memory module to the non-volatile memory of the particular memory module.

12. The method of claim 9 , wherein the one or more attributes include at least one of memory side cache information, memory hit information, memory miss information, memory bandwidth information, memory latency information, memory hierarchy level information, and an attribute score.

13. The method of claim 9 , further comprising maintaining a resource affinity table defining allocations of memory modules to namespaces and dynamically updating the resource affinity table responsive to dynamically allocating the one or more memory modules to the namespace.

14. The method of claim 9 , further comprising dynamically allocating the one or more memory modules to the namespace associated with the application by reallocating the one or more memory modules responsive to the one or more attributes failing to satisfy the one or more memory requirements of the application.

15. The method of claim 9 , further comprising, responsive to a change in the one or more memory requirements or a change in the one or more attributes:

determining if the one or more memory requirements are satisfied by the one or more attributes; and

reallocating the one or more memory modules responsive to the one or more attributes failing to satisfy the one or more memory requirements of the application.

16. The method of claim 9 , wherein dynamically allocating the one or more memory modules to a namespace associated with the application by reallocating a subject namespace from a portion of a memory module to another portion of the memory module or to another memory module.

17. An article of manufacture, comprising:

a non-transitory computer-readable medium; and

computer-executable instructions carried on the computer-readable medium, the instructions readable by a central processing unit, the instructions, when read and executed, for causing the processor perform operations including:

maintaining information indicative of one or more memory modules allocated to a particular namespace;

maintaining an attribute index indicative of one or more attributes of the one or more memory modules allocated to the particular namespace;

determining a memory requirement for an application program associated with the particular namespace;

responsive to determining that one or more memory modules allocated to the particular namespace do not satisfy the memory requirement, dynamically reallocating memory modules to the particular namespace to obtain reallocated memory modules, wherein the reallocated memory modules satisfy the memory requirement; and

responsive to detecting that a particular attribute of the reallocated memory modules differs from the particular attribute of previously allocated memory modules, updating the attribute index.

18. The article of claim 17 , wherein the one or more memory modules comprise one or more persistent memory modules, each persistent memory module comprising volatile memory and non-volatile memory.

19. The article of claim 18 , wherein the one or more attributes for a particular memory module are indicative of an efficiency of the particular memory module for performing a save operation from the volatile memory of the particular memory module to the non-volatile memory of the particular memory module.

20. The article of claim 17 , wherein the one or more attributes include at least one of memory side cache information, memory hit information, memory miss information, memory bandwidth information, memory latency information, memory hierarchy level information, and an attribute score.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (044535/0109) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 044535/0109 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2017
From: PRASAD, PARMESHWR; KULKARNI, YOGESH P.
To: DELL PRODUCTS L.P.
Reel/Frame 043662/0363 →