IP Library Granted Patent US 9,612,903
Granted Patent B2
US 9,612,903 · App. 13/649,822 · Granted Apr 4, 2017

Updating reliability data with a variable node and check nodes

Inventors: Saeed Sharifi Tehrani (San Diego, CA); Nicholas J. Richardson (San Diego, CA)
Assignee: Micron Technology, Inc.
G06F11/1012H03M13/114H03M13/116H03M13/1108H03M13/1137
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,612,903
App. No.
13/649,822
Granted
Apr 4, 2017
Kind
B2
Abstract

The present disclosure includes apparatuses and methods related to updating reliability data. A number of methods can include receiving, at a variable node, either a first reliability data value with a first hard data value or a second reliability data value with a second hard data value, sending the first hard data value or the second hard data value to each check node coupled to the variable node according to a parity check code, and updating the reliability data based on input from less than all of the check nodes.

Claims (71)

1. A method, comprising:

receiving, at a variable node, either a first reliability data value with a first hard data value or a second reliability data value with a second hard data value;

sending the first hard data value or the second hard data value received at the variable node to each of a plurality of check nodes coupled to the variable node according to a parity check code; and

updating the first reliability data value or the second reliability data value based on input from less than all of the plurality of check nodes;

wherein the first reliability data value comprises a maximum reliability data value;

wherein the second reliability data value comprises a minimum reliability data value; and

wherein updating the first reliability data value or the second reliability data value comprises incrementing or decrementing the first reliability data value or the second reliability data value by a predetermined amount within a range defined by the maximum and minimum reliability data values.

2. The method of claim 1 , wherein updating the first reliability data value or the second reliability data value comprises updating the first reliability data value or the second reliability data value with the variable node.

3. The method of claim 1 , wherein updating the first reliability data value or the second reliability data value comprises updating the first reliability data value or the second reliability data value at a respective one of the plurality of check nodes.

4. The method of claim 1 , wherein updating the first reliability data value or the second reliability data value comprises layered updating of the first reliability data value or the second reliability data value by the variable node, wherein each layer includes:

receiving an input from a respective one of the plurality of check nodes; and

updating the first reliability data value or the second reliability data value based on the input from the respective one of the plurality of check nodes; and

wherein layered updating proceeds until the variable node has received an input from each of the plurality of check nodes.

5. The method of claim 4 , wherein the method includes sending updated hard data corresponding to the updated first reliability data value or second reliability data value to each of the plurality of check nodes after the layered updating.

6. The method of claim 5 , wherein the updated hard data comprises a most significant bit (MSB) of the updated first reliability data value or second reliability data value, wherein the reliability data comprises a log likelihood ratio (LLR).

7. The method of claim 5 , wherein the method includes repeating the layered updating and sending updated hard data until a particular number of iterations have been performed.

8. The method of claim 5 , wherein the method includes repeating the layered updating and sending updated hard data until a syndrome check performed by the plurality of check nodes is correct.

9. The method of claim 1 , wherein updating the first reliability data value or the second reliability data value comprises layered updating of the first reliability data value or the second reliability data value by the variable node, wherein each layer includes receiving an input from a respective one of the plurality of check nodes; and

wherein every L-number of layers include updating the first reliability data value or the second reliability data value based on the input from the respective ones of the plurality of check nodes; and

wherein layered updating proceeds until the variable node has received an input from each of the plurality of check nodes.

10. The method of claim 1 , wherein the method includes sending either the first reliability data value or the second reliability data value with the first hard data value or the second hard data value to each of the plurality of check nodes.

11. A method, comprising:

storing a reliability data value that corresponds to a hard data value at a particular variable node;

sending the hard data value from the particular variable node to each of a number of check nodes coupled to the particular variable node according to a parity check code;

receiving a respective hard data value from each of a number of variable nodes coupled to a particular check node;

computing parity data based on the received respective hard data values at the particular check node; and

incrementing or decrementing the reliability data value by a predetermined amount unless the incrementing or decrementing would exceed a predetermined range for the reliability data value based at least in part on the parity data computed by the particular check node.

12. The method of claim 11 , wherein incrementing or decrementing comprises incrementing or decrementing the reliability data value based only on the parity data computed by the particular check node.

13. The method of claim 11 , wherein the method includes sending the reliability data value from the particular variable node to each of the number of check nodes coupled to the particular variable node; and

receiving a respective reliability data value from each of the number of variable nodes coupled to the particular check node; and

wherein incrementing or decrementing the stored reliability data value comprises incrementing or decrementing the reliability data value at the particular check node.

14. The method of claim 13 , wherein the method includes sending the incremented or decremented reliability data value from the particular check node to the particular variable node; and

replacing the stored reliability data value with the incremented or decremented reliability data value at the particular variable node.

15. The method of claim 11 , wherein the method includes computing respective parity data at each of the number of check nodes and incrementing or decrementing respective stored reliability data values on each clock cycle.

16. The method of claim 11 , wherein the method includes layered incrementing or decrementing of the stored reliability data value for each of the number of check nodes coupled to the particular variable node; and

wherein one layer comprises one incrementing or decrementing of the stored reliability data value based only on the parity data computed by a respective one of the number of check nodes coupled to the particular variable node.

17. The method of claim 16 , wherein the method includes layered incrementing or decrementing of the stored reliability data value for all of the number of check nodes coupled to the particular variable node before sending a subsequent hard data value from the particular variable node to each of the number of check nodes coupled to the particular variable node.

18. The method of claim 1 , wherein the stored reliability data value comprises a log-likelihood ratio (LLR) value, and wherein storing the reliability data value comprises:

storing a first reliability data value comprising a maximum LLR value in response to the hard data value comprising a first binary value; and

storing a second reliability data value comprising a minimum LLR value in response to the hard data value comprising a second binary value.

19. The method of claim 18 , wherein the hard data value comprises a most significant bit (MSB) of the LLR value stored at the particular variable node.

20. The method of claim 11 , wherein incrementing or decrementing the stored reliability data value comprises:

incrementing the stored reliability data value in response to the parity data comprising a first value; and

decrementing the stored reliability data value in response to the parity data comprising a second value.

21. The method of claim 11 , wherein computing the parity data comprises:

computing first parity data based on the received respective hard data values at the particular check node; and

computing second parity data based on the first parity data and the hard data value received from the particular variable node at the particular check node; and

wherein the method includes sending the second parity data from the particular check node to the particular variable node, but not sending the second parity data to other variable nodes.

22. An apparatus, comprising:

a plurality of check nodes; and

a plurality of variable nodes comprising memory that store reliability data coupled to the plurality of check nodes according to a parity check code;

wherein the plurality of check nodes are configured to:

receive respective hard data inputs from those of the plurality of variable nodes coupled thereto; and

compute respective parity data for those of the plurality of variable nodes coupled thereto based on the respective hard data inputs;

wherein the apparatus is configured to update respective reliability data based at least in part on the respective parity data;

wherein the apparatus, in order to update the respective reliability data value, is configured to increment or decrement the respective reliability data value by a predetermined amount unless the increment or decrement would exceed a predetermined range for the respective reliability data value.

23. The apparatus of claim 22 , wherein the apparatus is configured to update respective reliability data at the plurality of check nodes for those of the variable nodes coupled thereto based at least in part on the respective parity data.

24. The apparatus of claim 22 , wherein the plurality of check nodes are configured to compute the respective parity data by:

computing first parity data based on the respective hard data inputs;

computing second parity data based on the first parity data and a respective hard data input from a particular variable node; and

wherein the plurality of check nodes are configured to update respective reliability data for the particular variable node based at least in part on the respective second parity data.

25. The apparatus of claim 24 , wherein:

the plurality of check nodes include exclusive or (XOR) circuits;

the first parity data comprises an XOR of the respective hard data inputs; and

the second parity data comprises an XOR of the first parity data with the respective hard data input from the particular variable node.

26. The apparatus of claim 22 , wherein the plurality of variable nodes are configured to update the reliability data stored therein based on information received from each of the check nodes coupled thereto on a separate clock cycle.

27. The apparatus of claim 22 , wherein the plurality of check nodes are configured to:

receive respective reliability data inputs from those of the plurality of variable nodes coupled thereto; and

increment or decrement the respective reliability data based on the respective parity data.

28. The apparatus of claim 22 , wherein the respective reliability data comprises a log-likelihood ratio (LLR) and the plurality of check nodes are configured to increment or decrement the LLR by a fixed amount based on the respective parity data.

29. The apparatus of claim 22 , wherein the apparatus includes up/down counters configured to increment or decrement the respective reliability data value by the predetermined amount.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2012
From: TEHRANI, SAEED SHARIFI; RICHARDSON, NICHOLAS J.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 029114/0723 →
Continuity (1)
Related Publication 20140108883A1 · Apr 17, 2014