IP Library Granted Patent US 11,088,712
Granted Patent B2
US 11,088,712 · App. 16/675,165 · Granted Aug 10, 2021

Iterative decoder performance prediction using machine learning

Inventors: Ran Zamir (Ramat Gan, IL); David Avraham (Yehuda, IL); Eran Sharon (Rishon Lezion, IL)
Assignee: Western Digital Technologies, Inc.
H03M13/3746G06F11/1476G06N5/04G06N20/00
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,088,712
App. No.
16/675,165
Granted
Aug 10, 2021
Kind
B2
Abstract

An illustrative embodiment of this disclosure is an apparatus, including a memory, a processor in communication with the memory, and a decoder. The processor is configured to train a classifier, calculate one or more features of a codeword, predict an outcome of decoding the codeword with the decoder, and determine, using the classifier, whether the outcome satisfies a predetermined threshold. In some embodiments, based on the outcome, the processor selects a set of decoder parameters to improve decoder performance.

Claims (54)

1. An apparatus, comprising:

a non-volatile memory configured to store one or more codewords; and

a processor in communication with the memory and configured to read codewords from the memory, the processor configured to:

train a classifier, wherein, to train the classifier, the processor is further configured to:

measure a first outcome of decoding a plurality of training codewords;

calculate one or more features of the plurality of training codewords based on a plurality of weights;

calculate a second outcome of decoding the plurality of training codewords based on the one or more features;

determine whether the second outcome of decoding the plurality of training codewords is within a predetermined range of the first outcome of decoding the plurality of training codewords; and

adjust the plurality of weights if the second outcome of decoding the plurality of training codewords is not within the predetermined range of the first outcome of decoding the plurality of training codewords;

read a codeword from the memory;

calculate one or more features of the read codeword;

predict an outcome of decoding the read codeword using the calculated one or more features of the read codeword; and

determine, using the trained classifier, whether the predicted outcome of decoding the read codeword satisfies a predetermined threshold.

2. The apparatus of claim 1 , wherein the outcome of decoding the read codeword is at least one of a time to successfully decode the read codeword and a number of iterations to successfully decode the read codeword.

3. The apparatus of claim 1 , wherein the processor is further configured to adjust one or more decoder parameters used for decoding the read codeword if the processor determines that the outcome of decoding the read codeword does not satisfy the predetermined threshold.

4. The apparatus of claim 3 , wherein the one or more decoder parameters include at least one of a log likelihood ratio (LLR), a bit-flipping threshold, a damping factor, an iteration number, a clipping value, a decoding frequency, a decoding gear, a soft-read bit, and a read voltage threshold.

5. The apparatus of claim 1 , wherein the processor is further configured to decode the read codeword if the processor determines that the outcome of decoding the read codeword satisfies the predetermined threshold.

6. The apparatus of claim 1 , wherein the one or more features of the read codeword include at least one of an initial syndrome weight, an initial syndrome count, a syndrome weight after one or more decoding iterations, and a syndrome count after one or more decoding iterations.

7. The apparatus of claim 6 , wherein the processor is further configured to determine the initial syndrome count by binning each bit of the read codeword into one of a predetermined number of bins based on how many unsatisfied checks each bit has.

8. The apparatus of claim 1 , wherein the classifier includes at least one of a support vector machine, k-nearest neighbors, decision trees, and neural networks.

9. The apparatus of claim 1 , wherein the processor is further configured to:

read the plurality of training codewords from the memory.

10. The apparatus of claim 1 , wherein the processor is further configured to:

generate the plurality of training codewords.

11. A method, comprising:

training, by a processor, a classifier by:

measuring a first outcome of decoding a plurality of training codewords,

calculating one or more features of the plurality of training codewords based on a plurality of weights,

calculating a second outcome of decoding the plurality of training codewords based on the one or more features,

determining whether the second outcome of decoding the plurality of training codewords is within a predetermined range of the first outcome of decoding the plurality of training codewords, and

adjusting the plurality of weights if the second outcome of decoding the plurality of training codewords is not within the predetermined range of the first outcome of decoding the plurality of training codewords;

reading, by the processor, a codeword from a memory;

calculating, by the processor, one or more features of the read codeword;

predicting, by the processor, an outcome of decoding the read codeword; and

determining, by the processor and using the trained classifier, whether the outcome of decoding the read codeword satisfies a predetermined threshold.

12. The method of claim 11 , wherein the outcome of decoding the read codeword is at least one of a time to successfully decode the read codeword and a number of iterations to successfully decode the read codeword.

13. The method of claim 11 , wherein the method further comprises adjusting, by the processor, one or more decoder parameters if the processor determines that the outcome of decoding the read codeword does not satisfy the predetermined threshold.

14. The method of claim 13 , wherein the one or more decoder parameters include at least one of a log likelihood ratio (LLR), a bit-flipping threshold, a damping factor, an iteration number, a clipping value, a decoding frequency, a decoding gear, a soft-read bit, and a read voltage threshold.

15. The method of claim 11 , wherein the method further comprises decoding, by the processor, the read codeword if the processor determines that the outcome of decoding the read codeword satisfies the predetermined threshold.

16. The method of claim 11 , wherein the one or more features include at least one of an initial syndrome weight, an initial syndrome count, a syndrome weight after one or more decoding iterations, and a syndrome count after one or more decoding iterations.

17. The method of claim 16 , wherein the method further comprises determining, by the processor, the initial syndrome count by binning each bit of the codeword into one of a predetermined number of bins based on how many unsatisfied checks each bit has.

18. The method of claim 11 , further comprising:

reading the plurality of training codewords from the memory.

19. The method of claim 11 , further comprising:

generating the plurality of training codewords.

20. An apparatus, comprising:

a memory configured to store a plurality of codewords; and

processing means in communication with the memory, wherein the processing means includes:

means for training a classifier by: measuring a first outcome of decoding a plurality of training codewords; calculating one or more features of the plurality of training codewords based on a plurality of weights; calculating a second outcome of decoding the plurality of training codewords based on the one or more features; determining whether the second outcome of decoding the plurality of training codewords is within a predetermined range of the first outcome of decoding the plurality of training codewords; and adjusting, by the processor, the plurality of weights if the second outcome of decoding the plurality of training codewords is not within the predetermined range of the first outcome of decoding the plurality of training codewords;

means for reading a codeword stored in the memory;

means for calculating one or more features of the read codeword;

means for predicting an outcome of decoding the read codeword;

means for determining whether the predicted outcome of decoding the read codeword satisfies a predetermined threshold; and

means for selecting decoder parameters to alter the outcome of decoding the read codeword.

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 052025 FRAME 0088 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0699 →
SECURITY INTEREST Recorded Feb 26, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052025/0088 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: ZAMIR, RAN; AVRAHAM, DAVID; SHARON, ERAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 051658/0990 →