New Paragraph

Paragraphs

Actions Matter Content Para # Notes Modified
View Edit
Delete
US-20150012794-A1 In one embodiment, the soft decision module 402 may use soft information derived from repetitions of a message in a repetition error correcting code. For example, the soft information may include the analog information discussed above with regard to the analog information module 408. In another embodiment, the soft decision module 402 may use soft information derived from repeatedly reading the non-volatile memory media 122 using different read thresholds. For example, reading a MLC Flash memory cell multiple times using different read voltage thresholds may generate soft information about the voltage level of the cell. In light of this disclosure, many types of soft information are clear that the soft decision module 402 may use with a soft-decision decoder. 125 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In one embodiment, each repeated message 520 of the access data chunk 504 may be stored on a different physical memory element, such as a chip, die, die plane, or the like. Thus, in a further embodiment, the adjustment module 306 may effectively adjust one or more media parameters for different physical memory elements of the non-volatile memory media 122 based on error information obtained by decoding the access data. For example, in a certain embodiment, the region 500 of FIG. 5A may be a logical erase block that includes physical erase blocks from eight to twenty-four different memory elements. In a further embodiment, the access data chunks 504 stored by the first two ECC chunks 502 in the region 500 may collectively include eight to twenty-four repetitions of the message 520, with each repeated message 520 stored by a different physical memory element. Although the access data 522 is encoded using three error correcting codes in the depicted embodiment, the access data 522 in a further embodiment may be encoded with any number of multiple error correcting codes, with increasing ECC strength and correspondingly wider range of adjustable media parameters. 153 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In one embodiment, the decoder for the secondary, inner error correcting code may include a soft-decision decoder. For example, in a certain embodiment, the secondary ECC module 304 includes a soft decision module 402. The soft decision module 402, in a further embodiment, is configured to decode the at least one ECC chunk encoded with multiple error correcting codes using a soft-decision decoder with the secondary, inner error correcting code. In some embodiments, a soft-decision decoder may decode a code word for the secondary/inner error correcting code using “soft information” that includes more than one bit of information for each bit of the code word. For example, in one embodiment, the soft decision module 402 may use an analog or multiple-bit value as soft information to indicate a reliability for each bit of the code word. By using soft information, the soft decision module 402 may, in some embodiments, be able to decode an ECC chunk that would be otherwise uncorrectable using the secondary/inner error correcting code. 123 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In some embodiments, a header contains information about the additional ECC chunks, or about the data stored on the additional ECC chunks. For example, in some embodiments, a header may include bit maps for retired regions of non-volatile memory media 122, a program count or erase count, a version number, a seed for a pseudorandom number generator used in connection with the data, or the like. 122 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The header module 412, in one embodiment, is configured to use data of the at least one ECC chunk encoded with multiple error correcting codes as a header for one or more additional ECC chunks of the non-volatile memory device 120. In various embodiments, the data of the at least one ECC chunk may include various types of data such as a header, user data, metadata, a predetermined data pattern, or the like. 121 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 Iteratively adjusting media parameters using a control loop module 410 may allow the configuration module 150 to tune media parameters for the non-volatile memory media 122 more effectively than it could by using the adjustment module 306 once. For example, in one embodiment, the error information may suggest a direction, but not a distance, for adjusting a read voltage threshold. Thus, the read voltage threshold may be over-adjusted or under-adjusted if the adjustment module 306 adjusts it once. However, a control loop module 410 may repeatedly determine error information and activate the adjustment module 306 to make successively finer adjustments to the read voltage threshold in order to satisfy an error criterion. 120 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In various embodiments, an error criterion for ending iterations of the control loop module 410 may be any criterion defining an acceptable type or quantity of errors. For example, in one embodiment, the control loop module 410 may determine that the error criterion is satisfied if an ECC chunk is decodable using the primary, or outer error correcting code. In another embodiment, the control loop module 410 may determine that the error criterion is satisfied if the RBER for a region of the non-volatile memory media is below a previously determined threshold. In light of this disclosure, many error criteria are clear which may be suitable for ending iterations of the control loop module 410. 119 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The control loop module 410, in one embodiment, is configured to iteratively read the at least one ECC chunk encoded with multiple error correcting codes from the non-volatile memory device 120 using the adjusted media parameters. In each iteration, the control loop module 410 may activate the secondary ECC module 304 to determine the error information, and may activate the adjustment module 306 to adjust one or more media parameters. The iterations of the control loop module 410 may continue until an error criterion is satisfied. 118 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In one embodiment, if the repetition code module 406 determines that the ECC chunk is not decodable using the repetition error correcting code, the analog information module 408 may derive analog information from the repeated bits. The secondary ECC module 304 may then use the analog information to inform a soft-decision decoder for the secondary error correcting code, such as the soft decision module 402. Soft-decision decoders are described further below with regard to the soft decision module 402. 117 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 As used herein, analog information for data comprises state information for the data in addition to a binary value for the data. For example, instead of or in addition to a binary one or a binary zero for a bit of data in an ECC chunk, analog information may comprise a read voltage level for a storage cell for the bit, thereby comprising additional state information beyond a determined binary value. While referred to herein as “analog” information, because of the greater precision possible than may be indicated by a binary one or a binary zero, in certain embodiments, analog information is represented as a binary value, such as representing a read voltage level with a multiple bit accuracy instead of as a single binary one or zero. Thus analog information may be represented as a digital value. In one embodiment, analog information may include a range of values (e.g., multiple bits) for a single bit instead of a “hard” determination that the bit is a zero or a one. In a certain embodiment, the analog information module 408 may derive analog information from repeated messages by summing each repeated bit. In another embodiment, the analog information module 408 may derive analog information from repeated messages by averaging each repeated bit. In a further embodiment, the average of each repeated bit may be weighted based on a historical reliability for that bit. In light of this disclosure, many useful forms of analog information are clear. 116 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The analog information module 408, in one embodiment, is configured to derive analog information from repeated messages of the repetition error correcting code. In a further embodiment, the analog information module 408 may derive analog information from the repeated messages in response to the repetition code module 406 determining that the at least one ECC chunk is uncorrectable using the repetition error correcting code. In a certain embodiment, the secondary ECC module 304 may be configured to determine that the at least one ECC chunk is correctable, or to decode the at least one ECC chunk, by using the analog information with the secondary, or inner error correcting code. The secondary ECC module 304 may use the analog information to inform a decoder for the secondary/inner error correcting code, and may determine error information based on using the analog information to attempt to decode the at least one ECC chunk with the secondary error correcting code. 114 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In embodiments where an error bias from the primary ECC module 302 and/or the secondary ECC module 304 is available, the DC balance module 404 may determine the direction of deviation based on one or more bits of the data set that are in error, as indicated by the error bias. An error bias, as used herein, is error information comprising a representation of one or more detected bit errors in a data set. In one embodiment, an error bias includes a location or position of a detected bit error in a data set. In another embodiment, an error bias includes a value for a detected bit error. A value for a detected error may include an error corrected value of a bit in error, an error value of the bit in error, or the like. For example, in one embodiment, primary ECC module 302 and/or the secondary ECC module 304 may provide the DC balance module 404 with an uncorrected data set and an error bias indicating locations of detected bit errors and the DC balance module 404 may determine a deviation from the known balance/bias by inverting or flipping the bits in those locations. In another embodiment, for example, the primary ECC module 302 and/or the secondary ECC module 304 may provide the DC balance module 404 with an error corrected data set and an error bias indicating locations of detected bit errors and the DC balance module 404 may determine a read balance/bias by inverting or flipping the bits in those locations. 135 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 FIG. 5C depicts another embodiment of an access data chunk 504. The access data chunk 504, in certain embodiments, may be substantially similar to the access data chunk 504 described above with regard to FIG. 5A. In the depicted embodiment, the access data chunk 504 is a code word for the secondary/inner error correcting code, including access data 540 and check bits 542. 154 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 FIG. 5B depicts one embodiment of an access data chunk 504. The access data chunk 504, in certain embodiments, may be substantially similar to the access data chunk 504 described above with regard to FIG. 5A. In the depicted embodiment, the access data chunk 504 includes access data 522 encoded with the secondary/inner error correcting code and a repetition error correcting code, as described above. Thus, in the depicted embodiment, the access data chunk 504 includes repeated messages 520 for the repetition error correcting code, so that each message 520 comprises a code word of the secondary/inner error correcting code of the secondary ECC module 304, both of which are also encoded by the primary/outer error correcting code described above with regard to FIG. 5A. In the depicted embodiment, the secondary/inner error correcting code is a systematic error correcting code, so each repeated message 520 includes the unencoded access data 522, plus check bits 524 for the secondary/inner error correcting code. 152 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In general, the adjustment module 306 may adjust, determine, or set one or more media parameters for the region 500 based on error information from the at least one ECC chunk 502 storing access data 504 with multiple error correcting codes, and/or based on the decoded access data 504 itself. If useful media parameters do not vary much within the region 500, than the adjustment module 306 may use error information or access data 504 from a small number of ECC chunks 502 storing access data 504 to effectively adjust media parameters affecting the remaining user data 506 in a much larger number of ECC chunks 502. Therefore, most ECC chunks 502 in the region 500 may include user data chunks 506, with the access data chunks 504 taking a small amount of the region 500. For example, in one embodiment, the region 500 may be a logical erase block with a capacity of approximately 4,000 KiB, and the access data chunks 504 may use the first two 1 KiB ECC chunks 502 for the region. In different embodiments, however, the region 500 may include a different ratio of user data chunks 506 to access data chunks 504. 151 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In the depicted embodiment, two ECC chunks 502 include access data chunks 504, while the remaining ECC chunks 502 for the region 500 include user data chunks 506. In another embodiment, one, three, or more ECC chunks 502 may include access data chunks 504, with the remaining ECC chunks 502 for the region 500 including user data chunks 506. 150 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In the depicted embodiment, ECC chunks 502 containing (or encoding) data other than the access data may be encoded with the primary/outer error correcting code but not with multiple error correcting codes. In the depicted embodiment, each such ECC chunk 502 may include a user data chunk 506 and check bits 508. Because data other than the access data 504 is not encoded with multiple error correcting codes, the user data chunks 506 may include user data, workload data, other data from a storage client 116, or the like. In some embodiments, because the user data chunks 506 may not be encoded with additional error correcting codes, the user data 506 may be decoded more quickly than the encoded access data 504, so the data chunks 506 may be more suitable than the access data chunks 504 for storing user data. Using a single error correcting code for the user data 506, in certain embodiments, may conserve storage capacity of the non-volatile memory media 122, because the single error correcting code may have lower storage capacity overhead (e.g., a higher code rate, fewer check bits 508, 524, or the like). 149 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In a further embodiment, the primary ECC module 302 may decode the first two ECC chunks 502 using the ECC check bits 508 of the primary/outer error correcting code, returning access data chunks 504, which include the access data encoded with at least the secondary/inner error correcting code. In another embodiment, the primary ECC module 302 may determine that the first two ECC chunks 502 are uncorrectable using the ECC check bits 508 of the primary/outer error correcting code. However, because the primary/outer error correcting code is a systematic code in the depicted embodiment, the primary ECC module 302 may return the access data chunks 504 with uncorrected errors for the use of other modules, such as the secondary ECC module 304 and/or the repetition code module 406 by simply discarding the check bits 508. In a further embodiment, because the access data chunks 504 include the access data encoded with at least the secondary/inner error correcting code, the secondary ECC module 304 and/or additional modules such as the repetition code module 406 may decode the access data chunks 504 despite errors left uncorrected by the primary ECC module 302. Access data chunks 504 are described further below with regard to FIG. 5B and FIG. 5C. 148 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 Access data 500 may be stored in one or more predefined locations in the region 500 of the non-volatile memory device 120, such as the first two ECC chunks 502 in the depicted embodiment. In certain embodiments, the access data 504 for the region 500 may comprise a media access control (MAC) header or erase block opener for the region 500. In the depicted embodiment, the first two ECC chunks 502 store access data 504 encoded with multiple error correcting codes, including the primary/outer error correcting code of the primary ECC module 302, the secondary/inner error correcting code of the secondary ECC module 304, and the repetition error correcting code of the repetition code module 406 as depicted in FIG. 5B, while the remaining ECC chunks 502 store user data 506 encoded with the primary/outer error correcting code. 147 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In certain embodiments, the at least one ECC chunk 502 storing access data 504, the first two ECC chunks 502 in the depicted embodiment, may be encoded or protected by a stronger error correcting code, multiple levels of error correcting codes, or the like as described above, while the one or more ECC chunks 502 storing user data 506 may be encoded or protected by a weaker error correcting code, a single error correcting code, or the like. As described above, the access data 504 may include metadata, settings, and/or thresholds which the non-volatile memory controller 124, the non-volatile memory media controller 126, a device driver such as the SML 130, or the like may use to access (e.g., read, write, program, and/or erase) a region 500 of the non-volatile memory media 122. Access data 504 may include one or more media parameters or storage thresholds as described above, a program/erase cycle count for the region of non-volatile memory media 122, an age of the non-volatile memory media 122, a table with multiple media parameters or storage thresholds, a logical-to-physical mapping for data of a region of non-volatile memory media 122, validity metadata or a validity bitmap for data of a region of non-volatile memory media 122, or other information associated with accessing data of a region 500 of non-volatile memory media 122. 146 Added by DJM 2 2021 2/22/21, 12:00 AM

Page 400 of 438, showing 20 record(s) out of 8,747 total