Patent ID: 8006127

Claim:
A redundant array of independent disks system comprising: a first storage array, wherein the first storage array includes a first target processing module and a first plurality of storage devices; a second storage array, wherein the second storage array includes a second target processing module and a second plurality of storage devices; and a data processing module configured to (i) receive a plurality of data blocks for storage in one or more of the first plurality of storage devices and the second plurality of storage devices, (ii) assign a first data block of the plurality of data blocks to the first target processing module, wherein the first target processing module is configured to generate first error checking and correcting (ECC) data based on the first data block, (iii) assign a second data block of the plurality of data blocks to the second target processing module, wherein the second target processing module is configured to generate second ECC data based on the second data block, and wherein the second ECC data is generated concurrently with the first ECC data, and (iv) generate a data request signal for requested data, wherein at least one of the first target processing module or the second target processing module is configured to (i) receive and send the requested data to the data processing module based on the data request signal, (ii) determine whether there is an error in a block of the requested data, and (iii) send ECC data to the data processing module when there is an error in the block of the requested data, wherein the ECC data sent to the data processing module corresponds to the first ECC data or the second ECC data depending on whether the requested data is respectively sent from the first target processing module or the second target processing module, wherein the data processing module is configured to (i) assign ECC processing for selected ones of the plurality of data blocks to the first target processing module while assigning RAID redundancy and recovery processing for other selected ones of the plurality data blocks to the second target processing module and (ii) not perform the ECC processing, wherein the first target processing module is configured to generate the first ECC data while performing the ECC processing, and wherein the first target processing module is configured to perform the ECC processing while the second target processing module performs the RAID redundancy and recovery processing.