SSD EC Data Layout for Multi-DIE Fault Tolerance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data reliability protection methods for large-capacity storage disks are inflexible and prone to data loss due to limited tolerance of DIE faults, consuming significant computing power for frequent data recovery.
Innovation Solution
A data processing method using an EC algorithm to configure check data blocks, allowing flexible tolerance of up to 1, 2, or more DIE faults by arranging data and check nodes into a linked list, ensuring randomness across the disk and storing check data on each DIE.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If RAID6 is used for data protection, then data reliability is improved, but the tolerance of DIE faults is limited to only two faults
Solution Approach 1:
The patent changes the fundamental parameter of error correction capability by switching from RAID6's fixed two-fault tolerance to EC algorithms with configurable redundancy. The EC algorithm allows dynamic adjustment of the number of check blocks (m) to match different numbers of DIEs in the disk, enabling the system to tolerate anywhere from 1 to many DIE faults depending on the configuration, thus resolving the contradiction between reliability and adaptability.
2Reliability
If data recovery is executed frequently to protect against DIE faults, then data reliability is improved, but storage computing power is consumed significantly
Solution Approach 1:
The patent applies preliminary action by pre-computing and storing EC check data alongside user data during the initial write operation. This check data is generated and stored in advance using the EC algorithm, so that when DIE faults occur, the system can immediately perform recovery using the pre-computed check data without needing to execute complex recovery algorithms, thereby significantly reducing the computing power consumption during actual recovery operations.
3Quantity of substance
If the number of DIEs in a disk increases to increase storage capacity, then storage capacity is improved, but the probability of DIE fault increases accordingly
Solution Approach 1:
The patent implements beforehand cushioning by pre-distributing EC check data across multiple DIEs during the write operation. This creates a protective buffer that can absorb potential DIE failures. The check data is strategically placed on different DIEs from the user data, so that even if some DIEs fail, the check data remains intact and can be used to recover the lost user data, thus cushioning against the increased fault probability that comes with higher storage capacity.
4Device complexity
If check data is stored on the same DIE as user data, then device complexity is reduced, but data loss risk increases when DIE fault occurs
Solution Approach 1:
The patent applies segmentation by physically separating user data and check data onto different DIEs within the same disk. During the write operation, user data blocks are written to certain DIEs while the corresponding EC check data blocks are written to different DIEs. This segmentation ensures that a single DIE failure cannot corrupt both user data and its corresponding check data, thereby reducing data loss risk while maintaining manageable device complexity through organized data distribution.
Data Source
AI summary
A data processing method, a device, and a readable storage medium are disclosed. The data processing method includes: receiving target data sent by a host and writing the target data into a memory; determining, when the target data occupies n memory nodes in the memory, the n memory nodes as n data nodes; computing check data of the target data by using an EC algorithm engine, storing the check data by using m memory nodes, determining the m memory nodes as m check nodes, wherein values of n and m are preset in EC attributes of a current solid state disk; determining a currently available data block group and querying an arrangement sequence of n user data blocks and m check data blocks in the data block group; and arranging the n data nodes and the m check nodes into a linked list according to the arrangement sequence.


