IP Library Granted Patent US 8,910,026
Granted Patent B2
US 8,910,026 · App. 13/675,172 · Granted Dec 9, 2014

Data decoding using side information

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 8,910,026
App. No.
13/675,172
Granted
Dec 9, 2014
Kind
B2
Abstract

Devices and/or methods may decode failed data, e.g., utilizing side information related to the failed data to determine how to decode the failed data. The side information may include, e.g., a decoding-success score representing an estimated amount of errors within a failed data portion, a remaining amount of unread portions of a data block including failed data, an amount of requested portions of a data block including failed data, if the failed data is buffered, and a decoding status of any previously-failed data.

Claims (66)

1. A device comprising:

a storage medium comprising a plurality of data blocks, wherein each of the data blocks comprises a plurality of data portions; and

a processor operably coupled to the storage medium and configured to:

read a failed data portion of a data block of the plurality of data blocks; and

apply one of a variable-length decoding on the failed data portion and a block-based decoding on the data block comprising the failed data portion based on side information related to the failed data portion.

2. The device of claim 1 , wherein the side information comprises a decoding-success score representing an estimated amount of errors within the failed data portion, and wherein the processor is further configured to:

determine the decoding-success score for the failed data portion; and

apply the variable-length decoding on the failed data portion if the decoding-success score is greater than a variable-length decoding threshold value.

3. The device of claim 2 , wherein the processor is further configured to execute at least one of:

estimating the decoding-success score based on soft output detector values; and

modifying the decoding-success score based on a number of estimated decoding iterations performed on the data portion previously.

4. The device of claim 1 , wherein the side information comprises a decoding-success score, and wherein the processor is further configured to:

determine the decoding-success score for the failed data portion; and

read the data block and apply the block-based decoding on the data block if the score is less than a variable-length decoding threshold value.

5. The device of claim 1 , wherein the side information comprises a decoding-success score, and wherein the processor is further configured to:

determine the decoding-success score for the failed data portion;

read the data block if the score is less than a variable-length decoding threshold value;

apply the block-based decoding on the data block if an amount of errors within the data block is less than or equal to an error-correction capability of the block-based decoding;

apply the variable-length decoding on the data block if an amount of errors within the data block is greater than the error-correction capability of the block-based decoding; and

apply the block-based decoding on the data block after applying variable-length decoding on the data block if an amount of errors within the data block after the applying the variable-length decoding is less than the error-correction capability of the block-based decoding.

6. The device of claim 1 , wherein the side information comprises a remaining amount of unread data portions of the data block, and wherein the processor is further configured to:

determine the remaining amount of unread data portions of the data block; and

read the data block and apply the block-based decoding on the data block if the remaining amount of unread portions of the data block is less than a remaining unread portions upper threshold value.

7. The device of claim 1 , wherein the side information comprises an amount of requested portions of the data block, and wherein the processor is further configured to:

determine the amount of requested data portions of the data block; and

read the data block and apply the block-based decoding on the data block if the amount of requested data portions of the data block is greater than a requested portions lower threshold value.

8. The device of claim 1 , wherein the processor is further configured to:

determine if the failed data portion is buffered; and

read the data block and apply the block-based decoding on the data block if the failed data portion is not buffered.

9. The device of claim 1 , wherein the variable-length decoding comprises low-density parity-check decoding.

10. A method comprising:

reading a failed data portion of a data block; and

applying one of a variable-length decoding on the failed data portion and a block-based decoding on the data block comprising the failed data portion based on side information related to the failed data portion.

11. The method of claim 10 , wherein the side information comprises a decoding-success score representing an estimated amount of errors within the failed data portion, and wherein the method further includes:

determining the decoding-success score for the failed data portion; and

applying variable-length decoding on the failed data portion if the decoding-success score is greater than a variable-length decoding threshold value.

12. The method of claim 10 , wherein the side information comprises a decoding-success score, and wherein the method further comprises:

determining the decoding-success score for the failed data portion; and

reading the data block and applying the block-based decoding on the data block if the score is less than a variable-length decoding threshold value.

13. The method of claim 10 , wherein the side information comprises a decoding-success score, and wherein the method further comprises:

determining the decoding-success score for the failed data portion;

reading the data block if the score is less than a variable-length decoding threshold value;

applying the block-based decoding on the data block if an amount of errors within the data block is less than an error-correction capability of the block-based decoding;

applying variable-length decoding on the data block if an amount of errors within the block is greater than or equal to an error-correction capability of the block-based decoding; and

applying the block-based decoding on the data block after applying variable-length decoding on the data block if an amount of errors within the data block after the applying the variable-length decoding is less than an error-correction capability of the block-based decoding.

14. The method of claim 10 , wherein the side information comprises a remaining amount of unread portions of the data block, and wherein the method further comprises:

determining the remaining amount of unread data portions of the data block; and

reading the data block and applying the block-based decoding on the data block if the remaining amount of unread data portions is less than a remaining unread portions threshold value.

15. The method of claim 10 , wherein the side information comprises an amount of requested portions of the data block, and wherein the method further comprises:

determining the amount of requested data portions of the data block; and

reading the data block and applying the block-based decoding on the data block if the amount of requested data portions of the data block is greater than a requested portions lower threshold value.

16. The method of claim 10 , wherein the method further comprises:

determining if the failed data portion is buffered; and

reading the data block and applying the block-based decoding on the data block if the failed data portion is not buffered.

17. The method of claim 10 , wherein the side information comprises a decoding status of any previously-failed data portion of the data block, and wherein the method further comprises:

determining the decoding status amount of any previously-failed data portion of the data block; and

reading the data block and applying the block-based decoding on the data block if the any previously-failed data portion is being decoded using the block-based decoding.

18. A storage system including a plurality of data blocks, each of the data blocks comprising a plurality of data portions, the storage system comprising:

a processor configured to read the data portions and the data blocks and apply one of a variable-length decoding on a failed data portion of one of the data blocks and a block-based decoding on the data block comprising the failed data portion based on side information related to the failed data portion.

19. The system of claim 18 , wherein the side information comprises a decoding-success score representing an estimated amount of errors within the failed data portion, and wherein the processor is further configured to:

determine the decoding-success score for the failed data portion;

apply the variable-length decoding on the failed data portion if the decoding-success score is greater than a variable-length decoding threshold value;

read the data block and apply the block-based decoding on the data block if the score is less than or equal to a variable-length decoding threshold value.

20. The system of claim 18 , wherein the side information comprises a remaining amount of unread portions of the data block, and wherein the processor is further configured to:

determine the remaining amount of unread data portions of the data block; and

read the data block and apply the block-based decoding on the data block if the remaining amount of unread portions of the data block is less than a remaining unread portions upper threshold value.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2024
From: SEAGATE TECHNOLOGY LLC; SEAGATE SINGAPORE INTERNATIONAL HEADQUARTERS PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 067489/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2012
From: PATAPOUTIAN, ARA; NGUYEN, HIEU
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 029286/0716 →