Manufacturer self-test for solid-state drives
An apparatus includes a memory and a controller. The memory may be configured to store data. The controller may be configured to process a plurality of input/output requests to a plurality of blocks of the memory that are not marked as bad on a block list, perform a code rate test that programs the plurality of blocks of the memory at three or more code rates of an error correction code scheme, and mark any of the plurality of blocks identified as bad during the code rate test on the block list.
1. An apparatus comprising:
a memory configured to store data; and
a controller configured to
process a plurality of input/output requests to a plurality of blocks of the memory that are not marked as bad on a block list,
perform a code rate test on all of the plurality of blocks of the memory, wherein the code rate test programs each of the plurality of blocks at each of three or more code rates of an error correction code scheme, and decodes each of the plurality of blocks using an iterative decode, and
mark any of the plurality of blocks identified as bad during the code rate test on the block list, wherein a failure criteria of the code rate test for each of the plurality of blocks includes a number of decoding iterations performed on the respective blocks.
2. The apparatus according to claim 1 , wherein the code rate test is performed as part of a manufacturer self-test prior to processing the input/output requests.
3. The apparatus according to claim 1 , wherein
the three or more code rates of the code rate test are arranged in a plurality of tiers in an adaptive code rate technique used by the controller to process the plurality of input/output requests, and
at least one of the plurality of tiers includes at least two of the code rates.
4. The apparatus according to claim 1 , wherein the code rate test initializes a code rate table used by the controller to process the plurality of input/output requests.
5. The apparatus according to claim 1 , wherein the code rate test is configured to stop at an intermediate code rate of the three or more code rates based on the number of decoding iterations performed on the plurality of blocks.
6. The apparatus according to claim 1 , wherein the code rate test includes a low-density parity-check code to program the plurality of blocks.
7. The apparatus according to claim 1 , wherein the failure criteria of the code rate test for each of the plurality of blocks further includes a hard-decision low-density parity-check failure.
8. The apparatus according to claim 1 , wherein the failure criteria of the code rate test for each of the plurality of blocks further includes an average number of decoding iterations performed on the respective blocks during the code rate test.
9. The apparatus according to claim 1 , wherein the memory and the controller form part of a solid-state drive.
10. A method for scanning a drive memory, comprising the steps of:
processing a plurality of input/output requests to a plurality of blocks of a memory that are not marked as bad on a block list;
performing a code rate test on all of the plurality of blocks of the memory, wherein the code rate test programs each of the plurality of blocks at each of three or more code rates of an error correction code scheme, and decodes each of the plurality of blocks using an iterative decode with a controller; and
marking any of the plurality of blocks identified as bad during the code rate test on the block list, wherein a failure criteria of the code rate test for each of the plurality of blocks includes a number of decoding iterations performed on the respective blocks.
11. The method according to claim 10 , wherein the code rate test is performed as part of a manufacturer self-test prior to processing the input/output requests.
12. The method according to claim 10 , wherein the three or more code rates of the code rate test are arranged in a plurality of tiers in an adaptive code rate technique used by the controller to process the plurality of input/output requests, and at least one of the plurality of tiers includes at least two of the code rates.
13. The method according to claim 10 , further comprising the step of:
initializing a code rate table used by the controller to process the plurality of input/output requests based on the code rate test.
14. The method according to claim 10 , further comprising the step of:
stopping the code rate test at an intermediate code rate of the three or more code rates based on the number of decoding iterations performed on the plurality of blocks.
15. The method according to claim 10 , wherein the code rate test includes a low-density parity-check code to program the plurality of blocks.
16. The method according to claim 10 , wherein the failure criteria of the code rate test for each of the plurality of blocks further includes a hard-decision low-density parity-check failure.
17. The method according to claim 10 , wherein the failure criteria of the code rate test for each of the plurality of blocks further includes an average number of decoding iterations performed on the respective blocks during the code rate test.
18. The method according to claim 10 , wherein the steps are performed in a solid-state drive.
19. An apparatus comprising:
an interface configured to process a plurality of read/write operations to/from a memory; and
a control circuit configured to
process a plurality of input/output requests to a plurality of blocks of the memory that are not marked as bad on a block list,
perform a code rate test on all of the plurality of blocks of the memory, wherein the code rate test programs each of the plurality of blocks at each of three or more code rates of an error correction code scheme, and decodes each of the plurality of blocks using an iterative decode, and
mark any of the plurality of blocks identified as bad during the code rate test on the block list, wherein a failure criteria of the code rate test for each of the plurality of blocks includes a number of decoding iterations performed on the respective blocks.
20. The apparatus according to claim 19 , wherein the interface and the controller form part of a solid-state drive.