IP Library Granted Patent US 8,301,963
Granted Patent B2
US 8,301,963 · App. 11/877,497 · Granted Oct 30, 2012

Low-density parity-check code based error correction for memory device

Assignee: Spansion LLC
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,301,963
App. No.
11/877,497
Granted
Oct 30, 2012
Kind
B2
Abstract

An accumulative repeat encoder facilitates encoding data written to memory, such that parity data is generated in accordance with a low-density parity-check (LDPC) code. The original data and associated parity data is stored in memory. During a read operation, a decoder component utilizes the parity data based on the LDPC code to facilitate decoding the data being read from memory. The decoder component is iterative and provides one or more decoding results based on probabilities that symbols or bits comprising the data have correct values. The decoder component analyzes a decoding result and references a parity-check matrix structured in accordance with the LDPC code to determine the accuracy of the decoding result. If the decoding result attains a desired accuracy, the decoding result is determined to represent the original data and is provided as an output.

Claims (57)

1. A system that facilitates error correction of data, comprising:

a memory configured to store encoded data, parity data associated with the encoded data, and matrix data associated with a matrix, wherein the matrix comprises a first matrix used to encode data for storage in the memory to yield the encoded data and a second matrix used to generate the parity data based in part on a low-density parity-check code;

an accumulative repeat encoder component configured to generate the parity data associated with the encoded data based in part on the matrix;

a computation component configured to decode the encoded data based in part on the parity data to yield a decoded symbol sequence and to multiply the decoded symbol sequence with the matrix to yield a matrix multiplication result; and

a decision component configured to instruct the computation component to perform a subsequent iteration of decoding on the encoded data in response to a determination that the decoded symbol sequence violates at least one parity check constraint based on the matrix multiplication result.

2. The system of claim 1 , wherein the parity data is based in part on a low-density parity-check code.

3. The system of claim 1 , wherein the computation component is further configured to cease performing iterations of decoding on the encoded data in response to a determination that the decoded symbol sequence satisfies the parity check constraints or in response to a predetermined maximum number of iterations being performed.

4. The system of claim 1 , wherein rows of the matrix correspond to respective parity check constraints, and columns of the matrix correspond to respective symbols comprising the data.

5. The system of claim 1 , further comprising a translation component configured to translate at least one of a multiplication operation or a division operation into a log domain wherein the multiplication operation is translated to an addition operation and the division operation is translated to a subtraction operation in the log domain.

6. The system of claim 1 , wherein the second matrix has a transfer function of 1/(1+D).

7. The system of claim 1 , wherein the accumulative repeat encoder comprises:

an adder component configured to sum respective matrix multiplication results of the first matrix and the data to yield a summed result; and

an integrator component configured to process the summed result based in part on a transfer function associated with the second matrix to generate the parity data.

8. The system of claim 1 , further comprising a memory module including at least one of the memory, a cryptographic component, the accumulative repeat encoder component, a decoder component, an analog-to-digital converter, a digital-to-analog converter, or a storage component.

9. The system of claim 1 , wherein the memory is a non-volatile memory that is at least one of flash memory, multi-bit flash memory, read only memory (ROM), programmable ROM (PROM), erasable programmable read only memory (EPROM), or electronically erasable programmable read only memory (EEPROM).

10. The system of claim 1 , further comprising a host processor configured to generate at least one of a write command, a read command, or an erase command.

11. An electronic device comprising the system of claim 1 , wherein the electronic device is one of a computer, a cellular phone, a digital phone, a video device, a smart card, a personal digital assistant, a television, an electronic game, a digital camera, an electronic organizer, an audio player, an audio recorder, an electronic device associated with digital rights management, a Personal Computer Memory Card International Association (PCMCIA) card, a trusted platform module (TPM), a Hardware Security Module (HSM), a set-top box, a secure portable token, a Universal Serial Bus (USB) token, a key token, a secure memory device, an electronic device with tamper-resistant chips, a navigation system, an electronic device associated with an industrial control system, or an embedded computer in a machine, wherein the machine comprises one of an airplane, a copier, a motor vehicle, or a microwave oven.

12. A method that facilitates error correcting data, comprising:

encoding data using a first matrix to yield encoded data and generating parity data associated with the encoded data using a second matrix based on a low-density parity-check code;

decoding the encoded data based in part on the parity data yielding a decoded symbol sequence;

multiplying the decoded symbol sequence with a matrix yielding a matrix multiplication result, wherein the matrix comprises a concatenation of the first matrix and the second matrix; and

performing a subsequent iteration of the decoding in response to determining that the decoded symbol sequence violates at least one parity check constraint based on the matrix multiplication result.

13. The method of claim 12 , further comprising:

multiplying a sequence of pieces of data with the first matrix to yield a sequence of matrix multiplication results;

adding the sequence of matrix multiplication results to yield summed matrix multiplication results;

integrating the summed matrix multiplication results based in part on a transfer function associated with the second matrix;

generating the parity data based in part on the second matrix; and

outputting the summed matrix multiplication results and the parity data associated with the data as the encoded data.

14. The method of claim 13 , further comprising:

converting the encoded data into at least one analog signal; and

storing the at least one analog signal in a memory.

15. The method of claim 12 , further comprising:

retrieving at least one analog signal from a memory, the at least one analog signal corresponding to the encoded data; and

converting the at least one analog signal into at least one sequence associated with the encoded data.

16. The method of claim 12 ,

wherein the decoding comprises:

receiving one or more symbols comprising the encoded data; and

calculating a probability associated with determining respective values of the one or more symbols to yield the decoded symbol sequence,

wherein the multiplying comprises:

multiplying the decoded symbol sequence with the first matrix used to encode the data and the second matrix used to generate the parity data.

17. The method of claim 12 , further comprising:

determining whether a predetermined maximum number of iterations of the decoding has been performed; and

at least one of:

performing at least one additional iteration of the decoding in response to determining that the predetermined maximum number of iterations has not been performed, or

providing as an output at least one of a decoding result associated with a current iteration of the decoding or an error message in response to determining that the predetermined maximum number of decoding iterations has been performed.

18. The method of claim 12 , further comprising:

translating at least one mathematical operation associated with decoding into at least one disparate mathematical operation in a log domain, the at least one mathematical operation is at least one of a multiplication operation or a division operation and the at least one disparate mathematical operation is at least one of an addition operation or a subtraction operation.

19. A system, comprising:

means for encoding data using a first matrix to yield encoded data and generating parity data associated with the encoded data using a second matrix based on a low-density parity-check code;

means for decoding the encoded data based in part on the parity data to yield a decoded symbol sequence;

means for multiplying the decoded symbol sequence with a matrix to yield a matrix multiplication result, wherein the matrix is a concatenation of the first matrix and the second matrix; and

means for performing a subsequent decoding iteration on the encoded data in response to a determination that the decoded symbol sequence fails to satisfy at least one parity check constraint based on the matrix multiplication result.

20. The system of claim 19 , further comprising:

means for converting the encoded data into at least one analog signal, the at least one analog signal corresponding to the encoded data;

means for storing the at least one analog signal;

means for retrieving the at least one analog signal; and

means for converting the at least one analog signal into at least one sequence.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2016
From: CYPRESS SEMICONDUCTOR CORPORATION
To: MONTEREY RESEARCH, LLC
Reel/Frame 040911/0238 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 11, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
Reel/Frame 039708/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2015
From: SPANSION, LLC
To: CYPRESS SEMICONDUCTOR CORPORATION
Reel/Frame 036051/0256 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Dec 30, 2014
From: BARCLAYS BANK PLC
To: SPANSION LLC; SPANSION INC.; SPANSION TECHNOLOGY INC.; SPANSION TECHNOLOGY LLC
Reel/Frame 034715/0305 →
SECURITY AGREEMENT Recorded Jun 4, 2010
From: SPANSION LLC; SPANSION INC.; SPANSION TECHNOLOGY INC.; SPANSION TECHNOLOGY LLC
To: BARCLAYS BANK PLC
Reel/Frame 024522/0338 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2007
From: HOU, PING; GERSHON, EUGEN
To: SPANSION LLP
Reel/Frame 020003/0271 →
Continuity (1)
Related Publication 20090106626A1 · Apr 23, 2009