Write-in distribution method for NAND flash memory of solid state disk
By analyzing data characteristics and update frequency, and combining block health, the write strategy is dynamically adjusted to allocate data to the most suitable blocks, thus solving the problem of uneven block lifespan in solid-state drives and achieving a balance between lifespan extension and performance.
Patent Information
- Application Number
- CN202511622254.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-07
- Publication Date
- 2026-03-20
AI Technical Summary
The existing write allocation mechanism of solid-state drives fails to effectively consider the redundancy and update frequency of data, resulting in uneven block lifespan. Static data is frequently moved, wasting its lifespan, while dynamic data is allocated to low-health blocks, accelerating wear and tear.
By analyzing the content characteristics and update frequency of the data to be written, and combining the health of the flash memory blocks, the data writing block allocation strategy is dynamically adjusted, and the data is allocated to the most suitable blocks based on the data redundancy and update frequency indicators.
It extends the lifespan of flash memory, maintains balanced write performance, avoids excessive load on low-health blocks, and improves the reliability and ease of operation of solid-state drives.
Smart Images

Figure CN121704770A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to data write management technology, and more particularly to a write allocation method for NAND flash memory in solid-state drives (SSDs) based on data redundancy and update frequency analysis. This method can be used to dynamically allocate write blocks in the SSD controller according to data characteristics, so as to balance write efficiency and memory lifespan. Background Technology
[0002] Most common solid-state drives (SSDs) currently use NAND flash memory as their primary storage medium, with the controller responsible for data writing, erasing, wear leveling, and bad block management. Traditional write allocation mechanisms primarily rely on block write cycles, usage frequency, or available capacity to achieve overall wear averaging. However, these mechanisms often focus only on block-level statistical parameters and do not identify or classify the characteristics of the data itself (such as repetition or update frequency).
[0003] For example, common static wear-leveling algorithms in existing technologies periodically move data from low-usage blocks to high-usage blocks to balance write cycles; while dynamic wear-leveling algorithms determine the write location based on block health on each write operation. Although this can extend the lifespan of some blocks, the problem of static and dynamic data coexisting in the same healthy blocks remains. Static data (such as system image files, long-term configuration files, etc.) is rarely updated, and frequent moving to high-health blocks wastes its usable lifespan; conversely, dynamic data (such as caches or log files), if mistakenly configured in low-health blocks, will accelerate block wear and lead to uneven overall lifespan distribution. In addition, while existing controllers may monitor data update frequency, they are mostly used only for cache management or prefetching strategies, rather than in conjunction with block health. Furthermore, duplicate data, such as backup content, identical file versions, or duplicate segments before compression, will still be repeatedly written to NAND flash memory without being identified, causing unnecessary write / erase burdens and lifespan consumption.
[0004] Therefore, existing technologies lack a write allocation mechanism that can simultaneously consider data redundancy, update frequency, and block health in order to maintain an overall performance balance while extending the lifespan of flash memory. Summary of the Invention
[0005] One of the objectives of this invention is to provide a method for writing NAND flash memory to solid-state drives. By analyzing the content characteristics and update frequency of the data to be written, the health of each NAND flash memory block is evaluated, and the data is allocated to the most suitable block based on the data redundancy and update frequency indicators, so as to extend the life of non-volatile flash memory and maintain a balance in write performance.
[0006] To achieve the above objectives, the present invention provides a NAND flash memory write allocation method for a solid-state drive, comprising: (a) a data characteristic analysis step: receiving at least one piece of data to be written from the host, and generating a hash value and a feature digest for each piece of data to be written, to determine whether the data to be written is similar to at least one existing piece of data stored in the flash memory of a controller, and counting the number of updates of the data to be written within the most recent monitoring period set by the controller as an update frequency value; wherein, the controller refers to a logic or hardware unit inside the solid-state drive, used to manage flash memory data access, block health status and related write operations; the feature digest includes data fragment fingerprints, statistical features and column distribution; wherein, the data fragment fingerprint refers to dividing the data into fixed-size fragments and calculating a hash value or statistical value for each fragment to characterize the content characteristics of the fragment; the statistical features refer to calculating statistical information for the data content, including byte or column distribution, average value and frequency of occurrence; the column distribution refers to the numerical or type distribution of each column or segment in the data, used to characterize the data structure and content characteristics; (b) Data redundancy assessment steps: The hash value of the data to be written is compared with the hash value of the existing data in the flash memory of the controller; if the hash values are exactly the same, the redundancy is determined to be high; if the hash values are different, the feature summary of the data to be written is further compared with the feature summary of the existing data item by item to calculate the feature matching ratio, and the comparison results are divided into three levels: low, medium and high according to this ratio, which serve as a data redundancy index; where: high redundancy indicates that the data to be written is static or repetitive data; medium redundancy indicates that the content of the data to be written has partial similarity and belongs to intermittently updated or periodically changing data; low redundancy indicates that the content of the data to be written changes greatly and belongs to dynamic data; (c) Block health classification steps: Based on the cumulative number of erase and write cycles, error correction frequency and write heat of each flash memory block, the health status of each block is assessed, and each block is classified into one of the three categories of high, medium and low health according to the assessment results; (d) Write area assignment steps: Based on the data redundancy index and the update frequency value, determine the target block for the data to be written; the allocation rules are as follows: for data with high redundancy and low update frequency, assign to low health blocks; for data with high redundancy but high update frequency, assign to medium or high health blocks to balance redundancy and update load; for data with low redundancy and low update frequency, assign to medium health blocks; for data with low redundancy and high update frequency, assign to high health blocks; for a combination of medium redundancy and update frequency, assign to medium health blocks; and (e) Write execution and update steps: the controller performs the actual data write operation according to the aforementioned write area assignment results, and updates the relevant statistical information after the write is completed, including the cumulative number of erases and writes for each block and health classification information, for use in subsequent monitoring cycles;Furthermore, the controller re-examines the usage ratio of low-health blocks in each operating cycle. If the load is too high, it automatically increases the data redundancy index or update frequency threshold assigned to low-health blocks to limit excessive load on low-health blocks.
[0007] Preferably, the hash comparison can be performed using fixed-length encoding, string similarity, or segmented comparison to generate the data redundancy index.
[0008] Preferably, the controller maintains a repetition statistics table to record the block allocation results of each data type, and refers to the table first when writing subsequent data.
[0009] Ideally, the health zone classification can be dynamically updated based on the moving average number of erase / write cycles and the magnitude of change.
[0010] In summary, the NAND flash memory write allocation method for solid-state drives provided by this invention analyzes the content characteristics and update frequency of the data to be written, and combines this with the health assessment of non-volatile flash memory blocks to establish allocation rules based on data redundancy and update frequency indicators. This allows data to be dynamically allocated to the most suitable blocks, achieving a balance between extending the lifespan of non-volatile flash memory and maintaining write performance. Simultaneously, this invention enables the solid-state drive controller to automatically adjust the data write area allocation strategy, avoiding excessive load on low-health blocks, improving uneven block lifespan distribution and performance degradation, and offering advantages such as ease of operation, dynamic adjustment, and improved storage device reliability. Attached Figure Description
[0011] Figure 1 This is a flowchart of a preferred embodiment of the present invention.
[0012] Explanation of reference numerals in the attached figures: (a) to (e) - steps. Detailed Implementation
[0013] To enable those skilled in the art to clearly understand the technical content of the present invention, the following embodiments are described in conjunction with the accompanying drawings to further illustrate the present invention's NAND flash memory write allocation method based on data redundancy and update frequency in solid-state drives.
[0014] The embodiments described below aim to provide a NAND flash memory write allocation method in solid-state drives based on data redundancy and update frequency. By analyzing the content characteristics and update frequency of the data to be written, combined with flash memory block health assessment, the data write block allocation strategy is dynamically adjusted to extend the lifespan of non-volatile flash memory and maintain a balance in write performance. This embodiment will step by step explain the operation methods of each step, including data characteristic analysis, data redundancy assessment, block health classification, write area assignment, write execution, and statistical information update, and provide examples of the specific implementation details and operation parameter settings in each step to facilitate understanding of the technical features and effects of this invention.
[0015] First, in this embodiment, a method for writing and allocating NAND flash memory in a solid-state drive includes: (a) a data characteristic analysis step, whereby the controller, after receiving at least one piece of data to be written from the host, sequentially executes analysis operations to establish complete characteristic information for each piece of data. Here, the controller refers to a logic or hardware unit inside the solid-state drive, used to manage flash memory data access, block health status, and related write operations. Further, the controller receives data sent from the host, which can be a single piece or multiple pieces, such as multiple transaction records or multiple file blocks transmitted at once. For each piece of data, the controller calculates its hash value to quickly compare whether the data content is duplicated, for example, calculating the SHA-256 hash value for transaction records to determine whether the data is the same when written again in the future. In addition, the controller also generates a feature summary for each piece of data to describe the characteristics of the data content, including data fragment fingerprints, statistical features, and field distribution. Data fragment fingerprinting refers to dividing data into fixed-size fragments (e.g., every 4 KB), calculating a hash or statistical value for each fragment to characterize its content features. For example, a PDF file can be divided into multiple fragments, and a fingerprint is calculated for each fragment. Statistical features refer to calculating statistical information such as byte distribution, field average, and frequency of occurrence in the data content to reflect the data structure and content distribution. For example, the frequency of character occurrence or the average value of numerical fields in a text file. Field distribution analyzes the numerical or type distribution of each field or segment in the data to characterize the data structure characteristics. For example, the numerical range distribution of the "date field" or the concentrated interval of the "amount field" in tabular data. Next, the controller compares the hash value of the data to be written with the hash value of at least one existing data in the controller's internal flash memory. If the hash values are the same, the data is initially determined to be consistent. If the hash values are different, the feature digest is further compared to determine whether the data content has partial similarity. For example, two financial statements may have different numbers, but if their field structure and statistical features are similar, they can be considered similar data. In addition, the controller counts the number of times each piece of data to be written has been written within the most recent monitoring period (e.g., the past hour or day) as an update frequency indicator. If a log data item has been updated 30 times in the past hour, the update frequency value is 30; if a historical backup file has only been updated once, the update frequency value is 1. Through the above analysis, the controller establishes a hash value, feature summary, and update frequency value for each piece of data to be written, serving as the basis for subsequent data duplication judgment and block allocation. It can also quickly determine whether the data content is duplicated, semi-dynamic, or dynamic, thereby improving the accuracy and efficiency of write strategy decisions.
[0016] Following this, in step (b) of the data redundancy assessment, after completing the aforementioned data characteristic analysis, the controller further compares the hash value with the feature digest to generate a data redundancy index for each piece of data to be written. Specifically, the controller first compares the hash value of the data to be written with the hash values of existing data in the internal flash memory one by one. When the hash values are exactly the same, it means that the data content is completely identical. For example, two files with the same SHA-256 value are identical in size and structure, and their redundancy can be directly determined to be "high," belonging to static or repetitive data types, such as system backup image files or long-term unchanging configuration files. The hash comparison can use fixed-length encoding, string similarity, or segmented comparison methods to generate the data redundancy index.
[0017] If the hash values differ, the controller proceeds to the feature-level comparison procedure. At this point, the system compares the feature summaries of the data to be written with those of the existing data, including data fragment fingerprints, statistical features, and field distribution. The comparison can employ item-by-item matching algorithms, such as comparing the similarity of the hash values of each data fragment, or calculating Euclidean distance or cosine similarity based on the statistical features of the fields. For example, if a newly written Excel report and an existing report in flash memory have the same field structure, a 90% match rate in field names, and an 85% similarity in numerical distribution, the controller can determine that the feature matching ratio is approximately 88%, classifying it as highly similar data.
[0018] Furthermore, the controller categorizes the comparison results into three levels based on the feature matching ratio: for example, a matching ratio exceeding 80% is defined as "high repetition"; those between 40% and 80% are defined as "medium repetition"; and those below 40% are defined as "low repetition". High repetition data indicates highly similar content, typically static data or repetitive backup data; medium repetition data indicates partially similar content, commonly found in intermittently updated or periodically changing data, such as daily generated report templates, regularly accumulated log archives, or weekly automatically updated index files; low repetition data indicates significantly changing content, belonging to dynamic data, such as real-time transaction records, video stream caches, or real-time sensor data, whose data structure and numerical distribution differ significantly with each write.
[0019] Furthermore, to improve the accuracy of repetition assessment, the controller can simultaneously consider the data update frequency and comparison results, and adjust the repetition index accordingly to make the evaluation results more consistent with actual access characteristics. For example, if the hash similarity of a piece of data is only 50%, but the update frequency is extremely low in the past monitoring period, it can be inferred that it is static data that is "similar in content but does not change often"; conversely, if the similarity reaches 80% but the update frequency is extremely high, it belongs to semi-dynamic data that is "highly repetitive but frequently updated".
[0020] Next, in step (c) Block Health Classification, the solid-state drive controller continuously collects and updates the operating status parameters of each managed flash memory block, including program / erase cycle count, error correction frequency, and write hotness, to assess the health status of each block. Based on the assessment results, all blocks are classified into three levels: "high health," "medium health," and "low health." Specifically, the program / erase cycle count refers to the number of write and erase cycles that the block has undergone since initialization. Since NAND flash memory has a limited write / erase lifespan, a higher count indicates a greater degree of block aging and a more significant impact on data retention stability. For example, in an MLC flash memory with a lifespan of 3000 P / E cycles, if a block has been erased and written 2500 times, its health will be rated as "low" and subsequent write loads need to be reduced; conversely, if it has only been erased and written about 500 times, it can be considered a "high health block".
[0021] Error correction frequency reflects the occurrence of bit errors in a block. The controller can calculate the number of errors or the correction rate of a block within a fixed time or a fixed amount of writes using the error correction statistics of the internal ECC (Error Correction Code) engine. For example, if a block requires more than 16 bits of error correction on average per read in the last 100 reads, it can be assumed that the physical condition of the block has deteriorated and its health needs to be downgraded; conversely, if the number of error corrections remains below 2 bits for a long period of time, the block is considered a reliable area and can continue to handle high-frequency write tasks.
[0022] Write activity level represents the actual amount of write activity to a block within a specific monitoring period. The controller can determine the operational intensity of a block by statistically analyzing the number of writes, data volume, or trigger frequency per unit time. Write activity level can be used to distinguish between "hot zones" (frequently used) and "cold zones" (long-term idle areas) and serves as an auxiliary parameter for dynamically adjusting block health. For example, if a block has a low number of write cycles but a recent surge in write activity, the controller can temporarily downgrade its rating to prevent premature aging caused by concentrated writes.
[0023] Based on this, the controller classifies the block's health status by considering the three indicators mentioned above. For example, if the cumulative write cycles are below 1000, the ECC correction rate is below 1%, and the recent write activity is moderate, the block can be classified as "high health." If the write cycles are between 1000 and 2000, the ECC correction rate is between 1% and 5%, and the activity remains stable, it is classified as "medium health." If the write cycles exceed 2000 or the ECC correction rate is greater than 5%, it is classified as "low health." The controller records this classification result in the Block Management Table (BMT) and updates it at the end of each monitoring cycle to reflect the real-time changes in the block's aging status.
[0024] Furthermore, to avoid classification bias caused by a single indicator, the controller can also use a weighted scoring formula for comprehensive judgment, for example: Health_Score=w1×(1-P / E_Ratio)+w2×(1-ECC_ErrorRate)+w3×(1-Write_Hotness_Normalized). Here, Health_Score represents the quantitative result of the overall health of the block; a higher value indicates a better health condition. Further, the variables are defined as follows: P / E_Ratio (write / erase ratio): This refers to the ratio of the cumulative number of write / erase cycles to the maximum allowable number of write / erase cycles, used to reflect the degree of aging. For example, if the block has undergone 1500 write / erase cycles, and the maximum size is 3000 cycles, then P / E_Ratio=0.5; and the (1-P / E_Ratio) used in the formula represents the "remaining lifetime ratio," meaning that the higher the remaining usable lifetime, the greater the contribution score for this item. ECC_ErrorRate (Error Correction Rate): This refers to the proportion of bit errors detected by the controller's internal Error Correction Code (ECC) within a fixed time or number of operations. For example, if an average of 10 bits need to be corrected every 1,000 reads, the error rate is 1%. (1-ECC_ErrorRate) represents the stability or reliability of data reads; a lower error rate results in a higher health score. Write_Hotness_Normalized (Write Hotness Normalized Value): This is a relative value obtained by normalizing the actual number of writes or the amount of data to a block within a specific monitoring period, representing the level of write pressure the block experiences. (1-Write_Hotness_Normalized) in the formula represents the "write idleness level," meaning the lower the recent write load on the block, the better its health and the higher its score. w1, w2, and w3 are the weight coefficients for the three indicators, used to adjust the proportion of each indicator's influence on the overall health assessment. Different product applications can adopt different configurations: for example, enterprise SSDs can increase the w2 weight to emphasize data reliability and fault tolerance; while consumer SSDs can increase the w3 weight to emphasize write load balancing and performance maintenance. The controller calculates the Health_Score of all blocks in each monitoring cycle and determines the health level based on the final value range. For example, the classification thresholds can be set as follows: Health_Score ≥ 0.75 is "high health", between 0.45 and 0.75 is "medium health", and below 0.45 is "low health".In addition, each health zone category can be dynamically updated based on the moving average number of erases and writes and its variation to adapt to actual usage load and block aging, ensuring that the allocation strategy continuously reflects the true health status of the blocks.
[0025] Through the above classification mechanism, the controller can monitor the health distribution of each block of the NAND flash memory in real time, providing a basis for the subsequent data write area assignment steps, ensuring that static data is allocated to less healthy blocks, while frequently updated dynamic data uses healthy areas first, thereby achieving the design goal of improving overall lifespan and maintaining stable performance.
[0026] Furthermore, in the write area assignment step (d), after the controller completes the calculation of the repetition index and update frequency value of the aforementioned data, it determines the target storage block of the data to be written based on the combination of these two characteristics, so as to achieve the comprehensive purpose of load balancing and lifespan extension. The core principle of the control logic is: to allocate data with high repetition or low update frequency to blocks with lower health to make full use of the aging area; and to allocate data with high update frequency or low repetition to blocks with higher health to ensure that frequently operated data still has stability and write reliability. More specifically, the allocation rules of this step are as follows: (1) For data with high repetition and low update frequency (such as system backup images, software installation packages, and static configuration files that do not change for a long time), whose content is repeated and will not be modified for a long time after being written, the controller assigns it to blocks with low health (i.e., those with high P / E count and short remaining lifespan). This can effectively extend the lifespan of healthy blocks and avoid precious healthy storage units being occupied by static data for a long time. (2) For data with high repetition but high update frequency (such as periodically generated temporary buffer files, log records, and frequently updated index tables), although the content is similar, the frequent updates will cause rapid wear and tear on the erase / write life if it is configured in low health blocks. Therefore, the controller will assign it to medium or high health blocks. This classification can be determined by parameter thresholds. For example, when the repetition index R≥0.8 and the update frequency F≥0.7, it belongs to this type. (3) For data with low repetition and low update frequency (such as historical transaction records, archived images, or monthly reports), its content is unique and stable over a long period of time. It does not need to be written frequently. Therefore, the controller will assign it to medium health blocks so that the blocks occupied by this type of data do not affect the overall performance or waste health resources. (4) For data with low repetition and high update frequency (such as real-time sensing records, user interaction caches, and financial transaction details), due to its frequent changes and unique content, it is very easy to cause data inconsistency due to the accumulation of errors. Therefore, the system will assign this type of data to high health blocks to ensure sufficient write stability and ECC correction capability. (5) As for data with medium repetition and medium update frequency (such as application layer state synchronization information, version update list, short-term snapshots, etc.), it belongs to temporary or medium-frequency operation data. The controller assigns it to the health block to maintain the load balance between healthy blocks and aging blocks.
[0027] To enable dynamic adaptation of the above rules, the controller can establish a mapping matrix, dividing the data into nine-square grid intervals using repetition and update frequency as two axes. For example, R∈{low, medium, high} and F∈{low, medium, high} correspond to three health levels {high, medium, low}. This matrix can be automatically updated based on actual operating conditions. For instance, when the average P / E value of a block containing a batch of high-frequency data approaches the threshold, the system can adjust it to a block with a slightly higher health level to avoid concentrated wear. Furthermore, this step can also be coordinated with a write hotness monitor and a block health table. During each allocation decision, the controller queries the latest health data in real time to ensure that the selected target block has not reached a critical aging state. Simultaneously, the controller can refer to a repetition statistics table it maintains, which records the allocation results of various data types and their corresponding blocks in the past. This prioritizes the writing blocks for similar data, improving the consistency and efficiency of the allocation strategy. The final allocation result is then updated in the statistics table for use in subsequent write cycles.
[0028] Next, in step (e), the execution and update steps are performed: the controller executes the actual data write operation based on the target blocks assigned in the previous step (d). After the write is completed, the controller updates the cumulative write count, health classification information, and data redundancy statistics table for each block. For example, if data is written to a low-healthy block, the controller increments the write count of that block by 1 and records the association between that data type and the target block in the statistics table. During each runtime cycle, the controller re-examines the usage ratio of low-healthy blocks. If it finds that a low-healthy block is overloaded (e.g., more than 80% of its capacity is occupied by highly repetitive data), it automatically raises the data redundancy or update frequency threshold assigned to the low-healthy block to limit the continued writing of static or high-update-frequency data to that block. For example, if data with high redundancy and low update frequency was originally allowed to be written to a low-healthy block, the controller can temporarily adjust it to only allow data with extremely high redundancy and extremely low update frequency to be written, preventing the block from wearing out too quickly. Meanwhile, the controller can update the write results for reference in subsequent monitoring cycles or data response processes, ensuring data integrity and the continuity of block lifespan management.
[0029] In summary, the NAND flash memory write allocation method for solid-state drives (SSDs) proposed in this invention enables the SSD controller to dynamically analyze the content characteristics and update frequency of the data to be written, evaluate the health status of each flash memory block, and allocate data to the most suitable block based on data redundancy and update frequency indicators. This achieves the effects of extending NAND block lifespan, balancing write load, and maintaining overall performance. By comparing hash values and feature digests, the system can accurately determine the static or dynamic nature of the data and intelligently select target blocks by combining update frequency and block health information. This avoids the concentrated writing of static or repetitive data to low-health blocks, which would cause excessive aging. At the same time, it prioritizes configuring high-update-frequency data in healthy blocks to reduce block lifespan differences and improve write performance. After the write operation is completed, the controller updates the cumulative erase / write count, health classification, and data redundancy statistics table in real time and automatically adjusts the allocation threshold according to the actual load to limit excessive load on low-health blocks. Overall, this method can automatically and dynamically manage write operations under different data types and access modes, taking into account lifespan extension, performance stability and data reliability, which is significantly better than the traditional fixed-strategy write allocation method.
[0030] The above description is merely a preferred embodiment of the present invention and is not intended to limit the scope of the present invention. Therefore, all equivalent changes and modifications made without departing from the scope of the present invention should be covered within the protection scope of the present invention.
Claims
1. A method for writing and allocating NAND flash memory in a solid-state drive, characterized in that, Include: (a) Data characteristic analysis steps: Receive at least one piece of data to be written from the host, and generate a hash value and feature digest for each piece of data to be written, to determine whether the data to be written is similar to at least one existing piece of data stored in the flash memory of a controller, and count the number of updates of the data to be written within the most recent monitoring period set by the controller as an update frequency value; wherein, the controller refers to the logical or hardware unit inside the solid-state drive, used to manage flash memory data access, block health status and related write operations; the feature digest includes data fragment fingerprint, statistical features and field distribution; wherein, the data fragment fingerprint refers to dividing the data into fixed-size fragments and calculating a hash value or statistical value for each fragment to characterize the content characteristics of the fragment; the statistical features refer to calculating statistical information for the data content, including byte or field distribution, average value and frequency of occurrence; the field distribution refers to the numerical or type distribution of each field or segment in the data, used to characterize the data structure and content characteristics; (b) Data redundancy assessment steps: The hash value of the data to be written is compared with the existing data hash value in the controller's internal flash memory; if the hash values are exactly the same, the redundancy is determined to be high; if the hash values are different, the feature summary of the data to be written is further compared with the feature summary of the existing data item by item to calculate the feature matching ratio, and the comparison results are divided into three levels: low, medium, and high according to this ratio, which serve as a data redundancy index; wherein: high redundancy indicates that the data to be written is static or repetitive data; medium redundancy indicates that the content of the data to be written has some similarity and belongs to intermittently updated or periodically changing data; low redundancy indicates that the content of the data to be written changes greatly and belongs to dynamic data; (c) Block health classification steps: Based on the cumulative number of erase / write cycles, error correction frequency and write activity of each flash memory block, evaluate the health status of each block and classify each block into one of the three categories of high, medium and low health based on the evaluation results; (d) Write Area Assignment Steps: Based on the data redundancy index and the update frequency value, determine the target block for the data to be written; the allocation rules are as follows: For data with high redundancy and low update frequency, assign it to a low health block; for data with high redundancy but high update frequency, assign it to a medium or high health block to balance redundancy and update load; for data with low redundancy and low update frequency, assign it to a medium health block; for data with low redundancy and high update frequency, assign it to a high health block; for a combination of medium redundancy and update frequency, assign it to a medium health block; and (e) Write execution and update steps: The controller performs the actual data write operation according to the aforementioned write area assignment results. After the write is completed, it updates the relevant statistical information, including the cumulative number of erase and write operations and health classification information of each block, for use in subsequent monitoring cycles. In each operating cycle, the controller re-examines the usage ratio of low-health blocks. If the load is too high, it automatically increases the data duplication index or update frequency threshold assigned to low-health blocks to limit the low-health area load to too high.
2. The method as described in claim 1, characterized in that, Hash matching uses fixed-length encoding, string similarity, or segmented matching to generate the data redundancy index.
3. The method as described in claim 2, characterized in that, The controller maintains a repetition statistics table to record the block allocation results of each data type, and refers to this repetition statistics table first when writing subsequent data.
4. The method as described in claim 3, characterized in that, The health zone classification can be dynamically updated based on the moving average number of erases and the magnitude of change.
Citation Information
Cited By
NAND performance optimization method based on static data identification and independent MCU compressed storage
CN122064302A
NAND performance optimization method based on static data identification and independent MCU compressed storage
CN122064302B