A data storage method and storage system based on dynamic RAID striping
By dynamically dividing storage blocks into low-reliability, medium-reliability, and high-reliability zones, and adjusting the distribution of RAID stripe members in conjunction with LDPC decoding feedback, the problem of unbalanced reliability within NAND storage blocks is solved, thereby improving the data reliability and lifespan of SSDs.
Patent Information
- Application Number
- CN202611174600.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-08-04
- Publication Date
- 2026-11-06
AI Technical Summary
Existing RAID stripe construction schemes have failed to effectively solve the problems of uneven reliability and performance jitter within NAND storage blocks. In particular, the reliability differences at different layers and word line positions have not been fully considered, resulting in a short lifespan for SSDs.
By dynamically dividing storage blocks into low-reliability, medium-reliability, and high-reliability zones, and adjusting the distribution of RAID stripe members according to the programming/erase cycle, and dynamically adjusting the interval and redundancy based on LDPC decoding feedback information, the distribution and redundancy configuration of RAID stripes are optimized.
It achieves balanced distribution among RAID stripes, enhances the data reliability of SSDs in the mid-to-late stages, reduces read performance jitter, and extends the lifespan of SSDs.
Smart Images

Figure CN123047865A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of solid-state storage technology, and in particular to a data storage method and storage system based on dynamic RAID striping. Background Technology
[0002] Traditional RAID stripe members are arranged in a continuous physical space, typically in consecutive layers (adjacent layers) or consecutive word lines within the same layer. Due to variations in NAND manufacturing processes, the reliability of different layers within the same block and different word lines within the same layer can differ. When multiple members in a RAID stripe simultaneously fall into areas with relatively high reliability (middle layers or word lines), the overall reliability of the stripe is relatively good. Conversely, when multiple members in a RAID stripe simultaneously fall into areas with relatively low reliability (edge layers or word lines), the overall reliability of the stripe is relatively poor, resulting in lower read performance. This leads to uneven reliability and performance fluctuations in the data stored on the NAND, with a greater impact in the later stages of the NAND's lifespan, causing a bottleneck effect in the lifespan of SSDs.
[0003] In the prior art, such as patent US11714716B2, the idea of distributing RAID stripes across layers is disclosed. However, the solution is static and does not take into account the reliability differences of different word line positions in different layers, nor does it dynamically adjust in combination with real-time wear status, and it does not form a closed-loop feedback with the decoding information of LDPC error correction code. Summary of the Invention
[0004] The purpose of this invention is to overcome the shortcomings of the prior art and provide a data storage method and storage system based on dynamic RAID striping.
[0005] The objective of this invention is achieved through the following technical solution:
[0006] In a first aspect, this application discloses a data storage method based on dynamic RAID striping, comprising: obtaining the current programming / erasing cycle of the storage block; dynamically dividing the storage area within the storage block into at least a first reliable zone and a second reliable zone according to the programming / erasing cycle, wherein the estimated reliability of the first reliable zone is lower than that of the second reliable zone, and the boundary of the division is adjusted with the change of the programming / erasing cycle; obtaining RAID stripe member distribution parameters for the storage block, the distribution parameters including a base interval corresponding to the current programming / erasing cycle and an additional interval determined based on historical data read feedback; when writing data to the storage block in RAID stripes, allocating multiple member data of the RAID stripe to different physical locations within the first reliable zone and the second reliable zone based on the distribution parameters, so that member data of the same RAID stripe are dispersed in different reliability zones; when reading data in the storage block, obtaining feedback information generated by LDPC decoding, and adjusting the additional interval and / or the redundancy of the RAID stripe according to the feedback information, the adjusted parameters being used for data writing after the next erase of the storage block.
[0007] Furthermore, the storage area within the storage block is dynamically divided into a low-reliability area, a medium-reliability area, and a high-reliability area; wherein, the low-reliability area includes all word lines within a predetermined number of edge layers located at the top and bottom layers of the storage block, the high-reliability area includes a predetermined proportion of word lines located in the middle layers and in the middle region of each layer, and the medium-reliability area includes the remaining storage area within the storage block excluding the low-reliability area and the high-reliability area.
[0008] Furthermore, the storage area within the storage block is dynamically divided according to the programming / erasing cycle, including: grouping according to the preset lifetime of the current programming / erasing cycle, determining the number of edge layers in the low-reliability region, the number of middle layers in the high-reliability region, and the proportion of word lines in the middle region of each layer. The example data shown here may vary for different NAND chips: when the usage ratio corresponding to the current programming / erasing cycle is between 0% and 50%, the low-reliability region consists of 2 layers at the top and 2 layers at the bottom, and the high-reliability region consists of 100 middle layers, with each layer occupying the center position. The low reliability zone consists of 60% of the word lines; when the usage rate is between 51% and 80%, the low reliability zone consists of 4 layers at the top and bottom, and the high reliability zone consists of 80 layers in the middle, with each layer containing 50% of the word lines; when the usage rate is between 81% and 90%, the low reliability zone consists of 6 layers at the top and bottom, and the high reliability zone consists of 60 layers in the middle, with each layer containing 40% of the word lines; when the usage rate is greater than 90%, the low reliability zone consists of 10 layers at the top and bottom, and the high reliability zone consists of 50 layers in the middle, with each layer containing 30% of the word lines.
[0009] Furthermore, the distribution interval parameter includes a basic interval and an additional interval; the basic interval is the minimum layer interval of the RAID member, which is preset according to the lifetime group in which the current programming / erasing cycle is located; the additional interval is the dynamic layer interval corresponding to each reliable zone, and its initial value is zero.
[0010] Furthermore, obtaining feedback information generated by LDPC decoding and adjusting the additional interval amount according to the feedback information includes: when reading data, if the number of LDPC soft decoding iterations exceeds a preset warning threshold, the warning cumulative count corresponding to the reliable area where the data is read is incremented by 1; when the warning cumulative count reaches a preset number, the additional interval amount corresponding to the reliable area is increased by 1.
[0011] Furthermore, adjusting the redundancy of the RAID stripe based on the feedback information includes: when reading data, if an LDPC decoding failure occurs, the redundancy of the RAID stripe is increased from the first redundancy level to the second redundancy level; if the current redundancy is already at the second redundancy level, the additional interval corresponding to the reliable zone where the decoded data is located is increased by 1.
[0012] Furthermore, the first redundancy level is RAID5, and the second redundancy level is RAID6.
[0013] Furthermore, allocating multiple member data of the RAID stripe to different physical locations within the first and second reliable zones includes: calculating the approximate integer proportions of the total storage capacity of the storage block for each of the low-reliability zone, the medium-reliability zone, and the high-reliability zone; determining the upper limit of the number of members that a single RAID stripe can be allocated in the low-reliability zone, the medium-reliability zone, and the high-reliability zone based on the proportions; and allocating member positions to the RAID stripe sequentially according to the order of the low-reliability zone, the medium-reliability zone, and the high-reliability zone; wherein, if the number of members actually allocated in the previous reliable zone does not reach the upper limit of the number of members corresponding to that reliable zone, the remaining unallocated number of members is accumulated and allocated to the upper limit of the number of members of the next reliable zone in the next order.
[0014] Furthermore, during the process of allocating member positions for the RAID stripe, when the allocated position of a member is located at the boundary of two reliable zones, the larger value among the distribution interval parameters corresponding to the two reliable zones is used as the allocation interval; the method also includes: completing the calculation of member positions for all RAID stripes within the storage block at once; when a complete RAID stripe member cannot be allocated according to the rules in the remaining unallocated space, the allocation ends, and padding data is written into the remaining space; and, in the metadata area of each physical page to which the RAID stripe member data is written, the stripe index and member index to which the page belongs are recorded.
[0015] Secondly, this application also discloses a storage system for performing the dynamic RAID stripe construction method described above, comprising: multiple storage blocks, each storage block containing multiple physical layers and multiple word lines located within each layer.
[0016] The beneficial effects of this invention are:
[0017] By refining reliability identification granularity to the word line level and dynamically refreshing the reliable zone based on the P / E cycle, the RAID stripes are evenly distributed, eliminating any weak links. LDPC closed-loop feedback dynamically increases the layer spacing between RAID stripe members to enhance reliability. Critical parity data is forced to be stored in the high-reliability zone to enhance recovery capabilities, significantly increasing the data reliability of the SSD in the mid-to-late stages. Furthermore, reading data from locations with poor reliability requires more LDPC decoding, impacting read performance; the even distribution of RAID stripes avoids the weakest link effect, reducing overall disk read performance jitter caused by the poor reliability of a few RAID stripes. Attached Figure Description
[0018] Figure 1 This is a simplified schematic diagram of a method for constructing dynamic RAID stripes according to some embodiments of this application. Detailed Implementation
[0019] The technical solution of the present invention will be clearly and completely described below with reference to the embodiments. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0020] A method for constructing dynamic RAID stripes according to an embodiment of this application includes: obtaining the current programming / erasing cycle of the storage block; dynamically dividing the storage area within the storage block into at least a first reliable zone and a second reliable zone according to the programming / erasing cycle, wherein the estimated reliability of the first reliable zone is lower than that of the second reliable zone, and the boundary of the division is adjusted as the programming / erasing cycle changes; obtaining RAID stripe member distribution parameters for the storage block, the distribution parameters including a base interval corresponding to the current programming / erasing cycle and an additional interval determined based on historical data read feedback; when writing data to the storage block in RAID stripes, allocating multiple member data of the RAID stripe to different physical locations within the first reliable zone and the second reliable zone based on the distribution parameters, so that member data of the same RAID stripe are dispersed in different reliability zones; when reading data in the storage block, obtaining feedback information generated by LDPC decoding, and adjusting the additional interval and / or the redundancy of the RAID stripe according to the feedback information, the adjusted parameters being used for data writing after the next erase of the storage block.
[0021] In this embodiment, reference Figure 1 The method, as understood, includes the following steps:
[0022] Step 1: Divide the reliable regions; the storage area within the storage block is dynamically divided into a low-reliability region, a medium-reliability region, and a high-reliability region; wherein, the low-reliability region includes all word lines within a predetermined number of edge layers located at the top and bottom layers of the storage block, the high-reliability region includes a predetermined proportion of word lines located in the middle layers and in the middle area of each layer, and the medium-reliability region includes the remaining storage area within the storage block excluding the low-reliability region and the high-reliability region.
[0023] Specifically, the raw bit error rate (RBER) of different layers and word lines under different program / erase cycles (P / E cycles) is tested to measure the reliability of each region. Based on the test results, each memory block is divided into three reliable regions: the low-reliability region consists of all word lines in the top and bottom edge layers, the high-reliability region consists of a certain proportion of word lines in the middle layers, and the medium-reliability region consists of the remaining part of the memory block. See Table 1 for an example.
[0024] Table 1. Division results for four different P / E cycles.
[0025]
[0026] Step 2: Construct a reliability heatmap; dynamically divide the storage area within the storage block according to the programming / erasing cycle, including: grouping according to the preset lifetime of the current programming / erasing cycle, determining the number of edge layers contained in the low reliability area, the number of intermediate layers contained in the high reliability area, and the proportion of word lines in the intermediate area of each layer.
[0027] In this embodiment, based on the reliable intervals under different P / E Cycle groups, the data retention time of each reliable interval at different temperatures is further tested. Specifically, the data retention time of each reliable interval under different temperature conditions is tested to establish a data retention timetable. Simultaneously, a minimum RAID member layer interval is preset as the base interval for each lifetime group, and a dynamic layer interval is set as an additional interval, with an initial value of 0, an initial value of 0 for the warning cumulative count, and an initial RAID algorithm of RAID5, together forming a reliability heatmap.
[0028] Furthermore, in this embodiment, the distribution interval parameter includes a basic interval and an additional interval; the basic interval is the minimum layer interval of the RAID member, which is preset according to the lifetime group in which the current programming / erasing cycle is located; the additional interval is the dynamic layer interval corresponding to each reliable zone, and its initial value is zero.
[0029] For example, the parameters corresponding to grouping by the proportion of usage are as follows:
[0030] When the usage percentage corresponding to the current programming / erasing cycle is in the first range (0% to 50%): the low reliability zone consists of 2 layers each at the top and bottom, and the high reliability zone consists of 100 layers in the middle, with each layer having a first proportion (60% word line) in the middle; the minimum member layer interval is: 1 for low, 1 for middle, and 1 for high. When the usage percentage is in the second range (51% to 80%): the low reliability zone consists of 4 layers each at the top and bottom, and the high reliability zone consists of 80 layers in the middle, with each layer having a second proportion (50% word line) in the middle; the minimum member layer interval is: 2 for low, 1 for middle, and 1 for high. When the usage percentage is in the third range (81% to 90%): the low reliability zone consists of 6 layers each at the top and bottom, and the high reliability zone consists of 60 layers in the middle, with each layer having a third proportion (40% word line) in the middle; the minimum member layer interval is: 3 for low, 2 for middle, and 1 for high. When the used ratio is greater than the third interval, i.e., 90%: the low reliability zone consists of 10 layers each at the top and bottom, and the high reliability zone consists of 50 layers in the middle, with each layer having a fourth ratio (30%) in the middle; the minimum number of member layer intervals is: 4 for low, 3 for middle, and 1 for high. See Table 2 for examples. It should be noted that the above preset conditions are not the only possible results, and those skilled in the art can selectively adjust the range, for example, changing 50% to 40%.
[0031] Table 2 Parameter Configurations for Each Group
[0032]
[0033] Step 3.1 Perform dynamic partitioning and parameter acquisition.
[0034] In this embodiment, the current P / E cycle of the storage block is obtained, and the storage area within the storage block is dynamically divided into three reliability zones: low, medium, and high, according to the aforementioned preset grouping.
[0035] Specifically, RAID stripe members are required to not span across storage blocks but can span across dies. Storage blocks with the same number within multiple dies together form the RAID stripe space. The total number of members in a single RAID stripe is an integer multiple of the number of dies. All storage blocks with the same number in all dies use the same arrangement algorithm. During the production stage, each storage block needs to be tested and screened to remove dies containing storage blocks with high Raw Bit Error Rate (RBER), thereby eliminating abnormal dies and ensuring that the difference in Raw Bit Error Rate (RBER) among all storage blocks within all dies is controlled within a reasonable range at the time of shipment.
[0036] All memory blocks with the same die number use the exact same arrangement algorithm. After each block erase, before writing data, its current reliability heatmap grouping is queried based on its current P / E cycle. If the grouping has changed, the dynamic layer interval count, warning accumulation count, and RAID algorithm are all restored to their initial values. In this embodiment, the RAID stripe member layer interval count in each of the three reliability zones needs to be calculated separately. The currently used RAID stripe member layer interval count = minimum interval count + dynamic interval count.
[0037] Step 3.2 Stripe Member Allocation and Writing; Specifically, the multiple member data of the RAID stripe are allocated to different physical locations within the first reliable zone and the second reliable zone, including: calculating the approximate integer proportion of the total storage capacity of the storage block in the low reliable zone, the medium reliable zone, and the high reliable zone; based on the proportion, determining the upper limit of the number of members that a single RAID stripe can be allocated in the low reliable zone, the medium reliable zone, and the high reliable zone respectively; allocating member positions to the RAID stripe in the order of the low reliable zone, the medium reliable zone, and the high reliable zone; wherein, if the number of members actually allocated in the previous reliable zone does not reach the upper limit of the number of members corresponding to that reliable zone, the remaining unallocated number of members is accumulated and allocated to the upper limit of the number of members in the next reliable zone.
[0038] In detail, based on the RAID stripe member layer interval number calculated in step 3.1, which is the sum of the minimum interval number and the dynamic interval number, the following allocation is performed:
[0039] Calculate the approximate integer proportion of the total storage block capacity in each of the three reliable zones, and determine the upper limit of the number of members that can be allocated to a single RAID stripe in each reliable zone based on this. Allocate member positions to the RAID stripe in the order of low reliability zone, medium reliability zone, and high reliability zone. If the upper limit is not reached in a previous reliable zone, the remaining members are accumulated and allocated to the next reliable zone.
[0040] Therefore, in order to make the distribution among the RAID stripes more balanced, this embodiment calculates an approximate integer ratio of the total Block space occupied by each of the three reliable zones. This ratio determines the number of members allocated to each reliable zone for a single RAID stripe, i.e., the upper limit. The allocation order is: low reliable zone, medium reliable zone, high reliable zone. If the number of members determined by the ratio is not allocated in the previous reliable zone, the unallocated members are added to the next reliable zone for allocation.
[0041] During the process of allocating member positions for the RAID stripe, when the allocated position of a member is located at the boundary of two reliable zones, the larger value among the distribution interval parameters corresponding to the two reliable zones is used as the allocation interval; the method further includes: completing the member position calculation for all RAID stripes within the storage block at once; when a complete RAID stripe member cannot be allocated according to the rules in the remaining unallocated space, the allocation ends, and padding data is written into the remaining space; and, in the metadata area of each physical page to which the RAID stripe member data is written, the stripe index and member index to which the page belongs are recorded.
[0042] Specifically, during allocation, positions are selected sequentially within each reliable zone according to the number of member layer intervals within that zone. When calculating the distribution positions of members for a specific RAID stripe, allocation is performed from currently unallocated space. Within each reliable zone, allocation is performed sequentially according to the number of member layer intervals within that zone. When crossing the boundary between two reliable zones, the larger of the two layer intervals is used as the spacing; in other words, at the boundary between two reliable zones, the larger of the two member layer intervals is used.
[0043] In some embodiments, during the specific location calculation, the corresponding reliable zone and its offset within the zone are determined based on the stripe index, member index, and the layer interval of the three zones, ultimately mapping to a unique Die index, layer index, and word line index. The calculation of the positions of all RAID stripe members within this block is completed in one step; if the remaining space cannot form a complete stripe, the allocation ends and padding data is written to the remaining space. To accelerate the lookup, a hash lookup table with (stripe index, member index) as input is constructed and stored in the first word line of each Die's high-reliability zone. During writing, the stripe index and member index are recorded in the metadata area of each member page for easy reverse lookup.
[0044] For example, when calculating the position of a member within a RAID stripe, the system first calculates the reliable zone to allocate to based on (stripe index, member index, and the number of layer intervals between the three reliable zones). Then, it calculates the offset within the reliable zone (reliable zone index and offset within the reliable zone). Finally, it determines the unique position within the block (Die Index, Layer Index, WordLine Index) based on (reliable zone index and offset within the reliable zone). This process calculates the distribution of all RAID stripes within the block in one go. If, in a given instance, insufficient RAID stripe members cannot be allocated from the remaining unallocated space according to the above rules, the RAID stripe distribution calculation for the current block ends, and the remaining space is filled with dummy data. Furthermore, to accelerate the lookup of positions within the block (Die Index, Layer Index, WordLine Index) based on (stripe index and member index), a hash lookup table is built using (stripe index and member index) as input. This table is stored in the first WordLine of each Die's high-reliability zone. To facilitate reverse lookup, each time data is written to a RAID stripe member, the corresponding (stripe index, member index) information is stored in the Meta section of each page of that member.
[0045] Step 4, LDPC closed-loop feedback optimization; In this embodiment, feedback information generated by LDPC decoding is obtained, and the additional interval is adjusted according to the feedback information, including: when reading data, if the number of LDPC soft decoding iterations exceeds a preset warning threshold, the warning accumulation count corresponding to the reliable zone where the read data is located is incremented by 1; when the warning accumulation count reaches a preset number, the additional interval corresponding to the reliable zone is increased by 1. Furthermore, the redundancy of the RAID stripe is adjusted according to the feedback information, including: when reading data, if LDPC decoding fails, the redundancy of the RAID stripe is increased from the first redundancy level to the second redundancy level; if the current redundancy is already at the second redundancy level, the additional interval corresponding to the reliable zone where the decoded data failed is increased by 1.
[0046] Specifically, the first redundancy level is RAID5, and the second redundancy level is RAID6. If an anomaly is detected in the LDPC feedback when reading data stored in the NAND, the current block reliability heatmap parameters are updated, including the RAID algorithm and the dynamic layer interval of the stripe members. These updates take effect when new data is written after the current block is erased. Data migration is achieved when data stored in the NAND is read before the Data Retention time: if the LDPC soft decoding iteration count exceeds the warning threshold, the current block's current reliability zone warning cumulative count is incremented by 1; if the cumulative count reaches a certain number, the current block's current reliability zone dynamic layer interval is incremented by 1. If reading data stored in the NAND fails before the Data Retention time (in this example, LDPC correction fails), the RAID algorithm is upgraded from RAID5 to RAID6; if it is already RAID6, the RAID stripe member dynamic layer interval is incremented by 1.
[0047] Therefore, LDPC decoding feedback is obtained when reading data. If the data is read before the current reliable zone's data retention time is reached, and the number of LDPC soft decoding iterations exceeds a preset warning threshold, the warning accumulation count for the corresponding reliable zone is incremented by 1; when the accumulation count reaches a preset number, the dynamic layer interval for that reliable zone is incremented by 1. If LDPC decoding fails before the data retention time is reached, the RAID algorithm is upgraded from RAID5 to RAID6; if it is already RAID6, the dynamic layer interval for that reliable zone is incremented by 1. All parameter updates take effect when new data is written after the next block erase. Through the above closed-loop adjustment, the RAID stripe distribution is adaptively optimized as the storage medium degrades, improving data storage reliability and lifespan.
[0048] The storage system according to the embodiments of this application is used to execute the dynamic RAID stripe construction method of the above embodiments, including multiple storage blocks, each storage block containing multiple physical layers and multiple word lines located in each layer, and the system is a non-volatile storage system.
[0049] The above description is merely a preferred embodiment of the present invention. It should be understood that the present invention is not limited to the forms disclosed herein and should not be construed as excluding other embodiments. It can be used in various other combinations, modifications, and environments, and can be altered within the scope of the concept described herein through the above teachings or related technologies or knowledge. Modifications and variations made by those skilled in the art that do not depart from the spirit and scope of the present invention should be within the protection scope of the appended claims.
Claims
1. A data storage method based on dynamic RAID striping, characterized in that, include: Obtain the current programming / erasing cycle of the storage block; According to the programming / erasing cycle, the storage area within the storage block is dynamically divided into at least a first reliable area and a second reliable area, wherein the estimated reliability of the first reliable area is lower than that of the second reliable area, and the boundary of the division is adjusted as the programming / erasing cycle changes; Obtain the RAID stripe member distribution parameters for the storage block, the distribution parameters including the base interval corresponding to the current programming / erasing cycle, and the additional interval determined based on historical data read feedback; When writing data into the storage block in RAID stripes, based on the distribution parameters, multiple member data of the RAID stripe are allocated to different physical locations within the first reliability zone and the second reliability zone, so that the member data of the same RAID stripe are distributed in different reliability zones. When reading data from the storage block, feedback information generated by LDPC decoding is obtained, and the additional interval and / or the redundancy of the RAID stripe are adjusted according to the feedback information. The adjusted parameters are used for data writing after the next erase of the storage block.
2. The data storage method based on dynamic RAID striping as described in claim 1, characterized in that, The storage area within the storage block is dynamically divided into low-reliability, medium-reliability, and high-reliability areas; The low reliability region includes all word lines within a predetermined number of edge layers at the top and bottom of the storage block; the high reliability region includes a predetermined proportion of word lines located in the middle layer and in the middle area of each layer; and the medium reliability region includes the remaining storage area within the storage block excluding the low reliability region and the high reliability region.
3. The data storage method based on dynamic RAID striping as described in claim 2, characterized in that, The storage area within the storage block is dynamically divided according to the programming / erasing cycle, including: Based on the preset lifetime grouping of the current programming / erasing cycle, determine the number of edge layers in the low-reliability region, the number of intermediate layers in the high-reliability region, and the proportion of word lines in the intermediate regions of each layer: When the usage ratio corresponding to the current programming / erasing cycle is within the first interval, the low reliability zone consists of two layers at the top and two layers at the bottom, and the high reliability zone consists of 100 layers in the middle, with the word line in the middle of each layer having the first ratio of word lines. When the used ratio is in the second interval, the low reliability zone consists of 4 layers at the top and 4 layers at the bottom, and the high reliability zone consists of 80 layers in the middle, with each layer containing word lines that occupy the second middle ratio. When the usage ratio is in the third interval, the low reliability zone consists of 6 layers at the top and bottom, and the high reliability zone consists of 60 layers in the middle, with each layer containing word lines that occupy the middle third ratio. When the used ratio is greater than the third interval, the low reliability zone consists of 10 layers at the top and bottom, and the high reliability zone consists of 50 layers in the middle, with each layer containing word lines that occupy the fourth middle proportion.
4. The data storage method based on dynamic RAID striping according to claim 2 or 3, characterized in that, The distribution interval parameter includes a basic interval and an additional interval; the basic interval is the minimum layer interval of the RAID member, which is preset according to the lifetime group in which the current programming / erasing cycle is located; the additional interval is the dynamic layer interval corresponding to each reliable zone, and its initial value is zero.
5. The data storage method based on dynamic RAID striping according to claim 4, characterized in that, Obtaining feedback information generated by LDPC decoding and adjusting the additional interval amount based on the feedback information includes: When reading data, if the number of LDPC soft decoding iterations exceeds the preset warning threshold, the warning cumulative count corresponding to the reliable area where the data is read is incremented by 1; when the warning cumulative count reaches the preset number, the additional interval corresponding to the reliable area is incremented by 1.
6. The data storage method based on dynamic RAID striping according to claim 4, characterized in that, Adjusting the redundancy of the RAID stripes based on the feedback information includes: If an LDPC decoding failure occurs while reading data, the redundancy of the RAID stripe is increased from the first redundancy level to the second redundancy level; if the current redundancy level is already the second redundancy level, the additional interval corresponding to the reliable zone where the decoded data is located is increased by 1.
7. The data storage method based on dynamic RAID striping according to claim 6, characterized in that, The first redundancy level is RAID5, and the second redundancy level is RAID6.
8. The data storage method based on dynamic RAID striping as described in claim 4, characterized in that, Distributing multiple member data of the RAID stripe to different physical locations within the first and second reliability zones includes: Calculate the approximate integer proportion of the total storage capacity of the storage block to each of the low-reliability zone, the medium-reliability zone, and the high-reliability zone; based on the proportion, determine the upper limit of the number of members that a single RAID stripe can be allocated in the low-reliability zone, the medium-reliability zone, and the high-reliability zone respectively; allocate member positions to the RAID stripe in the order of the low-reliability zone, the medium-reliability zone, and the high-reliability zone. If the number of members actually allocated in the previous reliable zone does not reach the upper limit of the number of members corresponding to that reliable zone, the remaining number of unallocated members is added to the upper limit of the number of members of the next sequential reliable zone for allocation.
9. The data storage method based on dynamic RAID striping according to claim 1, characterized in that, In the process of allocating member positions for the RAID stripe, when the allocated position of a member is located at the boundary of two reliable zones, the larger value of the distribution interval parameters corresponding to the two reliable zones is used as the allocation interval; the method further includes: completing the calculation of member positions for all RAID stripes within the storage block at once; when a complete RAID stripe member cannot be allocated according to the rules in the remaining unallocated space, the allocation ends and padding data is written into the remaining space; and, in the metadata area of each physical page to which the RAID stripe member data is written, the stripe index and member index to which the page belongs are recorded.
10. A storage system for performing the dynamic RAID striping construction method according to any one of claims 1-9, comprising: Multiple storage blocks, each containing multiple physical layers and multiple word lines within each layer.
Citation Information
Patent Citations
3-dimensional NAND flash layer variation aware SSD raid
US11714716B2
