IP Library Granted Patent US 8,583,984
Granted Patent B2
US 8,583,984 · App. 12/976,247 · Granted Nov 12, 2013

Method and apparatus for increasing data reliability for raid operations

Inventors: Mark A. Schmisseur (Phoenix, AZ); Sivakumar Radhakrishnan (Portland, OR); Pankaj Kumar (Chandler, AZ); Marc A. Goldschmidt (Scottsdale, AZ); Peter Molnar (Chandler, AZ)
Assignee: Intel 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,583,984
App. No.
12/976,247
Granted
Nov 12, 2013
Kind
B2
Abstract

A method and apparatus to enable data integrity checking of a block of data while the block of data is being transferred from a volatile memory to a non-volatile storage device is provided. The data integrity checking is performed in conjunction with Direct Memory Access operations and Redundant Array of Independent Disk (RAID) operations. In addition, data integrity checking of syndrome blocks in the RAID is performed during transfers to/from the storage devices in the RAID system and during RAID update and RAID data reconstruction operations.

Claims (26)

1. A method comprising:

generating a cyclic redundancy check (CRC) for each of a plurality of blocks of data to be stored in a stripe in a Redundant Array of Independent Disks (RAID);

prior to using the plurality of blocks of data to generate at least one syndrome block for the stripe, verifying data integrity of each of the plurality of data blocks with the generated CRC stored with each of the plurality of data blocks;

generating a second CRC for the syndrome block; and

prior to storing the plurality of data blocks and the at least one syndrome block in the RAID, verifying data integrity of each of the plurality of data blocks with the generated CRC stored with each of the plurality of data, wherein the stripe includes two syndrome blocks, a P syndrome block and a Q syndrome block, the second CRC is stored in a data integrity field with the P syndrome block and the data integrity of the P syndrome block is verified with the second CRC prior to storing in the RAID.

2. The method of claim 1 , the second CRC is stored in a modified data integrity field with the Q syndrome block, the modified data integrity field allowing the data integrity of the Q syndrome block to be verified with the second CRC prior to storing in the RAID.

3. The method of claim 1 , wherein the data integrity verification is performed by a Direct Memory Access (DMA) controller.

4. The method of claim 3 , wherein a request to verify each of the plurality of blocks is included in a DMA descriptor that defines a RAID operation to be performed by the DMA controller on the plurality of blocks of data.

5. The method of claim 1 , further comprising:

upon detecting a degraded array, verifying data integrity of the Q syndrome block with the second CRC stored in the modified data integrity field prior to reconstructing data for the stripe.

6. An apparatus comprising:

memory to store a plurality of blocks of data to be stored in a stripe in a Redundant Array of Independent Disks (RAID); and

a Direct Memory Access controller (DMAC) to generate a cyclic redundancy check (CRC) for each of a plurality of blocks of data and prior to using the plurality of blocks of data to generate at least one syndrome block for the stripe, verifying data integrity of each of the plurality of data blocks with the generated CRC stored with each of the plurality of data blocks, the DMAC to generate a second CRC for the syndrome block and prior to storing the plurality of data blocks and the at least one syndrome block in the RAID, verifying data integrity of each of the plurality of data blocks with the generated CRC stored with each of the plurality of data, the stripe includes two syndrome blocks, a P syndrome block and a Q syndrome block, the second CRC is stored in a data integrity field with the P syndrome block and the data integrity of the P syndrome block is verified with the second CRC prior to storing in the RAID.

7. The apparatus of claim 6 , the second CRC is stored in a modified data integrity field with the Q syndrome block, the modified data integrity field allowing the data integrity of the Q syndrome block to be verified with the second CRC prior to storing in the RAID.

8. The apparatus of claim 7 , wherein a request to verify each of the plurality of blocks is included in a DMA descriptor that defines a RAID operation to be performed by the DMAC on the plurality of blocks of data.

9. The apparatus of claim 6 , wherein upon detecting a degraded array, the DMAC to verify data integrity of the Q syndrome block with the second CRC stored in the modified data integrity field prior to reconstructing data for the stripe.

10. An article including a non-transitory computer readable storage medium having associated information, wherein the information, when accessed by a processor, results in a machine performing:

generating a cyclic redundancy check (CRC) for each of a plurality of blocks of data to be stored in a stripe in a Redundant Array of Independent Disks (RAID);

prior to using the plurality of blocks of data to generate at least one syndrome block for the stripe, verifying data integrity of each of the plurality of data blocks with the generated CRC stored with each of the plurality of data blocks;

generating a second CRC for the syndrome block; and

prior to storing the plurality of data blocks and the at least one syndrome block in the RAID, verifying data integrity of each of the plurality of data blocks with the generated CRC stored with each of the plurality of data, wherein the stripe includes two syndrome blocks, a P syndrome block and a Q syndrome block, the second CRC is stored in a data integrity field with the P syndrome block and the data integrity of the P syndrome block is verified with the second CRC prior to storing in the RAID.

11. A system comprising:

a Redundant Array of Independent Disks (RAID);

memory to store a plurality of blocks of data to be stored in a stripe in the RAID; and

a Direct Memory Access controller (DMAC) to generate a cyclic redundancy check (CRC) for each of a plurality of blocks of data and prior to using the plurality of blocks of data to generate at least one syndrome block for the stripe, verifying data integrity of each of the plurality of data blocks with the generated CRC stored with each of the plurality of data blocks, the DMAC to generate a second CRC for the syndrome block and prior to storing the plurality of data blocks and the at least one syndrome block in the RAID, verifying data integrity of each of the plurality of data blocks with the generated CRC stored with each of the plurality of data, the stripe includes two syndrome blocks, a P syndrome block and a Q syndrome block, the second CRC is stored in a data integrity field with the P syndrome block and the data integrity of the P syndrome block is verified with the second CRC prior to storing in the RAID.

12. The system of claim 11 , wherein the second CRC us stored in a modified data integrity field with the Q syndrome block, the modified data integrity field allowing the data integrity of the Q syndrome block to be verified with the second CRC prior to storing in the RAID.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2025
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP. (DBA SOLIDIGM)
Reel/Frame 072890/0340 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2011
From: SCHMISSEUR, MARK A.; RADHAKRISHNAN, SIVAKUMAR; KUMAR, PANKAJ; GOLDSCHMIDT, MARC A.; MOLNAR, PETER
To: INTEL CORPORATION
Reel/Frame 025820/0861 →
Continuity (1)
Related Publication 20120166909A1 · Jun 28, 2012