RAID Parity Calculation in Solid State Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data redundancy schemes in non-volatile storage systems, such as RAID, face inefficiencies when storage element block sizes are not integer multiples of host interface block sizes, leading to complex parity calculations and storage inefficiencies.
Innovation Solution
Allowing the RAID stripe depth to be a non-integer multiple of the individual storage element size, enabling parity calculation along data strip boundaries rather than physical storage element boundaries, and optimizing parity generation by aligning it with host sector sizes for improved efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If parity calculation is performed along physical storage element boundaries, then data redundancy is maintained, but storage efficiency decreases and complexity increases when block sizes are not integer multiples
Solution Approach 1:
The patent segments the storage elements into virtual blocks that are integer multiples of the host interface block size. By creating these virtual blocks, the system can perform parity calculations along clean boundaries while still mapping to the physical storage elements, thus reducing complexity while maintaining redundancy.
Solution Approach 2:
The patent introduces virtual blocks as an intermediary layer between the physical storage elements and the host interface. These virtual blocks serve as mediators that align with both the physical storage structure and the host block size requirements, enabling simplified parity calculations without compromising data redundancy.
2Adaptability or versatility
If storage element block size is not an integer multiple of host interface block size, then storage flexibility is improved, but parity calculation efficiency decreases
Solution Approach 1:
The system segments the non-integer multiple block sizes into virtual blocks that are integer multiples of the host interface block size. This segmentation allows the system to maintain storage flexibility with arbitrary block sizes while enabling efficient parity calculations through the virtual block layer that provides clean boundaries.
Solution Approach 2:
The patent changes the parameter of block size representation by introducing virtual blocks with different size characteristics. The virtual blocks are designed to be integer multiples of the host interface block size, transforming the problematic non-integer ratio into a manageable structure that maintains flexibility while improving calculation efficiency.
3Ease of operation
If parity is calculated on clean host block boundaries, then ease of operation is improved, but storage efficiency decreases when storage element size does not align with host block size
Solution Approach 1:
The virtual blocks act as intermediaries that enable parity calculation on clean host block boundaries while maintaining high storage efficiency. The intermediary layer translates between the host block boundary requirements and the physical storage element structure, allowing both simplicity in operation and efficiency in storage utilization.
Solution Approach 2:
The patent adds a dimensional layer by introducing virtual blocks between the host interface and physical storage elements. This additional dimension allows the system to operate at the convenience of host block boundaries while efficiently utilizing the physical storage structure, resolving the conflict between ease of operation and storage efficiency.
Data Source
AI summary
Embodiments of the invention are directed to improving parity determination in a data redundancy scheme. In a block oriented storage system, where the storage element block size is an integer multiple of the block size used on the host interface, parity can be calculated on clean boundaries of the host block. However, this is not always the case and storage inefficiency occurs as a result. Embodiments of the invention optimize RAID parity calculation in a non-volatile solid state device by allowing the RAID stripe depth (also termed a “strip”) to be a non-integer multiple of the size of the individual storage element, i.e., the non-volatile memory program granularity. This enables efficient use of storage space where the host data size does not match the storage element size of the non-volatile memory while providing a straightforward way of handling parity generation and data recovery.


