Source: http://www.google.com/patents/US8103938?dq=6,034,652
Timestamp: 2017-08-18 11:08:24
Document Index: 286479789

Matched Legal Cases: ['Application No. 03811328', 'Application No. 03811328', 'Application No. 03811328', 'Application No. 03731164', 'Application No. 2004', 'Application No. 2004', 'Application No. 03731164', 'Application No. 2004']

Patent US8103938 - Increasing the effectiveness of error correction codes and operating multi ... - Google Patents
The quality of data stored in a memory system is assessed by different methods, and the memory system is operated according to the assessed quality. The data quality can be assessed during read operations. Subsequent use of an Error Correction Code can utilize the quality indications to detect and reconstruct...http://www.google.com/patents/US8103938?utm_source=gb-gplus-sharePatent US8103938 - Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
Publication number US8103938 B2
Application number US 12/041,806
Also published as CN1653554A, CN100576359C, EP1506552A1, EP1506552A4, EP1506552B1, EP1506552B8, US6751766, US7360136, US20030217323, US20040225947, US20080155380, WO2003100791A1
Publication number 041806, 12041806, US 8103938 B2, US 8103938B2, US-B2-8103938, US8103938 B2, US8103938B2
Patent Citations (23), Non-Patent Citations (10), Referenced by (3), Classifications (24), Legal Events (4)
US 8103938 B2
an array of re-programmable, non-volatile EEPROM memory cells, wherein digital data are stored in individual memory cells as an analog value in one of a plurality of defined non-overlapping ranges of analog values,
a controller operably connected with the memory cell array to perform specified functions that include:
storing an error correction code that is generated from the digital data that are stored,
reading the stored digital data from the individual memory cells by identifying the one of the plurality of the defined ranges in which the analog level lies,
concurrently reading data from the individual memory cells that are representative of a position of the analog value within the identified one of the plurality of the defined ranges, whereby the position data are an indication of the quality of the stored digital data read from the individual memory cells, and
correcting errors in the read digital data by utilizing both the error correction code and the read quality indication.
2. The memory system of claim 1, wherein errors in the read digital data that are correctable by the error correction code alone are corrected by the error correction code without use of the quality indication, and wherein errors in the read digital data that are not correctable by the error correction code alone are corrected by the error correction code and the read quality indication.
concurrently reading data from the individual memory cells that are representative of a position of the analog value within the identified one of the plurality of the defined ranges, whereby the position data are an indication of the quality of the stored digital data read from the individual memory cells,
accumulating statistical data of an association of the quality indications with values of the read stored digital data, and
utilizing the statistical data to operate the memory system.
4. The memory system of claim 3, wherein the specified functions specified by the controller additionally includes utilizing the statistical data to modify points of separation between the plurality of defined non-overlapping ranges of analog values.
This application is a division of application Ser. No. 10/866,554, filed on Jun. 10, 2004, which is a continuation of application Ser. No. 10/152,137, filed May 20, 2002, now U.S. Pat. No. 6,751,766, which applications are incorporated herein in their entirety by this reference.
ECCs can have at least two functions: error detection and error correction. The latter function is typically harder. An early example is the (7, 4) Hamming code, which has the capability of detecting 2 errors per word, but it can correct the words only if they contain a single error.
When data is read from a memory system, such as an array of memory cells, it may contain errors for a variety of reasons These errors can be corrected by applying, for example, Error Correction Codes (ECCs). The efficiency of an Error Correction Code can be enhanced by generating indications about the quality of the data, and applying the Error Correction Code in combination with the indications about the data quality. Also, the memory system can be operated based on the quality indication even without the ECC indicating the presence of errors. The invention can be practiced in any kind of memory or storage system, such as, for example, random access memories, non-volatile or flash memories, magnetic or optical discs. The memory systems can represent data with two or multi-level schemes. As an example, first an array of memory cells will be described, and then different methods for improving the efficiency of the Error Correction Codes will be discussed.
As illustrated in FIG. 2B, in other embodiments storage value intervals 104-i can be further divided into sub-intervals 116-i-j, where j is a positive integer. For example, an individual storage value interval 104-i can be divided into 7 sub-intervals 116-i-j, where correspondingly j can take on values between 1 and 7. In this case, in a multi level memory system with, for example, 24=16 levels, the overall signal storage value interval 100 can be divided into 128 sub-intervals. Out of this 128 sub-interval 16×7=112 sub-intervals are used to accommodate the 16 storage value intervals 104-i with 7 sub-interval in each storage value interval 104-i, and 8 and 8 sub-intervals are used to accommodate the low and high margins 114-1 and 114-2, respectively. The sub-intervals can be substantially equal in magnitude. In this specific example, the read data storage value 102 lies in sub-interval 116-1-2, therefore it lies within peripheral adjacent range 112-1-1 and thus has the associated digital data value 106-1, which is “1”.
Because of the possibility of corruption, the digital data values should not be transferred to a user without some form of testing and correcting. In many memory systems these functions are carried out by applying an error correction code (ECC) to digital data values 106-i. Typically, an ECC is applied to the data when writing the data into the memory and the result stored, for example, in additional bits alongside the data. An example is the (7, 4) Hamming code, which associates three additional bits with every four-bit word to achieve a minimum Hamming distance of three between any two of the 16 possible four-bit data. The ECC is recomputed when reading the same data and its associated ECC bits, and the results of the recomputation of the ECC can be compared with the mathematically expected result. If the recomputed and the expected results are the same, then the data were probably not corrupted, whereas, if the recomputed and expected results do not agree, then the data have been corrupted.
Many ECCs use additional bits for data recovery. A general relation concerning the ECC's ability to reconstruct data was first given by Hamming. If a memory system uses binary words of length m, capable of coding n=2m different data, then t corrupted data can be corrected reliably, if the memory system uses at least P additional bits, where a lower bound on the value of P is given by the “lower Hamming limit”:
P ≥ ∑ i = 0 t ( n i )
According to another aspect of the invention additional corrective actions can be executed based on the statistics of a sector's “Poor Quality” data. These corrective actions can be executed by a controller external to the memory system, or, in other embodiments, by some logic internal to the memory system. Hereafter, the unit, which executes the corrective action, will be referred to as “the controller.” The total number of “Poor Quality” data can be counted in any data sector of a memory system. This counting can be executed, for example, during some or all readings of the data of the sector, or during specific “house keeping” operations, aimed only at determining the quality of the data of the sector. In this embodiment it is not even necessary that the application of an ECC indicate the presence of errors in the data sector. Even if the ECC indicates that the data sector is error free, an increase in number of “Poor Quality” data can indicate that the quality of data in the sector is degrading. Driven by this indication proactive corrective actions can be performed in a timely manner, thus preventing the appearance of actual errors.
US4164451 Jun 5, 1978 Aug 14, 1979 Phillips Petroleum Company Pressure responsive fractionation control
US4872171 Dec 28, 1987 Oct 3, 1989 Pioneer Electronic Corporation Method for recording digital data so as to avoid operational error on reproduction
US5517510 Jan 31, 1995 May 14, 1996 Motorola, Inc. Method and apparatus for indicating uncorrectable errors to a target
US6526009 Jul 12, 2000 Feb 25, 2003 Koninklijke Philips Electronics N.V. Recording medium, and method of and device for recording information on a recording medium and reading information from a recording medium
JP2000137999A Title not available
JP2001503181A Title not available
JP2001504973A Title not available
JP2003283413A Title not available
JP2004103089A Title not available
JP2006527901A Title not available
JP2008300020A Title not available
JPH1166887A Title not available
1 China State Intellectual Property Office, "Office Action," corresponding Chinese Patent Application No. 03811328.7, mailed on Jun. 27, 2008, 5 pages (including translation.).
2 China State Intellectual Property Office, "Second Office Action," corresponding Chinese Patent Application No. 03811328.7, mailed on Feb. 20, 2009, 7 pages (including translation.).
3 China State Intellectual Property Office, "Third Office Action," corresponding Chinese Patent Application No. 03811328.7, mailed on Jul. 7, 2009, 5 pages.
4 EPO/ISA, "Notification of Transmittal of the International Searhc Report or the Declaration," corresponding PCT appplication No. PCT/US03/14975, mailed on Aug. 7, 2003, 6 pages.
5 Listing of Claims for European Application No. 03731164.4, filed May 12, 2003, 8 pages.
6 Notification of Reasons for Refusal for Japanese Patent Application No. 2004-508354 mailed Apr. 26, 2010, 7 pages.
7 Notification of Reasons for Refusal, Japanese Patent Application No. 2004-508354 dated Jul. 7, 2009, 4 pages.
8 Office Action for European Application No. 03731164.4 dated Jul. 5, 2011, 3 pages.
9 Office Action for Korean Application No. 2004-7018766 mailed Mar. 17, 2010, 2 pages.
10 Supplementary European Search Report, Application No. EP 03 73 1164 dated Aug. 17, 2009.
U.S. Classification 714/764, 714/736
International Classification G11C29/00, G11C11/56, G11C29/42, G06F12/16, G11C16/06
Cooperative Classification G11C29/76, G11C29/00, G06F11/1012, G11C11/56, G11C16/3431, G11C2029/0411, G06F11/1072, G11C16/3418, G11C29/42, G11C11/5621
European Classification G06F11/10M10, G11C16/34D, G11C11/56, G06F11/10M1, G11C16/34D6, G11C29/42, G11C11/56D
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:EBE, HIROJI;KAWAGUCHI, KENICHI;MORITO, KEN;AND OTHERS;REEL/FRAME:020698/0215;SIGNING DATES FROM 20080206 TO 20080212
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:EBE, HIROJI;KAWAGUCHI, KENICHI;MORITO, KEN;AND OTHERS;SIGNING DATES FROM 20080206 TO 20080212;REEL/FRAME:020698/0215
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SANDISK CORPORATION;REEL/FRAME:026312/0503