Dave's Patent Content Factory
Applications
Terms
Paragraphs
Claims
Docket
Logout
About
New Paragraph
Paragraphs
Search Content
Para #
Notes
Any Field
Search
Clear
Actions
Matter
Content
Para #
Notes
Modified
View
Edit
Delete
US-20150012794-A1
As an example, in one embodiment, the primary error correcting code used by the primary ECC module 302, which may comprise an outer error correcting code, may include a BCH code capable of decoding data with a RBER of about 1.3e-3 or the like. In a further embodiment, the secondary error correcting code used by the secondary ECC module 304, which may comprise an inner error correcting code, may include a BCH code capable of decoding data with a RBER of about 0.1, or another RBER that is greater than that correctable by the primary error correcting code. In some embodiments, the non-volatile storage device 120 may use the primary and/or outer error correcting code to provide error correction with low computational and storage overhead for data other than the access data. In further embodiments, the configuration module 150 may use both the primary and/or outer error correcting code and the stronger secondary and/or inner error correcting code with the access data, to increase the likelihood of successfully adjusting media parameters for the non-volatile memory media 122 based on the resulting error information, based on the access data, or the like. Using a configuration module 150 to tune or adjust media parameters based on error information, based on access data protected by a stronger error correcting code, or the like may, in some embodiments, keep the RBER low enough for the primary/outer error correcting code to be weaker than it could otherwise be without raising the UBER, thereby using keeping the overhead for the primary/outer error correcting code low.
96
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
In various embodiments, the configuration module 150 may decode (or attempt to decode) the access data using the stronger error correcting code, the multiple error correcting codes, or the like thereby deriving error information that the configuration module 150 may use to determine or adjust media parameters for other data of the region of non-volatile media 122, even if the other data is protected by one or more weaker error correcting codes, fewer error correcting codes, or the like. In a further embodiment, ECC chunks that do not encode access data may encode additional data (e.g., user data, workload data) using a single level of error correcting code, such as the primary or outer error correcting code used by the primary ECC module 302. ECC chunks encoding data and access data are described in further detail below with regard to FIG. 5A, FIG. 5B, and FIG. 5C.
86
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
Access data may be stored in one or more predefined locations in a storage region of the non-volatile memory device 120. For example, the first ECC chunk, the first two ECC chunks, the first N ECC chunks, the Nth one or more ECC chunks, or the like. In certain embodiments, each storage region may comprise access data. In certain embodiments, the access data for a storage region may comprise a media access control (MAC) header or erase block opener for a storage region. In one embodiment, an ECC chunk encoding access data may be protected by a stronger error correcting code than user data or workload data, multiple levels or layers of error correcting codes, or the like to ensure that the access data may be decoded and errors corrected. The adjustment module 306 may use access data for a region, decoded by the primary ECC module 302 and/or the secondary ECC module 304, to read from, write/program, and/or otherwise access other data of the region (e.g., user data, workload data, client data), as described below).
85
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
Access data, as used herein, comprises 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 of the non-volatile memory media 122. Access data may include one or more media parameters or storage thresholds as described below (e.g., read voltage thresholds, a bias for multiple read voltage thresholds, a resistivity threshold, a programming threshold, an erase threshold, a hardware driver level threshold, a storage controller level threshold, or the like), a program/erase cycle count for the region of non-volatile memory media 122, an age of the non-volatile memory media 122 (e.g., time since first powered on, amount of time powered on, or the like), 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 of non-volatile memory media 122.
84
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
In some embodiments, the non-volatile memory device 120 may be in communication with a host device, such as a computing device 110, over a communications bus, such as the bus 125. In one embodiment, a region of the non-volatile memory media 122 such as a physical or logical page, physical or logical erase block, chip, die, die planes, plurality of chips or dies, or the like, may include multiple ECC chunks. In a further embodiment, each ECC chunk may include or encode data from a user, metadata, a predetermined pattern, or the like. In some embodiments, one or more ECC chunks for a region may encode access data facilitating access to the region, while other ECC chunks may encode other data, such as user data (e.g., workload data stored for a client 116) or the like.
83
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
In one embodiment, the primary ECC module 302 may be configured to determine error information using the primary error correcting code to attempt to decode at least one ECC chunk. As used herein, error information comprises data associated with one or more errors or potential errors for one or more ECC chunks. The primary ECC module 302 may determine error information for an ECC chunk by processing the ECC chunk using an ECC decoder or the like. In attempting to decode at least one ECC chunk, the primary ECC module 302 may determine error information either from successfully decoding the at least one ECC chunk, or may determine error information from an unsuccessful attempt to decode the ECC chunk. In various embodiments, error information may include whether or not an ECC chunk is correctable, a number and/or location of bits in error, a raw bit error rate (RBER), an uncorrectable bit error rate (UBER), a ratio of bits which store a binary zero to bits which store a binary one in the decoded data (e.g., a DC balance as described below), or other information related to decoding (or attempting to decode) the at least one ECC chunk using one or more levels of error correcting codes.
82
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
In some embodiments, in order to nest multiple layers of error correction, the input data bits for an ECC chunk of the primary ECC module 302 may comprise a secondary ECC chunk generated by the secondary ECC module 304. In this manner, for a systematic ECC code word provided by the primary ECC module 302, the message or input data (e.g., the data other than the check bits for the error correcting code) may comprise one or more secondary or inner ECC code words from the secondary ECC module 304. Thus, in certain embodiments, a configuration module 150 using a systematic code as a primary, outer error correcting code may decode an ECC chunk using a secondary, inner error correcting code even if the primary ECC module 302 determines that the ECC chunk is uncorrectable using the primary, outer error correcting code. In this manner, in one embodiment, the secondary ECC module 304 may provide stronger, higher overhead error protection for at least a subset of ECC chunks of the non-volatile memory device 120, such as the access data described below, enabling the primary ECC module 304 to provide less strong, lower overhead error protection for the rest of the ECC chunks without the added overhead of the stronger protection.
81
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
The primary ECC module 302 and the secondary ECC module 304, in a further embodiment, may encode, decode, or otherwise provide error correction and/or detection on at least a portion of the same data, for one or more ECC chunks or the like. For example, the primary ECC module 302 may provide a standard, uniform, or other predetermined level of error correction to all or substantially all data of the non-volatile memory device 120, including one or more segments or portions of data for which the secondary ECC module 304 has already provided error correction. In such embodiments, the primary ECC module 302 may provide a primary, outer layer of error correction around a secondary, inner layer of error correction provided by the secondary ECC module 304 and nested within an ECC chunk of the primary ECC module 302 as described below. As used herein, an inner error correcting code comprises an error correcting code for an ECC chunk embedded or nested within another ECC chunk generated by another, outer error correcting code.
80
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
The primary ECC module 302 and the secondary ECC module 304, in certain embodiments, may encode, decode, or otherwise provide error correction and/or detection to different data, different ECC chunks, or the like, so that the different data has different levels or strengths of error protection. For example, the secondary ECC module 304 may provide a stronger error correcting code for one or more ECC chunks than an error correcting code provided by the primary ECC module 302 for the rest of the ECC chunks, as described below. As used herein, one error correcting code is stronger than another error correcting code if the error correcting code is capable of detecting and/or correcting more bit errors per unit of data, detecting and/or correcting data with a higher error rate, or the like. The primary ECC module 302 may provide a lower level of error correction than the secondary ECC module 304 for a majority of data of the non-volatile memory device 120 and the secondary ECC module 304 may provide a higher or stronger level of error correction for a minority of data of the non-volatile memory device 120, such as a predefined type or class of data (e.g., priority data, access data, or the like), as described below.
79
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
FIG. 4 depicts another embodiment of a configuration module 150. The configuration module 150, in certain embodiments, may be substantially similar to the configuration module 150 described above with regard to FIG. 1A, FIG. 1B, FIG. 2, and/or FIG. 3. In the depicted embodiment, the configuration module 150 includes a first ECC module 302, a secondary ECC module 304, and an adjustment module 306, which may be configured substantially as described above with regard to FIG. 3. The configuration module 150, in the depicted embodiment, includes a repetition code module 406, an analog information module 408, a control loop module 410, and a header module 412. The secondary ECC module 304, in the depicted embodiment, includes a soft decision module 402 and a DC balance module 404.
105
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
In a certain embodiment, the repetition error correcting code may comprise an intermediate code between and/or in addition to the secondary/inner error correcting code provided by the secondary ECC module 304 and the primary/outer error correcting code provided by the primary ECC module 302. For example, the secondary ECC module 304 may provide a code word by encoding access data or other input data using the secondary/inner error correcting code, and the repetition code module 406 may repeat the code word from the secondary ECC module 304 as a message for the repetition error correcting code. The primary ECC module 302 may encode the repeated messages, taken together, using the primary/outer error correcting code to form at least one ECC code word or chunk.
113
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
In one embodiment, the repetition error correcting code may be the secondary/inner error correcting code, and the secondary ECC module 304 may use the repetition code module 406 to decode the repeated messages. For example, in a certain embodiment, each bit of the access data may be repeated as a message for the repetition error correcting code. In another embodiment, the access data as a whole may be repeated as a message for the repetition error correcting code.
112
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
The at least one ECC chunk, in one embodiment, may include or encode access data using the repetition error correcting code and/or the secondary/inner error correcting code with the primary/outer error correcting code to provide multiple levels of error correction for the access data. In a further embodiment, additional ECC chunks may include or encode additional data using one level of error correcting code (e.g., the primary/outer error correcting code). ECC chunks encoding data and access data are described in further detail below with regard to FIG. 5A, FIG. 5B, and FIG. 5C.
111
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
In one embodiment, the repetition code module 406 may include, control, or otherwise cooperate with a decoder for the repetition error correcting code. In a further embodiment, the repetition code module 406 may include, control, or otherwise cooperate with an encoder for the repetition error correcting code.
110
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
In one embodiment, the repetition code module 406 may determine whether the ECC chunk is correctable using the repetition error correcting code based on the number of identical instances of the repeated message. In another embodiment, the repeated message may be a code word for the secondary/inner error correcting code, and the repetition code module 406 may determine whether the ECC chunk is correctable using the repetition error correcting code based on how many repeated messages are correctable using the secondary/inner error correcting code. In various embodiments, the repetition code module 406 may determine that the ECC chunk is correctable using the repetition error correcting code based on a number of repeated messages satisfying a threshold number for messages having a certain property such as being identical, being decodable with a secondary/inner error correcting code, or the like.
109
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
A replication or repetition error correcting code, as used herein, may repeat a message (e.g., the input or payload data for an ECC chunk) multiple times to increase the probability that a majority of the repeated messages will be correct. An ECC chunk, which may include a code word for the primary/outer error correcting code or the like, may encode multiple repeated messages (e.g., the input or payload data for the ECC chunk) for the repetition error correcting code. In a further embodiment, the repetition code module 406 may repeat an entire ECC chunk, including a message and ECC check bits for the message, an encoded message, or the like, multiple times. The repetition code module 406, in certain embodiments, may store different copies of a message, an ECC code word, or the like in different storage regions, different sub-regions, different memory elements, or the like, to decrease a probability that different copies will be effected by the same errors. For example, the repetition code module 406 may repeat a message, an ECC code word, or the like on each of a plurality of memory elements of the non-volatile memory media 122, across an array of memory elements or the like, with each memory element storing one copy of the repeated message or ECC code word. As described above, a memory element may comprise a chip, a package, a die plane, a die, a logical or physical erase block, a logical or physical page, or the like.
108
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
The at least one ECC chunk may include or encode access data encoded with the primary/outer, secondary/inner, and/or repetition error codes, so that error information used by the adjustment module 306 may be based on any of the multiple layers of error correcting codes. In one embodiment, the primary ECC module 302 may be configured to determine primary, or outer error information for the at least one ECC chunk, and the secondary ECC module 304 may be configured to determine secondary, or inner error information for the at least one ECC chunk. Similarly, in a further embodiment, the repetition code module 406 may be configured to determine third, or “repetition” error information by using the repetition error correcting code to attempt to decode the at least one ECC chunk. Then, the error information used by the adjustment module 306 may include the first/primary, second/secondary, and/or third/repetition error information.
107
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
The repetition code module 406, in one embodiment, is configured to determine whether the at least one ECC chunk encoded with multiple error correcting codes is correctable using a repetition error correcting code. In various embodiments, a means for determining whether the at least one ECC chunk is correctable using a repetition error correcting code may include a repetition code module 406, a configuration module 150, a non-volatile memory controller 124, a non-volatile memory media controller 126, a device driver such as an SML 130, a processor 111, a read pipeline 241, other logic hardware and/or other executable code stored on a computer readable storage medium. Other embodiments may include similar or equivalent means for determining if the ECC chunk is correctable using a repetition error correcting code.
106
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
In one embodiment, an ECC chunk may refer to a code word for the primary error correcting code. In various embodiments, the primary error correcting code may be one of various types of error correcting code, such as a block code, a convolutional code, a Bose-Chaudhuri-Hocquenghem (BCH) code, a low-density parity check (LDPC) code, a Hamming code, a Reed-Solomon code, a turbo code, or the like. In a certain embodiment, the primary error correcting code may be a systematic error correcting code, so that each ECC chunk, or code word, may store data received by an encoder for the primary error correcting code, as well as parity bits, or check bits. A systematic error correcting code, as used herein, may comprise an error correcting code that includes or combines the input data in the output ECC code word or chunk, so that the ECC code word or chunk includes the input data directly. This means that the input data (e.g. the message) is readily identifiable in the ECC code word. In other words, the input data (e.g. the message) is either not transformed/encoded or is encoded/transformed with a unity encoding. A non-systematic code, as used herein, may comprise an error correcting code that encodes or transforms the input data so that the encoded output includes the input data encoded together with other ECC check bits (aka parity bits). This means that the input data (e.g. the message) is not readily identifiable in the ECC code word. An ECC chunk generated by a systematic error correcting code may store ECC check bits or parity bits before the non-encoded input data, after the non-encoded input data, or at one or more other locations within the non-encoded input data. An ECC chunk generated by a non-systematic error correcting code may provide error detection and/or correction using the data encoding itself, with or without separate ECC check bits. In a non-systematic error correcting code, the output may comprise a code word which itself may be considered the ECC check bits.
78
Added by DJM 2 2021
2/22/21, 12:00 AM
View
Edit
Delete
US-20150012794-A1
In one embodiment, the adjustment module 306 may adjust one or more media parameters based on the total available error information. In another embodiment, the adjustment module 306 may adjust one or more media parameters based on a portion of the available error information, but may ignore other error information. Adjusting media parameters based on error information may allow the non-volatile memory device 120 to read or re-read data with a reduced RBER or UBER. For example, in one embodiment, a page of data encoded with the primary or outer error correcting code may contain ECC chunks with uncorrectable errors if the non-volatile memory device 120 reads the page using default read voltage thresholds. In a further embodiment, however, the adjustment module 306 may adjust or set the read voltage thresholds for the page based on error information from decoding access data stored on the page using multiple levels of error correcting codes, a stronger error correcting code, or the like. The adjustment module 306 may retrieve one or more media parameters from the access data, may determine one or more media parameters based on error information, or the like. If the non-volatile memory device 120 reads the page using the adjusted read voltage thresholds, the same page of data may contain fewer errors, so that more of the ECC chunks are correctable using the primary or outer error correcting code.
104
Added by DJM 2 2021
2/22/21, 12:00 AM
<< first
< previous
398
399
400
401
402
403
404
405
406
next >
last >>
Page 402 of 438, showing 20 record(s) out of 8,747 total