Data storage with an outer block code and a stream-based inner code
First Claim
Patent Images
1. An apparatus comprising:
- one or more memory arrays for storage of data;
a stream-based coder configured to generate a page of forward error correction coded data of a page of original data intended for storage in the one or more memory arrays such that the coded page of data is larger than the page of original data and such that the original data is not recognizable in the coded data without decoding the coded data;
a page latch operatively coupled to the stream-based coder, wherein the page latch is at least large enough to hold the page of coded data for writing to the one or more memory arrays; and
a stream-based decoder configured to decode coded data retrieved from the one or more memory arrays to generate decoded data.
8 Assignments
0 Petitions
Accused Products
Abstract
Apparatus and methods store stream-based error recovery data for a memory array, such as a NAND flash array. Conventionally, data is block coded per industry specification and stored in the memory array. Within the limits of the block code, this technique provides for correction of errors. By applying a stream-based inner code, that is, concatenating the outer block code with an outer code, the error correction can be further enhanced, enhancing the reliability of the device. This can also permit a relatively small-geometry device to be used in a legacy application.
-
Citations
10 Claims
-
1. An apparatus comprising:
-
one or more memory arrays for storage of data; a stream-based coder configured to generate a page of forward error correction coded data of a page of original data intended for storage in the one or more memory arrays such that the coded page of data is larger than the page of original data and such that the original data is not recognizable in the coded data without decoding the coded data; a page latch operatively coupled to the stream-based coder, wherein the page latch is at least large enough to hold the page of coded data for writing to the one or more memory arrays; and a stream-based decoder configured to decode coded data retrieved from the one or more memory arrays to generate decoded data.
-
-
2. An apparatus comprising:
-
one or more memory arrays for storage of data; a stream-based coder configured to generate a page of forward error correction coded data of a page of original data intended for storage in the one or more memory arrays such that the coded page of data is larger than the page of original data and such that the original data is not recognizable in the coded data without decoding the coded data; a page latch operatively coupled to the stream-based coder, wherein the page latch is at least large enough to hold the page of coded data for writing to the one or more memory arrays; a stream-based decoder configured to decode coded data retrieved from the one or more memory arrays to generate decoded data; and a second page latch operatively coupled to the stream-based coder, wherein the second page latch is configured to store the page of original data for access by the stream-based coder for coding; wherein the stream-based coder is configured to initiate a forward error correction process at least partially in response to an activation of a program page signal. - View Dependent Claims (3, 4, 5)
-
-
6. A method for storing data in a device having one or more memory arrays, the method comprising:
-
receiving block-coded data for storage in the one or more memory arrays, wherein the block-coded data comprises N bytes of page data and y bytes of block-type error correction data for the page data such that the block-coded data comprises N+y bytes of page data and block-type error correction data; concatenating the N+y bytes of the block-coded data with a stream-based forward error correction code to generate a concatenated code that is a factor z times larger in size than the N+y bytes of original block-coded data such that the concatenated code has z(N+y) bytes; and storing the concatenated code in the one or more memory arrays. - View Dependent Claims (7, 8, 9, 10)
-
Specification