Data storage with an outer block code and a stream-based inner code
First Claim
Patent Images
1. A method for storing data in a device having one or more memory arrays, the method comprising:
- receiving block-coded data comprising N+y bytes of data, wherein the N+y bytes of data comprises N bytes of page data and y bytes of block-type error correction data for the page data;
with a stream-based code coder, concatenating the N+y bytes of the block-coded data with a stream-based forward error correction technique 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;
wherein the one or memory arrays intrinsically has a first bit error rate, wherein with the additional forward error correction of the stream-based forward error correction technique has a second bit error rate lower than the first error rate such that the one or more memory arrays can be used to satisfy a bit error specification that would not be met by the first bit error rate.
7 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
12 Claims
-
1. A method for storing data in a device having one or more memory arrays, the method comprising:
-
receiving block-coded data comprising N+y bytes of data, wherein the N+y bytes of data comprises N bytes of page data and y bytes of block-type error correction data for the page data; with a stream-based code coder, concatenating the N+y bytes of the block-coded data with a stream-based forward error correction technique 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; wherein the one or memory arrays intrinsically has a first bit error rate, wherein with the additional forward error correction of the stream-based forward error correction technique has a second bit error rate lower than the first error rate such that the one or more memory arrays can be used to satisfy a bit error specification that would not be met by the first bit error rate. - View Dependent Claims (2, 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 comprising N+y bytes of data, wherein the N+y bytes of data comprises N bytes of page data and y bytes of block-type error correction data for the page data; temporarily storing a page of block-coded data, wherein the page of block-coded data is temporarily stored in a page latch; determining an activation of a program page signal, wherein the program page signal is received in a stream-based code coder; with the stream-based code coder, concatenating the N+y bytes of the block-coded data with a stream-based forward error correction technique 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 initiating concatenating at least partially in response to the activation of the program page signal; and storing the concatenated code in the one or more memo arrays.
-
-
7. A method for storing data in a device having one or more memory arrays, the method comprising:
-
receiving N bytes of page data; with a block code coder, generating y bytes of block-type error correction code from the N bytes of page data such that there are N+y bytes of block-coded data; with a stream-based code coder, concatenating the N+y bytes of the block-coded data with a stream-based forward error correction technique to generate a concatenated code that is a factor z times larger in size than the N+y bytes of 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 wherein the one or memory arrays intrinsically has a first bit error rate, wherein with the additional forward error correction of the stream-based forward error correction technique has a second bit error rate lower than the first error rate such that the one or more memory arrays can be used to satisfy a bit error specification that would not be met by the first bit error rate. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A method for storing data in a device having one or more memory arrays, the method comprising:
-
receiving N bytes of page data; temporarily storing a page of block-coded data, wherein the page of block-coded data is temporarily stored in a page latch; determining an activation of a program page signal, wherein the program page signal is received in the stream-based code coder; with a block code coder, generating y bytes of block-type error correction code from the N bytes of page data such that there are N+y bytes of block-coded data; with a stream-based code coder, concatenating the N+y bytes of the block-coded data with a stream-based forward error correction technique to generate a concatenated code that is a factor z times larger in size than the N+y bytes of block-coded data such that the concatenated code has z(N+y) bytes, and initiating concatenating at least partially in response to the activation of the program page signal; and storing the concatenated code in the one or more memory arrays.
-
Specification