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

Apparatus and method for analyzing and modifying data transfer reguests in a raid system

Assignee: Avago Technologies International Sales Pte Ltd
•
Filing: 1995-10-27
•
Granted: 1999-10-26
•
Expires: 2015-10-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The invention provides a method and apparatus for increasing the efficiency of data transfer between a host computer and a disk array in a RAID system. The invention operates by splitting up large I/O requests from the computer into smaller, more manageable pieces and processing the pieces as though they were individual I/O requests. In one embodiment, the invention keeps only a limited number of these smaller individual I/O requests "active" at any particular time so that a single large I/O request cannot preclude other I/O requests from making progress in the controller. Both the size of the smaller I/O request pieces and the limited number of these pieces which will be "active" at any one time may be tunable parameters. The invention improves the efficiency of data transfer between the host computer and the array of disk drives by providing for increased overlap of activity in the controller. This increased overlap of activity results in increased controller throughput.

Inventors

  • 👤 Rodney A. DeKoning
  • 👤 Donald R. Humlicek
  • 👤 Curtis W. Rink

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 18:07
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/061; G06F3/0613; G06F3/0628; G06F3/0655; G06F3/0658; G06F3/0668; G06F3/0671; G06F3/0683; G06F3/0689

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 210 words
A data storage system comprising: an array of disk drives, each disk drive capable of receiving, storing, and retrieving data; a host computer configured to issue I/O requests, wherein each said I/O request defines a respective amount of data required to be transferred between said host computer and said array of disk drives; means for coordinating transfer of the defined amount of data required to be transferred between said host computer and said array of disk drives in response to said issued I/O requests from said host computer; means for determining the respective amount of data required to be transferred between said host computer and said array of disk drives for an I/O request issued by said host computer, for comparing said amount of data to be transferred for a particular issued I/O request to a predetermined amount, for dividing each said I/O request into a plurality of separate block requests whenever said amount of data exceeds said predetermined amount, each separate block request requiring a transfer of no more than said predetermined amount of data, and for issuing each of said plurality of separate block requests to said means for coordinating as an individual I/O request; and feedback means for adjusting the predetermined amount based on measured system variables.
Claim 2
Dependent Claim 210 words
A data storage system comprising: an array of disk drives, each disk drive capable of receiving, storing, and retrieving data; a host computer configured to issue I/O requests, wherein each said I/O request defines a respective amount of data required to be transferred between said host computer and said array of disk drives; means for coordinating transfer of the defined amount of data required to be transferred between said host computer and said array of disk drives in response to said issued I/O requests from said host computer; means for determining the respective amount of data required to be transferred between said host computer and said array of disk drives for an I/O request issued by said host computer, for comparing said amount of data to be transferred for a particular issued I/O request to a predetermined amount, for dividing each said I/O request into a plurality of separate block requests whenever said amount of data exceeds said predetermined amount, each separate block request requiring a transfer of no more than said predetermined amount of data, and for issuing each of said plurality of separate block requests to said means for coordinating as an individual I/O request; and feedback means for adjusting the predetermined amount based on measured system variables.
Claim 3
Dependent Claim 151 words
The system, as claimed in claim 1, wherein: said means for coordinating includes: (i) a buffer memory; (ii) first transferring means for transferring write data from said host computer to said buffer memory; (iii) second transferring means for transferring write data from said buffer memory to said array of disk drives, said second transferring means including: (A) means for determining redundancy data, using said write data, according to a predetermined RAID technique; (B) means for apportioning said write data according to said predetermined RAID technique; and (C) means for distributing said redundancy data and said apportioned write data to said array of disk drives according to said predetermined RAID technique; (iv) third transferring means for transferring read data from said array of disk drives to said buffer memory according to said predetermined RAID technique; and (v) fourth transferring means for transferring read data from said buffer memory to said host computer.
Claim 4
Dependent Claim 27 words
The system, as claimed in claim 1, wherein: said means for coordinating processes no more than a predetermined number of said separate block requests at one time.
Claim 5
Dependent Claim 13 words
The system, as claimed in claim 3, wherein: said predetermined number is adjustable.
Claim 6
Dependent Claim 28 words
The system, as claimed in claim 4, wherein: said predetermined number is adjusted to increase data transfer bandwidth between said host computer and said array of disk drives.
Claim 7
Dependent Claim 21 words
The system, as claimed in claim 4, further including: feedback means for adjusting said predetermined number based on measured system variables.
Claim 8
Dependent Claim 26 words
The system, as claimed in claim 6, wherein: said feedback means is capable of dynamically adjusting said predetermined number during operation of said data storage system.
Claim 9
Dependent Claim 79 words
The system, as claimed in claim 3, wherein: said means for coordinating further includes: control means for receiving and controlling the performance of said I/O requests; a buffer memory for temporarily storing data as said data is transferred between said host computer and said array of disk drives, said buffer memory being controlled by said control means; and mathematical means for calculating redundancy information based on data stored in said buffer memory, under the control of said control means.
Claim 10
Dependent Claim 47 words
The system, as claimed in claim 8, further including: means for determining the measured system variables by measuring one or more of the following variables: host channel speed, drive channel speed, processing speed of said mathematical means, occupancy level of said buffer memory, and control means overhead.
Claim 11
Dependent Claim 23 words
The system, as claimed in claim 9, further including: means for adjusting said predetermined number based on said one or more variable values.
Claim 12
Dependent Claim 22 words
The system, as claimed in claim 10, wherein: said means for adjusting includes feedback means capable of dynamically adjusting said predetermined number.
Claim 13
Dependent Claim 18 words
The system, as claimed in claim 10, wherein: said data storage system comprises a RAID data storage system.
Claim 14
Dependent Claim 28 words
The system, as claimed in claim 1, wherein: said predetermined amount is adjusted to increase data transfer bandwidth between said host computer and said array of disk drives.
Claim 15
Dependent Claim 26 words
The system, as claimed in claim 1, wherein: said feedback means is capable of dynamically adjusting said predetermined amount during operation of said data storage system.
Claim 16
Dependent Claim 133 words
In a computer data storage system, a method for increasing data transfer efficiency between a host computer and an array of disk drives, said method comprising the steps of: receiving an I/O request from said host computer; determining an amount of data required to be transferred between said host computer and said array of disk drives to process said I/O request; dividing said I/O request into a plurality of block requests when said amount of data exceeds a predetermined amount of data, each of said plurality of block requests requiring a transfer of no more than said predetermined amount of data; processing each of said block requests in said plurality as an individual I/O request; and dynamically adjusting said predetermined amount based on a plurality of measured system variables, via a feedback loop.
Claim 17
Dependent Claim 133 words
In a computer data storage system, a method for increasing data transfer efficiency between a host computer and an array of disk drives, said method comprising the steps of: receiving an I/O request from said host computer; determining an amount of data required to be transferred between said host computer and said array of disk drives to process said I/O request; dividing said I/O request into a plurality of block requests when said amount of data exceeds a predetermined amount of data, each of said plurality of block requests requiring a transfer of no more than said predetermined amount of data; processing each of said block requests in said plurality as an individual I/O request; and dynamically adjusting said predetermined amount based on a plurality of measured system variables, via a feedback loop.
Claim 18
Dependent Claim 27 words
The method, as claimed in claim 15, further comprising the step of: processing no more than a predetermined number of said block requests concurrently in a controller.
Claim 19
Dependent Claim 19 words
The method, as claimed in claim 15, wherein: said computer data storage system includes a RAID data storage system.
Claim 20
Dependent Claim 31 words
The method, as claimed in claim 15, further including the step of: adjusting said predetermined amount to increase data transfer bandwidth between said host computer and said array of disk drives.
Claim 21
Dependent Claim 39 words
The method, as claimed in claim 15, wherein: said predetermined amount is adjusted once every I/O interval; and said method further includes the step of adjusting the length of said I/O interval based on said plurality of system variables.
Claim 22
Dependent Claim 31 words
The method, as claimed in claim 16, further including the step of: adjusting said predetermined number to increase data transfer bandwidth between said host computer and said array of disk drives.
Claim 23
Dependent Claim 29 words
The method, as claimed in claim 16, further including the step of: dynamically adjusting said predetermined number based on a plurality of measured system variables, via a feedback loop.
Claim 24
Dependent Claim 40 words
The method, as claimed in claim 21, wherein: said predetermined number is adjusted once every I/O interval; and said method further includes the step of adjusting the length of said I/O interval based on said plurality of measured system variables.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-10-25 2003-04-26 2003-10-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-10-25 2007-04-26 2007-10-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-10-25 2011-04-26 2011-10-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag