Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
First Claim
Patent Images
1. A method of managing one or more gears, wherein different gears correspond to different error correction code (ECC) schemes, the method comprising:
- receiving a request for user data stored in flash memory devices, wherein the user data can be in stored in a scrambled from or in an unscrambled form;
retrieving one or more codewords containing the requested user data from a region of the flash memory devices, wherein the region is associated with a first gear;
correcting the one or more codewords to detect and correct errors with the first gear;
deciding whether or not to select a different gear for the region or retiring the region based on at least one of an analysis of an approximate raw bit error rate (RBER) of the region or a number of decoding iterations used to correct the requested user data, wherein the different gear has greater error correction capacity than the first gear; and
after erasure of blocks associated with the region;
when it is decided not to select the different gear, associating the region with a first list of available regions, wherein the first list is associated with the first gear; and
when it is decided to select the different gear, associating the region with a different list of available regions, wherein the different list is associated with the different gear;
wherein at least correcting and deciding are performed by an integrated circuit.
8 Assignments
0 Petitions
Accused Products
Abstract
Apparatus and methods provide relatively low uncorrectable bit error rates, low write amplification, long life, fast and efficient retrieval, and efficient storage density such that a solid-state drive (SSD) can be implemented using relatively inexpensive MLC Flash for an enterprise storage application.
138 Citations
39 Claims
-
1. A method of managing one or more gears, wherein different gears correspond to different error correction code (ECC) schemes, the method comprising:
-
receiving a request for user data stored in flash memory devices, wherein the user data can be in stored in a scrambled from or in an unscrambled form; retrieving one or more codewords containing the requested user data from a region of the flash memory devices, wherein the region is associated with a first gear; correcting the one or more codewords to detect and correct errors with the first gear; deciding whether or not to select a different gear for the region or retiring the region based on at least one of an analysis of an approximate raw bit error rate (RBER) of the region or a number of decoding iterations used to correct the requested user data, wherein the different gear has greater error correction capacity than the first gear; and after erasure of blocks associated with the region; when it is decided not to select the different gear, associating the region with a first list of available regions, wherein the first list is associated with the first gear; and when it is decided to select the different gear, associating the region with a different list of available regions, wherein the different list is associated with the different gear; wherein at least correcting and deciding are performed by an integrated circuit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of managing one or more gears, wherein different gears correspond to different error correction code (ECC) schemes, the method comprising:
-
receiving a request for user data stored in flash memory devices, wherein the user data can be in stored in a scrambled from or in an unscrambled form; retrieving one or more codewords containing the requested user data from a region of the flash memory devices, wherein the region is associated with a first gear; correcting the one or more codewords to detect and correct errors with the first gear; and deciding whether or not to select a different gear for the region or retiring the region based on at least one of an analysis of an approximate raw bit error rate (RBER) of the region or a number of decoding iterations used to correct the requested user data, wherein the different gear has greater error correction capacity than the first gear; wherein the analysis of the approximate RBER further comprises comparing the approximate RBER against one or more threshold limits, wherein at least one of the approximate RBER or the one or more threshold limits is modified by a safety factor, wherein the safety factor accounts for uncertainty in estimating future RBER; wherein at least correcting and deciding are performed by an integrated circuit. - View Dependent Claims (12, 13)
-
-
14. An apparatus comprising:
-
a first circuit configured to; receive a request for user data stored in flash memory devices, wherein the user data can be in stored in a scrambled from or in an unscrambled form; and retrieve one or more codewords containing the requested user data from a region of the flash memory devices, wherein the region is associated with a first gear, wherein different gears correspond to different error correction code (ECC) schemes; and a second circuit configured to correct the one or more codewords to detect and correct errors with the first gear; wherein the first circuit is configured to decide whether or not to select a different gear for the region or retire the region based on at least one of an analysis of an approximate raw bit error rate (RBER) of the region or a number of decoding iterations used to correct the requested user data, wherein the different gear has greater error correction capacity than the first gear, wherein, after erasure of blocks associated with the region, the first circuit is configured to; associate the region with a first list of available regions when it is decided not to select the different gear, wherein the first list is associated with the first gear; and associate the region with a different list of available regions when it is decided to select the different gear, wherein the different list is associated with the different gear. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. An apparatus comprising:
-
a first circuit configured to; receive a request for user data stored in flash memory devices, wherein the user data can be in stored in a scrambled from or in an unscrambled form; and retrieve one or more codewords containing the requested user data from a region of the flash memory devices, wherein the region is associated with a first gear, wherein different gears correspond to different error correction code (ECC) schemes; and a second circuit configured to correct the one or more codewords to detect and correct errors with the first gear; wherein the first circuit is configured to decide whether or not to select a different gear for the region or retire the region based on at least one of an analysis of an approximate raw bit error rate (RBER) of the region or a number of decoding iterations used to correct the requested user data, wherein the different gear has greater error correction capacity than the first gear, wherein for analysis of the approximate RBER, the first circuit is further configured to compare the approximate RBER against one or more threshold limits, wherein at least one of the approximate RBER or the one or more threshold limits is modified by a safety factor, wherein the safety factor accounts for uncertainty in estimating future RBER. - View Dependent Claims (25, 26)
-
-
27. An apparatus of managing one or more gears, wherein different gears correspond to different error correction code (ECC) schemes, the apparatus comprising:
-
a means for receiving a request for user data stored in flash memory devices, wherein the user data can be in stored in a scrambled from or in an unscrambled form; a means for retrieving one or more codewords containing the requested user data from a region of the flash memory devices, wherein the region is associated with a first gear; a means for correcting the one or more codewords to detect and correct errors with the first gear; and a means for deciding whether or not to select a different gear for the region or retiring the region based on at least one of an analysis of an approximate raw bit error rate (RBER) of the region or a number of decoding iterations used to correct the requested user data, wherein the different gear has greater error correction capacity than the first gear, wherein, after erasure of blocks associated with the region, the deciding means is further configured to; associate the region with a first list of available regions when it is decided not to select the different gear, wherein the first list is associated with the first gear; and associate the region with a different list of available regions when it is decided to select the different gear, wherein the different list is associated with the different gear. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. An apparatus of managing one or more gears, wherein different gears correspond to different error correction code (ECC) schemes, the apparatus comprising:
-
a means for receiving a request for user data stored in flash memory devices, wherein the user data can be in stored in a scrambled from or in an unscrambled form; a means for retrieving one or more codewords containing the requested user data from a region of the flash memory devices, wherein the region is associated with a first gear; a means for correcting the one or more codewords to detect and correct errors with the first gear; and a means for deciding whether or not to select a different gear for the region or retiring the region based on at least one of an analysis of an approximate raw bit error rate RBER of the re ion or a number of decoding iterations used to correct the re-quested user data, wherein the different gear has greater error correction capacity than the first gear, wherein for analysis of the approximate RBER, the deciding means is further configured to compare the approximate RBER against one or more threshold limits, wherein at least one of the approximate RBER or the one or more threshold limits is modified by a safety factor, wherein the safety factor accounts for uncertainty in estimating future RBER. - View Dependent Claims (38, 39)
-
Specification