IP Library Granted Patent US 8,112,699
Granted Patent B2
US 8,112,699 · App. 12/031,289 · Granted Feb 7, 2012

Error detecting/correcting scheme for memories

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,112,699
App. No.
12/031,289
Granted
Feb 7, 2012
Kind
B2
Abstract

A method for detecting and correcting errors in a memory having a read/write paradigm is presented. In these implementations, various approaches to detect errors on a per word or per group of words basis and correct errors on a per group of words or per page basis, respectively, in relation to a memory and its associated differing read/write operations, are provided. For instance, in one implementation, errors are detected on a per word basis and corrected on a per page basis for a NOR Flash Memory having differing read/write operations of reading on a per word basis and writing on a per page basis. Advantageously, benefits of the various implementations include reduced encoder/decoder complexities, reduced parity overhead requirements, and reduced performance degradation.

Claims (85)

1. A method for error detection and correction in a memory, comprising:

determining word parity for one or more words on a page of the memory for detecting errors;

determining a page parity for correcting errors in the page; and,

detecting and correcting one or more errors by reading the one or more words and writing an output to the memory; wherein parity bits are shared between the word parity and the page parity.

2. The method of claim 1 , wherein the reading is performed on a per word basis and the writing is performed on a per page basis.

3. The method of claim 2 , further comprising:

computing shared parity bits for word parity and page parity,

detecting one or more errors for one or more words on the page by reading one or more words on the page, and

correcting a detected error by providing a corrected output for the page.

4. The method of claim 1 , wherein

the word parity for one or more words on the page comprises a single parity bit providing for error detection of a word,

the page parity comprises a plurality of parity bits providing error correction of a detected error in the page, and

a bit sum of the word parity and the page parity is equal to the computed shared parity bits.

5. The method of claim 1 , further comprising computing the parity bits to be shared for word parity and page parity, wherein reading the one or more words is on a per word basis and writing an output to the memory is on a page basis, and the computed parity bits are determined in relation to a matrix construct and a page vector.

6. The method of claim 5 , wherein the step of computing the parity bits further comprises

defining a set of generator rules,

generating a matrix in relation to the generator rules,

determining the page vector, and

computing the product of the matrix and the page vector.

7. The method of claim 1 , further comprising

computing shared parity bits for word parity and page parity,

determining word parity for each group of words on the page,

detecting one or more errors for each group of words on the page by reading each group of words on the page, and

correcting a detected error by writing a corrected output for the page, wherein the reading is performed on a per group of words basis and the writing is performed on a per page basis.

8. The method of claim 7 , wherein

the one or more words are a group of words such that word parity is for a group of words and comprises a plurality of the parity bits for error detection of the group of words,

page parity comprises a plurality of parity bits for error correction of a detected error in the page, and

a sum of the parity bits of the word parity and the page parity is equal to the computed parity bits shared between the word parity and page parity.

9. The method of claim 1 , further comprising

computing shared parity bits for word parity and page parity,

determining word parity for each word on the page,

detecting one or more errors for each word on the page by reading each word on the page, and

correcting a detected error by determining a corrected output for a group of words on the page, wherein the reading is performed on a per word basis and the writing is performed on a per group of words basis.

10. The method of claim 9 , wherein

the word parity comprises a single parity bit providing for error detection of the word,

the page parity comprises a plurality of parity bits for error correction of a detected error in the page, and

a sum of the parity bits of the word parity and the page parity is equal to the computed parity bits shared between the word parity and page parity.

11. The method of claim 1 , wherein a computation of the parity bits is performed by an encoder comprising a method of

computing the parity bits in relation to a matrix construct and a page vector including defining a set of generator rules,

generating a matrix in relation to the generator rules,

determining the page vector, and

computing the product of the matrix and the page vector,

wherein a computed parity bits is equal to the sum of the word parity bits and the page parity bits.

12. The method of claim 11 , wherein the generator rules comprise: limiting a number of columns of the matrix, providing a one bit parity encoding for word parity computations, to be equal to a number of words in the page; and the generated matrix forms a Hamming Generator matrix with at least two 1's on each line of the generated matrix such that each row is linearly independent from another.

13. The method of claim 1 , further comprising

loading words intended for writing to the memory into a word buffer of a page buffer in signal communication with the memory,

issuing a command to write the loaded words to a predetermined address, and

writing the loaded words to the memory, wherein the reading is performed on a per word basis and the writing is performed on a per page basis.

14. The method of claim 13 , further comprising sending a corrected output to a corrected word register.

15. The method of claim 1 , further comprising the steps of:

detecting one error per word and performing one error correction of the error detected on a page by computing the shared parity bits for word parity and page parity;

determining word parity for each word on the page;

detecting one or more errors for each word on the page by reading each word on the page; and

correcting errors for two or more detected errors by determining a corrected output, wherein the reading is performed on a per word basis and the writing is performed on a per page basis.

16. A flash memory system having a flash memory device including a memory array, a word buffer, one or more parity buffers, and a parity encoder controlled by a parity encoder controller, and being capable of determining error detection and error correction for the memory array by:

computing a word parity for each of one or more words on a page of the memory array for detecting errors;

computing a page parity for correcting the errors in the page; and

detecting and correcting one or more errors of the one or more words by reading each of the one or more words, and providing an output.

17. The system of claim 16 , further comprising:

computing shared parity bits for word parity and page parity,

determining word parity for the one or more words on the page,

detecting one or more errors for the one or more words on the page by reading one or more words on the page, and

correcting a detected error by providing a corrected output,

wherein the memory array is a NOR Flash Memory and performs reading on a per word basis and writing on a per page basis.

18. The system of claim 17 , wherein the computed parity bits

are determined in relation to a matrix construct and a page vector and

further comprise the steps of defining a set of generator rules, generating a matrix in relation to the generator rules, determining the page vector, and computing the product of the matrix and the page vector.

19. A process for detecting and correcting errors comprising:

idling the memory,

entering a read mode for the memory,

specifying an address of one or more words to read on a page of the memory,

computing an error detection signal being a first bit of a syndrome, by a syndrome calculator,

re-reading the page by re-reading each of the one or more words and determining page parity,

determining other bits of the syndrome for correcting the error, and

outputting a corrected word to the memory.

20. The process of claim 19 , further comprising generating error detection and correcting code for performing the process, wherein the code is generated in relation to a read operation and a write operation of the memory.

21. The process of claim 20 , further comprising setting a read done signal to a high setting when the error detection signal is of a value of zero.

22. The process of claim 20 , wherein the step of re-reading the page further comprises: sending one or more words to the syndrome calculator to re-compute the page parity and storing the page parity into a recomputed page parity buffer.

23. The process of claim 20 , further comprising automatically sending the syndrome for error extraction and correction.

24. A computer program product for detecting errors and correcting errors in a memory having a read operation differing from a write operation, the computer program product comprising a computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising: a first executable portion capable of,

determining word parity for each of one or more words on a page of the memory for detecting errors;

determining a page parity for correcting errors in the page; and

detecting and correcting one or more errors by reading each of the one or more words and writing an output to the memory,

wherein parity bits are shared between the word parity and the page parity, and reading is performed on a per word basis and writing is performed on a per page basis.

25. The product of claim 24 , further comprising computing shared parity bits for word parity and page parity, determining word parity for one or more words on the page, detecting one or more errors for one or more words on the page by reading one or more words on the page, and correcting a detected error by determining a corrected output.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2024
From: SONRAI MEMORY LIMITED
To: NERA INNOVATIONS LIMITED
Reel/Frame 066778/0178 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2020
From: MICROCHIP TECHNOLOGY INC.; ATMEL CORPORATION; MICROSEMI CORPORATION
To: SONRAI MEMORY LIMITED
Reel/Frame 051799/0956 →
RELEASE OF SECURITY INTEREST Recorded Dec 21, 2019
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; ATMEL CORPORATION
Reel/Frame 051398/0809 →
RELEASE OF SECURITY INTEREST Recorded Dec 21, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; ATMEL CORPORATION
Reel/Frame 051398/0827 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2010
From: ATMEL CORPORATION
To: ATMEL ROUSSET S.A.S.
Reel/Frame 024055/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2008
From: GODARD, BENOIT; DAGA, JEAN MICHEL
To: ATMEL CORPORATION
Reel/Frame 020511/0655 →