Storage Controller Error Correction Logic for Dispersed Data
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage systems face performance reduction due to the need for recalculating error correcting codes when only part of the data is updated, especially when using multiple error correcting codes, which increases the time required for data reading and recalculation, leading to significant performance degradation.
Innovation Solution
A storage controller that manages error correcting codes by storing a second error correcting code corresponding to multiple pieces of unit data, allowing error correction on arbitrary plural pieces of unit data stored in discontinuous physical addresses, and includes an address managing portion to skip unnecessary error correction processing based on an error correction flag, thereby reducing recalculation overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a second error correcting code is added to reinforce data holding characteristics, then data reliability is improved, but device complexity increases
Solution Approach 1:
The error correction system is segmented into two distinct layers: a first error correcting code applied to individual unit data blocks, and a second error correcting code applied to multiple unit data blocks collectively. This segmentation allows each code to operate independently on its designated data scope, reinforcing reliability without requiring a complete redesign of the error correction system.
Solution Approach 2:
The patent introduces a new dimension of error correction by applying the second error correcting code across multiple data blocks simultaneously, rather than just within single blocks. This multi-block dimension enables correction of errors that span across block boundaries, enhancing reliability while maintaining manageable complexity through structured organization.
2Reliability
If error correcting code recalculation is performed whenever part of the data is updated, then data integrity is maintained, but productivity deteriorates
Solution Approach 1:
The patent implements local quality by enabling selective recalculation of the second error correcting code based on which specific data blocks have been updated. Instead of recalculating the entire code set, only the portions corresponding to modified blocks are updated, maintaining data integrity while significantly reducing the overhead of error correction recalculation during data updates.
3Reliability
If data is copied to continuous physical address space to enable error correction, then error correction capability is improved, but productivity decreases due to copy overhead
Solution Approach 1:
The second error correcting code is designed to handle multiple data blocks simultaneously, creating a universal error correction mechanism that works across dispersed physical addresses. This multi-functionality eliminates the need for data copying to continuous addresses, as the error correction system can operate effectively on data stored in its original dispersed location, thereby maintaining high data access speed while providing robust error correction.
Data Source
AI summary
A storage controller includes an error correcting code managing portion, an address managing portion and an error correcting portion. The error correcting code managing portion manages a correspondence relationship between predetermined plural pieces of unit data, and a second error code corresponding to the plural pieces of unit data every entry when plural pieces of unit data and a second error correcting code are stored in a storage portion. The address managing portion manages a correspondence relationship between logical addresses and the entries in the error correcting code managing portion. The error correcting portion acquires the entry in the error correction managing portion corresponding to the logical address as an object of read from the address managing portion, and carries out error correction based on the plural pieces of unit data managed in the entry concerned, and the second error correcting code.


