IP Library Granted Patent US 8,595,451
Granted Patent B2
US 8,595,451 · App. 12/939,863 · Granted Nov 26, 2013

Managing a storage cache utilizing externally assigned cache priority tags

Inventors: Brian McKean (Longmont, CO); Mark Ish (Sandy Springs, GA)
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,595,451
App. No.
12/939,863
Granted
Nov 26, 2013
Kind
B2
Abstract

A method for caching data in a storage medium implementing tiered data structures may include storing a first portion of critical data at the instruction of a storage control module. The first portion of critical data may be separated into data having different priority levels based upon at least one data utilization characteristic associated with a file system implemented by the storage control module. The method may also include storing a second portion of data at the instruction of the storage control module. The second storage medium may have at least one performance, reliability, or security characteristic different from the first storage medium.

Claims (46)

1. A system, comprising:

a storage control module of a storage system for storing a first portion of critical data and a second portion of critical data at an instruction of an operating system, wherein the storage control module is configured to communicatively couple at least to a first storage medium, a second storage medium, and an information handling device, the storage control module configured for managing cache data of the storage system;

the first storage medium for storing the first portion of critical data, where the first portion of critical data is separated into data having different priority levels based upon at least one data utilization characteristic associated with a file system implemented by the storage control module, wherein the first storage medium comprises a cache storage medium including a plurality of least recently used (LRU) data structures and a list of free cache blocks, the plurality of LRU data structures at least including a first LRU data structure and a second LRU data structure, wherein each of the plurality of LRU data structures corresponds to a particular priority level of a plurality of priority levels; and

the second storage medium coupled with the storage control module for storing the second portion of critical data, wherein the second storage medium has at least one characteristic of performance, reliability, or security, different from the first storage medium,

wherein the storage control module is further configured for:

receiving an instruction to store or access data of the storage system, the data being associated with a particular input/output (I/O) process of the information handling device; and

caching at least a portion of the data in a particular least recently used data structure of the first storage medium based upon an externally assigned priority level of the particular I/O process and the priority level of the particular least recently used data structure of the first storage medium, and

wherein the externally assigned priority level of the particular I/O process is assigned by a second operating system, of the information handling device, based upon a data utilization characteristic.

2. The system of claim 1 , wherein the plurality of LRU data structures are configured to place data in the first storage medium and the second storage medium according to a relative performance, reliability, or security characteristics of the first storage medium and the second storage medium such that the first storage medium is first populated with data referenced by relatively higher priority LRU data structures.

3. The system of claim 1 , wherein a higher priority cache block is moved to a lower priority LRU data structure when the cache block is not referenced for a period of time.

4. The system of claim 1 , wherein a least recently used data block of the first LRU data structure is demoted to the second LRU data structure, the second LRU data structure having a lower priority than the first LRU data structure.

5. The system of claim 1 , wherein the first storage medium is logically configured to provide an insertion threshold set below the lowest utilized priority level in the first storage medium.

6. The system of claim 1 , wherein a data block associated with a cache hit in a first data structure is promoted to a second data structure having a higher priority than the first data structure when a priority associated with the cache hit is greater than the priority of the first data structure.

7. The system of claim 1 , wherein the data utilization characteristic associated with a file system implemented by the storage control module includes at least one of a designation of metadata associated with the file system or the actual contents of a file.

8. A system, comprising:

a storage control module of a storage system, the storage control module configured to communicatively couple at least to a first storage medium, a second storage medium, and an information handling device, the storage control module configured for managing cache data of the storage system; and

the first storage medium comprising a cache storage medium including a plurality of least recently used data structures and a list of free cache blocks, each of the plurality of least recently used data structures corresponding to a particular priority level of a plurality of priority levels,

wherein the storage control module is further configured for:

receiving an instruction to store or access data of the storage system, the data being associated with a particular input/output (I/O) process of the information handling device; and

caching at least a portion of the data in a particular least recently used data structure of the first storage medium based upon an externally assigned priority level of the particular I/O process and the priority level of the particular least recently used data structure of the first storage medium, and

wherein the externally assigned priority level of the particular I/O process is assigned by an operating system of the information handling device based upon a data utilization characteristic.

9. The system of claim 8 , wherein the first storage medium is configured for:

storing the first portion of critical data, wherein the first portion of critical data is separated into data having different priority levels based upon at least one data utilization characteristic associated with a file system implemented by the storage control module.

10. The system of claim 8 , wherein the second storage medium is configured for:

storing the second portion of critical data, wherein the second storage medium has at least one characteristic of performance, reliability, or security, different from the first storage medium.

11. The system of claim 8 , wherein the storage control module includes a cache controller, the cache controller being implemented as a circuit.

12. The system of claim 8 , wherein the storage control module is further configured for:

removing one or more cache blocks from a lowest priority least recently used data structure of the plurality of least recently used data structures of the cache storage medium; and

adding the one or more removed cache blocks to the list of free cache blocks of the cache storage medium for use by subsequent I/O processes.

13. The system of claim 12 , wherein the storage control module is further configured for:

demoting a least recently used cache block of a particular least recently used data structure of the plurality of least recently used data structures to a lower particular least recently used data structure having a lower priority level.

14. The system of claim 8 , wherein the storage control module is further configured for:

determining for a particular cache hit of a plurality of cache hits whether a priority mismatch between the externally assigned priority level of the particular I/O process and a priority level of a particular cache block of the particular least recently used data structure associated with the particular I/O process has occurred.

15. The system of claim 14 , wherein the storage control module is further configured for:

promoting the particular cache block to the head of a least recently used data structure having a same priority level as the priority level of the particular I/O process upon determining the occurrence of the priority mismatch between the externally assigned priority level of the particular I/O process and the priority level of the particular cache block.

16. The system of claim 14 , wherein the storage control module is further configured for:

moving the particular cache block to the head of the particular cache block's least recently used data structure having a same priority level as the particular I/O process upon determining the occurrence of a priority match between the externally assigned priority level of the particular I/O process and the priority level of the particular cache block.

17. The system of claim 14 , wherein the storage control module is further configured for:

determining whether the particular I/O process of the information handling device has a priority level less than a lowest priority least recently used data structure of the first storage medium upon receiving the instruction to store the data in the storage system, the data being associated with the particular input/output (I/O) process of the information handling device.

18. A system, comprising:

a storage control module of a storage system, the storage control module configured to communicatively couple at least to a first storage medium, a second storage medium, and an information handling device, the storage control module configured for managing cache data of the storage system;

the first storage medium being configured for storing the first portion of critical data, wherein the first portion of critical data is separated into data having different priority levels based upon at least one data utilization characteristic associated with a file system implemented by the storage control module, the first storage medium comprising a cache storage medium including a plurality of least recently used data structures and a list of free cache blocks, each of the plurality of least recently used data structures corresponding to a particular priority level of a plurality of priority levels;

the second storage medium, the second storage medium being configured for storing the second portion of data, wherein the second storage medium has at least one characteristic of performance, reliability, or security, different from the first storage medium; and

wherein the storage control module is further configured for:

receiving an instruction to store or access data of the storage system, the data being associated with a particular input/output (I/O) process of the information handling device; and

caching at least a portion of the data in a particular least recently used data structure of the first storage medium based upon the externally assigned priority level of the particular I/O process and the priority level of the particular least recently used data structure of the first storage medium.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. 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 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
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 4, 2010
From: MCKEAN, BRIAN; ISH, MARK
To: LSI CORPORATION
Reel/Frame 025317/0202 →
Continuity (1)
Related Publication 20120117328A1 · May 10, 2012