Bad memory unit detection in a solid state drive
First Claim
1. An apparatus comprising:
- a memory configured to store data, the memory comprising a plurality of dies each (i) having a size less than a total size of the memory and (ii) comprising a plurality of planes, each of the planes comprising a plurality of blocks; and
a controller configured to (i) process a plurality of input/output requests to/from the memory, (ii) determine which of the blocks are bad in each of the dies and planes, and (iii) determine whether to mark one or more of the dies as bad in response to a first test and whether to mark one or more planes within one of the dies as bad in response to a second test, wherein (a) the first test is configured to analyze the bad blocks in each of the dies, (b) if one of the dies fails the first test, the controller is configured to perform the second test on each of the planes of the die that failed the first test, (c) the second test is configured to analyze the bad blocks in each of the planes of the die that failed the first test, (d) the first test is based on determining whether a number of bad blocks in one of the dies exceeds a threshold number of bad blocks, (e) the second test is based on determining whether a number of bad blocks in one of the planes exceeds a threshold number of bad blocks and (f) the dies that fail the first test are not marked as bad if one or more planes in the dies that fail the first test do not fail the second test.
2 Assignments
0 Petitions
Accused Products
Abstract
An apparatus comprising a memory and a controller. The memory is configured to process a plurality of read/write operations. The memory comprises a plurality of memory unit granularities each having a size less than a total size of the memory. The controller is configured to process a plurality of I/O requests to the memory units of the memory that are not marked as bad on a memory unit list. The controller is configured to track a plurality of bad blocks of the memory. The controller is configured to determine which of the memory units to mark as bad based on a test of whether a unit of memory larger than a block of the memory has failed. The test is based on a threshold of the bad blocks in the unit of memory.
-
Citations
20 Claims
-
1. An apparatus comprising:
-
a memory configured to store data, the memory comprising a plurality of dies each (i) having a size less than a total size of the memory and (ii) comprising a plurality of planes, each of the planes comprising a plurality of blocks; and a controller configured to (i) process a plurality of input/output requests to/from the memory, (ii) determine which of the blocks are bad in each of the dies and planes, and (iii) determine whether to mark one or more of the dies as bad in response to a first test and whether to mark one or more planes within one of the dies as bad in response to a second test, wherein (a) the first test is configured to analyze the bad blocks in each of the dies, (b) if one of the dies fails the first test, the controller is configured to perform the second test on each of the planes of the die that failed the first test, (c) the second test is configured to analyze the bad blocks in each of the planes of the die that failed the first test, (d) the first test is based on determining whether a number of bad blocks in one of the dies exceeds a threshold number of bad blocks, (e) the second test is based on determining whether a number of bad blocks in one of the planes exceeds a threshold number of bad blocks and (f) the dies that fail the first test are not marked as bad if one or more planes in the dies that fail the first test do not fail the second test. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. An apparatus comprising:
-
an interface configured to process a plurality of read/write operations to/from a memory, the memory comprising a plurality of dies each (i) having a size less than a total size of the memory and (ii) comprising a plurality of planes, each of the planes comprising a plurality of blocks; and a control circuit configured to (i) determine which of the blocks are bad in each of the dies and planes, and (ii) determine whether to mark one or more of the dies as bad in response to a first test and whether to mark one or more planes within one of the dies as bad in response to a second test wherein (a) the first test is configured to analyze the bad blocks in each of the dies, (b) if one of the dies fails the first test, the control circuit is configured to perform the second test on each of the planes of the die that failed the first test, (c) the second test is configured to analyze the bad blocks in each of the planes of the die that failed the first test, (d) the first test is based on determining whether a number of bad blocks in the dies exceeds a threshold number of the bad blocks, (e) the second test is based on determining whether a number of bad blocks in one of the planes exceeds a threshold number of bad blocks and (f) the dies that fail the first test are not marked as bad if one or more planes in the dies that fail the first test do not fail the second test.
-
-
20. A method for detecting bad dies and planes in a solid-state drive (SSD), comprising the steps of:
-
processing a plurality of read/write operations to/from a memory, the memory comprising a plurality of dies and planes each (i) having a size less than a total size of the memory and (ii) comprising a plurality of planes, each of the planes comprising a plurality of blocks; determining which of the blocks are bad in each of the dies and planes; and determining whether to mark one or more of the dies as bad in response to a first test and whether to mark one or more planes within one of the dies as bad in response to a second test, wherein (a) the first test is configured to analyze the bad blocks in each of the dies, (b) the second test is performed on each of the planes of the die that failed the first test, if one of the dies fails the first test, (c) the second test is configured to analyze the bad blocks in each of the planes of the die that failed the first test, (d) the first test is based on determining whether a number of bad blocks in the dies exceeds a threshold number of the bad blocks, (e) the second test is based on determining whether a number of bad blocks in one of the planes exceeds a threshold number of bad blocks and (f) the dies that fail the first test are not marked as bad if one or more planes in the dies that fail the first test do not fail the second test.
-
Specification