IP Library Granted Patent US 12,348,245
Granted Patent B1
US 12,348,245 · App. 18/397,133 · Granted Jul 1, 2025

Data storage device with efficient decoder pool and method for on-the-fly decoder initialization

Inventors: Eran Sharon (Rishon Lezion, IL); Ran Zamir (Ramat Gan, IL); Yoav Porat (Lehavim, IL); Yan Dumchin (Beer Sheva, IL)
Assignee: Sandisk Technologies, Inc.
H03M13/1128H03M13/015H03M13/1575
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 12,348,245
App. No.
18/397,133
Filed
Dec 27, 2023
Granted
Jul 1, 2025
Kind
B1
Art Unit
2112
USPC
714/752
Abstract

A shared decoder pool is susceptible to head-of-line blocking when the decoding of a given data block delays the decoding of other data blocks pipelined in the decoder. While the problem can be avoided by not using a pipeline operation, the benefits of pipelining would be lost. In one embodiment provided herein, the syndrome of an error pattern is calculated in parallel with data being written in an input buffer for the decoder. Parallelizing the syndrome calculation and the filling of the decoder's input buffer can avoid the head-of-line blocking problem noted above while still achieving the benefits of pipelining. In another embodiment, a similar technique is used in a bit error rate estimation scan (BES) operation. Other embodiments are provided.

Claims (44)

1. A data storage device comprising:

a memory;

a decoder;

an input buffer comprising a plurality of rows of storage locations; and

one or more processors, individually or in combination, configured to:

generate write pointers to indicate rows in the input buffer that are to be written as data read from the memory is stored in the input buffer; and

after each row in the input buffer is written, send a read pointer to the decoder for that row;

wherein:

the decoder is configured to calculate a syndrome for data in a row of the input buffer in response to receiving the read pointer for that row instead of waiting for all rows in the input buffer to be written;

a next row of the input buffer is written in parallel to calculating the syndrome for the data in the row; and

a time to calculate the syndrome for the data in the row is less than a time to write data a next row in the input buffer.

2. The data storage device of claim 1 , wherein the decoder is configured to perform iterative decoding.

3. The data storage device of claim 2 , wherein the iterative decoding involves a low-density parity-check code.

4. The data storage device of claim 1 , further comprising at least one additional decoder, wherein the decoder and the at least one additional decoder form a pool of decoders.

5. The data storage device of claim 4 , wherein the one or more processors, individually or in combination, are further configured to pipeline data to the pool of decoders.

6. The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to use the syndrome to estimate a bit error rate.

7. The data storage device of claim 1 , wherein the syndrome calculation consumes one decoding iteration.

8. The data storage device of claim 1 , wherein the memory comprises a three-dimensional memory.

9. A data storage device comprising:

a memory;

a decoder;

an input buffer comprising a plurality of rows of storage locations; and

means for:

generating write pointers to indicate rows in the input buffer that are to be written as data read from the memory is stored in the input buffer; and

after each row in the input buffer is written, sending a read pointer to the decoder for that row;

wherein:

the decoder is configured to calculate a syndrome for data in a row of the input buffer in response to receiving the read pointer for that row instead of waiting for all rows in the input buffer to be written;

a next row of the input buffer is written in parallel to calculating the syndrome for the data in the row; and

a time to calculate the syndrome for the data in the row is less than a time to write data a next row in the input buffer.

10. In a data storage device comprising a memory, a decoder, and an input buffer comprising a plurality of rows of storage locations, a method comprising:

generating write pointers to indicate rows in the input buffer that are to be written as data read from the memory is stored in the input buffer; and

after each row in the input buffer is written, sending a read pointer to the decoder for that row;

wherein:

the decoder is configured to calculate a syndrome for data in a row of the input buffer in response to receiving the read pointer for that row instead of waiting for all rows in the input buffer to be written;

a next row of the input buffer is written in parallel to calculating the syndrome for the data in the row; and

a time to calculate the syndrome for the data in the row is less than a time to write data a next row in the input buffer.

11. The method of claim 10 , wherein the decoder is configured to perform iterative decoding.

12. The method of claim 10 , wherein the data storage device further comprises at least one additional decoder, wherein the decoder and the at least one additional decoder form a pool of decoders.

13. The method of claim 10 , further comprising:

pipelining data to the pool of decoders.

14. The method of claim 10 , further comprising:

using the syndrome to estimate a bit error rate.

15. The method of claim 10 , wherein the syndrome calculation consumes one decoding iteration.

16. The method of claim 11 , wherein the iterative decoding involves a low-density parity-check code.