IP Library Granted Patent US 11,704,027
Granted Patent B2
US 11,704,027 · App. 17/454,711 · Granted Jul 18, 2023

Optimizing recovery of recurrent blocks using bloom filter

Inventors: Yuval Yoskovits (Beer Sheva, IL); Yan Dumchin (Beer Sheva, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0619G06F3/0659G06F3/0679H03M13/1108H03M13/1177G11C29/81
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,704,027
App. No.
17/454,711
Granted
Jul 18, 2023
Kind
B2
Abstract

A data storage device includes a memory device and a controller coupled to the memory device. The controller is configured to decode data from the memory device, store a decoder level for the decoded data in a bloom filter, receive a read command for the data, and decode the data using a decoder associated with the stored decoder level. The decoder level corresponds to a decoder having a certain decoding strength. The decoder level is stored in the bloom filter as an ID, where a bloom filter may be associated with each decoder level.

Claims (46)

1. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, the controller configured to:

decode data from the memory device, wherein the decoding comprises:

determining whether the decoding was successful; and

passing the data to a decoder having a higher correction capability than a decoder used to decode the data until the data is successfully decoded;

store a decoder level for the decoded data in a bloom filter, wherein the decoder level is based on a decoding strength previously used to successfully decode the data;

receive a read command for the data; and

decode the data using a decoder associated with the stored decoder level.

2. The data storage device of claim 1 , wherein the controller comprises two or more groups of decoders, and wherein each group of decoders comprises one or more decoders.

3. The data storage device of claim 2 , wherein a first group of decoders is a first decoder tier and a second group of decoders is a second decoder tier, wherein the first decoder tier has a lower decoding capability than the second decoder tier.

4. The data storage device of claim 1 , wherein the controller is further configured to determine that the decoding failed for a first decoder.

5. The data storage device of claim 4 , wherein the controller is further configured to decode the data using a second decoder, and wherein the second decoder has a higher decoding capability than the first decoder.

6. The data storage device of claim 5 , wherein the controller is further configured to decode the data using a third decoder upon determining that the second decoder has failed, and wherein the third decoder has a higher decoding capability than the second decoder.

7. The data storage device of claim 6 , wherein the controller is further configured to:

determine that the third decoder has successfully decoded the data; and

store an ID associated with the data in a different bloom filter.

8. The data storage device of claim 1 , wherein the controller is further configured to:

search an ID associated with the data in the bloom filter upon receiving the data from the memory device; and

determine the decoder level to decode the data based on the searching.

9. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, the controller configured to:

receive read data from the memory device;

search one or more bloom filters for an ID associated with the read data; and

decode the read data based on the ID, wherein the ID corresponds to a decoder level of a plurality of decoder levels, wherein the decoder level is based on a decoding strength previously used to successfully decode the read data, wherein the decoding comprises:

determining whether the decoding was successful; and

passing the data to a decoder having a higher correction capability than a decoder used to decode the data until the data is successfully decoded.

10. The data storage device of claim 9 , wherein the controller is further configured to:

save the ID in a first bloom filter, wherein the first bloom filter is associated with a first decoder level;

determine a first decoding of the read data using the first decoder level has failed; and

save the ID in a second bloom filter, wherein the second bloom filter is associated with a second decoder level, and wherein the second decoder level has a higher decoding capability than the first decoder level.

11. The data storage of claim 10 , wherein the controller is further configured to:

decode the read data using the second decoder level;

determine a second decoding of the read data using the second decoder level has failed; and

save the ID in a third bloom filter, wherein the third bloom filter is associated with a third decoder level, and wherein the third decoder level has a higher decoding capability than the second decoder level.

12. The data storage device of claim 11 , wherein the controller is further configured to:

determine that a third decoding of the read data using the third decoder level has failed; and

return a decoding failure.

13. The data storage device of claim 10 , wherein the controller is further configured to:

decode the read data using the second decoder level;

determine a second decoding of the read data using the second decoder level has succeeded; and

return a decoding success.

14. The data storage device of claim 9 , wherein the plurality of decoder levels are each associated with a distinct low-density parity-check (LDPC) engine.

15. The data storage device of claim 9 , wherein the plurality of decoder levels comprises a first decoder level, a second decoder level, and a third decoder level, wherein the first decoder level has a slower decoding speed than the second decoder level, and wherein the second decoder level has a slower decoding speed than the third decoder level.

16. The data storage device of claim 9 , wherein the read data has been decoded previously.

Assignments (8)
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 - 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2021
From: YOSKOVITS, YUVAL; DUMCHIN, YAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058100/0755 →