IP Library Granted Patent US 10,657,052
Granted Patent B2
US 10,657,052 · App. 15/962,721 · Granted May 19, 2020

Information handling system with priority based cache flushing of flash dual in-line memory module pool

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,657,052
App. No.
15/962,721
Granted
May 19, 2020
Kind
B2
Abstract

An information handling system includes flash dual in-line memory modules, a central processing unit, and a memory controller. The memory controller detects that a value is written to a first flush hint register of a table. The first flush hint register is associated with a first flash pool of the flash dual in-line memory modules. The memory controller detects that a value is written to a second flush hint register of the table. The second flush hint register is associated with a second flash pool of the flash dual in-line memory modules. The memory controller flushes first data for the first flash pool and second data for the second flash pool in the cache to flash dual in-line memory modules in order of priority based on a first priority of the first pool and a second priority of the second pool.

Claims (41)

1. An information handling system comprising:

a plurality of flash dual in-line memory modules including a first dual in-line memory module and a second dual in-line memory module;

a central processing unit to communicate with the flash dual in-line memory modules; and

a memory controller to communicate with the central processing unit and with the flash dual in-line memory modules, the memory controller to detect a flush command for a cache of the central processing unit, to detect that a value is written to a first flush hint register of a table, wherein the first flush hint register is associated with a first flash pool of the flash dual in-line memory modules, to detect that a value is written to a second flush hint register of the table, wherein the second flush hint register is associated with a second flash pool of the flash dual in-line memory modules, to determine whether the first flash pool is interleaved between more than one memory controller, to calculate relative flush hint addresses across the more than one memory controllers, and to flush first data for the first flash pool and second data for the second flash pool in the cache to flash dual in-line memory modules in order of priority based on a first priority of the first pool and a second priority of the second pool.

2. The information handling system of claim 1 , the memory controller further to map the first flush hint register to a first physical address within the flash dual in-line memory modules for the first flash pool.

3. The information handling system of claim 1 , wherein the first priority of the first flash pool is calculated based on a first number of input/output operations for the first flash pool and the second priority of the second flash pool is calculated based on a second number of input/output operations for the second flash pool.

4. The information handling system of claim 1 , the memory controller to issue a command to verify that all data in the cache has been stored in the flash dual in-line memory modules.

5. The information handling system of claim 1 , the memory controller further to parse a dual in-line memory module firmware interface table to extract the first and second flush hint registers, to associate the first flush hint register with attributes of the first flash pool, and to associate the second flush hint register with attributes of the second flash pool.

6. The information handling system of claim 5 , wherein the attributes for the first flash pool include the first flush priority, and hint register mapping.

7. A method comprising:

receiving, by a memory controller of an information handling system, a flush command for a cache of a central processing unit of the information handling system;

detecting, by the memory controller, that a value is written to a first flush hint register of a table within the central processing unit, wherein the first flush hint register is associated with a first flash pool of flash dual in-line memory modules of the information handling system;

detecting, by the memory controller, that a value is written to a second flush hint register of the table, wherein the second flush hint register is associated with a second flash pool of the flash dual in-line memory modules;

determining whether the first flash pool is interleaved between more than one memory controllers;

calculating relative flush hint addresses across the more than one memory controllers in response to the first flash pool being interleaved between more than one memory controllers; and

flushing, by the memory controller, first data for the first flash pool and second data for the second flash pool in the cache to flash dual in-line memory modules in order of priority based on a first priority of the first pool and a second priority of the second pool.

8. The method of claim 7 , further comprising:

mapping the first flush hint register to a first physical address within the flash dual in-line memory modules for the first flash pool.

9. The method of claim 7 , wherein the first priority of the first flash pool is calculated based on a first number of input/output operations for the first flash pool and the second priority of the second flash pool is calculated based on a second number of input/output operations for the second flash pool.

10. The method of claim 7 , further comprising:

issuing a command to verify that all data in the cache has been stored in the flash dual in-line memory modules.

11. The method of claim 7 , further comprising:

parsing a dual in-line memory module firmware interface table to extract the first and second flush hint registers;

associating the first flush hint register with attributes of the first flash pool; and

associating the second flush hint register with attributes of the second flash pool.

12. The method of claim 11 , wherein the attributes for the first flash pool include the first flush priority, and hint register mapping.

13. A method comprising:

parsing a dual in-line memory module firmware interface table to extract first and second flush hint registers;

associating the first flush hint register with first attributes of a first flash pool of a plurality of dual in-line memory modules of an information handling system;

associating the second flush hint register with second attributes of a second flash pool of the dual in-line memory modules;

mapping the first flush hint register to a first physical address within the flash dual in-line memory modules for the first flash pool;

mapping the second flush hint register to a second physical address within the flash dual in-line memory modules for the second flash pool;

writing a value to the first and second flush hint registers to indicate that data associated with the first and second flash pools are flushed to the flash dual in-line memory modules, wherein the data is in a cache of a central processing unit of the information handling system;

determining whether the first flash pool is interleaved between more than one memory controllers; and

calculating relative flush hint addresses across the more than one memory controllers in response to the first flash pool being interleaved between more than one memory controllers.

14. The method of claim 13 , further comprising:

storing a first priority value to the first flash pool; and

storing a second priority value to the second flash pool, wherein first data for the first flash pool and second data for the second flash pool in the cache to flash dual in-line memory modules in order of priority based on the first priority of the first pool and the second priority of the second pool.

15. The method of claim 13 , wherein the first priority of the first flash pool is calculated based on a first number of input/output operations for the first flash pool and the second priority of the second flash pool is calculated based on a second number of input/output operations for the second flash pool.

16. The method of claim 13 , wherein the first attributes for the first flash pool include the first flush priority, and hint register mapping for the first flash pool.

17. The method of claim 13 , wherein the second attributes for the second flash pool include the second flush priority, and hint register mapping for the second flash pool.

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 (046366/0014) 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
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
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 (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2018
From: PONNURU, VISWANATH; NANJUNDASWAMY, RAVISHANKAR KANAKAPURA; PRASAD, PARMESHWR
To: DELL PRODUCTS, LP
Reel/Frame 045866/0704 →