# Patent

## Title
Storage media inter-track interference cancellation

## Abstract

Described embodiments provide a method of cancelling inter-track interference (ITI) from one or more sectors read from a desired track of a storage medium. A road channel reads sectors in a desired track of the storage medium. A decoder of the read channel decodes the read sectors, and if the read sectors are incorrectly recovered from the storage medium, selected sectors of a first adjacent track and a second adjacent track are read. An ITI canceller of the read channel estimates ITI in the read sectors of the desired track corresponding to the selected sectors of each adjacent track and subtracts the estimated ITI of each adjacent track from the data for the sectors of the desired track, providing updated sector data. The ITI cancelled data is replayed to the decoder, which decodes the ITI cancelled data and provides the decoded ITI cancelled data as output of the read channel.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation-in-part, and claims the benefit of the filing date, of U.S. patent application Ser. Nos. 13/186,174, 13/186,197 and 13/186,213 all filed Jul. 19, 2011, 13/250,246 filed Sep. 30, 2011, and 13/460,204 filed Apr. 30, 2012, the teachings of all of which are incorporated herein in their entireties by reference.
The subject matter of this application is related to U.S. patent application Ser. No. 13/591,980 filed on Aug. 22, 2012, Ser. No. 13/591,888 filed on Aug. 22, 2012, and Ser. No. 13/592,023 filed on Aug. 22, 2012, the teachings of all of which are incorporated herein in their entireties by reference.


BACKGROUND
Magnetic and optical data storage devices, such as hard disk drives (HDDs), tape drives and compact disk drives, use heads to read and write information to and from a storage media. In a typical rotating storage system, data is stored on a disk in a series of adjacent concentric tracks. In a magnetic storage device, the tracks are accessed by read and write heads that move radially over the disk under control of a head-positioning servo mechanism so that the heads can be selectively positioned over a specific track. Once the head is aligned over a track, the servo mechanism causes the heads to ideally follow a center line of the selected track during a read or write operation.
Digital data is written to the storage media in a predetermined format using a write head that induces a magnetic field with sufficient amplitude to record on the magnetic material of the storage device. The magnitude and direction of the magnetic field is modulated to encode information into the magnetic surface of the storage device. The data might then be read as necessary by a read head for processing, for example, by a host computer. In read mode, as the magnetic storage surface moves across the gap in the head, the magnetic field of the storage surface is detected, and a voltage is induced in the head. The analog voltage signal is processed to obtain digital data. For example, the analog voltage might be amplified, filtered, and provided to an analog-to-digital converter (ADC) where the signal is digitized and passed through an equalizer and decoded.
As storage media storage capacities have increased, the data tracks are closer in proximity, increasing storage density and capacity of the media. However, as adjacent data tracks become closer, crosstalk between the adjacent tracks, Inter-Track Interference (ITI), might become increasingly significant, such that data in a desired track cannot be read, leading to data corruption. For example, the read and write heads might be positioned over the storage media by various types of alignment marks that might typically be recorded on the recording disk surface to track and adjust the position of the read and write heads. ITI might be the result of write head positioning error during a write operation, or read head positioning error during a read operation.
In order to detect ITI, typical systems might record tracking marks in one or both adjacent tracks, and read the marks when reading the desired track. However, such ITI cancellation requires seeking to the side tracks and waiting for the media to rotate to the position of the tracking marks. Thus, ITI cancellation could introduce large system latency to read data from the storage media.
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 features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Described embodiments provide a method of cancelling inter-track interference (ITI) from one or more sectors read from a desired track of a storage medium. A read channel reads sectors in a desired track of the storage medium. A decoder of the read channel decodes the read sectors, and if the read sectors are incorrectly recovered from the storage medium, selected sectors of a first adjacent track and a second adjacent track are read. An ITI canceller of the read channel estimates ITI in the read sectors of the desired track corresponding to the selected sectors of each adjacent track and subtracts the estimated ITI of each adjacent track from the data for the sectors of the desired track, providing updated sector data. The ITI cancelled data is replayed to the decoder, which decodes the ITI cancelled data and provides the decoded ITI cancelled data as output data of the read channel.



BRIEF DESCRIPTION OF THE DRAWING FIGURES
Aspects, features, and advantages of described embodiments will become more fully apparent from the following detailed description, the appended claims, and the accompanying drawings in which like reference numerals identify similar or identical elements.
FIG. 1A shows a block diagram of a read channel incorporating inter-track interference (ITI) cancellation in accordance with described embodiments;
FIG. 1B shows a block diagram of an iterative decoder of the read channel of FIG. 1A;
FIG. 2 shows an exemplary diagram of track arrangement on a storage media in communication with the read channel of FIG. 1A;
FIG. 3A shows an exemplary diagram of track arrangement on a storage media in communication with the read channel of FIG. 1A, and FIG. 3B shows an exemplary plot of read channel signal amplitude of a desired track and ITI from a non-desired track in the read channel of FIG. 1A;
FIG. 4 shows a flow diagram of an ITI cancellation routine in accordance with described embodiments;
FIG. 5 shows a flow diagram of an ITI cancellation routine in accordance with described embodiments; and
FIG. 6 shows a table of the logical progress of the ITI cancellation routines of FIGS. 4 and 5 in relation to disk revolutions, in accordance with described embodiments.



DETAILED DESCRIPTION
Described embodiments provide a method of cancelling inter-track interference (ITI) from one or more sectors read from a desired track of a storage medium. A read channel reads sectors in a desired track of the storage medium. A decoder of the read channel decodes the read sectors, and if the read sectors are incorrectly recovered from the storage medium, selected sectors of a first adjacent track and a second adjacent track are read. An ITI canceller of the read channel estimates ITI in the read sectors of the desired track corresponding to the selected sectors of each adjacent track and subtracts the estimated ITI of each adjacent track from the data for the sectors of the desired track, providing updated sector data. The ITI cancelled data is replayed to the decoder, which decodes the ITI cancelled data and provides the decoded ITI cancelled data as output data of the read channel.










TABLE 1







ITI
Inter-Track Interference
IC
Integrated Circuit


AMBA
Advanced Microcontroller
APB
Advanced Peripheral Bus



Bus Architecture


AHB
Advanced High-performance
AXI
Advanced eXtensible



Bus

Interface


NRZ
Non-Return to Zero
HDD
Hard Disk Drive


AFE
Analog Front End
FIR
Finite Impulse Response


HDC
Hard Disk Controller
SMR
Shingled Magnetic





Recording


ECC
Error Correction Code
EDC
Error Detection Code


VGA
Variable Gain Amplifier
AEQ
Analog EQualizer


DFE
Decision Feedback Equalizer
FFE
Feed Forward Equalizer


ISI
Inter-Symbol Interference









FIG. 1A shows a block diagram of read channel 100 for reading data from storage media 112. Read channel 100 might include a physical transmission medium, such as a backplane, one or more coaxial cables, one or more twisted pair copper wires, one or more radio frequency (RF) channels, or one or more optical fibers coupled to the drive head in the magnetic recording system. Described embodiments might be employed in serializer-deserializer (SERDES) communication systems or alternative communications systems employing a transmitter and a receiver communicating over a communication channel. Although described herein as a magnetic storage device such as a hard disk drive (HDD), storage media 112 might be implemented as any storage media having inter-track interference (ITI), such as magnetic tapes, or optical storage media such as compact disks. As shown, read channel 100 receives an analog signal from a read head (not shown) that reads data from storage media 112. The analog signal represents an amplitude of a magnetic field induced in the read head by one or more tracks of storage media 112 (e.g., the desired track, N, and ITI from one or more adjacent tracks, e.g., N+1, N−1, etc.).
In some embodiments, storage media 112 might store data employing shingled magnetic recording (SMR). SMR increases the storage densities beyond the capacity limits of traditional hard disk drives HDDs employing conventional perpendicular recording. SMR generally requires fewer technology changes to the recording technology than Bit-Patterned Magnetic Recording (BPMR), Energy Assisted Magnetic Recording (EAMR), Heat Assisted Magnetic Recording (HAMR), and Thermally Assisted Magnetic Recording. In SMR drives, track density is increased by writing tracks successively in an overlapped shingled manner as shown in FIG. 2. As shown in FIG. 2, SMR storage media 112 includes a number of written tracks, shown generally as tracks N−1, N and N+1. As shown in FIG. 2, track N−1 is written first, followed by track N, followed by track N+1, and so on, by write head 202 in a given direction on SMR media 112. After the shingled tracks are written, track data is stored in an area (“read track width”) that is smaller than the original write area (“write track width”). Thus, in SMR, relatively wider write heads that cover one or more shingled tracks might be employed.
However, due to the small read track width, significant ITI from adjacent (or neighboring) tracks might occur during read operations, especially when a read head is employed that is not significantly narrower than the width of the shingled tracks. As shown in FIG. 3A, ITI might occur when the width of read head 302 is greater than the pitch of shingled tracks N−1, N and N+1 on the SMR disk. ITI might also occur due to position errors or offset of read head 302, for example when the read head is not precisely centered over the desired shingled read track (e.g., track N in the exemplary case shown in FIG. 3A). In such cases, read head 302 might receive signals from one or more adjacent (or neighboring) tracks, in addition to the signal from the desired read track, such as shown in the exemplary case of FIG. 3B. As shown in FIG. 3B, read head 302 might receive a first, desired signal, from the desired read track (track N), but might also receive additional, undesired ITI signals, from one or more tracks adjacent to or neighboring the desired read track. For example, as shown in FIG. 3B, an ITI signal is received from neighboring track N−1 that distorts the signal read from track N.
Referring back to FIG. 1A, the received analog signal from the read head is provided to analog front end (AFE) 102, which might filter or equalize the analog signal, for example by a variable gain amplifier (VGA) to amplify the analog signal and/or a continuous time analog equalizer (AEQ). AFE 102 might also provide sampling of the received analog signal to provide a digital signal to filter 104 that might further condition the signal. In some embodiments, filter 104 might be a finite impulse response (FIR) filter. Other signal conditioning, such as decision feedback equalization (DFE) and feed forward equalization (FFE) (not shown) might employed to reduce intersymbol interference (ISI) between one or more adjacent symbols of the received signal. The filtered sample values (“Y-samples” 105) are provided to iterative decoder 106 and inter-track interference (ITI) cancellation module 108 via Y-samples buffer 110.
Iterative decoder 106 receives Y-samples 105 that correspond to the data read from the read track of SMR media 112. Iterative decoder 106 decodes, for example by performing error recovery, one or more sectors read from one or more desired read tracks of SMR media 112. In some embodiments, iterative decoder 106 might average the Y-sample values over multiple reads of given sector(s) of desired read track(s). In some other embodiments, iterative decoder 106 might select a relative “most reliable” set of Y-samples from a group of Y-sample sets corresponding to multiple reads of given sector(s) of desired read track(s). If iterative decoder 106 successfully decodes the sector(s), iterative decoder 106 provides the detected data (detected data 111) as the read data for further processing (e.g., to be provided to a host device).
FIG. 1B shows additional detail of iterative decoder 106. Iterative decoder 106 might include detector 182 and decoder 184. In some embodiments, detector 182 might be implemented as a soft-output Viterbi detector or a maximum a posteriori (MAP) detector, and decoder 184 might be implemented as a Low Density Parity Check (LDPC) decoder or a Turbo decoder. Log-likelihood ratios (LLRs) are probability measures for detected bits that might be computed by detector 182 and decoder 184. The LLRs might be calculated based on provided Y-samples and previous LLRs (if available). For example, as shown in FIG. 1B, detector 182 provides determined LLRs to decoder 184, and decoder 184 provides determined LLRs back to detector 182. Each of detector 182 and decoder 184 might provide NRZ data outputs. For example, in a so-called global iteration of iterative decoder 106, detector 182 employs LLRs computed by decoder 184, and in a so-called local iteration, decoder 184 performs internal decoding iterations to compute updated LLRs based on the input LLRs from detector 182. For each global iteration by detector 182 and decoder 184, decoder 184 might typically perform several local iterations. For example, in some embodiments (a “0.5” iteration), NRZ data might be provided as the output of iterative detector 106 after a first pass through detector 182 without any global iteration(s) with detector 184. In other embodiments (a “1 global” iteration), NRZ data might be provided as the output of iterative detector 106 after one pass through detector 182 and decoder 184. As described, to perform 1 global iteration, decoder 184 might perform multiple local iterations to provide updated LLRs to detector 182.
If iterative decoder 106 fails to successfully decode the sector(s), iterative decoder 106 provides the detected data (detected data 107) to ITI cancellation module 108 to perform ITI cancellation. Thus, ITI cancellation might typically be performed if typical decoding and other decoding retry mechanisms fail to successfully decode a sector. Thus, in described embodiments, ITI cancellation module 108 is a sector-based offline error recovery module.
ITI cancellation module 108 receives data from the desired track, N, and one or more of the adjacent (side) tracks. Equalized Y-samples 105 corresponding to one or more failing target sectors on track N are stored in Y-samples buffer 110. In some embodiments, Y-samples buffer 110 might store one or more sectors (e.g., either 512B or 4 kB sectors). Non-Return-to-Zero (NRZ) data for adjacent sectors in tracks N−1 and N+1 might be received from iterative decoder 106 by reading storage media 112 using a raw-data mode. The side track data might take a significant amount of time to collect due to seeking read head 302 to position over the side tracks and waiting for the media to rotate to the correct position for the corresponding sectors. ITI cancellation module 108 estimates, calculates and cancels ITI in the equalized Y-samples for the failed sector(s) on track N using the NRZ data bits from corresponding adjacent sectors in adjacent tracks N−1 and N+1. ITI cancellation module 108 might store ITI-cancelled Y-samples (updated Y-samples 109) in Y-samples buffer 110 and then provide updated Y-samples 109 to iterative decoder 106. Iterative decoder restarts the iterative decoding process using updated Y-samples 109, and provides ITI-cancelled detected data 111 as output data, for example to a host device (not shown). Detected data 111 might be Q-bit data corresponding to one or more partial or complete sectors recovered from storage media 112.
In described embodiments, read channel 100 might be coupled to the host device by a Small Computer System Interface (“SCSI”) link, a Serial Attached SCSI (“SAS”) link, a Serial Advanced Technology Attachment (“SATA”) link, a Universal Serial Bus (“USB”) link, a Fibre Channel (“FC”) link, an Ethernet link, an IEEE 802.11 link, an IEEE 802.15 link, an IEEE 802.16 link, a Peripheral Component Interconnect Express (PCI-E) link, or any other similar interface for connecting a peripheral device to a host device.
Although shown in FIG. 1A as being included in read channel 100, ITI cancellation module 108 might be included in a separate HDD controller (“HDC”) shown as HDC 114. HDC might be coupled to one or more memories 118 that buffer data being transferred between storage media 112 and the host device. HDC 114 might include control processor 117, which, in some embodiments might include ITI cancellation module 108. Communications between read channel 100 and HDC 114 might be by one or more channels or busses 116. For example, data read from the storage media might be provided to processor 117 of HDC 114 over an NRZ data bus, and Y-samples for one or more sectors might be provided to HDC 114 from Y-samples buffer 110 by bus of processor 117. In described embodiments, processor 117 might be implemented as a Pentium®, Power PC® or ARM processor (Pentium® is a registered trademark of Intel Corporation, ARM processors are by ARM Holdings, plc, and Power PC® is a registered trademark of IBM). For example, if processor 117 is an ARM processor, bus 116 might include an Advanced Microcontroller Bus Architecture (AMBA) bus, such as an Advanced Peripheral Bus (APB) or an Advanced High-performance bus (AHB).
Thus, in described embodiments employing firmware ITI cancellation, Y-samples for track N might be transferred from read channel 100 to control processor 117 using an APB or AHB bus. NRZ data for the side tracks (N−1 and/or N+1) might be transferred to control processor 117 using the NRZ data bus. Optionally, NRZ data for desired track N might also be transferred to control processor 117 for error-based ITI estimation. The NRZ data might typically be in raw-data format that includes data bits, parity bits, formatting bits or other control data. As shown in FIG. 1A, the Y-samples and NRZ data might be stored in a buffer (e.g., memory 118) that might be either internal or external to HDC 114. Control processor 117 might transfer ITI-cancelled Y-samples back to read channel 100 from HDC 114 using bus(es) 116 (e.g., an APB or AHB bus). The ITI cancelled Y-samples might be stored in Y-sample buffer 110 such that HDC 114 initiates a replay of the ITI cancelled sector(s) such that iterative decoder 106 process the new ITI-cancelled Y-samples to provided detected data 111.
Since, in described embodiments, ITI cancellation module 108 employs the NRZ data for at least one of adjacent tracks N−1 and N+1, media 112 might generally make multiple disk revolutions in order for ITI cancellation module 108 to recover failing sector(s) of desired track N. For example, three disk revolutions might be needed to read and transfer data samples for track N and the NRZ data for adjacent tracks N−1 and N+1 from media 112 to ITI cancellation module 108. In some embodiments, for example when ITI cancellation is performed by firmware operating on processor 117, the transfer of data from media 112 to ITI cancellation module 108 might take additional disk revolutions. Additional revolutions of media 112 might occur during ITI cancellation before iterative decoder 106 restarts processing on the updated Y-samples.
In many SMR implementations, it might be known which side track (e.g., either N+1 or N−1) has dominant interference. Thus, in many instances, for described embodiments, there is a high likelihood that the desired data from track N might be successfully recovered after cancelling interference from only the dominant side track. If the data cannot be recovered after cancellation of interference from the dominant side track, cancellation of interference from the non-dominant side track might be performed. FIG. 4 shows an exemplary flow diagram for an ITI cancellation process that cancels ITI from both side tracks. FIG. 5 shows an exemplary flow diagram for an ITI cancellation process that cancels ITI from the dominant side track first, and then optionally cancels ITI from the non-dominant side track if necessary.
FIG. 4 shows an exemplary flow diagram of ITI canceling read operation 400. At step 402, read channel 100 starts read operation 400. At step 404, read channel 100 sets one or more initial operation parameters for the read operation. For example, read channel 100 might be set to a retry mode to re-read the target sector(s) and adjacent sectors, and a global limit of retries and a local number of retries might be set. Retry mode might be a data recovery mode wherein read channel 100 is required to retry recovering a sector that failed in one or more previous attempts, and a limit of global and/or local iterations might be set that is different from a normal read mode. At step 406, Y-sample data for one or more desired sectors of track N is provided by filter 104 to iterative decoder 106. At step 408, if iterative decoder 106 correctly recovers the desired data from track N, then process 400 continues to step 432 without performing ITI cancellation. At step 432, the recovered data (e.g., detected data 111) is provided as the output data of read channel 100, for example to a host device (not shown in FIG. 1A). At step 434, read operation 400 completes.
If at step 408 iterative decoder 106 does not correctly recover the desired data from track N, then process 400 continues to step 410 to being ITI cancellation. At step 410, ITI cancellation module 108 receives Y-samples 105 and detected data 107 from iterative decoder 106 via Y-samples buffer 110.
In some embodiments, the Y-samples and NRZ data for the desired sector(s) of track N are obtained during two separate reads (e.g., at step 406 and step 414) in two separate disk revolutions. In such embodiments, at step 412, read channel 100 is set to read the desired sectors of media 112 at step 414 in a raw-data mode in a second revolution of media 112 (e.g., revolution 602 of FIG. 6). The raw-data mode might be a data recovery mode where the data bits recovered from media 112 and sent to the host device include data bits, parity bits, formatting bits and other control data. Reading the desired sector(s) of track N in two reads allows different read channel parameters to be set for the two separate reads (e.g., at step 412). For example, in the first read at step 406, Y-samples might be captured with a maximum number of global and local iterations in iterative decoder 106 to increase the likelihood that the sector is recovered successfully. If the sector can be recovered without errors, no ITI cancellation is performed. If the sector is not recovered error-free, NRZ data is captured in a second read (e.g., at step 414) with a lower number of global or local iterations, for example after 0.5 iterations. As described herein, employing 0.5 iterations of iterative decoder 106 captures NRZ data at the output of detector 182 without performing any global iterations between detector 182 and decoder 184. Since the sector(s) could not be read without errors, performing further decoding iterations might introduce additional errors into the NRZ data. Since this NRZ data is used for ITI cancellation, it is desirable to keep the number of errors in the NRZ data as low as possible. The optional nature of steps 412 and 414 is indicated by the dashed lines.
In other embodiments, the Y-samples and NRZ data for the desired sector(s) of track N might be obtained during the same read (revolution), for example at step 406. This allows one fewer disk revolution and, thus, faster data recovery time. On the other hand, the Y-samples and NRZ data would be captured with the same read channel parameters (e.g., the same number of local and global iterations of iterative decoder 106), which, as described, could introduce additional errors into the NRZ data.
In some embodiments, ITI cancellation module 108 might employ one of two approaches for estimating ITI (e.g., at steps 420 and 426 of FIG. 4 and steps 520 and 530 of FIG. 5): (1) Y-sample based ITI cancellation and (2) error based ITI cancellation. In embodiments employing Y-sample based ITI cancellation, Y-samples for track N are correlated with NRZ data from the adjacent track (N+1 or N−1) without using NRZ data for track N. In embodiments employing error-sample based ITI cancellation, error samples for track N are correlated with NRZ data from the adjacent track (N+1 or N−1). The error samples are computed based on NRZ data for track N. Error samples are the difference between actual and ideal Y-sample values, where ideal Y-samples are computed using the NRZ data and channel information (such as partial response target or generalized partial response target). For example, ITI estimation and cancellation based on correlation of Y-samples 105 with detected data might be employed, such as described in related U.S. patent application Ser. Nos. 13/186,174, 13/186,197 and 13/186,213, all filed on Jul. 19, 2011, and incorporated by reference herein.
As shown in FIG. 4, steps 410, 412, 414 and 415 might collectively be referred to as “ITI preprocessing,” as indicated by dashed line 416. After at least one of the NRZ data and Y-samples are read for the desired track (e.g., step 406) the read data might optionally begin processing at step 415 that might typically take a substantial time (e.g., on the order of a revolution of media 112). At step 415, ITI cancellation module 108 generates, based on the NRZ data for track N read at step 414, estimated ideal Y-sample values (e.g., ideal Y-sample values if there was no intersymbol interference (ISI) or other noise). The estimated ideal Y-sample values are compared with the actual Y-sample values read at step 410 to generate an estimated error signal representing a deviation between each Y-sample from the estimated ideal Y-sample value. Step 415 might typically be performed prior to collecting data from an adjacent track (e.g., at step 418). For example, step 415 might be performed while waiting for a next revolution of the disk to complete to perform the read operation of step 418. As described, step 415 is optionally performed. For example, alternative embodiments might wait for all data to be gathered (e.g., steps 410, 414 and 424) before performing any processing.
At step 418, ITI cancellation module 108 reads, via read channel 100, data for a first side track (e.g., the dominant side track, indicated as track “N+1” in the example shown in FIG. 4) in a third revolution of media 112 (e.g., revolution 604 of FIG. 6). When recovering the NRZ data for the adjacent sectors at step 418, read channel 100 is set to raw-data mode when recovering the NRZ data. Thus, after step 418, when the data is read from a first adjacent track (e.g., the dominant side track, indicated as track “N+1” in the example shown in FIG. 4), some ITI processing has already been completed without waiting for data from either side track to be read from media 112.
At step 420, ITI cancellation module 108 estimates ITI from track N+1 in track N. In embodiments employing error based ITI cancellation, the ITI is determined based on the NRZ data for track N+1 (e.g., read at step 418) and the estimated error signal (e.g., generated at step 415 based on the NRZ data for track N and characteristics of read channel 100) to determine how much error (e.g., ITI) was caused by adjacent track N+1. Each point of the error signal is correlated with the n closest NRZ bits of the adjacent track to determine how much each bit interfered with track N to produce an interference profile of estimated ITI. In embodiments employing Y-samples based ITI cancellation, Y-samples for track N are correlated with NRZ data from the adjacent track N+1 without using NRZ data for track N.
At step 422, ITI cancellation module 108 subtracts the estimated ITI for track N+1 from the Y-samples for track N. At step 424, ITI cancellation module 108 reads, via read channel 100, data for a second side track (e.g., the non-dominant side track, indicated as track “N−1” in the example shown in FIG. 4) in a fourth revolution of media 112 (e.g., revolution 606 of FIG. 6). When recovering the NRZ data for the adjacent sectors at step 424, read channel 100 is set to raw-data mode when recovering the NRZ data.
At step 426, ITI cancellation module 108 estimates ITI from track N−1 in track N. In embodiments employing error based ITI cancellation, the ITI is determined based on the NRZ data for track N−1 (e.g., read at step 424), and the estimated error signal generated at step 415 based on the Y-samples for track N (e.g., read at step 406), the NRZ data for track N (e.g., read at step 414) and characteristics of read channel 100 to determine how much error (e.g., ITI) was caused by adjacent track N−1. Each point of the error signal is correlated with the n closest NRZ bits of the adjacent track to determine how much each bit interfered with track N to produce an interference profile of estimated ITI. In embodiments employing Y-samples based ITI cancellation, Y-samples for track N are correlated with NRZ data from the adjacent track N+1 without using NRZ data for track N.
At step 428, ITI cancellation module 108 subtracts the estimated ITI for track N−1 from the NRZ data for track N. At step 430, ITI cancellation module 108 replays the sector(s) for track N using the ITI-cancelled data to iterative decoder 106 (e.g., as updated Y-samples 109) for decoding into detected data 111. Thus, ITI processing is further separated such that cancellation for a first side track (e.g., the dominant side track) has already been completed without waiting for data from the other side track to be read from media 112. Thus, ITI cancellation processing occurs in parallel with read head 302 seeking to position over the side tracks and media 112 completing disk revolutions.
In some embodiments, while the NRZ data for the adjacent sectors read at steps 418 and 424 typically includes only media bits (e.g., user data bits, parity bits, RLL bits or ECC bits, etc.), the Y-samples in buffer 110 might also include additional supporting bits such as synch-mark or fragment bits that might be employed to align Y-sample data in buffer 110 with NRZ data from adjacent tracks.
FIG. 5 shows an exemplary flow diagram of ITI canceling read operation 500. At step 502, read channel 100 starts read operation 500. At step 504, read channel 100 sets one or more initial operation parameters for the read operation. For example, read channel 100 might be set to retry mode to re-read the target sector(s) and adjacent sectors, and a global limit of retries and a local number of retries might be set. At step 506, Y-sample data for one or more desired sectors of track N is provided by filter 104 to iterative decoder 106. At step 508, if iterative decoder 106 correctly recovers the desired data from track N, then process 500 continues to step 536 without performing ITI cancellation. At step 536, the recovered data (e.g., detected data 111) is provided as the output data of read channel 100, for example to a host device (not shown in FIG. 1A). At step 538, read operation 500 completes.
If at step 508 iterative decoder 106 does not correctly recover the desired data from track N, then process 500 continues to step 510 to begin ITI cancellation. At step 510, ITI cancellation module 108 receives Y-samples 105 and detected data 107 from iterative decoder 106 and stores them to buffer 110.
In some embodiments, the Y-samples and NRZ data for the desired sector(s) of track N are obtained during two separate reads (e.g., at step 506 and step 514) in two separate disk revolutions. In such embodiments, at step 512, read channel 100 is set to read the desired sectors of media 112 at step 514 in a raw-data mode in a second revolution of media 112 (e.g., revolution 602 of FIG. 6). The raw-data mode might be a data recovery mode where the data bits recovered from media 112 and sent to the host device include data bits, parity bits, formatting bits and other control data. Reading the desired sector(s) of track N in two reads allows different read channel parameters to be set for the two separate reads (e.g., at step 512). For example, in the first read at step 506, Y-samples might be captured with a maximum number of global and local iterations in iterative decoder 106 to increase the likelihood that the sector is recovered successfully. If the sector can be recovered without errors, no ITI cancellation is performed. If the sector is not recovered error-free, NRZ data is captured in a second read (e.g., at step 514) with a lower number of global or local iterations, for example after 0.5 iterations. As described herein, employing 0.5 iterations of iterative decoder 106 captures NRZ data at the output of detector 182 without performing any global iterations between detector 182 and decoder 184. Since the sector(s) could not be read without errors, performing further decoding iterations might introduce additional errors into the NRZ data. Since this NRZ data is used for ITI cancellation, it is desirable to keep the number of errors in the NRZ data as low as possible. The optional nature of steps 512 and 514 is indicated by the dashed lines.
In other embodiments, the Y-samples and NRZ data for the desired sector(s) of track N might be obtained during the same read (revolution), for example at step 506. This allows one fewer disk revolution and, thus, faster data recovery time. On the other hand, the Y-samples and NRZ data would be captured with the same read channel parameters (e.g., the same number of local and global iterations of iterative decoder 106), which, as described, could introduce additional errors into the NRZ data.
Similarly as described in regard to FIG. 4, some embodiments of ITI cancellation module 108 might employ one of two approaches for estimating ITI (e.g., steps 520 and 530 of FIG. 5): (1) Y-sample based ITI cancellation and (2) error based ITI cancellation. In embodiments employing Y-sample based ITI cancellation, Y-samples for track N are correlated with NRZ data from the adjacent track (N+1 or N−1) without using NRZ data for track N. In embodiments employing error-sample based ITI cancellation, error samples for track N are correlated with NRZ data from the adjacent track (N+1 or N−1). The error samples are computed based on NRZ data for track N. Error samples are the difference between actual and ideal Y-sample values, where ideal Y-samples are computed using the NRZ data and channel information (such as partial response target or generalized partial response target). For example, ITI estimation and cancellation based on correlation of Y-samples 105 with detected data might be employed, such as described in related U.S. patent application Ser. Nos. 13/186,174, 13/186,197 and 13/186,213, all filed on Jul. 19, 2011, and incorporated by reference herein.
As shown in FIG. 4, steps 510, 512, 514 and 515 might collectively be referred to as “ITI preprocessing,” as indicated by dashed line 516. After at least one of the NRZ data and Y-samples are read for the desired track (e.g., step 506) the read data might optionally begin processing at step 515 that might typically take a substantial time (e.g., on the order of a revolution of media 112). At step 515, ITI cancellation module 108 generates, based on the NRZ data for track N read at step 514, estimated ideal Y-sample values (e.g., ideal Y-sample values if there was no interference or other noise). The estimated ideal Y-sample values are compared with the actual Y-sample values read at step 510 to generate an estimated error signal representing a deviation between each Y-sample from the estimated ideal Y-sample value. Step 515 might typically be performed prior to collecting data from an adjacent track (e.g., at step 518). For example, step 515 might be performed while waiting for a next revolution of the disk to complete to perform the read operation of step 518.
At step 518, ITI cancellation module 108 reads, via read channel 100, data for a first side track (e.g., the dominant side track, indicated as track “N+1” in the example shown in FIG. 5) in a third revolution of media 112 (e.g., revolution 604 of FIG. 6). When recovering the NRZ data for the adjacent sectors at step 518, read channel 100 is set to raw-data mode. Thus, after step 518, when the data is read from a first adjacent track (e.g., the dominant side track, indicated as track “N+1” in the example shown in FIG. 4), some ITI processing has already been completed without waiting for data from either side track to be read from media 112.
At step 520, ITI cancellation module 108 estimates ITI from track N+1 in track N. ITI in track N might be estimated similarly as described in regard to FIG. 4. For example, in embodiments employing error based ITI cancellation, the ITI is determined based on the NRZ data for track N+1 (e.g., read at step 418) and the estimated error signal (e.g., generated at step 415 based on the NRZ data for track N and characteristics of read channel 100) to determine how much error (e.g., ITI) was caused by adjacent track N+1. Each point of the error signal is correlated with the n closest NRZ bits of the adjacent track to determine how much each bit interfered with track N to produce an interference profile of estimated ITI. In embodiments employing Y-samples based ITI cancellation, Y-samples for track N are correlated with NRZ data from the adjacent track N+1 without using NRZ data for track N.
At step 522, ITI cancellation module 108 subtracts the estimated ITI for track N+1 from the NRZ data for track N. At step 524, ITI cancellation module 108 replays the sector(s) for track N using the ITI-cancelled data to iterative decoder 106 (e.g., as updated Y-samples 109) for decoding into detected data 111. At step 526, if iterative decoder 106 correctly recovers the sector(s) from track N, then, at step 536, the recovered data is provided as detected data 111 (e.g., to a host device not shown in FIG. 1A). At step 538, read operation 500 completes.
At step 526, if iterative decoder 106 does not correctly recover the sector(s) from track N, then, at step 528, ITI cancellation module 108 reads, via read channel 100, data for a second side track (e.g., the non-dominant side track, indicated as track “N−1” in the example shown in FIG. 5) in a fourth revolution of media 112 (e.g., revolution 606 of FIG. 6). When recovering the NRZ data for the adjacent sectors at step 528, read channel 100 is set to raw-data mode.
At step 530, ITI cancellation module 108 estimates ITI in track N from track N−1. ITI in track N might be estimated similarly as described in regard to FIG. 4. At step 532, ITI cancellation module 108 subtracts the estimated ITI for track N−1 from the Y-samples for track N. At step 534, ITI cancellation module 108 replays the sector(s) for track N using the ITI-cancelled data to iterative decoder 106 (e.g., as updated Y-samples 109) for decoding into detected data 111 At step 536, the recovered data is provided as detected data 111 (e.g., to a host device not shown in FIG. 1A). At step 538, read operation 500 completes. Thus, as shown in FIG. 5, ITI processing is further simplified such that cancellation for the second side track (e.g., the non-dominant side track) is only performed if the desired data from track N cannot be recovered after cancellation of the first side track (e.g., the dominant side track). While the extra replay attempt (e.g., at step 524 after ITI cancelling for the first side track) adds some additional processing time for process 500 versus process 400 if ITI from both side tracks needs to be cancelled, overall, process 500 might typically result in a greater reduction in latency than process 400 since it is likely that many sectors can be successfully recovered after cancelling out the ITI from the dominant side track.
Although shown in FIGS. 4 and 5 as reading track N, then track N+1 and then track N−1, the sequence of reading samples for track N and NRZ data for tracks N+1 and N−1 is not critical, and could be read in any order. ITI cancellation operation 400 might typically be employed when data is stored on media 112 in an aligned sector format, where sectors between adjacent tracks are aligned, within a phase error margin between adjacent sectors of up to several bits that occurs during the write process. ITI cancellation operation 400 might alternatively be employed when data is stored on media 112 using a non-aligned sector format.
Further, although described herein as each “bit” of a signal having a corresponding logic value, it is understood that the various signals described herein might employ multi-bit data symbols based on various data encoding schemes, such as pulse amplitude modulation (e.g., PAM-4). Further, although described herein as employing NRZ signaling, any signal encoding scheme might be employed.
FIG. 6 shows table 600 of the logical progress of the ITI cancellation routines of FIGS. 4 and 5 in relation to disk revolutions. As shown in the exemplary case of table 600, described embodiments start processing the data that is available early in the ITI cancellation process rather than waiting for all data to be collected before starting data processing, allowing ITI cancellation to complete and return corrected data faster. Column 1 of table 600 shows the revolutions of media 112 for an exemplary read operation. Column 2 shows when data from tracks N, N−1 and N+1 are read by read channel 100. Column 3 shows operation of an exemplary ITI cancellation routine. Column 4 shows the operation of process 400 shown in FIG. 4, and Column 5 shows the operation of process 500 shown in FIG. 5. As shown, described embodiments performing ITI cancellation (e.g., operating in accordance with one of process 400 and process 500) might reduce ITI cancellation latency by approximately 2 revolutions of media 112 versus embodiments operating in accordance with other ITI cancellation processes. As shown, processes 400 and 500 begin ITI cancellation prior to obtaining information from either of the side tracks (e.g., ITI cancellation processes 400 and 500 start before revolution 3 of media 112 to read the first side track). Thus, a significant amount of ITI processing is performed in parallel with read head 302 seeking to position over the side track and for the disk to complete the revolution to the desired sectors. Although not indicated in FIG. 6, in described embodiments, actual latency reduction might depend on the size of the sector(s) being read (e.g., 4 kB sectors might have greater latency reduction than 512B sectors).
Thus, as described herein, described embodiments provide a method of cancelling inter-track interference (ITI) from one or more sectors read from a desired track of a storage medium. A read channel reads sectors in a desired track of the storage medium. An iterative decoder of the read channel decodes the read sectors, and if the read sectors are incorrectly recovered from the storage medium, selected sectors of at least one adjacent track are read. An ITI canceller of the read channel estimates ITI in the read sectors of the desired track corresponding to the selected sectors of each adjacent track and subtracts the estimated ITI of the adjacent track from the data for the sectors of the desired track, providing updated sector data. The ITI cancelled data is replayed to the iterative decoder, which decodes the ITI cancelled data and provides the decoded ITI cancelled data as output data of the read channel.
While embodiments have been described with respect to processes of circuits, including possible implementation as a single integrated circuit, a multi-chip module, a single card, or a multi-card circuit pack, embodiments of the present invention are not so limited. As would be apparent to one skilled in the art, various functions of circuit elements might also be implemented as processing blocks in a software program. Such software might be employed in, for example, a digital signal processor, microcontroller, or general-purpose computer. Such software might be embodied in the form of program code embodied in tangible media, such as magnetic recording media, optical recording media, solid state memory, floppy diskettes, CD-ROMs, hard drives, or any other non-transitory machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention. When implemented on a general-purpose processor, the program code segments combine with the processor to provide a unique device that operates analogously to specific logic circuits. Embodiments of the present invention can also be manifest in the form of a bitstream or other sequence of signal values electrically or optically transmitted through a medium, stored magnetic-field variations in a magnetic recording medium, etc., generated using a method and/or an apparatus of the present invention.
It should be understood that the steps of the exemplary methods set forth herein are not necessarily required to be performed in the order described, and the order of the steps of such methods should be understood to be merely exemplary. Likewise, additional steps might be included in such methods, and certain steps might be omitted or combined, in methods consistent with various embodiments.
As used herein in reference to an element and a standard, the term “compatible” means that the element communicates with other elements in a manner wholly or partially specified by the standard, and would be recognized by other elements as sufficiently capable of communicating with the other elements in the manner specified by the standard. The compatible element does not need to operate internally in a manner specified by the standard.
Unless explicitly stated otherwise, each numerical value and range should be interpreted as being approximate as if the word “about” or “approximately” preceded the value of the value or range. Signals and corresponding nodes or ports might be referred to by the same name and are interchangeable for purposes here.
Transistors are typically shown as single devices for illustrative purposes. However, it is understood by those skilled in the art that transistors will have various sizes (e.g., gate width and length) and characteristics (e.g., threshold voltage, gain, etc.) and might consist of multiple transistors coupled in parallel to get desired electrical characteristics from the combination. Further, the illustrated transistors might be composite transistors.
Also for purposes of this description, the terms “couple,” “coupling,” “coupled,” “connect,” “connecting,” or “connected” refer to any manner known in the art or later developed in which energy is allowed to be transferred between two or more elements, and the interposition of one or more additional elements is contemplated, although not required. Conversely, the terms “directly coupled,” “directly connected,” etc., imply the absence of such additional elements. Signals and corresponding nodes or ports might be referred to by the same name and are interchangeable for purposes here.
It will be further understood that various changes in the details, materials, and arrangements of the parts which have been described and illustrated in order to explain the nature of this invention might be made by those skilled in the art without departing from the scope of the invention as expressed in the following claims.

## Claims

1. A method of cancelling inter-track interference (ITI) from one or more sectors read from a desired track of a storage medium, the method comprising:
reading, by a read channel, one or more sectors in a desired track of the storage medium;
decoding, by a decoder of the read channel, the one or more read sectors;
if the one or more read sectors are incorrectly recovered from the storage medium:
providing, by a finite impulse response filter of the read channel, Y-samples corresponding to the read sectors to an ITI canceller;
providing, by the decoder, detected bits corresponding to the Y-samples to the ITI canceller,
wherein an adjacent track is estimated by the steps of:
generating, by the ITI canceller, estimated ideal Y-sample values based on the data read for the desired track;
generating an estimated error signal based on a difference between the estimated ideal Y-sample values and actual Y-sample values corresponding to the data read for the desired track; wherein the steps of generating estimated ideal Y-sample values and generating the estimated error signal are performed prior to the step of reading selected sectors of at least one adjacent track; and
estimating, based on the estimated error signal and sectors read from the adjacent track, ITI in the read sectors of the desired track corresponding to the selected sectors of the adjacent track;

reading selected sectors of a first adjacent track and a second adjacent track;
estimating, by an ITI canceller of the read channel, ITI in the read sectors of the desired track corresponding to the selected sectors of the first adjacent track and the second adjacent track;
subtracting, by the ITI canceller, the estimated ITI of the first adjacent track and the second adjacent track from the data for the one or more sectors of the desired track to provide updated sector data;
replaying the updated sector data to the decoder;
decoding, by the decoder, the updated sector data to provide ITI cancelled data; and
providing the decoded ITI cancelled data as output data of the read channel;

otherwise, if the one or more read sectors are correctly recovered from the storage medium:
providing, by the decoder, the decoded one or more read sectors as output data of the read channel.

2. The method of claim 1, further comprising:
reading the one or more sectors of the desired track in a raw-data mode, wherein the data for the desired track is non-return-to-zero (NRZ) data.

3. The method of claim 2, wherein:
the step of reading the one or more desired sectors of the desired track occurs in a first revolution of the storage medium;
the step of reading the one or more sectors of the desired track in raw-data mode occurs in a second revolution of the storage medium;
the step of reading the corresponding sectors of the first adjacent track occurs in a third revolution of the storage medium; and
the step of reading the corresponding sectors of the second adjacent track occurs in a fourth revolution of the storage medium.

4. The method of claim 1, further comprising reading the adjacent tracks in raw-data mode, wherein the data for the adjacent tracks is non-return-to-zero (NRZ) data.

5. The method of claim 1, wherein the one or more desired sectors of the desired track are read in a retry mode having a corresponding maximum global retry threshold and a corresponding maximum local retry threshold.

6. The method of claim 1, wherein, for the method the storage medium is a shingled magnetic recorded media.

7. A non-transitory machine-readable storage medium, having encoded thereon program code, wherein, when the program code is executed by a machine, the machine implements a method of cancelling inter-track interference (ITI) from one or more sectors read from a desired track of a storage medium, the method comprising:
reading, by a read channel, one or more sectors in a desired track of the storage medium;
decoding, by a decoder of the read channel, the one or more read sectors;
if the one or more read sectors are incorrectly recovered from the storage medium:
providing, by a finite impulse response filter of the read channel, Y-samples corresponding to the read sectors to an ITI canceller;
providing, by the decoder, detected bits corresponding to the Y-samples to the ITI canceller,
wherein an adjacent track is estimated by the steps of:
generating, by the ITI canceller, estimated ideal Y-sample values based on the data read for the desired track;
generating an estimated error signal based on a difference between the estimated ideal Y-sample values and actual Y-sample values corresponding to the data read for the desired track; wherein the steps of generating estimated ideal Y-sample values and generating the estimated error signal are performed prior to the step of reading selected sectors of at least one adjacent track; and
estimating, based on the estimated error signal and sectors read from the adjacent track, ITI in the read sectors of the desired track corresponding to the selected sectors of the adjacent track;

reading selected sectors of a first adjacent track and a second adjacent track;
estimating, by an ITI canceller of the read channel, ITI in the read sectors of the desired track corresponding to the selected sectors of the first adjacent track and the second adjacent track;
subtracting, by the ITI canceller, the estimated ITI of the first adjacent track and the second adjacent track from the data for the one or more sectors of the desired track to provide updated sector data;
replaying the updated sector data to the decoder;
decoding, by the decoder, the updated sector data to provide ITI cancelled data; and
providing the decoded ITI cancelled data as output data of the read channel;

otherwise, if the one or more read sectors are correctly recovered from the storage medium:
providing, by the decoder, the decoded one or more read sectors as output data of the read channel.

8. A non-transitory machine-readable storage medium of claim 7, further comprising:
reading the one or more sectors of the desired track in a raw-data mode, wherein the data for the desired track is non-return-to-zero (NRZ) data.

9. A non-transitory machine-readable storage medium of claim 8, wherein:
the step of reading the one or more desired sectors of the desired track occurs in a first revolution of the storage medium;
the step of reading the one or more sectors of the desired track in raw-data mode occurs in a second revolution of the storage medium;
the step of reading the corresponding sectors of the first adjacent track occurs in a third revolution of the storage medium; and
the step of reading the corresponding sectors of the second adjacent track occurs in a fourth revolution of the storage medium.

10. A non-transitory machine-readable storage medium of claim 7, further comprising reading the adjacent tracks in raw-data mode, wherein the data for the adjacent tracks is non-return-to-zero (NRZ) data.

11. A non-transitory machine-readable storage medium of claim 7, wherein the one or more desired sectors of the desired track are read in a retry mode having a corresponding maximum global retry threshold and a corresponding maximum local retry threshold.

12. A non-transitory machine-readable storage medium of claim 7, wherein, for the method the storage medium is a shingled magnetic recorded media.