US20140104720A1 - Enhanced quality-sorting scheduler - Google Patents

Enhanced quality-sorting scheduler Download PDF

Info

Publication number
US20140104720A1
US20140104720A1 US13/650,479 US201213650479A US2014104720A1 US 20140104720 A1 US20140104720 A1 US 20140104720A1 US 201213650479 A US201213650479 A US 201213650479A US 2014104720 A1 US2014104720 A1 US 2014104720A1
Authority
US
United States
Prior art keywords
sector
sectors
quality metric
controller
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US13/650,479
Other versions
US8705192B1 (en
Inventor
Fan Zhang
Ming Jin
Jun Xiao
Shaohua Yang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
LSI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LSI Corp filed Critical LSI Corp
Priority to US13/650,479 priority Critical patent/US8705192B1/en
Assigned to LSI CORPORATION reassignment LSI CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: YANG, SHAOHUA, JIN, MING, XIAO, JUN, ZHANG, FAN
Publication of US20140104720A1 publication Critical patent/US20140104720A1/en
Application granted granted Critical
Publication of US8705192B1 publication Critical patent/US8705192B1/en
Assigned to DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT reassignment DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AGERE SYSTEMS LLC, LSI CORPORATION
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LSI CORPORATION
Assigned to LSI CORPORATION, AGERE SYSTEMS LLC reassignment LSI CORPORATION TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Assignors: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED MERGER (SEE DOCUMENT FOR DETAILS). Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to BROADCOM INTERNATIONAL PTE. LTD. reassignment BROADCOM INTERNATIONAL PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED MERGER (SEE DOCUMENT FOR DETAILS). Assignors: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED, BROADCOM INTERNATIONAL PTE. LTD.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10481Improvement or modification of read or write signals optimisation methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10268Improvement or modification of read or write signals bit detection or demodulation methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/012Recording on, or reproducing or erasing from, magnetic disks

Definitions

  • aspects of the disclosure pertain to a read channel system and method for providing sector prioritization for promoting improved sector processing performance.
  • FIG. 1 is an example conceptual block diagram schematic of a read channel system
  • FIG. 2 is a flow chart illustrating a method for sector prioritization in a read channel system
  • FIG. 3 is an example conceptual block diagram schematic of a disk drive system including a read channel system.
  • a read channel is a circuit in a disk drive which: 1) encodes data bits into magnetic flux changes for recording; and 2) decodes magnetic flux changes into bits for reading.
  • a read channel system can perform retained sector reprocessing (RSR) when processing sectors of data.
  • RSR retained sector reprocessing
  • a data buffer such as a Y-buffer, can be implemented for temporarily storing data (e.g., sectors) received by the read channel system.
  • the Y-buffer can be dynamically shared between in-order sectors and retained sectors.
  • a sector-quality-sorting based scheduler can be implemented by the read channel system.
  • the scheduler sorts the sectors by sector quality metric. For example, during processing, the scheduler can dynamically prioritize sectors, such that it causes the system to process good sectors (e.g., in-order sectors) first, followed by processing of bad sectors (e.g., retained sectors).
  • two metrics can be involved in sorting. For example, for sectors with one global iteration, a mean squared error (MSE) metric from a loop detector of the read channel system can be used. Further, for sectors with more than one global iteration, a number of unsatisfied checks (USCs) can be used as a metric.
  • MSE mean squared error
  • USCs unsatisfied checks
  • Typical read channel systems implementing the sorting metrics described above often suffer from a number of drawbacks.
  • a first sorting metric e.g., quality metric
  • quality metric implemented by typical read channel systems for sectors with more than one global iteration only considers the number of USCs. In the event there are multiple sectors with very different numbers of global iterations, this metric is misleading. For example, a sector with only one global iteration and forty USCs usually has better quality than a sector with twenty-seven global iterations and thirty USCs.
  • a trapping set error(s) when a trapping set error(s) occurs, the number of USCs is usually small, so a sector with a trapping set error(s) looks good to current quality sorting rules.
  • the detector and decoder of the read channel system keep working on it and waste processing slots. Still further, with typical read channel systems, further processing of some bad sectors will be delayed too long, since good sectors keep coming in. Thus, the bad sectors will not get a chance to be processed further until latency kickout occurs.
  • SFR Sector Failure Rate
  • aspects of the disclosure include a system and method for promoting improved SFR performance (e.g., 0.04 decibel (dB) SFR gain) during sector processing.
  • improved SFR performance e.g. 0.04 decibel (dB) SFR gain
  • a system 100 is shown.
  • the system 100 is a read channel system.
  • the system 100 is an iterative codec system architecture.
  • the system 100 is a read channel backend codec system architecture.
  • the system 100 is implemented in a hard disk drive system 300 (as shown in FIG. 3 ).
  • the system 100 includes a read channel 102 (e.g., a read channel backend, a read channel backend codec).
  • the read channel 102 is a circuit (e.g., an integrated circuit, an electrical circuit) implemented in a disk drive which: 1) encodes data bits into magnetic flux changes for recording; and 2) decodes magnetic flux changes into bits for reading. Still further, the read channel 102 can be a single chip or integrated as part of a system on chip (SoC).
  • SoC system on chip
  • the system 100 includes a controller 104 .
  • the controller 104 is connected to (e.g., communicatively coupled with) the read channel 102 .
  • the controller 104 is connected to the read channel 102 (e.g., read channel backend codec) via an analog front end (e.g., read channel analog front end).
  • the controller 104 is a disk controller.
  • the controller 104 is configured for transferring data and signals (e.g., control signals) between the read channel 102 and a host system during read and write operations.
  • the controller 104 is configured for being connected to a head transducer (e.g., read-write head) 302 of the hard disk drive system 300 .
  • a head transducer e.g., read-write head
  • the head transducer is configured for reading data from a disk (e.g., a disk platter of a hard disk drive (HDD)) 304 and providing the read data to the controller 104 .
  • the controller 104 is configured for provide the read data received from the head transducer 302 to the read channel 102 .
  • the read channel 102 is configured for providing write data to the controller 104
  • the controller 104 is configured for providing the write data received from the read channel 102 to the head transducer 302
  • the head transducer 302 is configured for writing the write data received from the controller 104 to the disk.
  • the controller 104 is configured for managing (e.g., controlling) a position of the head transducer 302 .
  • the controller 104 is configured for selecting a track to be read and for causing the head transducer 302 : a.) to move (e.g., change its position) relative to the disk 304 , such that the head transducer 302 is aligned to read the controller-selected track; and b.) to read the controller-selected track of data from the disk 304 .
  • the head transducer 302 provides the read data from the controller-selected track to the controller 104 , the controller 104 then provides the read data from the controller-selected track to the read channel 102 .
  • the read data received by the read channel (e.g., read channel backend codec) via the controller 104 is digital data which is encoded.
  • the controller 104 is configured for: selecting a next (e.g., second) track to be read; causing the head transducer 302 to move to a new position relative to the disk 304 ; causing the head transducer 302 to read data from the second selected track and to transmit the read data to the controller 104 ; receiving the transmitted read data from the second selected track; and transmitting the received read data from the second selected track to the read channel 102 .
  • The-above described transition process the system 100 undergoes as the controller 104 transitions from receiving the read data from the first selected track to receiving read data from the second selected track is a process known as track switching. Latency is associated with this track switching process (e.g., track switching latency).
  • the controller 104 is configured for receiving read data from the head transducer 302 and for transmitting the received read data to the read channel 102 .
  • the controller 104 is configured for transmitting a plurality of sectors (e.g., a track) of read data to the read channel 102 , the plurality of sectors having been read from the disk 304 .
  • the read channel 102 is configured for processing the plurality of sectors of read data received from the controller 104 . For example, when the system 100 is operating in normal mode, each of the plurality of sectors received by the read channel 102 is processed via 28 global iterations and 10 local iterations per global iteration.
  • the controller 104 implements (e.g., includes) a client-server based scheduler for accommodating concurrent processing of the plurality of sectors.
  • the term “scheduler” as described herein, is implemented as hardware, firmware, software or a combination thereof.
  • the system 100 is configured for performing retained sector reprocessing (RSR). For example, after the plurality of sectors is processed by the read channel 102 , the processed sectors are provided (e.g., transmitted) from the read channel 102 to the controller 104 .
  • the controller 104 is configured for identifying (e.g., classifying) each sector included in the plurality of processed sectors as being either: a.) normal (e.g., in-order); or b.) failed. If one or more sectors included in the plurality of processed sectors are identified by the controller 104 as being in-order, the controller 104 is configured for determining that no further processing of the one or more in-order sectors by the read channel 102 is needed.
  • the controller 104 (e.g., via the scheduler) is configured for saving y-samples corresponding to the one or more failed sectors (e.g., retained sectors) and for scheduling and initiating reprocessing of the failed (e.g., retained) sectors by the read channel 102 .
  • the retained sectors are reprocessed by the read channel 102 via 180 global iterations (for 512 bytes (512 B)) or 37 global iterations (for 4 kilobytes (4 KB)) and 20 local iterations per global iteration.
  • RSR provides a performance gain (e.g., 0.05 to 0.15 decibels (dB), depending on conditions) for the system 100 via the extra global and local iterations on the retained sectors.
  • the system 100 undergoes a transition as the controller 104 transitions from receiving the read data (e.g., sectors) from the first selected track to receiving read data (e.g., sectors) from the second selected track.
  • the latency associated with track switching provides a window of time for the read channel 102 to reprocess the retained sectors (e.g., failed sectors) of the first selected track and to transmit those reprocessed sectors to the controller 104 before reading of data (e.g., sectors) from the second selected track occurs (e.g., before the controller 104 receives read data from the second selected track).
  • the controller 104 (via the scheduler) is configured for scheduling reprocessing of the failed sectors by the read channel 102 during the above-referenced track switching latency time window.
  • a size of a track of read data is equivalent to a number of sectors of that track which the controller 104 obtains, via the head transducer 302 , during a consecutive read.
  • Track size is, at times, highly application-dependent, varying from tens (10 s) to thousands (1000 s) of sectors per track.
  • the read channel 102 includes a buffer 106 , which is connected to the controller 104 .
  • the buffer 106 is a Y-buffer.
  • the buffer 106 is a memory which is temporarily used for storing input or output data.
  • the buffer 106 is configured for receiving read data (e.g., sectors) from the controller 104 .
  • the read channel 102 includes a first detector 108 , which is connected to the controller 104 .
  • the first detector 108 is a loop detector.
  • the first detector 108 is configured for receiving a signal (e.g., data, information).
  • the first detector 108 is configured for receiving one or more signals (e.g., information) from the controller 104 , the one or more signals corresponding to the read data (e.g., sectors) provided from the controller 104 to the buffer 106 .
  • the controller 104 is configured for providing the one or more signals to the first detector 108 in parallel with providing the read data to the buffer 106 .
  • the read channel 102 further includes a second detector 110 , which is connected to both the first detector (e.g., the loop detector) 108 and the buffer (e.g., Y-buffer) 106 .
  • the second detector 110 is a backend detector.
  • the second detector 110 is configured for receiving the read data via the buffer 106 .
  • the second detector 110 is further configured for receiving the signals (e.g., information) corresponding to the read data via the first detector 108 .
  • the read channel 102 further includes a decoder 112 , which is connected to the second detector (e.g., the backend detector) 110 .
  • the decoder 112 is a backend decoder.
  • the decoder 112 is connected to the controller 104 .
  • the decoder 112 is configured for receiving the read data.
  • the decoder 112 is configured for receiving the signals (e.g., information) corresponding to the read data.
  • the read data provided from the controller 104 is routed via the buffer 106 and the second detector 110 to the decoder 112 .
  • the signals (e.g., information) corresponding to the read data are routed via the first detector 108 and the second detector 110 to the decoder 112 .
  • the read data and the signals corresponding to the read data are combined at the second detector 110 and routed from the second detector 110 to the decoder 112 as a first queue (e.g., LE queue) 114 .
  • the decoder 112 is configured for processing (e.g., decoding) the read data (e.g., sectors) and for providing the processed read data to the controller 104 .
  • the processed read data is provided to the controller 104 as a second queue (e.g., Hard Drive (HD) queue) 116 .
  • HD Hard Drive
  • the controller 104 is configured (e.g., via a sector-quality-sorting based scheduler of the controller) for sorting (e.g., prioritizing) sectors for dynamically determining an order in which the plurality of sectors are to be further processed. For example, the controller 104 implements the scheduler to sort the sectors based upon a sorting metric (e.g., quality metric). In embodiments, the controller 104 is configured for determining (e.g., calculating) and assigning a quality metric to each sector included in the plurality of sectors.
  • a sorting metric e.g., quality metric
  • the controller 104 is configured for determining and assigning the quality metrics based upon a global iteration index of each sector included in the plurality of sectors. For example, if two sectors included in the plurality of sectors have a same number of USCs, but different global iteration indices, the sector of the two sectors which has the larger global iteration index is assigned a larger quality metric than the other sector of the two sectors.
  • the sector of the two sectors which has the larger quality metric is identified by the controller 104 as being the lower quality sector of the two sectors and is given a lower priority for further processing (e.g., will be scheduled, prioritized and/or sorted in such a manner that it will undergo further processing after the higher quality sector undergoes further processing).
  • the quality metric is determined (e.g., calculated) using the following equation:
  • g global iteration index
  • g max maximum global iteration index
  • USC number of USCs
  • is a positive parameter needing to be tuned.
  • the controller 104 is further configured for determining and assigning the quality metrics based upon trapping set characteristics of each sector included in the plurality of sectors. For example, when a first sector included in the plurality of sectors is identified by the controller 104 as having a trapping set error and a second sector included in the plurality of sectors is identified by the controller 104 as not having a trapping set error, the first sector (e.g., the sector identified as having the trapping set error) is assigned a larger quality metric than the second sector. This promotes processing efficiency of the system 100 .
  • the controller 104 is configured for determining and assigning the quality metrics to the plurality of sectors based upon a processing latency (e.g., time already spent waiting for further processing) for each sector included in the plurality of sectors.
  • a processing latency e.g., time already spent waiting for further processing
  • the quality metric is determined (e.g., calculated) using the following equation:
  • is a parameter in (0,1)
  • t is latency
  • t max is maximum latency.
  • the first sector is assigned a larger quality metric than the second sector. This effectively gives a higher priority for further processing to sectors having longer processing latency times (e.g., have been waiting for longer amounts of time to be processed further).
  • the system 100 disclosed herein provides improved SFR performance over typical systems (e.g., codecs) without introducing extra track latency.
  • the system 100 is configurable for operating in an out-of-order hard disk controller (HDQ) transfer mode for achieving large maximum global iteration in the sector-quality-sorting based scheduler.
  • HDQ hard disk controller
  • converged sectors in HDQ are able to be transferred immediately (e.g., do not have to wait for the transfer of old sectors).
  • the system 100 is configured for implementing any of a number of various low density parity check (LDPC) codes and decoding algorithms for facilitating the immediate transfer of the converged sectors in HDQ.
  • LDPC low density parity check
  • the system 100 is configured for providing system resource allocation based upon predicted bit flipping counts (e.g., predicted detector bit flipping counts, predicted decoder bit flipping counts).
  • predicted bit flipping counts e.g., predicted detector bit flipping counts, predicted decoder bit flipping counts.
  • the relationship between detector bit flipping counts versus global iteration is predicted (e.g., extrapolated) by using a polynomial function, such as:
  • the relationship between decoder bit flipping counts versus global iteration is predicted by using a negative log function, such as:
  • bit flipping counts of a particular sector are predictable based on the sector's history.
  • System resource allocation problems are reducible to a maximization problem of the bit flipping counts.
  • the system 100 disclosed herein implements scheduler rules for increasing (e.g., maximizing) bit flipping counts based on extrapolation and prediction of the bit flipping counts. Assuming there are k sectors in the system (e.g., queuing system) 100 and k changes over time, a goal is to optimize (e.g., in terms of maximizing the bit flipping counts or reducing the number of errors) a resource allocation scheme of the system 100 , so that subsequent processed sectors provide a maximum error count decrease for a detector/decoder run.
  • extrapolation parameters a, b and c in the above-referenced extrapolation functions are to be estimated.
  • trapping set errors sometimes kick in.
  • an error count estimation calculated by the extrapolation functions is sometimes not informative. Error floor-related scheduling rules often occur.
  • There are many ways of estimating the parameters a, b and c in the above-referenced log function and polynomial function For example, given the bit flipping counts collected by a normal operation mode of the system 100 , a least square curve fitting, as set forth below, is used (e.g., solved) to estimate the extrapolation parameters:
  • extrapolation parameters a, b and c are calculated by taking the derivative of the object function over a, b and c and setting them to be zero.
  • bit flipping counts e.g., error counts
  • bit flipping counts e.g., error counts
  • the following first order Taylor expansion approximation of the extrapolated function is used to estimate the bit flipping counts of the next decoder/detector run by the first order expansion of the extrapolation curve at x 0 :
  • scheduler rules implemented by the system 100 are as follows.
  • the detector 110 e.g., backend detector
  • the detector 110 if no sector in the first (e.g., LE) queue 114 is ready for the detector 110 , and the first queue 114 has a free slot, detector 110 is configured for choosing a best sector in Y-buffer 106 to process.
  • the detector 110 chooses the sector which provides a maximum number of bit flipping counts in the next detector run to process.
  • the detector is configured for waiting.
  • the decoder 112 if one or more sectors in the first queue 114 are ready for the decoder 112 , the decoder 112 is configured for first calculating a bit flipping count prediction for such sectors, then selecting a sector to process from amongst such sectors which has a maximum bit flipping count. If no sector in the first queue 114 is ready for the decoder 112 , the decoder 112 is configured for waiting.
  • FIG. 2 is a flowchart illustrating a method for sector prioritization in a read channel system.
  • the method 200 includes the step of receiving a track of read data via a controller of the system, the track of read data including a plurality of sectors of read data 202 .
  • the method further includes the step of processing the plurality of sectors of read data 204 .
  • the read channel 102 is configured for processing the plurality of sectors of read data.
  • the method 200 further includes the step of, during processing of the plurality of sectors, dynamically determining an order in which each sector included in the plurality of sectors is to undergo further processing based upon at least one of: a global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector 206 .
  • the controller 104 is configured for determining an order in which each sector included in the plurality of sectors is to undergo further processing based upon at least one of: a global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector.
  • the step of dynamically determining the order in which each sector included in the plurality of sectors is to undergo further processing 206 includes: determining and assigning a quality metric for each sector included in the plurality of sectors based upon at least one of: global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector 208 .
  • the controller 104 is configured for determining and assigning a quality metric for each sector included in the plurality of sectors based upon at least one of: global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector.
  • the method 200 includes the steps of: when a first sector included in the plurality of sectors is identified as having a trapping set error and a second sector included in the plurality of sectors is identified as not having a trapping set error, assigning a first quality metric to the first sector, assigning a second quality metric to the second sector, the first quality metric being different than the second quality metric 214 ; and based upon the assigned first and second quality metrics, causing the second sector to undergo further processing prior to causing the first sector to undergo further processing 216 .
  • the method 200 includes the steps of: when a first sector included in the plurality of sectors has a first processing latency value and a second sector included in the plurality of sectors has a second processing latency value, the first processing latency value being greater than the second processing latency value, assigning a first quality metric to the first sector, assigning a second quality metric to the second sector, the first quality metric being different than the second quality metric 218 ; and based upon the assigned first and second quality metrics, causing the first sector to undergo further processing prior to causing the second sector to undergo further processing 220 .
  • the quality metrics are assigned based upon more than one of: global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector.
  • Such a software package may be a computer program product which employs a non-transitory computer-readable storage medium including stored computer code which is used to program a computer to perform the disclosed functions and processes disclosed herein.
  • the computer-readable medium may include, but is not limited to, any type of conventional floppy disk, optical disk, CD-ROM, magnetic disk, hard disk drive, magneto-optical disk, ROM, RAM, EPROM, EEPROM, magnetic or optical card, or any other suitable media for storing electronic instructions.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

Aspects of the disclosure pertain to a read channel system and method for providing sector prioritization for promoting improved sector processing performance. The system and method, during processing of sectors of data, prioritize each of the sectors for further processing based upon: a global iteration index of each sector, trapping set characteristics of each sector and processing latency of each sector.

Description

    BACKGROUND
  • A read channel is a circuit in a disk drive which: 1) encodes data bits into magnetic flux changes for recording; and 2) decodes magnetic flux changes into bits for reading. Current read channel systems often suffer from performance issues.
  • SUMMARY
  • This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key and/or essential features of the claimed subject matter. Also, this Summary is not intended to limit the scope of the claimed subject matter in any manner
  • Aspects of the disclosure pertain to a read channel system and method for providing sector prioritization for promoting improved sector processing performance.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The detailed description is described with reference to the accompanying figures:
  • FIG. 1 is an example conceptual block diagram schematic of a read channel system;
  • FIG. 2 is a flow chart illustrating a method for sector prioritization in a read channel system; and
  • FIG. 3 is an example conceptual block diagram schematic of a disk drive system including a read channel system.
  • DETAILED DESCRIPTION
  • Aspects of the disclosure are described more fully hereinafter with reference to the accompanying drawings, which form a part hereof, and which show, by way of illustration, example features. The features can, however, be embodied in many different forms and should not be construed as limited to the combinations set forth herein; rather, these combinations are provided so that this disclosure will be thorough and complete, and will fully convey the scope. Among other things, the features of the disclosure can be facilitated by methods, devices, and/or embodied in articles of commerce. The following detailed description is, therefore, not to be taken in a limiting sense.
  • A read channel is a circuit in a disk drive which: 1) encodes data bits into magnetic flux changes for recording; and 2) decodes magnetic flux changes into bits for reading. A read channel system can perform retained sector reprocessing (RSR) when processing sectors of data. In a typical read channel system, a data buffer, such as a Y-buffer, can be implemented for temporarily storing data (e.g., sectors) received by the read channel system. In the typical read channel system performing typical RSR, the Y-buffer can be dynamically shared between in-order sectors and retained sectors.
  • Further, in the typical read channel system, a sector-quality-sorting based scheduler can be implemented by the read channel system. The scheduler sorts the sectors by sector quality metric. For example, during processing, the scheduler can dynamically prioritize sectors, such that it causes the system to process good sectors (e.g., in-order sectors) first, followed by processing of bad sectors (e.g., retained sectors). In these typical read channel systems, two metrics can be involved in sorting. For example, for sectors with one global iteration, a mean squared error (MSE) metric from a loop detector of the read channel system can be used. Further, for sectors with more than one global iteration, a number of unsatisfied checks (USCs) can be used as a metric.
  • Typical read channel systems implementing the sorting metrics described above often suffer from a number of drawbacks. For example, as mentioned above, a first sorting metric (e.g., quality metric) implemented by typical read channel systems for sectors with more than one global iteration only considers the number of USCs. In the event there are multiple sectors with very different numbers of global iterations, this metric is misleading. For example, a sector with only one global iteration and forty USCs usually has better quality than a sector with twenty-seven global iterations and thirty USCs. Further, with typical read channel systems, when a trapping set error(s) occurs, the number of USCs is usually small, so a sector with a trapping set error(s) looks good to current quality sorting rules. Thus, the detector and decoder of the read channel system keep working on it and waste processing slots. Still further, with typical read channel systems, further processing of some bad sectors will be delayed too long, since good sectors keep coming in. Thus, the bad sectors will not get a chance to be processed further until latency kickout occurs.
  • Because of the above drawbacks, during the normal stage of signal processing of sectors by the typical read channel system, Sector Failure Rate (SFR) performance of the system is less efficient than desired.
  • As more fully set forth below, aspects of the disclosure include a system and method for promoting improved SFR performance (e.g., 0.04 decibel (dB) SFR gain) during sector processing.
  • As indicated in FIG. 1 (FIG. 1), a system 100 is shown. In embodiments, the system 100 is a read channel system. Further, in embodiments, the system 100 is an iterative codec system architecture. Still further, in embodiments, the system 100 is a read channel backend codec system architecture. In further embodiments, the system 100 is implemented in a hard disk drive system 300 (as shown in FIG. 3). In embodiments, the system 100 includes a read channel 102 (e.g., a read channel backend, a read channel backend codec). The read channel 102 is a circuit (e.g., an integrated circuit, an electrical circuit) implemented in a disk drive which: 1) encodes data bits into magnetic flux changes for recording; and 2) decodes magnetic flux changes into bits for reading. Still further, the read channel 102 can be a single chip or integrated as part of a system on chip (SoC).
  • In embodiments, the system 100 includes a controller 104. The controller 104 is connected to (e.g., communicatively coupled with) the read channel 102. For example, the controller 104 is connected to the read channel 102 (e.g., read channel backend codec) via an analog front end (e.g., read channel analog front end). In embodiments, the controller 104 is a disk controller. The controller 104 is configured for transferring data and signals (e.g., control signals) between the read channel 102 and a host system during read and write operations. For example, the controller 104 is configured for being connected to a head transducer (e.g., read-write head) 302 of the hard disk drive system 300. During read operations, the head transducer is configured for reading data from a disk (e.g., a disk platter of a hard disk drive (HDD)) 304 and providing the read data to the controller 104. The controller 104 is configured for provide the read data received from the head transducer 302 to the read channel 102. During write operations, the read channel 102 is configured for providing write data to the controller 104, the controller 104 is configured for providing the write data received from the read channel 102 to the head transducer 302, and the head transducer 302 is configured for writing the write data received from the controller 104 to the disk.
  • In embodiments, the controller 104 is configured for managing (e.g., controlling) a position of the head transducer 302. For example, during read operations, the controller 104 is configured for selecting a track to be read and for causing the head transducer 302: a.) to move (e.g., change its position) relative to the disk 304, such that the head transducer 302 is aligned to read the controller-selected track; and b.) to read the controller-selected track of data from the disk 304. The head transducer 302 provides the read data from the controller-selected track to the controller 104, the controller 104 then provides the read data from the controller-selected track to the read channel 102. The read data received by the read channel (e.g., read channel backend codec) via the controller 104 is digital data which is encoded.
  • Further, the controller 104 is configured for: selecting a next (e.g., second) track to be read; causing the head transducer 302 to move to a new position relative to the disk 304; causing the head transducer 302 to read data from the second selected track and to transmit the read data to the controller 104; receiving the transmitted read data from the second selected track; and transmitting the received read data from the second selected track to the read channel 102. The-above described transition process the system 100 undergoes as the controller 104 transitions from receiving the read data from the first selected track to receiving read data from the second selected track is a process known as track switching. Latency is associated with this track switching process (e.g., track switching latency).
  • As mentioned above, the controller 104 is configured for receiving read data from the head transducer 302 and for transmitting the received read data to the read channel 102. For example, the controller 104 is configured for transmitting a plurality of sectors (e.g., a track) of read data to the read channel 102, the plurality of sectors having been read from the disk 304. The read channel 102 is configured for processing the plurality of sectors of read data received from the controller 104. For example, when the system 100 is operating in normal mode, each of the plurality of sectors received by the read channel 102 is processed via 28 global iterations and 10 local iterations per global iteration. In embodiments, the controller 104 implements (e.g., includes) a client-server based scheduler for accommodating concurrent processing of the plurality of sectors. In embodiments, the term “scheduler” as described herein, is implemented as hardware, firmware, software or a combination thereof.
  • In embodiments, the system 100 is configured for performing retained sector reprocessing (RSR). For example, after the plurality of sectors is processed by the read channel 102, the processed sectors are provided (e.g., transmitted) from the read channel 102 to the controller 104. The controller 104 is configured for identifying (e.g., classifying) each sector included in the plurality of processed sectors as being either: a.) normal (e.g., in-order); or b.) failed. If one or more sectors included in the plurality of processed sectors are identified by the controller 104 as being in-order, the controller 104 is configured for determining that no further processing of the one or more in-order sectors by the read channel 102 is needed. However, if one or more sectors included in the plurality of processed sectors are identified by the controller 104 as being failed, the controller 104 (e.g., via the scheduler) is configured for saving y-samples corresponding to the one or more failed sectors (e.g., retained sectors) and for scheduling and initiating reprocessing of the failed (e.g., retained) sectors by the read channel 102. For example, the retained sectors are reprocessed by the read channel 102 via 180 global iterations (for 512 bytes (512 B)) or 37 global iterations (for 4 kilobytes (4 KB)) and 20 local iterations per global iteration. RSR provides a performance gain (e.g., 0.05 to 0.15 decibels (dB), depending on conditions) for the system 100 via the extra global and local iterations on the retained sectors.
  • The system 100, as mentioned above, during track switching, undergoes a transition as the controller 104 transitions from receiving the read data (e.g., sectors) from the first selected track to receiving read data (e.g., sectors) from the second selected track. The latency associated with track switching provides a window of time for the read channel 102 to reprocess the retained sectors (e.g., failed sectors) of the first selected track and to transmit those reprocessed sectors to the controller 104 before reading of data (e.g., sectors) from the second selected track occurs (e.g., before the controller 104 receives read data from the second selected track). As mentioned above, the controller 104 (via the scheduler) is configured for scheduling reprocessing of the failed sectors by the read channel 102 during the above-referenced track switching latency time window.
  • In embodiments, a size of a track of read data is equivalent to a number of sectors of that track which the controller 104 obtains, via the head transducer 302, during a consecutive read. Track size is, at times, highly application-dependent, varying from tens (10 s) to thousands (1000 s) of sectors per track.
  • The read channel 102 includes a buffer 106, which is connected to the controller 104. For example, the buffer 106 is a Y-buffer. The buffer 106 is a memory which is temporarily used for storing input or output data. For example, the buffer 106 is configured for receiving read data (e.g., sectors) from the controller 104.
  • In embodiments, the read channel 102 includes a first detector 108, which is connected to the controller 104. For example, the first detector 108 is a loop detector. The first detector 108 is configured for receiving a signal (e.g., data, information). For example, the first detector 108 is configured for receiving one or more signals (e.g., information) from the controller 104, the one or more signals corresponding to the read data (e.g., sectors) provided from the controller 104 to the buffer 106. For example, the controller 104 is configured for providing the one or more signals to the first detector 108 in parallel with providing the read data to the buffer 106.
  • In embodiments, the read channel 102 further includes a second detector 110, which is connected to both the first detector (e.g., the loop detector) 108 and the buffer (e.g., Y-buffer) 106. For example, the second detector 110 is a backend detector. The second detector 110 is configured for receiving the read data via the buffer 106. The second detector 110 is further configured for receiving the signals (e.g., information) corresponding to the read data via the first detector 108.
  • In embodiments, the read channel 102 further includes a decoder 112, which is connected to the second detector (e.g., the backend detector) 110. For example, the decoder 112 is a backend decoder. Further, the decoder 112 is connected to the controller 104. The decoder 112 is configured for receiving the read data. Further, the decoder 112 is configured for receiving the signals (e.g., information) corresponding to the read data. For example, the read data provided from the controller 104 is routed via the buffer 106 and the second detector 110 to the decoder 112. Further, the signals (e.g., information) corresponding to the read data are routed via the first detector 108 and the second detector 110 to the decoder 112. For example, the read data and the signals corresponding to the read data are combined at the second detector 110 and routed from the second detector 110 to the decoder 112 as a first queue (e.g., LE queue) 114. The decoder 112 is configured for processing (e.g., decoding) the read data (e.g., sectors) and for providing the processed read data to the controller 104. For example, the processed read data is provided to the controller 104 as a second queue (e.g., Hard Drive (HD) queue) 116.
  • During processing of the plurality of sectors by the read channel 102, the controller 104 is configured (e.g., via a sector-quality-sorting based scheduler of the controller) for sorting (e.g., prioritizing) sectors for dynamically determining an order in which the plurality of sectors are to be further processed. For example, the controller 104 implements the scheduler to sort the sectors based upon a sorting metric (e.g., quality metric). In embodiments, the controller 104 is configured for determining (e.g., calculating) and assigning a quality metric to each sector included in the plurality of sectors. Further, the controller 104 is configured for determining and assigning the quality metrics based upon a global iteration index of each sector included in the plurality of sectors. For example, if two sectors included in the plurality of sectors have a same number of USCs, but different global iteration indices, the sector of the two sectors which has the larger global iteration index is assigned a larger quality metric than the other sector of the two sectors. The sector of the two sectors which has the larger quality metric is identified by the controller 104 as being the lower quality sector of the two sectors and is given a lower priority for further processing (e.g., will be scheduled, prioritized and/or sorted in such a manner that it will undergo further processing after the higher quality sector undergoes further processing). For example, the quality metric is determined (e.g., calculated) using the following equation:

  • (1+αg/g max)*USC
  • where g is global iteration index, gmax is maximum global iteration index, USC is number of USCs and α is a positive parameter needing to be tuned. Further, when two sectors included in the plurality of sectors have a same global iteration index, but a different number of USCs, the sector of the two sectors which has the larger number of USCs will be assigned a larger quality metric than the other sector of the two sectors.
  • In embodiments, the controller 104 is further configured for determining and assigning the quality metrics based upon trapping set characteristics of each sector included in the plurality of sectors. For example, when a first sector included in the plurality of sectors is identified by the controller 104 as having a trapping set error and a second sector included in the plurality of sectors is identified by the controller 104 as not having a trapping set error, the first sector (e.g., the sector identified as having the trapping set error) is assigned a larger quality metric than the second sector. This promotes processing efficiency of the system 100.
  • The controller 104 is configured for determining and assigning the quality metrics to the plurality of sectors based upon a processing latency (e.g., time already spent waiting for further processing) for each sector included in the plurality of sectors. For example, the quality metric is determined (e.g., calculated) using the following equation:

  • (1+αg/g max)*(1−βt/t max)*USC
  • where β is a parameter in (0,1), t is latency and tmax is maximum latency. In embodiments, when a first sector included in the plurality of sectors is identified by the controller 104 as having a greater (e.g., longer) processing latency than a second sector included in the plurality of sector, the first sector is assigned a larger quality metric than the second sector. This effectively gives a higher priority for further processing to sectors having longer processing latency times (e.g., have been waiting for longer amounts of time to be processed further).
  • The system 100 disclosed herein provides improved SFR performance over typical systems (e.g., codecs) without introducing extra track latency. In embodiments, the system 100 is configurable for operating in an out-of-order hard disk controller (HDQ) transfer mode for achieving large maximum global iteration in the sector-quality-sorting based scheduler. When the system 100 is configured in out-of-order HDQ transfer mode, converged sectors in HDQ are able to be transferred immediately (e.g., do not have to wait for the transfer of old sectors). The system 100 is configured for implementing any of a number of various low density parity check (LDPC) codes and decoding algorithms for facilitating the immediate transfer of the converged sectors in HDQ.
  • In embodiments, the system 100 is configured for providing system resource allocation based upon predicted bit flipping counts (e.g., predicted detector bit flipping counts, predicted decoder bit flipping counts). In embodiments, the relationship between detector bit flipping counts versus global iteration is predicted (e.g., extrapolated) by using a polynomial function, such as:

  • a(x−b)
  • In embodiments, the relationship between decoder bit flipping counts versus global iteration is predicted by using a negative log function, such as:

  • y=a log(bx−c)
  • Based upon the above, bit flipping counts of a particular sector are predictable based on the sector's history. System resource allocation problems are reducible to a maximization problem of the bit flipping counts. The system 100 disclosed herein implements scheduler rules for increasing (e.g., maximizing) bit flipping counts based on extrapolation and prediction of the bit flipping counts. Assuming there are k sectors in the system (e.g., queuing system) 100 and k changes over time, a goal is to optimize (e.g., in terms of maximizing the bit flipping counts or reducing the number of errors) a resource allocation scheme of the system 100, so that subsequent processed sectors provide a maximum error count decrease for a detector/decoder run.
  • In order to estimate error count reduction before running detector/decoder for a sector, extrapolation parameters a, b and c in the above-referenced extrapolation functions are to be estimated. In a low error rate regime, trapping set errors sometimes kick in. For a particular sector, an error count estimation calculated by the extrapolation functions is sometimes not informative. Error floor-related scheduling rules often occur. There are many ways of estimating the parameters a, b and c in the above-referenced log function and polynomial function. For example, given the bit flipping counts collected by a normal operation mode of the system 100, a least square curve fitting, as set forth below, is used (e.g., solved) to estimate the extrapolation parameters:

  • arg mina,b,c(f(a, b, c, x)−{circumflex over (f)}(x))2
  • where f is either a detector extrapolation equation or a decoder extrapolation equation and is an average bit flipping count collected in the x-th global iteration. In embodiments, extrapolation parameters a, b and c are calculated by taking the derivative of the object function over a, b and c and setting them to be zero.
  • In embodiments, when predicting bit flipping counts (e.g., error counts) reduction, for iteration x0, the following first order Taylor expansion approximation of the extrapolated function is used to estimate the bit flipping counts of the next decoder/detector run by the first order expansion of the extrapolation curve at x0:

  • Δf=df/dx*(x−x 0)
  • Based on the idea of promoting (e.g., maximizing) error count reduction, scheduler rules implemented by the system 100 are as follows. For the detector (e.g., backend detector) 110, if no sector in the first (e.g., LE) queue 114 is ready for the detector 110, and the first queue 114 has a free slot, detector 110 is configured for choosing a best sector in Y-buffer 106 to process. In embodiments, when one or more sectors in the first queue 114 are ready for the detector 110, the detector 110 chooses the sector which provides a maximum number of bit flipping counts in the next detector run to process. If no slot is free in the first queue 114, and no sectors in the first queue 114 are ready for the detector 110, the detector is configured for waiting. For the decoder 112, if one or more sectors in the first queue 114 are ready for the decoder 112, the decoder 112 is configured for first calculating a bit flipping count prediction for such sectors, then selecting a sector to process from amongst such sectors which has a maximum bit flipping count. If no sector in the first queue 114 is ready for the decoder 112, the decoder 112 is configured for waiting.
  • FIG. 2 is a flowchart illustrating a method for sector prioritization in a read channel system. The method 200 includes the step of receiving a track of read data via a controller of the system, the track of read data including a plurality of sectors of read data 202. The method further includes the step of processing the plurality of sectors of read data 204. For example, the read channel 102 is configured for processing the plurality of sectors of read data.
  • The method 200 further includes the step of, during processing of the plurality of sectors, dynamically determining an order in which each sector included in the plurality of sectors is to undergo further processing based upon at least one of: a global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector 206. For example, the controller 104 is configured for determining an order in which each sector included in the plurality of sectors is to undergo further processing based upon at least one of: a global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector. In embodiments, the step of dynamically determining the order in which each sector included in the plurality of sectors is to undergo further processing 206 includes: determining and assigning a quality metric for each sector included in the plurality of sectors based upon at least one of: global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector 208. For example, in embodiments, the controller 104 is configured for determining and assigning a quality metric for each sector included in the plurality of sectors based upon at least one of: global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector.
  • The method 200 further includes the step of, when a first sector and a second sector included in the plurality of sectors have a same number of unsatisfied checks, but the first sector has a first global iteration index and the second sector has a second global iteration index, the first global iteration index being a greater value than the second global iteration index, the first sector is assigned a first quality metric and the second sector is assigned a second quality metric, the first quality metric being different than the second quality metric 210. The method 200 further includes the step of, based upon the assigned first and second quality metrics, causing the second sector to undergo further processing prior to causing the first sector to undergo further processing 212. For example, the second and first sectors undergo further processing by the read channel 102 of the system 100 and are processed in an order which is based upon the assigned quality metrics.
  • As an alternative to steps 210 and 212, the method 200, in embodiments, includes the steps of: when a first sector included in the plurality of sectors is identified as having a trapping set error and a second sector included in the plurality of sectors is identified as not having a trapping set error, assigning a first quality metric to the first sector, assigning a second quality metric to the second sector, the first quality metric being different than the second quality metric 214; and based upon the assigned first and second quality metrics, causing the second sector to undergo further processing prior to causing the first sector to undergo further processing 216.
  • As a further alternative to steps 210 and 212, the method 200, in embodiments, includes the steps of: when a first sector included in the plurality of sectors has a first processing latency value and a second sector included in the plurality of sectors has a second processing latency value, the first processing latency value being greater than the second processing latency value, assigning a first quality metric to the first sector, assigning a second quality metric to the second sector, the first quality metric being different than the second quality metric 218; and based upon the assigned first and second quality metrics, causing the first sector to undergo further processing prior to causing the second sector to undergo further processing 220.
  • Further, as mentioned above, it is also contemplated that in embodiments, the quality metrics are assigned based upon more than one of: global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector.
  • It is to be noted that the foregoing described embodiments may be conveniently implemented using conventional general purpose digital computers programmed according to the teachings of the present specification, as will be apparent to those skilled in the computer art. Appropriate software coding may readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.
  • It is to be understood that the embodiments described herein may be conveniently implemented in forms of a software package. Such a software package may be a computer program product which employs a non-transitory computer-readable storage medium including stored computer code which is used to program a computer to perform the disclosed functions and processes disclosed herein. The computer-readable medium may include, but is not limited to, any type of conventional floppy disk, optical disk, CD-ROM, magnetic disk, hard disk drive, magneto-optical disk, ROM, RAM, EPROM, EEPROM, magnetic or optical card, or any other suitable media for storing electronic instructions.
  • Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims (20)

What is claimed is:
1. A read channel system, comprising:
a controller, the controller configured for receiving a track of read data, the track of read data including a plurality of sectors of read data;
a buffer, the buffer being connected to the controller, the buffer configured for receiving the plurality of sectors of read data from the controller; and
a decoder, the decoder being connected to the buffer, the decoder configured for receiving the plurality of sectors of read data from the buffer, the decoder configured for processing the plurality of sectors of read data and transmitting the processed sectors of read data to the controller, the controller configured for determining if one or more of the processed sectors are failed, and when one or more of the processed sectors are determined as being failed, the controller is configured for scheduling and initiating reprocessing of the failed sectors,
wherein the controller, during processing of the plurality of sectors, is configured for prioritizing each sector included in the plurality of sectors for further processing based upon at least one of: a global iteration index of the sector, trapping set characteristics of the sector and a processing latency of the sector.
2. The read channel system as claimed in claim 1, wherein the controller implements a scheduler for prioritizing each sector included in the plurality of sectors for further processing based upon at least one of: global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector.
3. The read channel system as claimed in claim 2, wherein prioritizing each sector included in the plurality of sectors includes calculating a quality metric for each sector included in the plurality of sectors.
4. The read channel system as claimed in claim 1, further comprising:
a first detector, the first detector being connected to the controller, the first detector configured for receiving signals corresponding to the plurality of sectors of read data.
5. The read channel system as claimed in claim 4, further comprising:
a second detector, the second detector being connected to the first detector and the buffer, wherein the plurality of sectors of read data are routed from the buffer to the decoder via the second detector.
6. The read channel system as claimed in claim 3, wherein the scheduler implemented by the controller is a sector-quality-sorting based scheduler.
7. The read channel system as claimed in claim 3, wherein the assigned reprocessing time occurs during a track switching window for the controller.
8. The read channel system as claimed in claim 1, wherein the read channel system is a read channel backend codec system.
9. The read channel system as claimed in claim 4, wherein the first detector is a loop detector.
10. The read channel system as claimed in claim 5, wherein the buffer is a Y-buffer.
11. A method for sector prioritization in a read channel system, comprising:
receiving a track of read data via a controller of the system, the track of read data including a plurality of sectors of read data;
processing the plurality of sectors via a read channel of the system; and
during processing of the plurality of sectors, dynamically determining an order in which each sector included in the plurality of sectors is to undergo further processing based upon at least one of: a global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector.
12. The method as claimed in claim 11, wherein dynamically determining the order in which each sector included in the plurality of sectors is to undergo further processing includes:
determining and assigning a quality metric for each sector included in the plurality of sectors based upon at least one of: global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector.
13. The method as claimed in claim 12, further comprising:
when a first sector and a second sector included in the plurality of sectors have a same number of unsatisfied checks, but the first sector has a first global iteration index and the second sector has a second global iteration index, the first global iteration index being a greater value than the second global iteration index, the first sector is assigned a first quality metric and the second sector is assigned a second quality metric, the first quality metric being different than the second quality metric; and
based upon the assigned first and second quality metrics, causing the second sector to undergo further processing prior to causing the first sector to undergo further processing.
14. The method as claimed in claim 12, further comprising:
when a first sector included in the plurality of sectors is identified as having a trapping set error and a second sector included in the plurality of sectors is identified as not having a trapping set error, assigning a first quality metric to the first sector, assigning a second quality metric to the second sector, the first quality metric being different than the second quality metric; and
based upon the assigned first and second quality metrics, causing the second sector to undergo further processing prior to causing the first sector to undergo further processing.
15. The method as claimed in claim 12, further comprising:
when a first sector included in the plurality of sectors has a first processing latency value and a second sector included in the plurality of sectors has a second processing latency value, the first processing latency value being greater than the second processing latency value, assigning a first quality metric to the first sector, assigning a second quality metric to the second sector, the first quality metric being different than the second quality metric; and
based upon the assigned first and second quality metrics, causing the first sector to undergo further processing prior to causing the second sector to undergo further processing.
16. A non-transitory computer-readable medium having computer-executable instructions for performing a method for sector prioritization in a read channel system, the method comprising:
receiving a track of read data via a controller of the system, the track of read data including a plurality of sectors of read data;
processing the plurality of sectors via a read channel of the system; and
during processing of the plurality of sectors, dynamically determining an order in which each sector included in the plurality of sectors is to undergo further processing based upon at least one of: a global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector.
17. The non-transitory computer-readable medium as claimed in claim 16, wherein dynamically determining the order in which each sector included in the plurality of sectors is to undergo further processing includes:
determining and assigning a quality metric for each sector included in the plurality of sectors based upon at least one of: global iteration index of the sector, trapping set characteristics of the sector and processing latency of the sector.
18. The non-transitory computer-readable medium as claimed in claim 17, the method further comprising:
when a first sector and a second sector included in the plurality of sectors have a same number of unsatisfied checks, but the first sector has a first global iteration index and the second sector has a second global iteration index, the first global iteration index being a greater value than the second global iteration index, the first sector is assigned a first quality metric and the second sector is assigned a second quality metric, the first quality metric being different than the second quality metric; and
based upon the assigned first and second quality metrics, causing the second sector to undergo further processing prior to causing the first sector to undergo further processing.
19. The non-transitory computer-readable medium as claimed in claim 17, the method further comprising:
when a first sector included in the plurality of sectors is identified as having a trapping set error and a second sector included in the plurality of sectors is identified as not having a trapping set error, assigning a first quality metric to the first sector, assigning a second quality metric to the second sector, the first quality metric being different than the second quality metric; and
based upon the assigned first and second quality metrics, causing the second sector to undergo further processing prior to causing the first sector to undergo further processing.
20. The non-transitory computer-readable medium as claimed in claim 17, the method further comprising:
when a first sector included in the plurality of sectors has a first processing latency value and a second sector included in the plurality of sectors has a second processing latency value, the first processing latency value being greater than the second processing latency value, assigning a first quality metric to the first sector, assigning a second quality metric to the second sector, the first quality metric being different than the second quality metric; and
based upon the assigned first and second quality metrics, causing the first sector to undergo further processing prior to causing the second sector to undergo further processing.
US13/650,479 2012-10-12 2012-10-12 Enhanced quality-sorting scheduler Active 2032-11-03 US8705192B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/650,479 US8705192B1 (en) 2012-10-12 2012-10-12 Enhanced quality-sorting scheduler

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/650,479 US8705192B1 (en) 2012-10-12 2012-10-12 Enhanced quality-sorting scheduler

Publications (2)

Publication Number Publication Date
US20140104720A1 true US20140104720A1 (en) 2014-04-17
US8705192B1 US8705192B1 (en) 2014-04-22

Family

ID=50475106

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/650,479 Active 2032-11-03 US8705192B1 (en) 2012-10-12 2012-10-12 Enhanced quality-sorting scheduler

Country Status (1)

Country Link
US (1) US8705192B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150100855A1 (en) * 2013-10-07 2015-04-09 Agency For Science, Technology And Research Normalization factor adaptation for ldpc decoding for hard disk drive systems
CN109716549A (en) * 2016-09-22 2019-05-03 罗门哈斯电子材料韩国有限公司 Organnic electroluminescent device comprising electron buffer layer and electron transfer layer

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9257134B1 (en) 2014-12-24 2016-02-09 Western Digital Technologies, Inc. Allowing fast data zone switches on data storage devices
US9653111B1 (en) 2015-11-23 2017-05-16 Avago Technologies General Ip (Singapore) Pte. Ltd. Track quality classifier

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740358A (en) * 1992-06-25 1998-04-14 Cirrus Logic, Inc. Defect management and split field processing in disk storage systems
US5606466A (en) * 1995-10-23 1997-02-25 Quantum Corporation Method for overlapping block read events in disk drive
DE60035437T2 (en) * 1999-07-29 2008-03-13 Matsushita Electric Industrial Co., Ltd., Kadoma INFORMATION RECORDER / PLAYER AND METHOD USING AN OPTICAL PLATE
WO2002009109A1 (en) * 2000-07-21 2002-01-31 Fujitsu Limited Disk recording device, sector alternating method for recording disk, and recording disk
US7274639B1 (en) * 2004-05-21 2007-09-25 Western Digital Technologies, Inc. Disk drive performing multi-level prioritization of entries in a suspect sector list to identify and relocate defective data sectors
JP2006269027A (en) * 2005-03-25 2006-10-05 Hitachi Global Storage Technologies Netherlands Bv Data storage device
JP2007184046A (en) * 2006-01-10 2007-07-19 Hitachi Global Storage Technologies Netherlands Bv Rotary disk type storage device and recording method
JP2009223996A (en) * 2008-03-18 2009-10-01 Fujitsu Ltd Recording device
US7929234B1 (en) * 2009-03-27 2011-04-19 Western Digital Technologies, Inc. Disk drive prioritizing in-the-field defect scanning based on number of write operations in each of a plurality of defect zones
US20110083058A1 (en) * 2009-10-01 2011-04-07 Stmicroelectronics, Inc. Trapping set based ldpc code design and related circuits, systems, and methods
US8805967B2 (en) * 2010-05-03 2014-08-12 Panzura, Inc. Providing disaster recovery for a distributed filesystem

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150100855A1 (en) * 2013-10-07 2015-04-09 Agency For Science, Technology And Research Normalization factor adaptation for ldpc decoding for hard disk drive systems
US9548762B2 (en) * 2013-10-07 2017-01-17 Agency For Science, Technology And Research Normalization factor adaptation for LDPC decoding for hard disk drive systems
CN109716549A (en) * 2016-09-22 2019-05-03 罗门哈斯电子材料韩国有限公司 Organnic electroluminescent device comprising electron buffer layer and electron transfer layer

Also Published As

Publication number Publication date
US8705192B1 (en) 2014-04-22

Similar Documents

Publication Publication Date Title
EP1072970B1 (en) A method and system for issuing commands to and ordering commands on a disk drive
JP5970645B2 (en) Increasing spare area in memory to extend memory life
US8705192B1 (en) Enhanced quality-sorting scheduler
US20140229799A1 (en) Statistical adaptive error correction for a flash memory
JP2012524952A (en) Method and apparatus for implementing a caching policy for non-volatile memory
US9098105B2 (en) Dynamic Y-buffer size adjustment for retained sector reprocessing
US8539176B2 (en) Data storage devices accepting queued commands having deadlines
JP2010541107A (en) Solid state drive optimizer
US9385756B2 (en) Data processing system with retained sector reprocessing
JP5415638B2 (en) System and method for dual processing of binary decoding and non-binary decoding
US8937780B2 (en) Error recovery procedure (ERP) using estimated best setting in first run
JP2018160056A (en) Memory controller, memory system, and control method
KR101547858B1 (en) Systems and methods for symbol re-grouping decoding processing
US8762815B2 (en) Systems and methods for data decoder state preservation during extended delay processing
US8850289B2 (en) Quality based priority data processing with soft guaranteed iteration
US11341998B1 (en) Hardware-based read sample averaging
US8634152B1 (en) Systems and methods for throughput enhanced data detection in a data processing circuit
US20140032999A1 (en) Systems and Methods for Information Divergence Based Data Processing
US9384778B2 (en) Online iteration resource allocation for large sector format drive
US9019647B2 (en) Systems and methods for conditional positive feedback data decoding
US9058842B2 (en) Systems and methods for gate aware iterative data processing
US8996970B2 (en) Systems and methods for positive feedback short media defect detection
TW201349756A (en) Systems and methods for data processing including EET feedback
CN116954478A (en) Method and device for processing read-write request
TW201346579A (en) Systems and methods for out of order data reporting

Legal Events

Date Code Title Description
AS Assignment

Owner name: LSI CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ZHANG, FAN;JIN, MING;XIAO, JUN;AND OTHERS;SIGNING DATES FROM 20120917 TO 20120918;REEL/FRAME:029120/0204

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AG

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:LSI CORPORATION;AGERE SYSTEMS LLC;REEL/FRAME:032856/0031

Effective date: 20140506

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LSI CORPORATION;REEL/FRAME:035390/0388

Effective date: 20140814

AS Assignment

Owner name: LSI CORPORATION, CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039

Effective date: 20160201

Owner name: AGERE SYSTEMS LLC, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039

Effective date: 20160201

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001

Effective date: 20160201

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001

Effective date: 20160201

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001

Effective date: 20170119

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001

Effective date: 20170119

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551)

Year of fee payment: 4

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE

Free format text: MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047230/0910

Effective date: 20180509

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047351/0384

Effective date: 20180905

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:049248/0558

Effective date: 20180905

AS Assignment

Owner name: BROADCOM INTERNATIONAL PTE. LTD., SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED;REEL/FRAME:053771/0901

Effective date: 20200826

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED, SINGAPORE

Free format text: MERGER;ASSIGNORS:AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED;BROADCOM INTERNATIONAL PTE. LTD.;REEL/FRAME:062952/0850

Effective date: 20230202