IP Library Granted Patent US 10,804,938
Granted Patent B2
US 10,804,938 · App. 16/141,806 · Granted Oct 13, 2020

Decoding data using decoders and neural networks

Inventor: Minghai Qin (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
H03M13/2906G06N3/08H03M13/1102H03M13/615
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 10,804,938
App. No.
16/141,806
Granted
Oct 13, 2020
Kind
B2
Abstract

Systems and methods are disclosed for decoding data. A first block of data may be obtained from a storage medium or received from a computing device. The first block of data includes a first codeword generated based on an error correction code. A first set of likelihood values is obtained from a neural network. The first set of likelihood values indicates probabilities that the first codeword will be decoded into one of a plurality of decoded values. A second set of likelihood values is obtained from a decoder based on the first block of data. The second set of likelihood values indicates probabilities that the first codeword will be decoded into one of the plurality of decoded values. The first codeword is decoded to obtain a decoded value based on the first set of likelihood values and the second set of likelihood values.

Claims (47)

1. A method, comprising:

obtaining a first block of data from a storage medium, wherein the first block of data comprises a first codeword generated based on an error correction code;

obtaining a first set of likelihood values from a neural network, wherein each likelihood value of the first set of likelihood values indicates a probability that the first codeword will be decoded into a respective decoded value of a plurality of decoded values;

obtaining a second set of likelihood values from a decoder based on the first block of data, wherein each likelihood value of the second set of likelihood values indicates a probability that the first codeword will be decoded into a respective decoded value of the plurality of decoded values; and

decoding the first codeword to obtain a decoded value based on the first set of likelihood values and the second set of likelihood values,

wherein the first set of likelihood values is based at least in part on previously decoded blocks of data that have been processed by the neural network, the previously decoded blocks of data comprising blocks of data that are adjacent to the first block of data or blocks of data that preceded the first block of data.

2. The method of claim 1 , wherein the decoder comprises a low-density parity-check (LDPC) decoder and wherein the error correction code comprises a LDPC code.

3. The method of claim 2 , wherein the LDPC decoder comprises a set of variable nodes coupled to a set of check nodes.

4. The method of claim 3 , wherein decoding the first codeword comprises:

providing the first set of likelihood values to the set of variable nodes of the LDPC decoder.

5. The method of claim 1 , wherein the decoder comprises a polar code decoder and wherein the error correction code comprises a polar code.

6. The method of claim 5 , wherein decoding the first codeword comprises:

determining a set of decoding paths based on the first set of likelihood values and the second set of likelihood values;

decoding the first codeword based on the set of decoding paths.

7. A method, comprising:

receiving, via a network interface, a first block of data transmitted by a computing device, wherein the first block of data comprises a first codeword generated by the computing device based on an error correction code;

obtaining a first set of likelihood values from a neural network, wherein each likelihood value of the first set of likelihood values indicates a probability that the first codeword will be decoded into a respective decoded value of a plurality of decoded values;

obtaining a second set of likelihood values from a decoder based on the first block of data, wherein each likelihood value of the second set of likelihood values indicates a probability that the first codeword will be decoded into a respective decoded value of the plurality of decoded values; and

decoding the first codeword to obtain a decoded value based on the first set of likelihood values and the second set of likelihood values.

8. The method of claim 7 , wherein the first set of likelihood values is based on previously decoded blocks of data that have been processed by the neural network.

9. The method of claim 8 , wherein the decoder comprises a low-density parity-check (LDPC) decoder and wherein the error correction code comprises a LDPC code.

10. The method of claim 8 , wherein the LDPC decoder comprises a set of variable nodes coupled to a set of check nodes.

11. The method of claim 10 , wherein decoding the first codeword comprises:

providing the first set of likelihood values to the set of variable nodes of the LDPC decoder.

12. The method of claim 7 , wherein the decoder comprises a polar code decoder and wherein the error correction code comprises a polar code.

13. The method of claim 12 , wherein decoding the first codeword comprises:

determining a set of decoding paths based on the first set of likelihood values and the second set of likelihood values;

decoding the first codeword based on the set of decoding paths.

14. An apparatus, comprising:

a processing device configured to:

obtain a first block of data, wherein the first block of data comprises a first codeword generated based on an error correction code;

obtain a first set of likelihood values from a neural network, wherein each likelihood value of the first set of likelihood values indicates a probability that the first codeword will be decoded into a respective decoded value of a plurality of decoded values;

obtain a second set of likelihood values from a decoder based on the first block of data, wherein each likelihood value of the second set of likelihood values indicates a probability that the first codeword will be decoded into a respective decoded value of the plurality of decoded values; and

decode the first codeword to obtain a decoded value based on the first set of likelihood values and the second set of likelihood values.

15. The apparatus of claim 14 , further comprising non-volatile memory configured to store the first block of data, wherein the processing device is coupled to the non-volatile memory and is further configured to obtain the first block of data from the non-volatile memory.

16. The apparatus of claim 14 , further comprising a network interface and wherein the processing device is further configured to obtain the first block of data via the network interface.

17. The apparatus of claim 14 , wherein the first set of likelihood values is based on previously decoded blocks of data that have been processed by the neural network.

18. The apparatus of claim 17 , wherein:

the previously decoded blocks of data and the first block of data are organized within a data object according to a layout; and

the layout indicates the location of the first block of data relative to the previously decoded blocks of data.

19. The apparatus of claim 17 , wherein:

the first block of data comprises a first pixel of an image; and

the previously decoded blocks of data comprise pixels of the image that are adjacent to the first pixel or that precede the first pixel within a row of pixels.

20. The apparatus of claim 14 , wherein:

the decoder comprises a low-density parity-check (LDPC) decoder,

the error correction code comprises a LDPC code that comprises a set of variable nodes coupled to a set of check nodes, and

the processing device is further configured to decode the first codeword by providing the first set of likelihood values to the set of variable nodes of the LDPC decoder.

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 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 Sep 25, 2018
From: QIN, MINGHAI
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046968/0664 →
Cited By (1)
US 12,367,100