IP Library Granted Patent US 10,474,583
Granted Patent B2
US 10,474,583 · App. 15/222,769 · Granted Nov 12, 2019

System and method for controlling cache flush size

Inventors: John E. Jenne (Austin, TX); Stuart Allen Berke (Austin, TX); Vadhiraj Sankaranarayanan (Austin, TX)
Assignee: Dell Products L.P.
G06F12/0891G06F12/0804G06F12/0893G06F12/0897G06F2212/60
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,474,583
App. No.
15/222,769
Granted
Nov 12, 2019
Kind
B2
Abstract

An information handling system may implement a method for controlling cache flush size by limiting the amount of modified cached data in a data cache at any given time. The method may include keeping a count of the number of modified cache lines (or modified cache lines targeted to persistent memory) in the cache, determining that a threshold value for modified cache lines is exceeded and, in response, flushing some or all modified cache lines to persistent memory. The threshold value may represent a maximum number or percentage of modified cache lines. The cache controller may include a field for each cache line indicating whether it targets persistent memory. Limiting the amount of modified cached data at any given time may reduce the number of cache lines to be flushed in response to a power loss event to a number that can be flushed using the available hold-up energy.

Claims (64)

1. A method for controlling cache flush size in an information handling system, comprising:

setting a threshold value for modified cache lines in a cache, the setting being dependent on one or more of: available hold-up energy in the system and an amount of time needed to flush modified cache lines to persistent memory;

writing to a cache line in the cache;

determining whether or not the writing causes the cache line to transition to a modified state;

in response to determining that that the writing causes the cache line to transition to the modified state:

incrementing a count of modified cache lines in the cache;

determining, dependent on the incremented count, whether or not the threshold value for modified cache lines in the cache is exceeded; and

flushing one or more modified cache lines in the cache to the persistent memory, in response to determining that the threshold value for modified cache lines in the cache is exceeded, the flushing including transitioning the one or more modified cache lines from the modified state to a state other than the modified state.

2. The method of claim 1 , wherein flushing one or more modified cache lines in the cache to the persistent memory comprises flushing all modified cache lines in the cache to the persistent memory.

3. The method of claim 1 , wherein:

flushing one or more modified cache lines in the cache to the persistent memory comprises flushing a number of modified cache lines in the cache to the persistent memory that is sufficient to reduce the modified cache lines in the cache below the threshold value for modified cache lines in the cache; and

the one or more modified cache selected for flushing is dependent on an applicable cache replacement policy.

4. The method of claim 1 , wherein the threshold value represents a maximum allowed number of cache lines in the cache that are in the modified state.

5. The method of claim 1 , wherein:

the threshold value represents a maximum allowed percentage of cache lines in the cache that are in the modified state; and

determining whether or not the threshold value for modified cache lines in the cache is exceeded comprises calculating, dependent on the incremented count, the percentage of cache lines in the cache that are in the modified state.

6. The method of claim 1 , wherein:

the threshold value represents a maximum allowed number of cache lines in the cache that are in the modified state and that are targeted to the persistent memory;

the count of modified cache lines in the cache comprises a count of cache lines in the cache that are in the modified state and that are targeted to the persistent memory; and

flushing the one or more modified cache lines in the cache to the persistent memory comprises flushing to the persistent memory one or more modified cache lines in the cache that are targeted to persistent memory.

7. The method of claim 1 , wherein flushing the one or more modified cache lines in the cache to the persistent memory comprises transitioning each of the one or more modified cache lines from the modified state to an exclusive state in which a subsequent access to the modified cache line incurs a cache hit.

8. The method of claim 1 , wherein flushing the one or more modified cache lines in the cache to the persistent memory comprises transitioning each of the one or more modified cache lines from the modified state to an invalid state in which a subsequent access to the modified cache line incurs a cache miss.

9. The method of claim 1 , wherein setting the threshold value is dependent on both the available hold-up energy in the system and an amount of time needed to flush the one or more modified cache lines to the persistent memory.

10. The method of claim 1 , wherein setting the threshold value for modified cache lines in the cache comprises setting the threshold value to a fixed value during an initialization of the information handling system.

11. The method of claim 1 , wherein:

setting the threshold value for modified cache lines in the cache comprises setting the threshold value to an initial threshold value; and

the method further comprises modifying the threshold value for modified cache lines in the cache during operation of the information handling system in response to an increase or decrease in hold-up energy.

12. An information handling system, comprising:

at least one cache; and

a cache controller comprising circuitry to:

store a threshold value for modified cache lines in a cache, the threshold value being dependent on one or more of: available hold-up energy in the system and an amount of time needed to flush modified cache lines to persistent memory;

detect a write to a cache line in the cache;

determine whether or not the write causes the cache line to transition to a modified state;

in response to a determination that that the write causes the cache line to transition to the modified state:

increment a count of modified cache lines in the cache;

determine, dependent on the incremented count, whether or not the threshold value is exceeded;

flush one or more modified cache lines in the cache to the persistent memory, in response to a determination that the threshold value is exceeded, the flushing including transitioning the one or more modified cache lines from the modified state to a state other than the modified state; and

elide a flush of the one or more modified cache lines in the cache to persistent memory, in response to a determination that the threshold value is not exceeded.

13. The information handling system of claim 12 , wherein to flush the one or more modified cache lines in the cache to the persistent memory, the cache controller comprises circuitry to:

flush all modified cache lines in the cache to the persistent memory; or

flush, dependent on an applicable cache replacement policy, a number of modified cache lines in the cache to the persistent memory that is sufficient to reduce the modified cache lines in the cache below the threshold value for modified cache lines in the cache.

14. The information handling system of claim 12 , wherein the threshold value is dependent on both the available hold-up energy in the system and an amount of time needed to flush the one or more modified cache lines to the persistent memory.

15. The information handling system of claim 12 , wherein the threshold value represents a maximum allowed number of cache lines in the cache that are in the modified state or a maximum allowed percentage of cache lines in the cache that are in the modified state.

16. The information handling system of claim 12 , wherein the threshold value for modified cache lines in the cache is configurable during an initialization of the information handling system or during operation of the information handling system.

17. The information handling system of claim 12 , wherein:

the information handling system further comprises a page table including a plurality of entries, each of which includes a first field whose value indicates whether or not a respective cache line is targeted to persistent memory and a second field whose value indicates whether or not the respective cache line has been modified;

the threshold value represents a maximum allowed number of cache lines in the cache that are in the modified state and that are targeted to the persistent memory;

the cache controller further comprises circuitry to:

determine, dependent on its respective page table entry, whether or not the written cache line is targeted to persistent memory; and

increment the count of modified cache lines in the cache in response to a determination that the written cache line is targeted to persistent memory;

to flush the one or more modified cache lines in the cache to persistent memory, the cache controller further comprises circuitry to flush to the persistent memory only cache lines in the cache that are in the modified state and that are targeted to the persistent memory.

18. A cache controller, comprising circuitry to:

store a threshold value for modified cache lines in a cache, the threshold value being dependent on one or more of: hold-up energy available from a back-up energy source and an amount of time needed to flush modified cache lines to persistent memory;

detect a write to a cache line in the cache;

determine whether or not the write causes the cache line to transition to a modified state;

in response to a determination that that the write causes the cache line to transition to the modified state:

increment a count of modified cache lines in the cache;

determine, dependent on the incremented count, whether or not the threshold value is exceeded;

flush one or more modified cache lines in the cache to the persistent memory, in response to a determination that the threshold value is exceeded, the flushing including transitioning the one or more modified cache lines from the modified state to a state other than the modified state; and

elide a flush of the one or more modified cache lines in the cache to persistent memory, in response to a determination that the threshold value is not exceeded.

19. The cache controller of claim 18 , wherein to flush the one or more modified cache lines in the cache to the persistent memory, the cache controller comprises circuitry to:

flush all modified cache lines in the cache to the persistent memory; or

flush, dependent on an applicable cache replacement policy, a number of modified cache lines in the cache to the persistent memory that is sufficient to reduce the modified cache lines in the cache below the threshold value for modified cache lines in the cache.

20. The cache controller of claim 18 , wherein the threshold value is dependent on both the hold-up energy available from the back-up energy source and an amount of time needed to flush the one or more modified cache lines to the persistent memory.

Assignments (14)
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 (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
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 →
RELEASE OF SEC. INT. IN PATENTS (NOTES) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040026/0710 →
RELEASE OF SEC. INT. IN PATENTS (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0329 →
RELEASE OF SEC. INT. IN PATENTS (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040013/0733 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 039719/0889 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 039644/0084 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 039643/0953 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2016
From: JENNE, JOHN E.; BERKE, STUART ALLEN; SANKARANARAYANAN, VADHIRAJ
To: DELL PRODUCTS L.P.
Reel/Frame 039285/0988 →