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

System and method for calculating RAID 6 check codes

Assignee: Hewlett Packard Development Co LP
•
Filing: 1994-01-05
•
Granted: 1996-03-12
•
Expires: 2014-01-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Systems and methods for performing the check code calculations for RAID 6 computer mass storage arrays are disclosed such that it becomes computationally feasible to implement a RAID 6 system in software on a modern high-speed computer. For a standard "P+Q" RAID 6 array, the system and method of the present invention allow the calculation of both RAID 6 check codes in less than twice the time it takes to calculate simple RAID 5 parity. The system and method of the present invention are based on a careful matching of the characteristics of the Commutative Ring in which calculations take place to the capabilities of modern high-speed computers. In a particular embodiment, defining the mapping of data and check symbols to computer storage locations in a transposed manner affords a further reduction of computation time.

Inventors

  • 👤 Richard F. Lary

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 19:53
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1076; G11; G11B; G11B20/00; G11B20/10; G11B20/18; G11B20/1833; G06F2211/00; G06F2211/10; G06F2211/1002; G06F2211/1057

Claims Analysis

Total Claims: 54
Claim 1
Independent Claim 122 words
A method for updating RAID 6 check codes by transforming a first check symbol difference to a second check symbol difference comprising the steps of: establishing a generator polynomial of the form G=X N +X D +1; selecting an index K; renumbering said first check symbol difference by K bits to define a renumbered check symbol difference; calculating a logical difference of each of said first K bits of said renumbered check symbol difference with each of another K bits of said renumbered check symbol difference thereof forming a resultant K bits of said renumbered check symbol difference starting at bit position D; and defining said second check symbol difference by said renumbered check symbol difference inclusive of said resultant K bits.
Claim 2
Independent Claim 122 words
A method for updating RAID 6 check codes by transforming a first check symbol difference to a second check symbol difference comprising the steps of: establishing a generator polynomial of the form G=X N +X D +1; selecting an index K; renumbering said first check symbol difference by K bits to define a renumbered check symbol difference; calculating a logical difference of each of said first K bits of said renumbered check symbol difference with each of another K bits of said renumbered check symbol difference thereof forming a resultant K bits of said renumbered check symbol difference starting at bit position D; and defining said second check symbol difference by said renumbered check symbol difference inclusive of said resultant K bits.
Claim 3
Dependent Claim 19 words
The method of claim 1 wherein said K bits of said first check symbol difference are uppermost bits thereof.
Claim 4
Dependent Claim 22 words
The method of claim 2 wherein said K uppermost bits are renumbered as K lowermost bits of said renumbered check symbol difference.
Claim 5
Dependent Claim 27 words
The method of claim 1 wherein said index K identifies a physical storage element on which data related to said first and second check symbol differences resides.
Claim 6
Dependent Claim 17 words
The method of claim 1 wherein said generator polynomial is equal to X 64 +X 4 +1.
Claim 7
Dependent Claim 23 words
The method of claim 5 wherein said index K is greater than or equal to zero and less than or equal to 59.
Claim 8
Dependent Claim 16 words
The method of claim 1 wherein said generator polynomial is equal X 32 +X 2 +1.
Claim 9
Dependent Claim 23 words
The method of claim 7 wherein said index K is greater than or equal to zero and less than or equal to 29.
Claim 10
Dependent Claim 7 words
The method of claim 1 wherein N>>D.
Claim 11
Dependent Claim 40 words
The method of claim 1 wherein said step of calculating is carried out by XORing each of said first renumbered K bits of said renumbered check symbol difference with each of another K bits starting at bit position D respectively.
Claim 12
Dependent Claim 51 words
The method of claim 1 wherein said step of renumbering is carried out by a left rotate of said first check symbol difference by K bit positions such that K most significant bits of said first check symbol difference move to K least significant bits of said renumbered check symbol difference.
Claim 13
Dependent Claim 23 words
The method of claim 1 further comprising the step of: constructing a RAID 6 storage array of no more than N-D storage devices.
Claim 14
Dependent Claim 38 words
The method of claim 1 further comprising the step of: transposing data symbols in a data stream defining said first check symbol difference to a transposition block having a transpose factor T prior to said step of renumbering.
Claim 15
Dependent Claim 20 words
The method of claim 13 wherein T is equal to the word size of a computer for performing said method.
Claim 16
Dependent Claim 7 words
The method of claim 14 wherein T=32.
Claim 17
Dependent Claim 7 words
The method of claim 14 wherein T=64.
Claim 18
Dependent Claim 24 words
The method of claim 13 wherein said step of transposing is carried out by renumbering bits of said data symbols in said data stream.
Claim 19
Independent Claim 136 words
A system for updating RAID 6 check codes by transforming a first check symbol difference to a second check symbol difference comprising: means for establishing a generator polynomial of the form G=X N +X D +1; means for selecting an index K; means for renumbering said first check symbol difference by K bits to define a renumbered check symbol difference; means for calculating a logical difference of each of said first K bits of said renumbered check symbol difference with each of another K bits of said renumbered check symbol difference starting at bit position D within said renumbered check symbol difference thereof forming a resultant K bits of said renumbered check symbol difference; and means for defining said second check symbol difference by said renumbered check symbol difference inclusive of said resultant K bits thereof.
Claim 20
Independent Claim 136 words
A system for updating RAID 6 check codes by transforming a first check symbol difference to a second check symbol difference comprising: means for establishing a generator polynomial of the form G=X N +X D +1; means for selecting an index K; means for renumbering said first check symbol difference by K bits to define a renumbered check symbol difference; means for calculating a logical difference of each of said first K bits of said renumbered check symbol difference with each of another K bits of said renumbered check symbol difference starting at bit position D within said renumbered check symbol difference thereof forming a resultant K bits of said renumbered check symbol difference; and means for defining said second check symbol difference by said renumbered check symbol difference inclusive of said resultant K bits thereof.
Claim 21
Dependent Claim 19 words
The system of claim 18 wherein said K bits of said first check symbol difference are uppermost bits thereof.
Claim 22
Dependent Claim 22 words
The system of claim 19 wherein said K uppermost bits are renumbered as K lowermost bits of said renumbered check symbol difference.
Claim 23
Dependent Claim 27 words
The system of claim 18 wherein said index K identifies a physical storage element on which data related to said first and second check symbol differences resides.
Claim 24
Dependent Claim 17 words
The system of claim 18 wherein said generator polynomial is equal to X 64 +X 4 +1.
Claim 25
Dependent Claim 23 words
The system of claim 22 wherein said index K is greater than or equal to zero and less than or equal to 59.
Claim 26
Dependent Claim 16 words
The system of claim 18 wherein said generator polynomial is equal X 32 +X 2 +1.
Claim 27
Dependent Claim 23 words
The system of claim 24 wherein said index K is greater than or equal to zero and less than or equal to 29.
Claim 28
Dependent Claim 7 words
The system of claim 18 wherein N>>D.
Claim 29
Dependent Claim 39 words
The system of claim 18 wherein said calculating means comprises means for XORing each of said first renumbered K bits of said renumbered check symbol difference with each of said another K bits starting at bit position D respectively.
Claim 30
Dependent Claim 51 words
The system of claim 18 wherein said renumbering means comprises means for performing a logical left rotate of said first check symbol difference by K bit positions such that K most significant bits of said first check symbol difference move to K least significant bits of said renumbered check symbol difference.
Claim 31
Dependent Claim 31 words
The system of claim 18 further comprising: means for transposing data symbols in a data stream defining said first check symbol difference to a transposition block having a transpose factor T.
Claim 32
Dependent Claim 19 words
The system of claim 29 wherein T is equal to the word size of a computer comprising said system.
Claim 33
Dependent Claim 7 words
The system of claim 30 wherein T=32.
Claim 34
Dependent Claim 7 words
The system of claim 30 wherein T=64.
Claim 35
Dependent Claim 22 words
The system of claim 29 wherein said transposing means comprises means for renumbering bits of said data symbols in said data stream.
Claim 36
Dependent Claim 19 words
The system of claim 18 comprising a a RAID 6 storage array of no more than N-D storage devices.
Claim 37
Dependent Claim 239 words
A computer system including a RAID 6 storage array comprising a plurality of physical storage devices for storing data symbols and first and second check symbols for reconstructing said data symbols thereon, said computer system further comprising a data processor for recomputing said first and second check symbols in response to changes in said data symbols, said computer system comprising: means for determining first check symbol differences in response to changes in said data symbols; means for updating said first check symbols based upon said first check symbol differences; means for establishing a generator polynomial of the form G=X N +X D +1; means for selecting an index K; means for renumbering said first check symbol differences by K bits to define renumbered check symbol differences; means for calculating a logical difference of each of said first K bits of each of said renumbered check symbol differences with each of another K bits of said renumbered check symbol differences starting at bit position D within said renumbered check symbol differences thereof forming a resultant K bits of said renumbered check symbol differences starting at bit position D; means for defining said second check symbol differences by said renumbered check symbol differences inclusive of said resultant K bits; means for updating said second check symbols based upon said second check symbol differences; means for writing said changed data symbols and said first and second check symbols to said storage array.
Claim 38
Dependent Claim 239 words
A computer system including a RAID 6 storage array comprising a plurality of physical storage devices for storing data symbols and first and second check symbols for reconstructing said data symbols thereon, said computer system further comprising a data processor for recomputing said first and second check symbols in response to changes in said data symbols, said computer system comprising: means for determining first check symbol differences in response to changes in said data symbols; means for updating said first check symbols based upon said first check symbol differences; means for establishing a generator polynomial of the form G=X N +X D +1; means for selecting an index K; means for renumbering said first check symbol differences by K bits to define renumbered check symbol differences; means for calculating a logical difference of each of said first K bits of each of said renumbered check symbol differences with each of another K bits of said renumbered check symbol differences starting at bit position D within said renumbered check symbol differences thereof forming a resultant K bits of said renumbered check symbol differences starting at bit position D; means for defining said second check symbol differences by said renumbered check symbol differences inclusive of said resultant K bits; means for updating said second check symbols based upon said second check symbol differences; means for writing said changed data symbols and said first and second check symbols to said storage array.
Claim 39
Dependent Claim 30 words
The computer system of claim 35 wherein said determining means comprises means for XORing an old data symbol with a new data symbol to determine said first check symbol difference.
Claim 40
Dependent Claim 24 words
The computer system of claim 35 wherein said first check symbol difference is a P check symbol difference within a P+Q RAID 6 implementation.
Claim 41
Dependent Claim 27 words
The computer system of claim 35 wherein said index K is related to the physical storage device of said storage array on which said data symbols reside.
Claim 42
Dependent Claim 24 words
The computer system of claim 35 wherein said second check symbol difference is a Q check symbol difference within a P+Q RAID 6 implementation.
Claim 43
Dependent Claim 23 words
The computer system of claim 35 wherein said K uppermost bits are renumbered as K lowermost bits of said renumbered check symbol differences.
Claim 44
Dependent Claim 18 words
The computer system of claim 35 wherein said generator polynomial is equal to X 64 +X 4 +1.
Claim 45
Dependent Claim 17 words
The computer system of claim 35 wherein said generator polynomial is equal X 32 +X 2 +1.
Claim 46
Dependent Claim 8 words
The computer system of claim 35 wherein N>>D.
Claim 47
Dependent Claim 40 words
The computer system of claim 35 wherein said calculating means comprises means for XORing each of said first renumbered K bits of said renumbered check symbol differences with each of said another K bits starting at bit position D respectively.
Claim 48
Dependent Claim 52 words
The computer system of claim 35 wherein said renumbering means comprises means for performing a logical left rotate of said first check symbol difference by K bit positions such that K most significant bits of said first check symbol differences move to K least significant bits of said renumbered check symbol differences.
Claim 49
Dependent Claim 31 words
The computer system of claim 35 further comprising: means for transposing data symbols in a data stream defining said first check symbol differences to transposition blocks having a transpose factor T.
Claim 50
Dependent Claim 18 words
The computer system of claim 46 wherein T is equal to the word size of said data processor.
Claim 51
Dependent Claim 8 words
The computer system of claim 47 wherein T=32.
Claim 52
Dependent Claim 8 words
The computer system of claim 47 wherein T=64.
Claim 53
Dependent Claim 23 words
The computer system of claim 46 wherein said transposing means comprises means for renumbering bits of said data symbols in said data stream.
Claim 54
Dependent Claim 19 words
The system of claim 35 comprising a a RAID 6 storage array of no more than N-D storage devices.

References Cited (Backward Citations)

US5195100A Cited
US5265098A Cited
US5303244A Cited
US5301297A Cited
US5309451A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-03-12 1999-09-11 2000-03-12 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-03-12 2003-09-11 2004-03-12 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-03-12 2007-09-11 2008-03-12 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag