Patent US5600816A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5600816A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for managing data in a cache system for a disk array

Assignee: International Business Machines Corp
•
Filing: 1993-12-21
•
Granted: 1997-02-04
•
Expires: 2013-12-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A cache system is described which is adapted for staging data between host memory and a disk array comprising a plurality of disk storage devices plus associated controller unit, data being storable across the disks of the array in the form of strides, each stride comprising a multi-sector `stripe` of data on each of two or more devices of the array and an associated multi-sector parity block on a further array device. The cache system includes means for linking the data and associated parity making up a stride within the cache as a cache data unit which is manipulated in the cache as a single entity. References from the host to data held within the cache causes the referenced cache unit to move to the head of a list of cache units. Using such a cache system, when a cache unit at the bottom of the list is committed to disk, there is an increased likelihood that most or all the data making up a stride will be in the cache and therefore the number of redundant accesses to the disk needed to generate parity data will be reduced or eliminated.

Inventors

  • 👤 Clive S. Oldfield
  • 👤 Nicholas Shaylor

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 14:33
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1076; G06F11/1008; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0866

Claims Analysis

Total Claims: 13
Claim 1
Independent Claim 212 words
A cache system in communication with a host application and a disk array, the disk array comprising a plurality of disk storage devices across which data is stored in strides, each stride comprising a multi-sector stripe of data on each of two or more devices of the disk array and an associated multi-sector parity stripe on a further device of the disk array, the cache system comprising: a cache memory 50 for staging data to be transferred between a host application and a disk array 30; a plurality of cache control blocks, each cache control block being associated with an individual data stride, at least a portion of which is stored in the cache memory, and each cache control block identifying where in the cache data stripes making up the data stride are located, a cache manager for maintaining an ordered list of cache control blocks, the cache control blocks in the list being ordered according to the time of last access; and wherein in response to a write or read request from the host application for data forming part of a data stride in the cache memory, the cache control block associated with the requested data stride is moved to the most recently accessed end of the cache control block list.
Claim 2
Dependent Claim 212 words
A cache system in communication with a host application and a disk array, the disk array comprising a plurality of disk storage devices across which data is stored in strides, each stride comprising a multi-sector stripe of data on each of two or more devices of the disk array and an associated multi-sector parity stripe on a further device of the disk array, the cache system comprising: a cache memory 50 for staging data to be transferred between a host application and a disk array 30; a plurality of cache control blocks, each cache control block being associated with an individual data stride, at least a portion of which is stored in the cache memory, and each cache control block identifying where in the cache data stripes making up the data stride are located, a cache manager for maintaining an ordered list of cache control blocks, the cache control blocks in the list being ordered according to the time of last access; and wherein in response to a write or read request from the host application for data forming part of a data stride in the cache memory, the cache control block associated with the requested data stride is moved to the most recently accessed end of the cache control block list.
Claim 3
Dependent Claim 66 words
A cache system as claimed in claim 1, further comprising: means for scanning the cache control block list to identify a data stride for which a complete set of data stripes is stored in cache memory; means for generating parity, for each data stride so-identified, from the set of data stripes; and means for committing the data stripes and generated parity stripe to the disk array.
Claim 4
Dependent Claim 74 words
A cache system as claimed in claim 1, wherein each data stripe making up a data stride has associated therewith a stripe control block for maintaining the status of the area in cache memory in which the data stripe is stored; and wherein a cache control block for a data stride includes an array of pointers which reference the stripe control blocks associated with each of the data stripes making up the data stride.
Claim 5
Dependent Claim 53 words
A data processing system comprising: a host computer system including host memory; a plurality of disk storage devices configured as a disk array; and a cache system as claimed in claim 1, connected for communication to the disk array, for staging data to be transferred between the disk storage devices and host memory.
Claim 6
Dependent Claim 206 words
In a cache system including a cache memory 50 for staging data to be transferred between a host application and a disk array 30, the disk array comprising a plurality of disk storage devices 34,36,38,40 across which data is stored in strides, each stride comprising a multi-sector stripe of data on each of two or more devices of the disk array and an associated multi-sector parity stripe on a further device of the disk array, a method for managing data in the cache memory comprising the steps of: maintaining an ordered list of cache control blocks, each cache control block of the list being associated with an individual data stride, at least a portion of which is stored in the cache memory, and each cache control block identifying where in the cache data stripes making up the data stride are located, the cache control blocks in the list being ordered according to the time of last access; and responsive to a write or read request from the host application for data forming part of a data stride in the cache memory, causing the cache control block associated with the data stride to be moved to the most recently accessed end of the cache control block list.
Claim 7
Dependent Claim 206 words
In a cache system including a cache memory 50 for staging data to be transferred between a host application and a disk array 30, the disk array comprising a plurality of disk storage devices 34,36,38,40 across which data is stored in strides, each stride comprising a multi-sector stripe of data on each of two or more devices of the disk array and an associated multi-sector parity stripe on a further device of the disk array, a method for managing data in the cache memory comprising the steps of: maintaining an ordered list of cache control blocks, each cache control block of the list being associated with an individual data stride, at least a portion of which is stored in the cache memory, and each cache control block identifying where in the cache data stripes making up the data stride are located, the cache control blocks in the list being ordered according to the time of last access; and responsive to a write or read request from the host application for data forming part of a data stride in the cache memory, causing the cache control block associated with the data stride to be moved to the most recently accessed end of the cache control block list.
Claim 8
Dependent Claim 60 words
The method of claim 5 further comprising the step of: scanning the cache control block list to identify a data stride for which a complete set of data stripes is stored in cache memory; for each identified data stride, generating parity from the set of data stripes; and committing the data stripes and generated parity stripe to the disk array.
Claim 9
Dependent Claim 71 words
The method of claim 5, wherein each data stripe making up a data stride has associated therewith a stripe control block for maintaining the status of the area in cache memory in which the data stripe is stored; and wherein a cache control block for a data stride includes an array of pointers which reference the stripe control blocks associated with each of the data stripes making up the data stride.
Claim 10
Dependent Claim 234 words
An article of manufacture for use in a computer system including a cache memory 50 for staging data to be transferred between a host application and a disk array 30, the disk array comprising a plurality of disk storage devices 34,36,38,40, said article of manufacture comprising a computer-readable storage medium having a computer program code embodied in said medium which cause the computer to: store data in the plurality of disk storage devices 34, 36, 38, 40 across which data is stored in strides, each stride comprising multi-sector stripes of data on each of two or more devices of the disk array and an associated multi-sector parity stripe on a further device of the disk array; maintain an ordered list of cache control blocks, each cache control block of the list being associated with an individual data stride, at least a portion of which is stored in the cache memory, and each cache control block identifying where in the cache data stripes making up the data stride are located, the cache control blocks in the list being ordered according to the time of last access; and responsive to a write or read request from the host application for data forming part of a data stride in the cache memory, cause the cache control block associated with the data stride to be moved to the most recently accessed end of the cache control block list.
Claim 11
Dependent Claim 234 words
An article of manufacture for use in a computer system including a cache memory 50 for staging data to be transferred between a host application and a disk array 30, the disk array comprising a plurality of disk storage devices 34,36,38,40, said article of manufacture comprising a computer-readable storage medium having a computer program code embodied in said medium which cause the computer to: store data in the plurality of disk storage devices 34, 36, 38, 40 across which data is stored in strides, each stride comprising multi-sector stripes of data on each of two or more devices of the disk array and an associated multi-sector parity stripe on a further device of the disk array; maintain an ordered list of cache control blocks, each cache control block of the list being associated with an individual data stride, at least a portion of which is stored in the cache memory, and each cache control block identifying where in the cache data stripes making up the data stride are located, the cache control blocks in the list being ordered according to the time of last access; and responsive to a write or read request from the host application for data forming part of a data stride in the cache memory, cause the cache control block associated with the data stride to be moved to the most recently accessed end of the cache control block list.
Claim 12
Dependent Claim 68 words
The article of manufacture of claim 8 wherein the computer program code may further cause the computer to: scan the cache control block list to identify a data stride for which a complete set of data stripes is stored in cache memory; for each identified data stride, generate parity from the set of data stripes; and commit the data stripes and generated parity stripe to the disk array.
Claim 13
Dependent Claim 73 words
The article of manufacture of claim 8, wherein each data stripe making up a data stride has associated therewith a stripe control block for maintaining the status of the area in cache memory in which the data stripe is stored; and wherein a cache control block for a data stride includes an array of pointers which reference the stripe control blocks associated with each of the data stripes making up the data stride.

References Cited (Backward Citations)

US4636946A Cited
US4920478A Cited
US5257352A Cited
EP0462917A2 Cited
US5210866A Cited
EP0493984A2 Cited
US5307473A Cited
US5325509A Cited
US5341381A Cited
US5418921A Cited
US5408644A Cited
US5315602A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-02-04 2000-08-05 2001-02-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-02-04 2004-08-05 2005-02-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-02-04 2008-08-05 2009-02-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag