IP Library Granted Patent US 11,442,807
Granted Patent B2
US 11,442,807 · App. 17/157,001 · Granted Sep 13, 2022

Error correction code (ECC) operations in memory

Inventor: Gerard A. Kreifels (El Dorado Hills, CA)
Assignee: Micron Technology, Inc.
G06F11/1048H03M13/19H03M13/2942H03M13/618H03M13/09H03M13/152H03M13/1575
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 11,442,807
App. No.
17/157,001
Granted
Sep 13, 2022
Kind
B2
Abstract

The present disclosure includes apparatuses and methods for ECC operation associated with memory. One example apparatus comprises a controller configured to perform an error correction code (ECC) operation on a codeword stored in the memory, wherein the codeword includes a first number of ECC bits and the first number of ECC bits are generated based on an encoding matrix, wherein each row of the encoding matrix has an odd number of bits having a binary value of 1.

Claims (47)

1. A system, comprising:

a memory; and

a controller coupled to the memory and configured to read on a codeword from the memory, wherein the codeword includes:

user data; and

a first number of error correction code (ECC) bits that are generated based on an encoding matrix with columns having a first odd weight and a second odd weight to reduce a gap between weights of the columns and maintain a difference between weights of any two adjacent columns of the encoding matrix, wherein an odd weight includes an odd number of bits having a binary value of 1;

compare the first number of ECC bits to a second number of ECC bits that are generated at least partially based on the codeword read from the memory;

correct a single error in the codeword in response to a result of the comparison having an odd weight; and

detect that there are two errors in the codeword in response to a result of the comparison having an even weight.

2. The system of claim 1 , wherein every other column starting with a first column of the encoding matrix has the first odd weight and every other column starting with a second column has the second odd weight that is different than the first odd weight.

3. The system of claim 1 , wherein the first odd weight and the second odd weight are consecutive odd integers such that a difference between the first odd weight and the second odd weight is 2.

4. The system of claim 1 , wherein:

the encoding matrix comprises a number of data patterns; and

the controller is configured to identify, in response to the result of the comparison having an odd weight, a bit position of an erroneous bit based on the comparison between the result to the number of data patterns.

5. The system of claim 1 , wherein the controller is configured to identify, in response to the result of the comparison having an even weight, that there are two errors in the codeword, while a respective bit position of erroneous bits is unidentifiable.

6. The system of claim 1 , wherein the encoding matrix comprises a number of data patterns, wherein each one of the number of data patterns is assigned to each bit position of the codeword.

7. The system of claim 1 , wherein the controller is configured to perform, to compare the first number of ECC bits to the second number of ECC bits, an XOR operation on the first number of ECC bits and the second number of ECC bits.

8. A system, comprising:

a memory; and

a controller coupled to the memory and configured to:

generate a first number of error correction code (ECC) bits from user data using an encoding matrix comprising a number of data patterns, wherein:

columns of the encoding matrix comprise a first odd weight and a second odd weight to reduce a gap between weights of the columns and maintain a difference between weights of any two adjacent columns of the encoding matrix; and

an odd weight includes an odd number of bits having a binary value of 1 and an even weight includes an even number of bits having a binary value of 1;

write the user data and the first number of ECC bits to the memory;

compare, in response to reading the user data and the first ECC data from the memory, the first number of ECC bits to a second number of ECC bits, wherein the second number of ECC bits are generated from decoding the user data and the first number of ECC bits read from the memory using a decoding matrix comprising at least the number of data patterns;

in response to a result of the comparison having an odd weight that indicates a single error in the user data and the first number of ECC bits, correct the single error; and

in response to a result of the comparison having an even weight, detect that there are two errors in the user data and the first number of ECC bits.

9. The system of claim 8 , wherein the columns of the encoding matrix has no other weights other than the first weight and the second weight.

10. The system of claim 8 , wherein columns of the decoding matrix has a first even weight and a second even weight.

11. The system of claim 10 , wherein the first even weight is a consecutive integer of the first odd weight and the second even weight is a consecutive integer of the second odd weight.

12. The system of claim 10 , wherein the first even weight and the second even weight are consecutive even integers such that a difference between the first even weight and the second even weight is 2.

13. The system of claim 8 , wherein:

the number of data patterns is a first number of data patterns, wherein each one of the first number of data patterns is assigned to a respective bit position of the user data; and

the decoding matrix further comprises a second number of data patterns, wherein each one of the second number of data patterns is assigned to a respective bit position of the first number of ECC bits.

14. The system of claim 13 , wherein the controller is configured to identify, in response to the result of the comparison having an odd weight, a bit position of an erroneous bit within the user data or the first number of ECC bits based on the comparison of the result of the comparison to the first number of ECC bits or to the second number of ECC bits.

15. The system of claim 13 , wherein a quantity of bits of the second number of data patterns is equal to a quantity of bits of the first number of ECC bits.

16. The system of claim 8 , wherein the controller is configured to determine there is no error in the codeword in response to a result of the comparison having a zero weight.

17. The system of claim 8 , wherein the first weight and the second weight are consecutive odd integers.

18. A method, comprising:

generating a first number of error correction code (ECC) bits based on user data and an encoding matrix, wherein:

columns of the encoding matrix comprise a first odd weight and a second odd weight to reduce a gap between weights of the columns and maintain a difference between weights of any two adjacent columns of the encoding matrix; and

an odd weight includes an odd number of bits having a binary value of 1 and an even weight includes an even number of bits having a binary value of 1;

writing a codeword including the user data and the first number of ECC bits to the memory;

generating a second number of ECC bits based at least in part on the user data and the first number of ECC bits read from the memory to compare the first number of ECC bits to the second number of ECC bits;

correcting a single error in the codeword in response to a syndrome corresponding to a result of the comparison having an odd weight; and

detecting that there are two errors in the codeword in response to a syndrome corresponding to a result of the comparison having an even weight.

19. The method of claim 18 , wherein generating the first number of ECC bits based on user data and an encoding matrix further comprises performing a number of XOR operations on the user data and the encoding matrix, wherein a quantity of the number of XOR operations performed is proportional to a quantity of bits having a binary value of 1 of the user data.

20. The method of claim 18 , wherein the method further comprises performing, to compare the first number of ECC bits to the second number of ECC bits, a number of XOR operation on the first number of ECC bits and a second number of ECC bits.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2021
From: KREIFELS, GERARD A.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 055017/0813 →
Continuity (3)
Continuation 16219143 · Dec 13, 2018
Continuation 15091112 · Apr 5, 2016
Related Publication 20210141690A1 · May 13, 2021