Bad block detection and predictive analytics in NAND flash storage devices
First Claim
1. A method for use with a non-volatile storage device, comprising;
- obtaining a count of allowable bad blocks for an array of a non-volatile storage device (“
allowable bad block count”
), wherein the allowable bad block count equals a count of blocks in the non-volatile storage device set aside to receive data intended for a block marked as being a bad block;
obtaining a count of blocks in the array that have been marked as being bad blocks (“
current bad block count”
), wherein each block marked as being a bad block contains one or more invalid bits;
determining, with a processor, a percentage of the allowable bad block count represented by the current bad block count (“
allowable bad block percentage”
);
ascertaining, with the processor, whether the allowable bad block percentage is greater than a threshold percentage;
generating a message based on a result of the ascertaining step;
conducting a burn-in test of the array of the non-volatile storage device, wherein the steps of obtaining the current bad block count, determining the allowable bad block percentage, ascertaining, and generating are performed during the conducting step, and wherein the conducting step includes;
first conducting a first phase of the burn-in test for a first length of time, wherein the threshold percentage is a first threshold percentage during the first conducting step, and wherein the first threshold percentage is selected as a function of the first length of time; and
second conducting a second phase of the burn-in test for a second length of time, wherein the threshold percentage is a second threshold percentage during the second conducting step, wherein the second threshold percentage is selected as a function of the second length of time, and wherein the first and second lengths of time are different.
1 Assignment
0 Petitions
Accused Products
Abstract
Utilities for use in actively detecting the occurrence of bad blocks in NAND flash storage devices and diagnosing the devices as faulty at some point before complete failure of the devices (e.g., before a number of allowable bad blocks has been reached) to allow a corresponding service processor to continue to write to available blocks for a period of time until a replacement NAND flash device can be identified. The utilities may also be utilized to predict the future occurrence of bad blocks in NAND flash devices, such as during the “burn-in” process of the devices (e.g., which tests the quality of the NAND flash device before being placed into service to weed out devices with defects).
48 Citations
13 Claims
-
1. A method for use with a non-volatile storage device, comprising;
-
obtaining a count of allowable bad blocks for an array of a non-volatile storage device (“
allowable bad block count”
), wherein the allowable bad block count equals a count of blocks in the non-volatile storage device set aside to receive data intended for a block marked as being a bad block;obtaining a count of blocks in the array that have been marked as being bad blocks (“
current bad block count”
), wherein each block marked as being a bad block contains one or more invalid bits;determining, with a processor, a percentage of the allowable bad block count represented by the current bad block count (“
allowable bad block percentage”
);ascertaining, with the processor, whether the allowable bad block percentage is greater than a threshold percentage; generating a message based on a result of the ascertaining step; conducting a burn-in test of the array of the non-volatile storage device, wherein the steps of obtaining the current bad block count, determining the allowable bad block percentage, ascertaining, and generating are performed during the conducting step, and wherein the conducting step includes; first conducting a first phase of the burn-in test for a first length of time, wherein the threshold percentage is a first threshold percentage during the first conducting step, and wherein the first threshold percentage is selected as a function of the first length of time; and second conducting a second phase of the burn-in test for a second length of time, wherein the threshold percentage is a second threshold percentage during the second conducting step, wherein the second threshold percentage is selected as a function of the second length of time, and wherein the first and second lengths of time are different. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, comprising:
-
first conducting a first phase of a burn-in test on a NAND flash storage device that includes a storage array with a series of blocks for storing data; first determining, during the first conducting step, whether a current percentage of a count of allowable bad blocks for the series of blocks (“
allowable bad block count”
) represented by a current count of bad blocks in the series of blocks (“
current bad block count”
) has reached or exceeded a first threshold percentage of the allowable bad block count, wherein each bad block contains one or more invalid bits, and wherein the allowable bad block count equals a count of blocks in the series of blocks that are set aside to receive data intended for a bad block;second conducting, after the first conducting step, a second phase of a burn-in test on the NAND flash storage device; second determining, during the second conducting step, whether the current percentage has reached or exceeded a second threshold percentage of the allowable bad block count; and generating at least one message when the current percentage reaches or exceeds the first threshold percentage during the first conducting step or the second threshold percentage during the second conducting step. - View Dependent Claims (9, 10, 11, 12, 13)
-
Specification