IP Library Granted Patent US 10,261,707
Granted Patent B1
US 10,261,707 · App. 15/467,839 · Granted Apr 16, 2019

Decoder memory sharing

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,261,707
App. No.
15/467,839
Filed
Mar 23, 2017
Granted
Apr 16, 2019
Kind
B1
Art Unit
2111
USPC
714/764
Abstract

Systems and techniques relating to decoder memory management are described. A described system includes a decoder system configured to perform decoder processes in order to decode signals generated by reading a storage medium, the decoder processes being associated with respective memory thresholds; and a memory structure coupled with the decoder system. The decoder processes use the memory structure in accordance with the respective memory thresholds. The decoder system can be configured to detect whether the memory structure is underutilized by a process of the decoder processes, determine an underutilization amount associated with the process with respect to the memory threshold of the process, identify a target decoder process of the decoder processes, and enable the target decoder process to exceed the memory threshold of the target decoder process based on the underutilization amount. Enabling the target decoder process to exceed can increase decoding performance of the target decoder process.

Claims (50)

1. An apparatus comprising:

a decoder system configured to perform decoder processes in order to decode signals generated by reading a storage medium, wherein the decoder processes are associated with respective memory thresholds; and

a memory structure coupled with the decoder system, wherein the decoder processes use the memory structure in accordance with the respective memory thresholds,

the decoder system comprises a sector-based error-correcting code decoder that produces first output sectors and a track-based error-correcting code decoder that produces second output sectors,

the memory structure comprising:

a shared output memory that stores the first output sectors and the second output sectors, wherein a storage size for the first output sectors is controlled by a first memory threshold of the memory thresholds, and wherein a storage size for the second output sectors is controlled by a second memory threshold of the memory thresholds; and

a shared input memory that stores input sectors and failed codewords, wherein a storage size for the input sectors is controlled by a third memory threshold of the memory thresholds, and wherein a storage size for the failed codewords is controlled by a fourth memory threshold of the memory thresholds,

wherein the decoder system is configured to i) detect whether the memory structure is underutilized by a process of the decoder processes, ii) determine an underutilization amount associated with the process with respect to the memory threshold of the process, iii) identify a target decoder process of the decoder processes, and iv) enable the target decoder process to exceed the memory threshold of the target decoder process based on the underutilization amount.

2. The apparatus of claim 1 , wherein the sector-based error-correcting code decoder is configured to retrieve an input sector from the shared input memory, and wherein the track-based error-correcting code decoder is configured to retrieve a failed codeword from the shared input memory.

3. The apparatus of claim 1 , wherein the decoder system further comprises:

an interleaver configured to reassemble a sector that is interleaved with one or more other sectors;

the sector-based error-correcting code decoder that is further configured to correct one or more errors of the sector based on parity data contained within the sector; and

the track-based error-correcting code decoder that is further configured to correct one or more errors within a group of sectors based on group parity data,

wherein the decoder system is configured to reassign unused memory associated with the interleaver to the sector-based error-correcting code decoder, the track-based error-correcting code decoder, or both.

4. The apparatus of claim 1 , wherein the decoder system is configured to dynamically share memory within the shared input memory between storage for the input sectors and storage for the failed codewords.

5. The apparatus of claim 1 , wherein the decoder system and the memory structure are integrated on a single integrated circuit.

6. The apparatus of claim 1 , wherein the memory structure comprises banks, wherein each of the memory thresholds represents an assigned number of the banks, and wherein the underutilization amount represents a number of the banks that are free to be reassigned.

7. A method comprising:

performing decoder processes in order to decode signals generated by reading a storage medium, wherein the decoder processes are associated with respective memory thresholds, and wherein the decoder processes use a memory structure in accordance with the respective memory thresholds;

detecting whether the memory structure is underutilized by a process of the decoder processes;

determining an underutilization amount associated with the process with respect to the memory threshold of the process;

identifying a target decoder process of the decoder processes;

enabling the target decoder process to exceed the memory threshold of the target decoder process based on the underutilization amount;

operating an interleaver configured to reassemble a sector that is interleaved with one or more other sectors;

operating a sector-based error-correcting code decoder to correct one or more errors of the sector based on parity data contained within the sector;

operating a track-based error-correcting code decoder to correct one or more errors within a group of sectors based on group parity data; and

reassigning unused memory associated with the interleaver to the sector-based error-correcting code decoder, the track-based error-correcting code decoder, or both.

8. The method of claim 7 , comprising:

operating a sector-based error-correcting code decoder to produce first output sectors, wherein a storage size for the first output sectors is controlled by a first memory threshold of the memory thresholds; and

operating a track-based error-correcting code decoder to produce second output sectors, wherein a storage size for the second output sectors is controlled by a second memory threshold of the memory thresholds, and

wherein the memory structure comprises a shared output memory that stores the first output sectors and the second output sectors.

9. The method of claim 8 , wherein the memory structure comprises a shared input memory that stores input sectors and failed codewords, wherein a storage size for the input sectors is controlled by a third memory threshold of the memory thresholds, and wherein a storage size for the failed codewords is controlled by a fourth memory threshold of the memory thresholds.

10. The method of claim 9 , comprising:

operating the sector-based error-correcting code decoder to retrieve an input sector from the shared input memory; and

operating the track-based error-correcting code decoder to retrieve a failed codeword from the shared input memory.

11. The method of claim 7 , wherein the memory structure comprises a shared input memory that stores input sectors and failed codewords, wherein a storage size for the input sectors is controlled by a first memory threshold of the memory thresholds, and wherein a storage size for the failed codewords is controlled by a second memory threshold of the memory thresholds, and wherein the method comprises dynamically sharing memory within the shared input memory between storage for the input sectors and storage for the failed codewords.

12. The method of claim 7 , wherein the memory structure comprises banks, wherein each of the memory thresholds represents an assigned number of the banks, and wherein the underutilization amount represents a number of the banks that are free to be reassigned.

13. A system comprising:

a storage medium;

circuitry configured to perform decoder processes in order to decode signals generated by reading the storage medium, wherein the decoder processes are associated with respective memory thresholds;

a memory structure coupled with the circuitry, wherein the decoder processes use the memory structure in accordance with the respective memory thresholds; and

a controller configured to i) detect whether the memory structure is underutilized by a process of the decoder processes, ii) determine an underutilization amount associated with the process with respect to the memory threshold of the process, iii) identify a target decoder process of the decoder processes, and iv) enable the target decoder process to exceed the memory threshold of the target decoder process based on the underutilization amount,

wherein the circuitry comprises:

an interleaver configured to reassemble a sector that is interleaved with one or more other sectors;

a sector-based error-correcting code decoder that is configured to correct one or more errors of the sector based on parity data contained within the sector; and

a track-based error-correcting code decoder that is configured to correct one or more errors within a group of sectors based on group parity data,

wherein the controller is configured to reassign unused memory associated with the interleaver to the sector-based error-correcting code decoder, the track-based error-correcting code decoder, or both.

14. The system of claim 13 , wherein the circuitry comprises a sector-based error-correcting code decoder that produces first output sectors and a track-based error-correcting code decoder that produces second output sectors, wherein the memory structure comprises a shared output memory that stores the first output sectors and the second output sectors, wherein a storage size for the first output sectors is controlled by a first memory threshold of the memory thresholds, and wherein a storage size for the second output sectors is controlled by a second memory threshold of the memory thresholds.

15. The system of claim 14 , wherein the memory structure comprises a shared input memory that stores input sectors and failed codewords, wherein a storage size for the input sectors is controlled by a third memory threshold of the memory thresholds, and wherein a storage size for the failed codewords is controlled by a fourth memory threshold of the memory thresholds.

16. The system of claim 13 , wherein the memory structure comprises a shared input memory that stores input sectors and failed codewords, wherein a storage size for the Input sectors is controlled by a first memory threshold of the memory thresholds, and wherein a storage size for the failed codewords is controlled by a second memory threshold of the memory thresholds, wherein the controller is configured to dynamically share memory within the shared input memory between storage for the input sectors and storage for the failed codewords.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2018
From: CHAICHANAVONG, PANU; BURD, GREGORY
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 044886/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2018
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 044886/0948 →