IP Library Granted Patent US 9,985,652
Granted Patent B2
US 9,985,652 · App. 15/162,504 · Granted May 29, 2018

System and method for dynamic scaling of LDPC decoder in a solid state drive

Inventors: Kent D. Anderson (Broomfield, CO); Anantha Raman Krishnan (Irvine, CA)
Assignee: Western Digital Technologies, Inc.
H03M13/1111G06F11/1068G11C29/52H03M13/1128H03M13/3746H03M13/45H03M13/658H03M13/6591
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,985,652
App. No.
15/162,504
Granted
May 29, 2018
Kind
B2
Abstract

In some embodiments of the present invention, a data storage device includes a controller and a memory. The data storage device further includes an LDPC encoder and decoder, with the decoder implementing a dynamic precision-rescaling technique for improving performance. In one embodiment, the technique works by rescaling the binary representations of the input log-likelihood ratios (LLRs) and messages upon activation of decoder-state-based triggers. Various triggering functions are introduced, e.g., checking if the number of output LLRs smaller than a certain limit crosses a threshold, checking if the weight of a syndrome crosses a threshold, etc. This technique offers an improvement in the performance of the decoder.

Claims (41)

1. A decoder, the decoder configured to:

exchange, during each of a plurality of iterations, a plurality of messages between a plurality of variable nodes and a plurality of check nodes, each message indicating a degree of reliability in an observed outcome of data;

determine a current operating condition of the decoder;

for each of the iterations:

scale the respective message when the current operating condition of the decoder satisfies a predetermined condition, and

pass the message without scaling when the current operating condition does not satisfy the predetermined condition; and

determine a valid codeword based on the exchanging.

2. The decoder of claim 1 , wherein the decoder being configured to scale the respective message comprises the decoder being configured to reduce a number of bits representing the message and the degree of reliability indicated by the message.

3. The decoder of claim 1 , wherein the plurality of messages comprise a plurality of log-likelihood ratios (LLRs) for a unit of data.

4. The decoder of claim 3 , wherein scaling the respective message comprises reducing a numerical range for a respective one of the LLRs.

5. The decoder of claim 4 , wherein scaling the respective message comprises right shifting a plurality of bits indicative of the respective one of the LLRs and truncating or rounding the respective one of the LLRs.

6. The decoder of claim 3 , wherein the decoder is further configured to:

perform, during each iteration, a mathematical operation on each of the LLRs; and

determine whether a respective one of the LLRs should be scaled at the end of the iteration,

wherein, when the respective one of the LLRs is scaled, a next mathematical operation is performed on the scaled LLR.

7. The decoder of claim 3 , wherein the decoder being configured to scale the respective message when the current operating condition of the decoder satisfies a predetermined condition comprises the decoder being configured to determine that absolute values of a predetermined number of the plurality of LLRs are greater than a predetermined limit.

8. The decoder of claim 3 , wherein the decoder being configured to scale the respective message when the current operating condition of the decoder satisfies a predetermined condition comprises the decoder being configured to determine that a predetermined number of the plurality of iterations has been reached.

9. The decoder of claim 8 , wherein the predetermined number of the plurality of iterations is a predetermined number of the plurality of iterations since a prior scaling operation.

10. The decoder of claim 3 , wherein the decoder being configured to scale the respective message when the current operating condition of the decoder satisfies a predetermined condition comprises the decoder being configured to determine that a current number of unsatisfied checks on at least a portion of the plurality of messages exchanged between the plurality of variable nodes and the plurality of check nodes does not satisfy a predetermined threshold and a predetermined number of iterations have been performed since a prior scaling operation.

11. A machine-implemented method comprising:

exchanging, in a decoder during each of a plurality of iterations, a plurality of messages between a plurality of variable nodes and a plurality of check nodes, each message indicating a degree of reliability in an observed outcome of data;

determining a current operating condition of the decoder;

for each of a plurality of iterations:

scaling the respective message when the current operating condition of the decoder satisfies a predetermined condition, and

passing the message without scaling when the current operating condition does not satisfy the predetermined condition; and

determining a valid codeword based on the exchanging.

12. The machine-implemented method of claim 11 , wherein scaling the respective message comprises reducing a number of bits representing the message and the degree of reliability indicated by the message.

13. The machine-implemented method of claim 11 , wherein the plurality of messages comprise a plurality of log-likelihood ratios (LLRs) for a unit of data.

14. The machine-implemented method of claim 13 , wherein scaling the respective message comprises reducing a numerical range for a respective one of the LLRs.

15. The machine-implemented method of claim 14 , wherein scaling the respective message comprises right shifting a plurality of bits indicative of the respective one of the LLRs and truncating or rounding the respective one of the LLRs.

16. The machine-implemented method of claim 13 , further comprising:

performing, during each iteration, a mathematical operation on each of the LLRs; and

determining whether a respective one of the LLRs should be scaled at the end of the iteration,

wherein, when the respective one of the LLRs is scaled, a next mathematical operation is performed on the scaled LLR.

17. The machine-implemented method of claim 13 , wherein determining whether the respective one of the messages should be scaled based on a current operating condition of the decoder comprises:

determining that absolute values of a predetermined number of the plurality of LLRs are greater than a predetermined limit.

18. The machine-implemented method of claim 13 , wherein determining whether the respective one of the messages should be scaled based on a current operating condition of the decoder comprises:

determining that a predetermined number of the plurality of iterations has been reached.

19. The machine-implemented method of claim 18 , wherein the predetermined number of the plurality of iterations is a predetermined number of the plurality of iterations since a prior scaling operation.

20. The machine-implemented method of claim 13 , wherein determining whether the respective one of the messages should be scaled based on a current operating condition of the decoder comprises:

determining that a current number of unsatisfied checks on at least a portion of the plurality of messages exchanged between the plurality of variable nodes and the plurality of check nodes does not satisfy a predetermined threshold and a predetermined number of iterations have been performed since a prior scaling operation.

Assignments (10)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2019
From: ANDERSON, KENT D.; KRISHNAN, ANANTHA RAMAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049146/0332 →
Continuity (3)
Continuation 14722673 · May 27, 2015
Continuation 13842956 · Mar 15, 2013
Related Publication 20160336966A1 · Nov 17, 2016