IP Library › Granted Patent US 8,458,399
Granted Patent B2
US 8,458,399 · App. 12/948,321 · Granted Jun 4, 2013

Methods and structure for determining cache size in a storage system

Inventors: Donald R. Humlicek (Wichita, KS); Timothy R. Snider (Derby, KS); Brian D. McKean (Longmont, CO)
Assignee: LSI Corporation
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 8,458,399
App. No.
12/948,321
Granted
Jun 4, 2013
Kind
B2
Abstract

Methods and structure for automated determination and reconfiguration of the size of a cache memory in a storage system. Features and aspects hereof generate historical information regarding frequency of hits on cache lines in the cache memory. The history maintained is then analyzed to determine a desired cache memory size. The historical information regarding cache memory usage may be communicated to a user who may then direct the storage system to reconfigure its cache memory to a desired cache memory size. In other embodiments, the storage system may automatically determine the desired cache memory size and reconfigure its cache memory. The method may be performed automatically periodically, and/or in response to a user's request, and/or in response to detecting thrashing caused by least recently used (LRU) cache replacement algorithms in the storage system.

Claims (98)

1. A method operable in a storage system having a cache memory, the method for determining a desired cache memory size and for reconfiguring the storage system to utilize the desired cache memory size, the method comprising:

tracking usage of cache memory in the storage system to gather usage information for more data than can fit in the cache memory, comprising:

maintaining a count value in a counter of the storage system, the count value indicating a number of new cache lines allocated in the cache memory responsive to processing I/O requests; and

maintaining a cache history entry for each newly allocated cache line, wherein the cache history entry indicates the value of the counter when its corresponding cache line was newly allocated;

determining the desired cache memory size for the storage system based on the gathered usage information; and

utilizing the desired cache memory size in the storage system to reconfigure the size of the cache memory of the storage system.

2. The method of claim 1

wherein the step of determining further comprises:

transmitting information based on the gathered usage information to a user; and

receiving configuration information from a user, the configuration information comprising the desired cache size.

3. The method of claim 1

wherein the step of determining further comprises:

determining the desired cache memory size by operation of the storage system without user intervention.

4. The method of claim 1

wherein the step of tracking further comprises:

detecting a hit on a new cache line responsive to processing a subsequent I/O request; and

responsive to detecting the hit, storing a delta value in a cache history entry corresponding to the new cache line wherein the delta value is a difference between the count value indicated in the cache history entry and the present count value of the counter of the storage system.

5. The method of claim 4

wherein the step of determining further comprises:

determining a number of cache history entries that have a delta value greater than a predetermined threshold delta value; and

determining the desired cache memory size based on the predetermined threshold value and based on the determined number.

6. The method of claim 4

wherein the step of determining the desired cache memory size further comprises:

determining that a predetermined percentage of the cache history entries have delta values within an identified range of a plurality of predetermined ranges of values; and

determining the desired cache memory size based on the identified range.

7. The method of claim 4

wherein the step of determining the desired cache memory size further comprises:

determining that a predetermined percentage of the cache history entries have delta values within one or more identified ranges of a plurality of predetermined ranges of values wherein each identified range of values corresponds to a cache memory size; and

determining the desired cache memory size based on a preferred identified range of the one or more identified ranges wherein the preferred identified range corresponds to the smallest cache memory size of the one or more identified ranges.

8. A method operable in a storage system having a cache memory, the cache memory having a number of cache lines the number of which defines the present cache memory size, the method for determining a desired cache memory size and for reconfiguring the storage system to utilize the desired cache memory size, the method comprising:

detecting a request to access a cache line in the cache memory;

determining whether the requested cache line is a new cache line in the cache memory;

responsive to a determination that the request is to a new cache line, performing the additional steps of:

incrementing a counter;

creating a new cache history entry wherein the new cache history entry comprises information associating the new cache history entry with the new cache line; and

storing the present count value of the counter in the new cache history entry;

responsive to a determination that the request is to an existing cache line, performing the additional steps of:

locating the cache history entry associated with the requested cache line;

subtracting the count value stored in the located cache history entry from the present count value of the counter to generate a delta value; and

storing the delta value in the located cache history entry;

determining the desired cache memory size for the storage system based on the delta values in the cache history entries; and

utilizing the desired cache memory size in the storage system to reconfigure the size of the cache memory of the storage system.

9. The method of claim 8

wherein the step of determining further comprises:

transmitting information based on the cache history entries to a user; and

receiving configuration information from a user, the configuration information comprising the desired cache size.

10. The method of claim 8

wherein the step of determining further comprises:

determining the desired cache memory size by operation of the storage system without user intervention.

11. The method of claim 8

wherein the step of determining further comprises:

determining a number of cache history entries that have a delta value greater than a predetermined threshold delta value; and

determining the desired cache memory size based on the predetermined threshold value and based on the determined number.

12. The method of claim 8

wherein the step of determining the desired cache memory size further comprises:

determining that a predetermined percentage of the cache history entries have delta values within an identified range of a plurality of predetermined ranges of values; and

determining the desired cache memory size based on the identified range.

13. The method of claim 8

wherein the step of determining the desired cache memory size further comprises:

determining that a predetermined percentage of the cache history entries have delta values within one or more identified ranges of a plurality of predetermined ranges of values wherein each identified range of values corresponds to a cache memory size; and

determining the desired cache memory size based on a preferred identified range of the one or more identified ranges wherein the preferred identified range corresponds to the smallest cache memory size of the one or more identified ranges.

14. The method of claim 8

wherein the steps of determining the desired cache memory size and utilizing the desired cache memory size are performed periodically.

15. The method of claim 8

wherein the steps of determining the desired cache memory size and utilizing the desired cache memory size are performed in response to a user request.

16. The method of claim 8

wherein the cache memory is managed in the storage system in accordance with a least recently used (LRU) cache replacement algorithm to replace the content of cache lines presently in the cache memory with new contents,

the method further comprising detecting that thrashing in LRU management of the cache memory replacement of cache line contents has exceeded a predetermined threshold thrashing value,

wherein the steps of determining the desired cache memory size and utilizing the desired cache memory size are performed in response to detecting thrashing.

17. A non-transitory computer readable medium storing programmed instructions that, when executed by a computer of a storage system, perform a method for determining a desired cache memory size and for reconfiguring the storage system to utilize the desired cache memory size, the method comprising:

tracking usage of cache memory in the storage system to gather usage information for more data than can fit in the cache memory, comprising:

maintaining a count value in a counter of the storage system, the count value indicating a number of new cache lines allocated in the cache memory responsive to processing I/O requests; and

maintaining a cache history entry for each newly allocated cache line, wherein the cache history entry indicates the value of the counter when its corresponding cache line was newly allocated;

determining the desired cache memory size for the storage system based on the gathered usage information; and

utilizing the desired cache memory size in the storage system to reconfigure the size of the cache memory of the storage system.

18. The medium of claim 17

wherein the step of determining further comprises:

transmitting information based on the gathered usage information to a user; and

receiving configuration information from a user, the configuration information comprising the desired cache size.

19. The medium of claim 17

wherein the step of determining further comprises:

determining the desired cache memory size by operation of the storage system without user intervention.

20. The medium of claim 17

wherein the step of tracking further comprises:

detecting a hit on a new cache line responsive to processing a subsequent I/O request; and

responsive to detecting the hit, storing a delta value in a cache history entry corresponding to the new cache line wherein the delta value is a difference between the count value indicated in the cache history entry and the present count value of the counter of the storage system.

21. The medium of claim 20

wherein the step of determining further comprises:

determining a number of cache history entries that have a delta value greater than a predetermined threshold delta value; and

determining the desired cache memory size based on the predetermined threshold value and based on the determined number.

22. The medium of claim 20

wherein the step of determining the desired cache memory size further comprises:

determining that a predetermined percentage of the cache history entries have delta values within an identified range of a plurality of predetermined ranges of values; and

determining the desired cache memory size based on the identified range.

23. The medium of claim 20

wherein the step of determining the desired cache memory size further comprises:

determining that a predetermined percentage of the cache history entries have delta values within one or more identified ranges of a plurality of predetermined ranges of values wherein each identified range of values corresponds to a cache memory size; and

determining the desired cache memory size based on a preferred identified range of the one or more identified ranges wherein the preferred identified range corresponds to the smallest cache memory size of the one or more identified ranges.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 09/05/2018 PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0133. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0456 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0133 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2010
From: HUMLICEK, DONALD R.; SNIDER, TIMOTHY R.; MCKEAN, BRIAN D.
To: LSI CORPORATION
Reel/Frame 025369/0150 →
Continuity (1)
Related Publication 20120124295A1 · May 17, 2012