Weighted non-volatile storage medium scan
By using data evaluators, factor evaluators and scanners in solid-state driven controllers, evaluating and prioritizing data blocks based on multiple integrity factors, the problems of data integrity and bandwidth optimization are solved, and efficient media scanning is achieved and bandwidth management.
Patent Information
- Application Number
- CN202411004861.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-08-14
- Filing Date
- 2024-07-25
- Publication Date
- 2025-02-21
AI Technical Summary
The prior art is difficult to effectively maintain data integrity stored on solid-state drives, and while maintaining data integrity, it is difficult to optimize the operable bandwidth of the device.
By introducing a data evaluator, a factor evaluator and a scanner into the controller, the status of the data block is evaluated based on multiple integrity factors, providing weighted, aggregated weighted integrity factors, and performing media scans first to ensure data integrity, At the same time, bandwidth usage is optimized through weighted scanning strategies.
It effectively improves the media scanning efficiency of data blocks, ensures data integrity, and optimizes the operating bandwidth of storage devices without affecting performance bandwidth.
Smart Images

Figure CN119495348A_ABST
Abstract
Description
Technical Field
[0001] Embodiments described herein generally relate to maintaining the integrity of data stored on a solid state drive and the operational bandwidth of the device. Background Art
[0002] Based on one or more known factors, the media (i.e., data) stored on a NAND memory device or other non-volatile memory device is susceptible to corruption. If a media scan shows corrupted data, an error correction algorithm can be implemented. Error correction algorithms for correcting corrupted bits stored in a NAND flash memory device include LDPC (Low Density Parity Check Code), by which corrupted bits can be corrected for codewords below a threshold RBER (Raw Bit Error Rate). Summary of the invention
[0003] In one example embodiment, a non-volatile storage device includes non-volatile storage and a controller. The controller includes a data evaluator to evaluate each of a plurality of data blocks stored in the non-volatile storage according to a plurality of integrity factors, a factor evaluator to provide a weight for each of the plurality of integrity factors for each of the plurality of data blocks, aggregate the weighted plurality of integrity factors for each of the plurality of data blocks, and identify a data block of the plurality of data blocks stored in the non-volatile storage having a highest aggregated weighted integrity factor, and a scanner to perform at least one media scan of the identified data block stored in the non-volatile storage (e.g., NAND flash memory).
[0004] According to at least one other example embodiment, a method for preserving operating bandwidth for a non-volatile storage device includes evaluating each data block stored in the non-volatile storage device based on multiple integrity factors, providing a weight for each integrity factor in the multiple integrity factors for each data block, aggregating the weighted integrity factors for each data block, performing a media scan on the data block stored in the non-volatile storage device having the highest aggregated weighted integrity factor, and performing a media scan on the remaining data blocks stored in the non-volatile storage device. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] In the following detailed description, the embodiments of the non-volatile storage device and operation for facilitating weighted memory scanning are therefore described only as an illustration, as various changes and modifications will become apparent to those skilled in the art from the following detailed description. The same reference numerals are used in different figures to indicate similar or identical items.
[0006] Figure 1shows a non-limiting example of a solid-state storage device arranged in accordance with at least some of the embodiments described and enumerated herein;
[0007] Figure 2 A non-limiting example process flow illustrating weighted non-volatile storage media scanning in accordance with at least some embodiments described and enumerated herein; and
[0008] Figure 3
[0046] Another non-limiting example process of a process flow for a weighted non-volatile storage media scan is shown in accordance with at least some embodiments described and enumerated herein. DETAILED DESCRIPTION
[0009] In the following detailed description, reference is made to the accompanying drawings, which form a part of the description. In the accompanying drawings, similar symbols generally identify similar components unless the context indicates otherwise. In addition, unless otherwise indicated, the description of the subsequent drawings may refer to the features from any previous drawings to provide a clearer context and substantive explanation of the current example embodiment. Nevertheless, the example embodiments described in the detailed description, drawings, and claims are not intended to be limiting. Other embodiments may be utilized and other changes may be made without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that aspects of the present disclosure, as generally described and enumerated herein and illustrated in the drawings, may be arranged, replaced, combined, separated, and designed in a variety of different configurations, all of which are clearly intended herein.
[0010] In addition, parts of the present disclosure may be described herein in terms of functional block components and various processing steps. It should be understood that such functional blocks may be implemented by any number of firmware, software, and / or hardware components configured to perform the specified functions.
[0011] The storage density of non-volatile storage devices (including but not limited to NAND flash memory devices) continues to increase from SLC (single bit per cell), MLC (2 bits per cell), TLC (3 bits per cell), QLC (4 bits per cell), and higher. In addition, because NAND flash memory uses voltage levels to represent bits in a cell, the increase in bits per cell reduces the margin of the voltage distribution per cell.
[0012] The raw bit error rate (RBER) for such storage devices may be verified and / or monitored using background media scanning, whereby the embedded device software and / or firmware periodically reads all physical blocks of the non-volatile storage device on which valid data is stored. For efficiency, word lines that are considered to represent the quality of a word line group may be scanned rather than reading all pages, i.e., word lines, of a block. However, as the capacity of solid-state storage devices (i.e., SSDs) including, but not limited to, NAND flash memory devices, increases, the frequency of media scanning required to effectively monitor all word lines within a limited safety time window also increases. Therefore, when too much performance bandwidth is dedicated to quality assurance, performance is adversely affected.
[0013] According to non-limiting example embodiments of weighted non-volatile storage media scanning described and enumerated herein, bandwidth is allocated during runtime to scan data stored on storage devices to improve media scanning efficiency and, therefore, improve performance bandwidth allocation.
[0014] In this specification and description, the following terms may provide context for the embodiments described, described, and / or suggested herein; and in addition to their accepted meanings, may be used as follows.
[0015] Media scanning may refer to a partial or complete reading of data stored on a non-volatile storage device, such as a flash memory device. Media scanning may be implemented, facilitated, or performed by firmware corresponding to the storage device.
[0016] As referred to herein, a dimension may refer to an integrity factor that, when its corresponding milestone or threshold is met or exceeded, has the potential to adversely affect the integrity of data stored in a non-volatile storage device (eg, a flash memory device).
[0017] That is, upon detecting, by firmware or software corresponding to a controller of a non-volatile storage device, that a milestone or threshold level of a dimension or integrity factor is met or exceeded, a media scan of one or more blocks or super blocks stored in the non-volatile storage device may be initiated or activated individually. Thus, the detection of a milestone or threshold level of a corresponding dimension or integrity factor being met or exceeded may be considered as an individual trigger, stimulus, or catalyst for one or more media scans of the corresponding non-volatile storage device.
[0018] Non-limiting examples of dimensions or integrity factors where milestones or threshold levels are likely to affect the integrity of data stored in an SSD include the following:
[0019] Data Retention: Data retention refers to the length of time that data has been written to the media, as monitored and / or recorded by a firmware timer. According to the non-limiting example embodiments described and listed herein, a media scan may be activated or initiated when the amount of time that the monitored and / or recorded data has been written to a block or superblock of a non-volatile storage device (e.g., a NAND flash device) meets or exceeds one or more milestones or thresholds, and the RBER meets or exceeds its own threshold.
[0020] According to non-limiting embodiments described and illustrated herein, a superblock based timer tracks data retention time of data therein as RBER increases due to charge loss on, for example, NAND flash memory cells.
[0021] Read disturb: Read disturb refers to a read count for each block or super block of data stored in a non-volatile storage device (e.g., a NAND flash storage device). According to the non-limiting example embodiments described and listed herein, a read counter monitors and / or records the pass voltage for a block or super block of the storage medium when a high voltage (i.e., pass voltage) is applied to a word line other than the word line being read. When the read count reaches or exceeds one or more milestones or thresholds, and the RBER meets or exceeds its own threshold, a media scan may be activated or initiated.
[0022] According to the non-limiting embodiments described and enumerated herein, a superblock-based read counter tracks the effect of a high voltage (i.e., pass voltage) applied during, for example, a NAND flash read operation on word lines other than the read word line, and thereby affects the voltage distribution of the other word lines, which increases the RBER.
[0023] Program disturb: Program disturb refers to opening word lines, erasing word lines, and / or suspending programs in blocks or super blocks of non-volatile storage devices (e.g., NAND devices). According to non-limiting example embodiments described and listed herein, the firmware component provides a predicted damage level for each super block, which is determined based on factors including, but not limited to, the length of programming time, the number of program pauses while programming, etc. When the amount of time for such detection reaches one or more milestones or thresholds, and the RBER meets or exceeds its own threshold, a media scan can be activated or initiated.
[0024] According to the non-limiting embodiments described and listed herein, during an operation such as a NAND flash program, an open word line in the process of being erased may be affected by retention, read disturbance, and WL-WL coupling noise, which introduces an unfavorable voltage distribution. Frequent program pauses also lead to a degradation of program quality, resulting in an increase in RBER.
[0025] RBER: RBER (raw bit error rate) refers to the bit error rate before correction. According to the non-limiting example embodiments described and listed herein, during host I / O and flash translation layer (FTL) operations, error counters monitor and / or record the RBER in each block or superblock of stored data. When the RBER count meets or exceeds one or more milestone or threshold levels, a media scan can be activated or initiated.
[0026] According to the non-limiting embodiments described and illustrated herein, the RBER counting is initiated by firmware.
[0027] The non-limiting example embodiments described and enumerated herein provide, facilitate and / or implement a weighting scheme to coordinate media scans triggered based on an aggregation of weighted dimensions for multiple blocks or super blocks of non-volatile storage devices (e.g., NAND devices). Thus, by preventing multiple simultaneous or sequential media scans based on meeting or exceeding thresholds for corresponding dimensions or integrity factors, bandwidth for corresponding devices can be efficiently reserved and / or allocated.
[0028] The non-limiting example embodiments described and listed herein may also consider one or more synergistic effects, i.e., secondary effects, which may affect the weights provided or assigned to one or more dimensions or integrity factors. As non-limiting examples, one or more of data retention, read disturbance, program disturbance, and RBER monitoring and / or recording may be affected by synergistic effects, including but not limited to open word lines and / or weak word lines.
[0029] An open word line may cause the RBER to meet or exceed its threshold level, particularly when noise is applied, when a nonvolatile storage device (e.g., NAND flash memory) is in an intermediate state, i.e., when a NAND flash block is not fully programmed with one or more open word lines.
[0030] A weak wordline may be, for example, a wordline in a NAND array that contains stuck cells or causes faster charge loss as monitored by device firmware or software. A block or superblock in which a weak wordline is set may still be used in a memory device, but the performance of the weak wordline may cause the RBER to meet or exceed its milestone or threshold level.
[0031] The media scan interval may be affected by the operation of the device or the increase in temperature during operation. That is, as the operation of the device and its temperature increase, the RBER is likely to increase, which increases the frequency of media scans.
[0032] As a non-limiting example, within normal operating temperatures, ie, 0° C. to 70° C., the RBER count should be above its lower threshold in view of the read disturb count, data retention, and program disturb count.
[0033] The media scan interval may also be affected by drive life or program erase count (PEC). That is, non-volatile storage devices, such as NAND flash memory, have a limited program erase cycle count, so each block program / erase cycle causes media wear, thereby increasing channel noise and the frequency of media scans.
[0034] The media scan interval may also be affected by one or more exceptions, including, for example, a power loss event or an extended power-off state, both of which may increase the frequency of media scans.
[0035] Figure 1 A non-limiting example of a solid state storage device (SSD) arranged in accordance with at least some of the embodiments described and enumerated herein is shown.
[0036] The SSD 10 may be implemented and arranged according to at least some of the embodiments described and enumerated herein. Although shown as discrete components, various components may be separated into additional components, combined into fewer components, or eliminated altogether, while being contemplated within the scope of the disclosed subject matter. Those skilled in the art will appreciate that each function and / or operation of a component may be implemented individually and / or collectively by various hardware, software, firmware, or any combination thereof.
[0037] As depicted, SSD 10 is implemented as a non-volatile storage device, which may include, but is not limited to, a NAND flash memory device. Device 10 includes a controller 15 and a non-volatile storage device, such as a flash memory 20. Controller 10 may include a data evaluator 105, a factor evaluator 110, a scanner 115, a timer 120, a storage device 125, a recycler 130, a read counter 135, a program reader 140, an error counter 145, a temperature sensor 150, and a power sensor 155.
[0038] The controller 15 refers to hardware, firmware and / or software disposed within or otherwise corresponding to the SSD 10 , which is designed, programmed or otherwise configured to manage data stored in the non-volatile storage device 20 and communicate with a host processing device.
[0039] The data evaluator 105 refers to a firmware or software component designed, programmed, or otherwise configured to evaluate the status of each of the plurality of data blocks stored in the non-volatile storage device 20 .
[0040] The factor evaluator 110 refers to a firmware or software component designed, programmed, or otherwise configured to provide or assign a weight to each of the dimensions or integrity factors for each of the plurality of data blocks or super blocks that have met or exceeded at least one milestone or threshold, aggregate the weighted dimensions or integrity factors for each data block or super block, and identify one of the aggregated highest weighted data blocks or super blocks stored in the non-volatile storage device 20. The factor evaluator 110 also evaluates the weight of each of the plurality of dimensions or integrity factors for each of the data blocks or super blocks based on the corresponding open word lines and the word lines to be released.
[0041] The factor evaluator 110 accesses a table stored, for example, in the storage device 125 , which lists milestones and / or threshold levels and corresponding weights that may be provided or assigned to the aforementioned dimensions or integrity factors.
[0042] As a non-limiting example or implementation, the weights may represent the statistical probability of data corruption corresponding to the corresponding dimension / integrity factor. More specifically, the weights represent the risk that the RBER (raw bit error rate) determined prior to correction reaches a refresh threshold for the corresponding dimension or integrity factor. Thus, applying the Pareto principle, which states that for many results, approximately 80% of the consequences come from 20% of the causes (the "important few"), weights for dimensions or integrity factors may be determined and assigned or provided, and increased weights may be applied after predetermined milestones or thresholds for the dimensions or integrity factors (e.g., 0.5, 0.8). These values may vary as long as they are applied uniformly to each of the dimensions or integrity factors. Non-limiting example values for the weights provided or assigned for the corresponding dimensions or thresholds are listed below:
[0043] Data Retention:
[0044] As a non-limiting example of a weight provided or assigned, after 80% of the maximum retention time of a block or superblock stored in the non-volatile storage device 20 is reached, a weight of 0.2 is applied.
[0045]
[0046]
[0047] Read Disturb
[0048] For a block or superblock stored in the non-volatile storage device 20, a weight of 0.2 is applied after 80% of the maximum read counter for a particular PEC range is reached.
[0049]
[0050] Program Interference
[0051] After reaching 80% of the maximum open time for one or more word lines of a block or superblock of data stored in the non-volatile memory device 20, a weight of 0.2 is applied.
[0052]
[0053] After reaching 80% of the allowed RBER for a block or superblock stored in the non-volatile storage device 20, a weight of 0.2 is applied.
[0054] The lower boundary of the RBER threshold can be used as a point to assign weights but not yet trigger a media refresh. The lower boundary can be based on, for example, error correction code (ECC) engine performance. The lower boundary does not trigger high latency decoding, for example, read retries or high LDPC iterations during decoding.
[0055] Conversely, a medium refresh may be automatically triggered when the upper boundary of the RBER threshold is met.
[0056]
[0057] The values listed on the left side of the weight list are the milestones or thresholds of the corresponding dimensions or integrity factors, and the values listed on the right side of the list are the weights assigned to the corresponding dimensions or integrity factors that at least meet the corresponding milestones or thresholds. In addition, for all dimensions or integrity factors listed above, when the maximum value of a milestone or threshold is reached, the weight assigned to it is 1.
[0058] Thus, when the data evaluator 105 notifies the factor evaluator 110 of the status of each of the data blocks or super blocks on the non-volatile storage device 20, such as SB 150, SB 155, SB 160, SB 165, and SB 170, the factor evaluator 110 provides or assigns a corresponding weight for each of the dimension or integrity factors based on the milestones or thresholds met or exceeded by each of the blocks or super blocks.
[0059] If a corresponding one of the blocks or super blocks has not reached a milestone or threshold for the corresponding dimension or integrity factor, then no weight is provided or assigned to it by the factor evaluator 110. Additionally, for the non-limiting example embodiments depicted and described herein, as discussed below, for each block or super block, the three dimensions or integrity factors with the highest weights are aggregated. However, such example embodiments are not limiting. Any number of dimensions or integrity factors may be weighted and aggregated as long as the number of dimensions or integrity factors and the proportion of the assigned weights are the same for each block or super block.
[0060] According to at least some alternative example embodiments of weighted non-volatile storage media scanning, the operations or functions performed by the data evaluator 105 and the factor evaluator 110 may be performed by a combined firmware or software component.
[0061] In any event, after the factor evaluator 110 provides or assigns corresponding weights to each of the dimension or integrity factors based on the milestones or thresholds met or exceeded by each of the blocks or superblocks, the factor evaluator 110 further aggregates the weights of each of the blocks or superblocks and prioritizes the blocks or superblocks for media scanning based on the corresponding aggregation of the weights. The data block or superblock identified as having the highest aggregation of weights has the highest priority.
[0062] The scanner 115 refers to a firmware or software component designed, programmed, or otherwise configured to initiate or activate at least one media scan of (multiple) data blocks or (multiple) super blocks stored in the non-volatile storage device 20 (e.g., NAND flash memory) in a prioritized order by the factor evaluator 110. The scanner 115 activates or initiates media scans of the data blocks or super blocks stored in the non-volatile storage device 20 in descending order of the weighted factors aggregated by the factor evaluator 110. That is, the scanner 115 activates or initiates media scans based on priority, starting with the data blocks or super blocks with the highest priority (i.e., the highest probability of data corruption). Further, the scanner 115 can adjust or regulate the frequency of one or more media scans of one or more storage data blocks or storage data super blocks based on temperature readings provided by the temperature sensor 150.
[0063] According to the non-limiting example embodiments described and enumerated herein, the scanner 115 initiates or activates one or more programs or techniques for scanning data blocks or super blocks to identify damaged blocks or super blocks. According to at least some non-limiting example embodiments, scanning includes detecting and activating or initiating one or more error correction algorithms to repair or remedy media errors before such errors are discovered during normal writing from / to the corresponding block or super block or normal writing from / to the corresponding block or super block. Low-density parity check code (LDPC) is a non-limiting example of an error correction algorithm that can be used by the scanner 115.
[0064] Detected errors may be written to the memory 125 or an event log corresponding to the controller 15 .
[0065] The timer 120 refers to a firmware or software component designed, programmed, or otherwise configured to monitor and / or record the amount of time that data is stored in each of the plurality of data blocks. According to at least one non-limiting example embodiment, the data evaluator 105 or the factor evaluator 110 utilizes the monitored and / or recorded time to determine the weights of the dimensions or integrity factors of data retention, program interference, and RBER.
[0066] Memory 125 refers to a firmware or software component designed, programmed, or otherwise configured to store at least one readable table including weight values corresponding to milestones or thresholds of at least one referenced dimension or integrity factor in data evaluator 105 or factor evaluator 110. Memory 125 may also be designed, programmed, or otherwise configured to store an event log of errors found in corresponding data blocks or super blocks that are found during their media scans.
[0067] Additionally, the memory 125 refers to a non-volatile storage component in which program data including executable instructions are stored to implement any functions or operations described and / or recited herein; and thus, the memory 125 may be considered a computer-readable medium.
[0068] The reclaimer 130 refers to a firmware or software component designed, programmed, or otherwise configured to reclaim data stored in one of the corresponding data blocks stored in the non-volatile storage device 20 (e.g., NAND flash memory) when a media scan reveals corrupted data therein. According to at least one non-limiting example embodiment, the reclaimer 130 may operate or run in conjunction with the scanner 115 when scanning the media to repair or remedy errors found in the data blocks or super blocks.
[0069] The read counter 135 refers to a firmware or software component designed, programmed, or otherwise configured to count the number of times data is read from each of the data blocks or super blocks stored in the non-volatile storage device 20. According to at least one non-limiting example embodiment, the data evaluator 105 or the factor evaluator 110 utilizes the monitored and / or recorded counts to provide or assign a weight to a dimension or integrity factor for read disturbance.
[0070] Program reader 140 refers to a firmware or software component designed, programmed, or otherwise configured to determine whether a corresponding one of a storage data block or storage data super block has an open word line or whether a word line is being erased.
[0071] Error counter 145 refers to a firmware or software component designed, programmed or otherwise configured to monitor and / or record a bit error rate (BER) for a block of stored data or a superblock of stored data.
[0072] The temperature sensor 150 refers to a firmware or software component designed, programmed, or otherwise configured to monitor and / or record the temperature within some or all of the non-volatile storage device 20 .
[0073] The power sensor 155 refers to a firmware or software component that is designed, programmed, or otherwise configured to monitor and / or record whether the non-volatile storage device 20 has a power loss event and / or the length of time that the non-volatile storage device 20 has been powered off after each data block or super data block in the non-volatile storage device 20 is filled.
[0074] The non-volatile storage device 20 refers to a memory having a plurality of blocks or super blocks SB150, SB155, SB155, SB160, SB165, ... SBN, such as a NAND flash memory; each block or super block has pages P0, P1 ... P255. The amount of blocks or super blocks SB150-SBN is not limited by the description thereof, and each may include pages P0-P255 (inclusive).
[0075] The non-volatile memory 20 may be implemented as a NAND flash memory. Thus, the SSD 10 may be implemented as a USB flash drive, a memory card, or other solid state drive (SSD) for computers, mobile phones, video game consoles, robots, and the like.
[0076] Figure 2 A non-limiting example process flow 200 for weighted non-volatile storage media scanning is shown in accordance with at least some embodiments described and illustrated herein.
[0077] As depicted, process flow 200 includes operations, actions, or functions, as illustrated by representative blocks 205, 210, 215, 220, and 225. These various operations, functions, or actions may correspond to software, programming code, or programming instructions, such as may be executed by firmware that causes the functions to be performed. Although illustrated as discrete blocks, obvious modifications may be made, for example, two or more blocks may be reordered; additionally, one or more blocks may be added; and various blocks may be divided into additional blocks, combined into fewer blocks, or even eliminated, depending on the desired implementation. Process flow 200 may begin at block 205.
[0078] Block 205 (evaluation block) means that the data evaluator 105 evaluates the status of each of the blocks or super blocks SB150, SB155, SB155, SB160, SB165, ... SBN stored in the non-volatile storage device 20, and notifies the factor evaluator 110 of the evaluated status of each of the blocks or super blocks.
[0079] As set forth above, in accordance with at least some alternative example embodiments of weighted non-volatile storage media scanning, the operations or functions performed by the data evaluator 105 and the factor evaluator 110 may be performed by a combined firmware or software component. Processing may proceed from block 205 to block 210 .
[0080] Block 210 (Provide Weights to Integrity Factors) refers to the factor evaluator 110 providing weights to each of the multiple dimensions or integrity factors for each of the data blocks or superblocks when the corresponding dimension or integrity factor reaches at least one milestone or threshold as notified by the data evaluator 105. Providing or assigning weights to the corresponding dimensions or integrity factors is based on a table of such dimensions / integrity factors and weights corresponding to their milestones or thresholds, for example, stored in the storage device 125 or another storage device corresponding to the controller 15. Processing may proceed from block 210 to block 215.
[0081] Block 215 (Aggregate Weighted Integrity Factors) refers to at least the factor evaluator 110 aggregating the weighted dimensions or integrity factors for each of the data blocks or super blocks having at least one weighted dimension or integrity factor, and identifying the highest weighted one of the aggregated data blocks or super blocks stored in the non-volatile storage device 20. Processing may proceed from block 215 to block 220.
[0082] Block 220 (Perform Media Scan in Priority Order) refers to the scanner 115 initiating or activating at least one media scan of data blocks or super blocks stored in the non-volatile storage device 20 (e.g., NAND flash memory) in descending order of the weighted factors aggregated by the factor evaluator 110. Thus, the media scan is initiated or activated in priority order, starting with the data block or super block with the highest priority (i.e., the highest probability of data corruption). Processing can proceed from block 220 to block 225.
[0083] Block 225 (Adjust Scan Frequency) directs the scanner 115 to increase the frequency of media scans in a priority order if or when the likelihood of data corruption increases.
[0084] For the non-limiting example embodiments of weighted non-volatile storage media scans described and listed herein, the scan interval is affected by operating temperature, PEC, etc. That is, the frequency of one or more media scans of one or more storage data blocks or storage data super blocks can be adjusted or regulated based on the temperature reading provided by the temperature sensor 150 (e.g., 80% of the maximum allowable operating temperature of the non-volatile storage device 20). Therefore, when the temperature sensor 150 detects that the temperature in or around the non-volatile storage device 20 reaches or exceeds the threshold temperature, the scanner 115 increases the frequency of the media scans.
[0085] In addition, when the read counter 135 determines that a corresponding one of the blocks or super blocks SB150, SB155, SB155, SB160, SB165, ... SBN is approaching, meeting, or exceeding its drive life, the scanner 115 increases the frequency of the media scan. That is, the non-volatile storage device 20 (e.g., NAND flash memory) has a limited program erase count (PEC), and thus each of the data blocks or super blocks will wear out, thereby increasing the noise channel. For example, a PEC of up to 80% of the non-volatile storage device 20 is considered to be early in the life of the memory, and a PEC of more than 80% is considered to be at the end of the life of the memory. Therefore, when the end of life threshold is met or exceeded, the scanning frequency increases as the possibility of data corruption increases.
[0086] Further, when the power sensor 155 determines that the non-volatile storage device 20 has had a power loss event and / or the length of time that the non-volatile storage device 20 has been powered off meets or exceeds an acceptable threshold, the scanner 115 will increase the frequency of media scans after each of the blocks or super blocks of the non-volatile storage device 20 is filled with data as the likelihood of data corruption increases.
[0087] According to non-limiting example embodiments of process flow 200, scanner 115 initiates or activates one or more programs or techniques for scanning data blocks or superblocks to identify damaged data blocks or superblocks. According to at least some non-limiting example embodiments, scanning detects and activates or initiates correction of media errors before such errors are discovered during normal writing from / to the corresponding blocks or superblocks. Detected errors may be written to memory 125 or an event log corresponding to controller 15.
[0088] Figure 3 A non-limiting example process flow 300 is shown for weighted non-volatile storage media scanning, further to process flow 200, in accordance with at least some embodiments described and exemplified herein.
[0089] As depicted, the process flow may be complementary to process flow 200. Additionally, or alternatively, process flow 300 includes different implementations of operations, actions, or functions, as illustrated by at least some representative blocks 305, 315, 320, 325, 330, 335, 340, 345, 350, and 355. These various operations, functions, or actions may correspond to software, programming code, or programming instructions that may be implemented, for example, by firmware that causes the functions to be performed. Although illustrated as discrete blocks, obvious modifications may be made, for example, two or more blocks may be reordered; additionally, one or more blocks may be added; and various blocks may be divided into additional blocks, combined into fewer blocks, or even eliminated, depending on the desired implementation. Process flow 300 may begin at block 305.
[0090] Block 305 (raw parameter processing) refers to the evaluator 105 evaluating the status of each of the blocks or super blocks SB150, SB155, SB155, SB160, SB165, ... SBN stored in the non-volatile storage device 20, and notifying the factor evaluator 110 of the parameters of each dimension or integrity factor for each data block or super data block stored in the non-volatile storage device (e.g., a NAND flash memory storage device) 20.
[0091] Parameters of the corresponding dimensions or integrity factors may be recorded or stored in the storage device 125, such as the storage components 310A-310D.
[0092] The storage component 310A (read disturb handling) refers to the storage of a read count for each data block or super block stored in the non-volatile storage device (eg, NAND flash memory device) 20 .
[0093] Storage component 310B (data retention) refers to storage that monitors and / or records the amount of time that data has been written to a block or super block of a non-volatile storage device (eg, NAND flash memory device 20).
[0094] Storage component 310C (Program Disturb Handling) refers to the storage of predicted damage levels for each block or superblock based on factors including, but not limited to, length of programming time, number of program pauses while programming, and the like.
[0095] The storage component 310D (RBER tracking) refers to the storage of the RBER count for each block or super block stored in the non-volatile storage device (eg, NAND flash storage device) 20 .
[0096] Processing may proceed concurrently to blocks 315A-315D.
[0097] Block 315A (RD Weight+Factor) refers to the storage read count 310A for each storage data block or storage data superblock weighted by the factor evaluator 110 according to, for example, the non-limiting example weights described above.
[0098] Block 315B (DR Weight+Factor) refers to the storage data retention time 310B of each storage data block or storage data superblock weighted by the factor evaluator 110 according to, for example, the non-limiting example weights described above.
[0099] Block 315C (PD Weight+Factor) refers to the storage predicted damage level 310C of each storage data block or storage data superblock weighted by the factor evaluator 110 according to, for example, the non-limiting example weights described above.
[0100] Block 315D (RBER Tracking + Coefficients) refers to the storage RBER 310D for each storage data block or storage data superblock weighted by the factor evaluator 110 according to, for example, the non-limiting example weights described above.
[0101] Processing may proceed to block 320 .
[0102] Block 320 (Accumulate & Arbitrate) refers to at least the factor evaluator 110 aggregating and / or normalizing the weighted dimension or integrity factor of each of the data blocks or super blocks having at least one weighted dimension or integrity factor, and identifying the data blocks or super blocks stored in the non-volatile storage device 20 with the highest aggregated weight. Processing may proceed to blocks 325 and 345.
[0103] Block 325 (Scan) refers to the scanner 115 initiating or activating at least one media scan of the data blocks or super blocks stored in the non-volatile storage device 20 (e.g., NAND flash memory) in descending order of the weighted factors aggregated by the factor evaluator 110. Thus, the media scan is initiated or activated in a priority order, starting with the data blocks or super blocks with the highest priority (i.e., the highest probability of data corruption). Processing may proceed to block 330.
[0104] Block 330 (Process Scan Results) refers to the scanner 115 receiving scan results of data blocks or super blocks stored in the non-volatile storage device 20 (eg, NAND flash memory).
[0105] Block 335 (Reclaim) refers to the reclaimer 130 reclaiming data stored in a corresponding one of a data block or super block stored in a non-volatile storage device 20 (e.g., a NAND flash memory) when a media scan shows corrupted data therein. According to at least one non-limiting example embodiment, the reclaimer 130 may operate or run in conjunction with the scanner 115 while the media is being scanned to repair or remedy errors found in the data block or super block. Processing may proceed to block 340.
[0106] Block 340 (Process RBER Feedback) refers to the error counter 145 sending the RBER count of each of the data blocks or super blocks stored in the non-volatile storage device 20 (e.g., NAND flash memory) to the data evaluator 105 for subsequent processing cycles. Processing may proceed to block 355.
[0107] Block 345 (Adjust Scan Interval) provides that if or when the likelihood of data corruption increases, the scanner 115 increases the frequency of media scans in priority order based on any of several factors (including but not limited to operating temperature, PEC, drive age, power loss events, etc.).
[0108] Block 350 (System Reset) refers to the data evaluator 105 determining the next iteration of the process flow 200 and / or 300 using the adjusted scan interval schedule.
[0109] Block 355 (Schedule Task) refers to the initiation of process flow 200 and / or 300 .
[0110] The weighted media scanning process of non-volatile storage may be implemented as executable instructions stored on a non-volatile computer-readable medium including firmware corresponding to device 10. The computer-readable instructions may be executable by firmware of device 10, for example.
[0111] In summary, it should be understood that various embodiments of the present disclosure have been described herein for illustrative purposes, and that various modifications may be made without departing from the scope and spirit of the present disclosure. Therefore, the various embodiments disclosed herein are not intended to be limiting, with the true scope and spirit being indicated by the following claims.
[0112] aspect
[0113] Aspect 1. A non-volatile storage device, comprising:
[0114] a non-volatile storage device; and
[0115] Controller, including:
[0116] a data evaluator for evaluating each data block of a plurality of data blocks stored in the non-volatile storage device according to a plurality of integrity factors;
[0117] Factor estimators to:
[0118] providing a weight of each integrity factor of the plurality of integrity factors for each data block of the plurality of data blocks,
[0119] aggregating the weighted plurality of integrity factors for each of the plurality of data blocks, and
[0120] identifying a data block among the plurality of data blocks stored in the non-volatile storage device having a highest aggregated weighted integrity factor, and
[0121] A scanner is configured to perform at least one media scan of the identified data blocks stored in the non-volatile storage device.
[0122] Aspect 2. The non-volatile storage device according to aspect 1, wherein the scanner is configured to perform at least one media scan of the remaining portions of the plurality of data blocks stored in the non-volatile storage device in descending order of aggregated weights.
[0123] Aspect 3. The nonvolatile storage device according to aspect 1 or aspect 2, wherein the controller further comprises:
[0124] A storage device is used to store at least one table, wherein the at least one table includes a weight for each integrity factor of the plurality of integrity factors.
[0125] Aspect 4. The nonvolatile storage device according to any one of aspects 1 to 3, wherein the controller further comprises:
[0126] A recycler is used to recycle the data stored in a corresponding data block of the data blocks stored in the non-volatile storage device when the medium scan shows damaged data therein.
[0127] Aspect 5. The nonvolatile storage device according to any one of aspects 1 to 4, wherein the controller further comprises:
[0128] a timer to monitor and / or record an amount of time that data is stored in each of the plurality of data blocks,
[0129] a read counter, used to count the number of times data is read from each data block in the plurality of data blocks,
[0130] a program reader to determine whether a corresponding one of the plurality of data blocks has an open word line or a word line is being erased, and
[0131] An error counter is used to monitor and / or record a bit error rate BER of each data block in the plurality of data blocks.
[0132] Aspect 6. A non-volatile storage device according to any one of Aspects 1 to 5, wherein the plurality of integrity factors include data retention time, read count, program pause, and bit error rate (BER) for each of the plurality of data blocks stored in the non-volatile storage device.
[0133] Aspect 7. The non-volatile storage device according to any one of aspects 1 to 6, wherein the factor evaluator is further configured to:
[0134] The weight of each of the plurality of integrity factors for each of the plurality of data blocks is evaluated based on the open word lines and the word lines to be released.
[0135] Aspect 8. The nonvolatile storage device according to any one of Aspects 1 to 7, wherein the controller further comprises:
[0136] a temperature sensor for determining a temperature within the non-volatile storage device,
[0137] The scanner further adjusts a frequency of the at least one media scan of the data block stored therein based on the determined temperature in the non-volatile storage device.
[0138] Aspect 9. A nonvolatile storage device according to any one of Aspects 1 to 8, wherein the scanner further adjusts the frequency of the medium scanning of a corresponding one of the plurality of data blocks based on the number of times data is read from the corresponding one of the plurality of data blocks.
[0139] Aspect 10. The nonvolatile storage device according to any one of aspects 1 to 9, wherein the controller further comprises:
[0140] Power sensors to determine:
[0141] whether the non-volatile storage device has experienced a power loss event, and
[0142] a length of time that the nonvolatile storage device has been powered off after each of the plurality of blocks of the nonvolatile storage device has been populated with data stored therein, and
[0143] The scanner increases the frequency of the at least one media scan of a corresponding one of the data blocks when the power sensor determines that the nonvolatile storage device has had a power loss event or the determined length of time that the nonvolatile storage device has been powered off exceeds a threshold amount of time.
[0144] Aspect 11. The nonvolatile storage device according to any one of Aspects 1 to 10, wherein the nonvolatile storage device is a NAND flash memory.
[0145] Aspect 12. The non-volatile storage device according to any one of aspects 1 to 11, wherein the non-volatile storage device is a NAND flash drive.
[0146] Aspect 13. A method for maintaining an operation bandwidth for a non-volatile storage device, the method comprising:
[0147] evaluating each data block of a plurality of data blocks stored in a non-volatile storage device according to a plurality of integrity factors;
[0148] providing a weight of each integrity factor in the plurality of integrity factors for each data block in the plurality of data blocks;
[0149] aggregating the weighted plurality of integrity factors for each of the plurality of data blocks;
[0150] Performing a media scan on a data block having a highest aggregated weighted integrity factor among the plurality of data blocks stored in the non-volatile storage device; and
[0151] A media scan is performed on the remaining portion of the plurality of data blocks stored in the non-volatile storage device.
[0152] Aspect 14. The method according to aspect 13, wherein the plurality of integrity factors include data retention time, read count, program pause, and bit error rate (BER) for each of the plurality of data blocks stored in the non-volatile storage device.
[0153] Aspect 15. The method according to aspect 13 or 14,
[0154] wherein data retention relates to an amount of time that data is stored in a corresponding one of the plurality of data blocks,
[0155] wherein the read count relates to the number of times data is read from a corresponding one of the plurality of data blocks,
[0156] wherein the program suspension is related to whether a corresponding one of the plurality of data blocks has an open word line or a word line is being erased, and
[0157] Wherein the BER relates to a count of bit errors for each data block in the plurality of data blocks.
[0158] Aspect 16. The method according to any one of aspects 13 to 15, wherein the weight is provided according to a threshold value for each of the integrity factors.
[0159] Aspect 17. The method according to any one of aspects 13 to 16, wherein the weight for a corresponding one of the plurality of data blocks is affected by whether the corresponding one of the plurality of data blocks has an open word line or whether a word line is being erased.
[0160] Aspect 18. The method according to any one of aspects 13 to 17, wherein the frequency of the media scan performed is affected by the temperature within the non-volatile storage device.
[0161] Aspect 19. The method according to any one of aspects 13 to 18, wherein the frequency of the medium scan performed for a corresponding one of the plurality of data blocks is affected by the number of times data is read therefrom.
[0162] Aspect 20. The method according to any one of aspects 13 to 19, wherein performing the media scan on the remaining portion of the plurality of data blocks stored in the non-volatile storage device is performed in descending order of the aggregated weights.
Claims
1. A non-volatile storage device, comprising: Non-volatile storage device; as well as Controller, including: a data evaluator for evaluating each data block of a plurality of data blocks stored in the non-volatile storage device according to a plurality of integrity factors; Factor estimators to: providing a weight of each integrity factor of the plurality of integrity factors for each data block of the plurality of data blocks, aggregating the weighted plurality of integrity factors for each of the plurality of data blocks, and identifying a data block of the plurality of data blocks stored in the non-volatile storage device having a highest aggregated weighted integrity factor, and A scanner is configured to perform at least one media scan of the identified data blocks stored in the non-volatile storage device. 2 . The non-volatile storage device of claim 1 , wherein the scanner is configured to perform at least one media scan of the remaining portions of the plurality of data blocks stored in the non-volatile storage device in descending order of aggregated weights.
3. The nonvolatile memory device according to claim 1, wherein the controller further comprises: A storage device is used to store at least one table, wherein the at least one table includes a weight for each integrity factor of the plurality of integrity factors.
4. The nonvolatile memory device according to claim 1, wherein the controller further comprises: A recycler is used to recycle the data stored in a corresponding data block of the data blocks stored in the non-volatile storage device when the medium scan shows damaged data therein.
5. The nonvolatile memory device according to claim 1, wherein the controller further comprises: a timer to monitor and / or record an amount of time that data is stored in each of the plurality of data blocks, a read counter, for counting the number of times data is read from each data block in the plurality of data blocks, a program reader to determine whether a corresponding one of the plurality of data blocks has an open word line or a word line is being erased, and An error counter is used to monitor and / or record a bit error rate BER of each data block in the plurality of data blocks. 6 . The nonvolatile memory device of claim 1 , wherein the plurality of integrity factors include data retention time, read count, program pause, and bit error rate (BER) for each of the plurality of data blocks stored in the nonvolatile memory device.
7. The non-volatile storage device according to claim 1, wherein the factor evaluator is further configured to: The weight of each of the plurality of integrity factors for each of the plurality of data blocks is evaluated based on the open word lines and the word lines to be released.
8. The nonvolatile memory device according to claim 1, wherein the controller further comprises: a temperature sensor for determining a temperature within the non-volatile storage device, The scanner further adjusts a frequency of the at least one media scan of the data block stored therein based on the determined temperature in the non-volatile storage device.
9. The nonvolatile storage device of claim 1, wherein the scanner further adjusts a frequency of the medium scan of a corresponding one of the plurality of data blocks based on a number of times data is read from the corresponding one of the plurality of data blocks.
10. The nonvolatile memory device according to claim 1, wherein the controller further comprises: Power sensors to determine: whether the non-volatile storage device has experienced a power loss event, and a length of time that the nonvolatile storage device has been powered off after each of the plurality of blocks of the nonvolatile storage device has been populated with data stored therein, and The scanner increases the frequency of the at least one media scan of a corresponding one of the data blocks when the power sensor determines that the nonvolatile storage device has had a power loss event or the determined length of time that the nonvolatile storage device has been powered off exceeds a threshold amount of time.
11. The nonvolatile memory device according to claim 1, wherein the nonvolatile memory device is a NAND flash memory.
12. The non-volatile storage device of claim 1, wherein the non-volatile storage device is a flash drive.
13. A method for maintaining an operating bandwidth for a non-volatile storage device, the method comprising: evaluating each data block of a plurality of data blocks stored in a non-volatile storage device according to a plurality of integrity factors; providing a weight of each integrity factor in the plurality of integrity factors for each data block in the plurality of data blocks; aggregating the weighted plurality of integrity factors for each of the plurality of data blocks; Performing a media scan on a data block having a highest aggregated weighted integrity factor among the plurality of data blocks stored in the non-volatile storage device; as well as A media scan is performed on the remaining portion of the plurality of data blocks stored in the non-volatile storage device.
14. The method of claim 13, wherein the plurality of integrity factors include data retention time, read count, program pause, and bit error rate (BER) for each of the plurality of data blocks stored in the non-volatile memory device.
15. The method according to claim 14, wherein data retention relates to an amount of time that data is stored in a corresponding one of the plurality of data blocks, wherein the read count relates to the number of times data is read from a corresponding one of the plurality of data blocks, wherein the program suspension is related to whether a corresponding one of the plurality of data blocks has an open word line or a word line is being erased, and Wherein the BER relates to a count of bit errors for each data block in the plurality of data blocks.