IP Library Granted Patent US 9,411,683
Granted Patent B2
US 9,411,683 · App. 14/141,215 · Granted Aug 9, 2016

Error correction in memory

Inventors: Zion S. Kwok (Burnaby, CA); Andre Lei (Burnaby, CA); Scott Nelson (Vancouver, CA)
Assignee: Intel Corporation
G06F11/1076G06F11/08H03M13/1108H03M13/1111H03M13/3715
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 9,411,683
App. No.
14/141,215
Granted
Aug 9, 2016
Kind
B2
Abstract

Apparatus, systems, and methods for error correction in memory are described. In one embodiment, a memory controller comprises logic to load an error correction codeword retrieved from a memory and apply a first error correction decoder to decode the error correction codeword, wherein the first error correction decoder implements a bit-flipping error correction algorithm which utilizes a variable bit-flipping threshold to determine whether to flip a bit in an error correction codeword. Other embodiments are also disclosed and claimed.

Claims (79)

1. A controller comprising logic to:

load an error correction codeword retrieved from a memory;

apply a first error correction decoder to:

decode the error correction codeword;

implement a bit-flipping error correction algorithm which utilizes a variable bit-flipping threshold to determine whether to flip a bit in an error correction codeword; and

store a check node bit and a stability bit for each check node, wherein:

the check node bit indicates whether a parity check equation passes; and

the stability bit indicates whether the check node bit has been flipped.

2. The controller of claim 1 , further comprising logic to:

change the stability bit from a stable value to an unstable value in response to a change in a check node coupled to the stability bit.

3. The controller of claim 1 , further comprising logic to:

determine an initial syndrome when the error correction codeword is loaded; and

set a syndrome weight to an initial value.

4. The controller of claim 3 , further comprising logic to:

vary the bit-flipping threshold as a function of the syndrome weight.

5. The controller of claim 3 , further comprising logic to:

progressively lower the bit flipping threshold in response to at least one of:

a change in a codeword bit; or

a change in the syndrome weight.

6. The controller of claim 3 , further comprising logic to:

determine whether the bit flipping threshold has reached a minimum stable value, and in response to a determination that the bit flipping threshold has reached a minimum stable value, to:

implement a single iteration of the error correction decoder using an unstable value of the bit flipping threshold.

7. The controller of claim 6 , further comprising logic to:

compute an updated value of the bit flipping threshold from the syndrome weight.

8. The controller of claim 7 , further comprising logic to:

return a signal indicating a decode success in response to a determination that all of the check node bits are zero.

9. The controller of claim 7 , further comprising logic to:

return a signal indicating a decode failure in response to a determination that:

the error correction decoder has reached a limit on the number of iterations; or

the syndrome weight has exceeded a ceiling.

10. A memory, comprising:

at least one memory device; and

a controller comprising logic to:

load an error correction codeword retrieved from the memory;

apply a first error correction decoder to;

decode the error correction codeword;

implement a bit-flipping error correction algorithm which utilizes a variable bit-flipping threshold to determine whether to flip a bit in an error correction codeword; and

store a check node bit and a stability bit for each check node, wherein:

the check node bit indicates whether a parity check equation passes; and

the stability bit indicates whether the check node bit has been flipped.

11. The memory of claim 10 , wherein the controller further comprises logic to:

change the stability bit from a stable value to an unstable value in response to a change in a check node coupled to the stability bit.

12. The memory of claim 10 , wherein the controller further comprises logic to:

determine an initial syndrome when the error correction codeword is loaded; and

set a syndrome weight to an initial value.

13. The memory of claim 12 , wherein the controller further comprises logic to:

vary the bit-flipping threshold as a function of the syndrome weight.

14. The memory of claim 12 , wherein the controller further comprises logic to:

progressively lower the bit flipping threshold in response to at least one of:

a change in a codeword bit; or

a change in the syndrome weight.

15. The memory of claim 12 , wherein the controller further comprises logic to:

determine whether the bit flipping threshold has reached a minimum stable value, and in response to a determination that the bit flipping threshold has reached a minimum stable value, to:

implement a single iteration of the error correction decoder using an unstable value of the bit flipping threshold.

16. The memory of claim 15 , wherein the controller further comprises logic to:

compute an updated value of the bit flipping threshold from the syndrome weight.

17. The memory of claim 16 , wherein the controller further comprises logic to:

return a signal indicating a decode success in response to a determination that all of the check node bits are zero.

18. The memory of claim 16 , wherein the controller further comprises logic to:

return a signal indicating a decode failure in response to a determination that:

the error correction decoder has reached a limit on the number of iterations; or

the syndrome weight has exceeded a ceiling.

19. An electronic device comprising:

a processor; and

a controller comprising logic to:

load an error correction codeword retrieved from a memory

apply a first error correction decoder to:

decode the error correction codeword,

implement a bit-flipping error correction algorithm which utilizes a variable bit-flipping threshold to determine whether to flip a bit in an error correction codeword; and

store a check node bit and a stability bit for each check node, wherein:

the check node bit indicates whether a parity check equation passes; and

the stability bit indicates whether the check node bit has been flipped.

20. The electronic device of claim 19 , further comprising logic to:

change the stability bit from a stable value to an unstable value in response to a change in a check node coupled to the stability bit.

21. The electronic device of claim 19 , further comprising logic to:

determine an initial syndrome when the error correction codeword is loaded; and

set a syndrome weight to an initial value.

22. The electronic device of claim 21 , further comprising logic to:

vary the bit-flipping threshold as a function of the syndrome weight.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2023
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP.
Reel/Frame 062702/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2014
From: KWOK, ZION S.; LEI, ANDRE; NELSON, SCOTT
To: INTEL CORPORATION
Reel/Frame 032820/0674 →
Continuity (1)
Related Publication 20150188570A1 · Jul 2, 2015