IP Library Granted Patent US 11,455,208
Granted Patent B2
US 11,455,208 · App. 17/171,746 · Granted Sep 27, 2022

Soft information for punctured bit estimation in a data storage device

Inventors: Ran Zamir (Ramat Gan, IL); Omer Fainzilber (Herzliya, IL); David Avraham (Even Yehuda, IL); Eran Sharon (Rishon Lezion, IL)
Assignee: Western Digital Technologies, Inc.
G06F11/1068H03M13/45
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,455,208
App. No.
17/171,746
Granted
Sep 27, 2022
Kind
B2
Abstract

A memory controller including, in one implementation, a memory interface and a control circuit. The memory interface is configured to receive a punctured codeword read from a non-volatile memory. The control circuit is configured to determine error probability values for a plurality of check nodes associated with a punctured bit included in the punctured codeword. The control circuit is also configured to determine an error probability value for the punctured bit based on the error probability values for the plurality of check nodes associated with the punctured bit and a variable degree associated with the punctured bit. The control circuit is further configured to determine a log likelihood ratio (LLR) value for the punctured bit based on the error probability value for the punctured bit. The control circuit is also configured to decode the punctured codeword using the LLR value for the punctured bit.

Claims (73)

1. A memory controller, comprising:

a memory interface configured to receive a punctured codeword read from a non-volatile memory; and

a control circuit coupled to the memory interface and configured to:

determine error probability values for a plurality of check nodes associated with a punctured bit included in the punctured codeword,

determine an error probability value for the punctured bit based on the error probability values for the plurality of check nodes associated with the punctured bit and a variable degree associated with the punctured bit,

determine a log likelihood ratio (LLR) value for the punctured bit based on the error probability value for the punctured bit, and

decode the punctured codeword using the LLR value for the punctured bit.

2. The memory controller of claim 1 , wherein the control circuit is further configured to determine the error probability values for the plurality of check nodes based on a channel bit error rate and check degrees associated with the plurality of check nodes.

3. The memory controller of claim 2 , wherein all of the check degrees associated with the plurality of check nodes have the same value.

4. The memory controller of claim 1 , wherein, to determine the LLR value for the punctured bit based on the error probability value for the punctured bit, the control circuit is further configured to:

determine a reliability indicator based on the error probability value for the punctured bit, wherein the reliability indicator indicates whether an estimated value of the punctured bit is reliable or unreliable, and

determine the LLR value for the punctured bit based on the reliability indicator.

5. The memory controller of claim 4 , wherein, to determine the reliability indicator based on the error probability value for the punctured bit, the control circuit is further configured to:

compare the error probability value for the punctured bit to a threshold,

set the reliability indicator to indicate that the estimated value of the punctured bit is reliable when the error probability value for the punctured bit is greater than the threshold, and

set the reliability indicator to indicate that the estimated value of the punctured bit is unreliable when the error probability value for the punctured bit is less than or equal to the threshold.

6. The memory controller of claim 4 , wherein, to determine the reliability indicator based on the error probability value for the punctured bit, the control circuit is further configured to:

determine a number of unsatisfied check nodes associated with the punctured bit,

determine a reliability metric as a difference between the number of unsatisfied check nodes associated with the punctured bit and half of the variable degree associated with the punctured bit,

determine a threshold based on the error probability value for the punctured bit,

compare the reliability metric to the threshold,

set the reliability indicator to indicate that the estimated value of the punctured bit is reliable when the reliability metric is greater than the threshold, and

set the reliability indicator to indicate that the estimated value of the punctured bit is unreliable when the reliability metric is less than or equal to the threshold.

7. The memory controller of claim 4 , wherein the control circuit is further configured to:

set the LLR value for the punctured bit to 0 when the reliability indicator indicates that the estimated value of the punctured bit is unreliable, and

set the LLR value for the punctured bit to either a predetermined positive integer or a predetermined negative integer when the reliability indicator indicates that the estimated value of the punctured bit is reliable.

8. A method performed by a control circuit coupled to a non-volatile memory, comprising:

receiving a punctured codeword read from the non-volatile memory;

determining error probability values for a plurality of check nodes associated with a punctured bit included in the punctured codeword;

determining an error probability value for the punctured bit based on the error probability values for the plurality of check nodes associated with the punctured bit and a variable degree associated with the punctured bit;

determining a log likelihood ratio (LLR) value for the punctured bit based on the error probability value for the punctured bit; and

decoding the punctured codeword using the LLR value for the punctured bit.

9. The method of claim 8 , wherein determining the error probability values for the plurality of check nodes associated with the punctured bit includes determining the error probability values for the plurality of check nodes associated with the punctured bit based on a channel bit error rate and check degrees associated with the plurality of check nodes.

10. The method of claim 9 , wherein all of the check degrees associated with the plurality of check nodes have the same value.

11. The method of claim 8 , wherein determining the LLR value for the punctured bit based on the error probability value for the punctured bit further includes:

determining a reliability indicator based on the error probability value for the punctured bit, wherein the reliability indicator indicates whether an estimated value of the punctured bit is reliable or unreliable, and

determining the LLR value for the punctured bit based on the reliability indicator.

12. The method of claim 11 , wherein determining the reliability indicator based on the error probability value for the punctured bit further includes:

comparing the error probability value for the punctured bit to a threshold,

setting the reliability indicator to indicate that the estimated value of the punctured bit is reliable when the error probability value for the punctured bit is greater than the threshold, and

setting the reliability indicator to indicate that the estimated value of the punctured bit is unreliable when the error probability value for the punctured bit is less than or equal to the threshold.

13. The method of claim 11 , wherein determining the reliability indicator based on the error probability value for the punctured bit further includes:

determining a number of unsatisfied check nodes associated with the punctured bit,

determining a reliability metric as a difference between the number of unsatisfied check nodes associated with the punctured bit and half of the variable degree associated with the punctured bit,

determining a threshold based on the error probability value for the punctured bit,

comparing the reliability metric to the threshold,

setting the reliability indicator to indicate that the estimated value of the punctured bit is reliable when the reliability metric is greater than the threshold, and

setting the reliability indicator to indicate that the estimated value of the punctured bit is unreliable when the reliability metric is less than or equal to the threshold.

14. The method of claim 11 , further comprising:

setting the LLR value for the punctured bit to 0 when the reliability indicator indicates that the estimated value of the punctured bit is unreliable, and

setting the LLR value for the punctured bit to either a predetermined positive integer or a predetermined negative integer when the reliability indicator indicates that the estimated value of the punctured bit is reliable.

15. An apparatus, comprising:

means for receiving a punctured codeword read from a non-volatile memory;

means for determining error probability values for a plurality of check nodes associated with a punctured bit included in the punctured codeword;

means for determining an error probability value for the punctured bit based on the error probability values for the plurality of check nodes associated with the punctured bit and a variable degree associated with the punctured bit;

means for determining a log likelihood ratio (LLR) value for the punctured bit based on the error probability value for the punctured bit; and

means for decoding the punctured codeword using the LLR value for the punctured bit.

16. The apparatus of claim 15 , wherein the means for determining the error probability values for the plurality of check nodes associated with the punctured bit is further configured to determine the error probability values for the plurality of check nodes associated with the punctured bit based on a channel bit error rate and check degrees associated with the plurality of check nodes.

17. The apparatus of claim 16 , wherein all of the check degrees associated with the plurality of check nodes have the same value.

18. The apparatus of claim 15 , wherein the means for determining the LLR value for the punctured bit based on the error probability value for the punctured bit is further configured to:

determine a reliability indicator based on the error probability value for the punctured bit, wherein the reliability indicator indicates whether an estimated value of the punctured bit is reliable or unreliable, and

determine the LLR value for the punctured bit based on the reliability indicator.

19. The apparatus of claim 18 , wherein the means for determining the LLR value for the punctured bit based on the error probability value for the punctured bit is further configured to:

compare the error probability value for the punctured bit to a threshold,

set the reliability indicator to indicate that the estimated value of the punctured bit is reliable when the error probability value for the punctured bit is greater than the threshold, and

set the reliability indicator to indicate that the estimated value of the punctured bit is unreliable when the error probability value for the punctured bit is less than or equal to the threshold.

20. The apparatus of claim 18 , wherein the means for determining the LLR value for the punctured bit based on the error probability value for the punctured bit is further configured to:

determining a number of unsatisfied check nodes associated with the punctured bit,

determine a reliability metric as a difference between the number of unsatisfied check nodes associated with the punctured bit and half of the variable degree associated with the punctured bit,

determine a threshold based on the error probability value for the punctured bit,

compare the reliability metric to the threshold,

set the reliability indicator to indicate that the estimated value of the punctured bit is reliable when the reliability metric is greater than the threshold, and

set the reliability indicator to indicate that the estimated value of the punctured bit is unreliable when the reliability metric is less than or equal to the threshold.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 056285 FRAME 0292 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 056285/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2021
From: ZAMIR, RAN; FAINZILBER, OMER; AVRAHAM, DAVID; SHARON, ERAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 055202/0782 →
Continuity (2)
Provisional Application 63067931 · Aug 20, 2020
Related Publication 20220058083A1 · Feb 24, 2022