Non-volatile memory and method with post-write read and adaptive re-write to manage errors
First Claim
1. A method of operating a non-volatile memory, comprising:
- configuring the memory into first and second portions, the first portion having memory cells operating with a margin of error larger than that of the second portion;
programming a first copy of a group of input data into the second portion;
reading the first copy from the second portion to check for error after a predefined time; and
if the error in the first copy is less than a predetermined number of error bits, identifying the first copy as valid data in subsequent read operations;
otherwiseprogramming a second copy of the group of input data into the first portion and identifying the second copy as valid data in subsequent read operations.
3 Assignments
0 Petitions
Accused Products
Abstract
Data errors in non-volatile memory inevitably increase with usage and with higher density of bits stored per cell. For acceptable quality assurance, conventional error correction codes (“ECC”) have to correct a maximum number of error bits up to the far tail end of a statistical population. The present memory is configured to have a first portion operating with less error but of lower density storage, and a second portion operating with a higher density but less robust storage. If excessive error bits (at the far tail-end) occur after writing a group of data to the second portion, the data is adaptively rewritten to the first portion which will produce less error bits. Preferably, the data is initially written to a cache also in the first portion to provide source data for any rewrites. Thus, a more efficient ECC not requiring to correcting for the far tail end can be used.
-
Citations
20 Claims
-
1. A method of operating a non-volatile memory, comprising:
-
configuring the memory into first and second portions, the first portion having memory cells operating with a margin of error larger than that of the second portion; programming a first copy of a group of input data into the second portion; reading the first copy from the second portion to check for error after a predefined time; and if the error in the first copy is less than a predetermined number of error bits, identifying the first copy as valid data in subsequent read operations;
otherwiseprogramming a second copy of the group of input data into the first portion and identifying the second copy as valid data in subsequent read operations. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of operating a non-volatile memory, comprising:
-
configuring the memory into first and second portions, the first portion having memory cells operating with a margin of error larger than that of the second portion and for caching input data; programming a cached copy of a group of input data into the first portion; programming a first copy of the group of input data into the second portion; reading the first copy from the second portion to check for error after a predefined time; and if the error in the first copy is less than a predetermined number of error bits, identifying the first copy as valid data in subsequent read operations;
otherwiseidentifying the cached copy as valid data in subsequent read operations. - View Dependent Claims (9, 10)
-
-
11. A memory, comprising:
-
an array of non-volatile memory cells having first and second portions, the first portion having memory cells operating with a margin of error larger than that of the second portion; a controller for controlling operations of the memory, said operations including; programming a first copy of a group of input data into the second portion; reading the first copy from the second portion to check for error after a predefined time; and if the error in the first copy is less than a predetermined number of error bits, identifying the first copy as valid data in subsequent read operations;
otherwiseprogramming a second copy of the group of input data into the first portion and identifying the second copy as valid data in subsequent read operations. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A memory, comprising:
-
an array of non-volatile memory cells having first and second portions, the first portion having memory cells operating with a margin of error larger than that of the second portion and for caching input data; a controller for controlling operations of the memory, said operations including; programming a cached copy of a group of input data into the first portion; programming a first copy of the group of input data into the second portion; reading the first copy from the second portion to check for error after a predefined time; and if the error in the first copy is less than a predetermined number of error bits, identifying the first copy as valid data in subsequent read operations;
otherwiseidentifying the cached copy as valid data in subsequent read operations. - View Dependent Claims (19, 20)
-
Specification