The present inventions are related to systems and methods for data processing, and more particularly to systems and methods for processing data retrieved from a storage medium.
Data storage systems often store data arranged in tracks.
b shows an existing track to track layout 100 of data on a storage medium. Of note, track to track layout 100 includes only some of the data across some of the tracks that would be expected on an existing storage medium. As shown, layout 100 includes a number of tracks 105, 110, 115, 120, 125. Each of the tracks includes a synchronization pattern 150 (i.e., sync data 1, sync data 2, sync data 3, sync data 4, sync data 5) followed by bit periods of user data 155, 160, 165, 170, 175, 180, 185, 190. The bit periods each include magnetic information corresponding to data for a given bit period. As the density of the bit periods increase, magnetic information from one bit period will interfere or be combined with magnetic information from surrounding bit periods. This includes interaction from bit periods in one track with bit periods in prior and subsequent tracks. Failure to properly account for inter-track interference results in diminished accuracy of recovered data bits.
Hence, for at least the aforementioned reasons, there exists a need in the art for advanced systems and methods for inter-track interference compensation.
The present inventions are related to systems and methods for data processing, and more particularly to systems and methods for processing data retrieved from a storage medium.
Various embodiments of the present invention provides data processing circuits that include: a data buffer, an inter-track interference response circuit, and an inter-track interference signal estimator circuit. The data buffer is operable to store a previous track data set. The inter-track interference response circuit is operable to estimate an inter-track interference response from the previous track data set based at least in part on the previous track data set and a current track data set. The inter-track interference signal estimator circuit is operable to calculate an inter-track interference from the previous track data set based at least in part on the previous track data set and the inter-track interference response from the previous track data set.
In some instances of the aforementioned embodiments, the circuit further includes an inter-track interference cancellation circuit operable to cancel the inter-track interference from the previous track data set to yield a compensated output. In various cases, the circuit is implemented as part of an integrated circuit. In one or more cases, the circuit is deployed as part of a hard disk drive. In one or more embodiments of the present invention, the inter-track interference response from the previous track data set is estimated using an adaptive feedback approach. In other embodiments, the inter-track interference response from the previous track data set is estimated using a correlation.
In one or more instances of the aforementioned embodiments, the data buffer is a first data buffer. In such instances, the circuit further includes a second data buffer operable to store a next track data set. The inter-track interference response circuit is further operable to estimate an inter-track interference response from the next track data set based at least in part on the next track data set and the current track data set, and the inter-track interference signal estimator circuit is further operable to calculate an inter-track interference from the next track data set based at least in part on the next track data set and the inter-track interference response from the next track data set. In one or more cases, the circuit further includes an inter-track interference cancellation circuit operable to cancel both the inter-track interference from the previous track data set and the inter-track interference from the next track data set to yield a compensated output. In particular instances of the aforementioned embodiments, the circuit may be deployed as part of a hard disk drive including a storage medium. In some such cases, the previous track data set is derived from a first track on the storage medium that is adjacent to a second track from which the current track data set is derived, and the next track data set is derived from a third track on the storage medium that is adjacent to the second track.
Other embodiments of the present invention provide methods for cancelling inter-track interference. The methods include: receiving a data set derived from a current track on a storage medium; accessing a previous track data set from a storage medium, where the previous track data set was derived from a previous track on the storage medium; calculating an estimated inter-track interference response from the previous track data set based at least in part on the previous track data set and the current track data set; calculating an inter-track interference from the previous track data set based at least in part on the previous track data set and the inter-track interference response from the previous track data set; and cancelling the inter-track interference from the previous track data set to yield a compensated output.
In some instances of the aforementioned embodiments, the methods further include: accessing a next track data set from a storage medium, where the next track data set was derived from a next track on the storage medium; calculating an estimated inter-track interference response from the next track data set based at least in part on the next track data set and the current track data set; calculating an inter-track interference from the next track data set based at least in part on the next track data set and the inter-track interference response from the next track data set; and cancelling the inter-track interference from the next track data set to yield the compensated output.
Yet other embodiments of the present invention provide storage devices that include: a storage medium, a read/write head assembly disposed in relation to the storage medium, and a read channel circuit. The read channel circuit is operable to receive an information set from the storage medium via the read/write head assembly, and includes: a front end circuit, a data buffer, an inter-track interference response circuit, and an inter-track interference signal estimator circuit. The front end circuit is operable to convert the information set to a current track data set. The data buffer stores a previous track data set. The inter-track interference response circuit is operable to estimate an inter-track interference response from the previous track data set based at least in part on the previous track data set and a current track data set. The inter-track interference signal estimator circuit is operable to calculate an inter-track interference from the previous track data set based at least in part on the previous track data set and the inter-track interference response from the previous track data set.
This summary provides only a general outline of some embodiments of the invention. Many other objects, features, advantages and other embodiments of the invention will become more fully apparent from the following detailed description, the appended claims and the accompanying drawings.
A further understanding of the various embodiments of the present invention may be realized by reference to the figures which are described in remaining portions of the specification. In the figures, like reference numerals are used throughout several figures to refer to similar components. In some instances, a sub-label consisting of a lower case letter is associated with a reference numeral to denote one of multiple similar components. When reference is made to a reference numeral without specification to an existing sub-label, it is intended to refer to all such multiple similar components.
a depicts an existing storage medium including servo data;
b depicts an existing track to track layout of data on a storage medium;
a-2c depict example track to track layouts that may be operated on in accordance with different embodiments of the present invention;
The present inventions are related to systems and methods for data processing, and more particularly to systems and methods for processing data retrieved from a storage medium.
In a storage system where bit period density has increased to the point that interference from one bit period location to another bit period location occurs, inter-track interference between bit periods in surrounding tracks may be estimated by correlating a read back signal from track being processed with hard data bits (i.e., non-return to zero data bits) from an adjacent track. This process is less complex where the sectors across tracks are radially aligned from one track to the next track, but becomes more complex where such alignment does not exist.
Various embodiments of the present invention provide for estimating inter-track interference where the radial alignment of bit periods (i.e., data bits) between tracks is undermined due to a non-zero phase offset between tracks and/or sector gaps. Where, for example, radial alignment is offset due to write clock frequency offset between tracks, the radial mis-alignment increases as traversal in a down-track direction continues (i.e., as the distance between the synchronization data and the particular bit period increases).
Because of the non-zero frequency offset between tracks, the actual inter-track interference compensation drifts along a time axis as data is processed from the beginning of a servo wedge to the end of a servo wedge. Consequently, direct correlation of a read back signal from track being processed with hard data from an adjacent track does not yield a correct inter-track interference response if the correlation is performed across an entire wedge (i.e., a user data region extending between successive servo wedges). Some embodiments of the present invention that operate in such a non-zero phase offset environment utilize a block-wise inter-track interference estimation and cancellation to account for the effect of write frequency offset (i.e., the varying phase offset between adjacent tracks).
In one or more embodiments of the present invention, the block-wise inter-track interference estimation and cancellation involves splitting data within a given wedge so that the net phase change across a block of bit periods across adjacent tracks is relatively small compared with a larger block. By maintaining the net phase change small, the use of direct correlation of adjacent bit periods may be used within the sub-block region. In some instances, the block size is on the order of five thousand (5000) bit periods.
Based on the relative shift of the estimated inter-track interference response from one block to another, a shifting strategy can be incorporated into the correlation process to account for the frequency offset. By selecting a block size that is relatively small when compared with, for example, entire tracks or wedges, the overall phase shift within the selected block can be sufficiently small that interpolation and other more expensive methods are not required to account for the varying phase shifts. Block size depends on the frequency offset, larger sub-block sizes can be used where the frequency offset between adjacent tracks is small. In some cases, methods to estimate phase offsets caused by jitter in the write and read (e.g., the assertion of write gates and read gates) may be used in conjunction with the aforementioned processes for inter-track interference estimation and compensation.
Turning to
Shingled writing (writing over one selected track and an adjacent track, followed by re-writing the region on the adjacent track during a subsequent track write) of the tracks begins by writing track N−2. During this write, magnetic information corresponding to the write of track N−2 is also written to track N−1. When track N−1 is written the previously written magnetic information is overwritten except at the locations of gap 252 and gap 258 where the previously written magnetic information corresponding to track N−2 was written. Similarly, when writing track N−1, the magnetic information corresponding to the write of track N−1 is also written to track N. When track N is written, the previously written magnetic information is overwritten except at the locations of gap 242 and gap 248 where the previously written magnetic information corresponding to track N−1 was written. This process continues until all of the tracks are written. As will be appreciated, most regions of a given track will include inter-track interference predictable based upon the tracks on either side of the track at issue. However, for the gap regions in the adjacent tracks, the inter-track interference will correspond to data that was written two tracks prior (e.g., for Track N, the inter-track interference corresponding to gap 252 and gap 258 will be that written in the corresponding locations in track N−2). Some embodiments of the present invention account for this distant interference.
In some embodiments of the present invention, accounting for such distant inter-track interference is rendered less complex by reading data in the same direction as it was originally written to the storage medium. Such common direction read and write operations is not required in all embodiments of the present invention, but does alleviate the need to buffer considerable data to store and re-order the data when the read is done in the opposite direction of the write. Inter-track interference caused by overlap with sector gaps in some cases is not cancelled as it is constructive in nature to the track to which the current read is directed. Inter-track interference from sector gaps from previous tracks may be canceled using the track preceding the previous track as that data can be made available. Residual inter-track interference from a subsequent track and other un-cancelled inter-track interference that remains after inter-track interference cancellation of interference from preceding tracks can be modeled as stationary zero-mean colored noise which is independent of the data from the track that is being read. In some cases, a read head offset may be optimized to minimize inter-track interference from a subsequent track. In some cases, residual inter-track interference from sector gaps as well as other components behaves like electronics noise, resulting in reducing the percentage of media noise on target track. In such cases, use of an additional noise prediction filter bank operates to reduce the impact of residual inter-track interference.
Some embodiments of the present invention address track-to-track interference related to gaps, by radially aligning any gaps.
Turning to
r
0
[t]=Σa
0
[k]h
0(t−kT),
where a0[k] represents the currently sensed bit period from the storage medium, T denotes the duration of one bit, and h0(t) represents the inter-symbol interference function (i.e., interference from adjacent symbols along the same track). The inter-track interference corresponding to the two tracks on either side of the current track in equalized output 303 (i.e., an inter-track interference from a previous track r−1(t), and an inter-track interference from a next track r1(t)) may be represented by the following equations, respectively:
r
−1(t)=Σa−1[k]h−1(t−kT+τ−1) and
r
1(t)=Σa1[k]h1(t−kT+τ1),
where h−1(t) represents the inter-track interference response from the previous track, h1(t) represents the inter-track interference response from the next track, τ−1 represents the phase delay of the track being read with respect to the previous track, and τ1 represents the phase delay of the track being read with respect to the next track. The functions h−1(•) and h1(•) are interference models based on various criteria including the relative proximity of adjacent tracks. Such models may be developed for a particular storage device or medium. Accounting for the inter-track interference, equalized output 303 (in continuous-time) may be represented by the following equation:
r(t)=r0(t)+r1(t)+r−1(t).
Thus, discrete-time version of the equalized output 303 may be represented by the following equation:
r[n]=r(nT)=Σa0[k]g0[n−k]+Σa1[k]g1[n−k]+Σa−1[k]g−1[n−k],
where g0[k]=h0(kT), g1[k]=h1(kT+τ1), and g−1[k]=h−1(kT+τ−1). Assuming {a0[n], a−1[n], a1[n]} are mutually uncorrelated streams, the expected values for the functions h−1(•) and h1(•) are defined as follows:
E[r[n]·a
−1
[n−n
−1
]]=g
−1
[n
−1
]=h
−1(n−1T+{circumflex over (τ)}−1); and
E[r[n]·a
1
[n−n
1
]]=g
−1
[n
1
]=h
1(n1T+{circumflex over (τ)}1),
respectively.
Inter-track interference compensation circuit 300 includes a buffer 310 that stores hard data bits retrieved from a previous track (i.e., a track located on a first side of the track being processed), and a buffer 315 that stores hard data bits retrieved from a next track (i.e., a track located on a second side of the track being processed). These hard bits may be stored after a prior processing of data sensed from the respective tracks (i.e., the previous track and the next track). The data from buffer 310 is provided as a data output 312 and is denoted as a−1[n], where n indicates the bit position within the track. The data from buffer 315 is provided as a data output 314 and is denoted as a1[n], where n indicates the bit position within the track. Data input 312 and data input 314 are provided to adaptive inter-track interference response estimation circuit 320 and an inter-track interference estimator circuit 325.
Latency circuit 335 delays equalized output 303 in time to match the latency involved in calculating inter-track interference responses by inter-track interference estimator circuit 320 and in calculating inter-track interference by inter-track interference estimator circuit 325. The delayed signals are provided as a delayed output 337 to an inter-track interference cancellation circuit 330.
Adaptive inter-track interference response estimation circuit 320 calculates an estimated inter-track interference response from the previous track (ĝ−1[k,n+1]) and provides it as a previous track interference output 322. Previous track interference response 322 is calculated in accordance with the following equation:
ĝ
−1
[k,n+1]=ĝ−1[k,n]+μ−1a−1[n−k]·[r[n]−{tilde over (r)}−1[n]]),
where {tilde over (r)}−1[n] is the inter-track interference from a previous track provided as an output 362 to a summation circuit 360, and corresponds to the following equation:
The value of [r[n]−{tilde over (r)}−1[n]] is provided as an output 364 from summation circuit 360, and a−1[n−k] is the preceding hard decision from buffer 310. Similarly, adaptive inter-track interference response circuit 320 calculates an estimated inter-track interference response from the next track (ĝ1[k,n+1]) and provides it as a next track interference response 324.
ĝ
1
[k,n+1]=ĝ1[k,n]+μ1a1[n−k]·[r[n]−{tilde over (r)}1[n]])
where {tilde over (r)}1[n] is the inter-track interference from a next track provided as an output 372 to a summation circuit 370, and corresponds to the following equation:
The value of [r [n]−{tilde over (r)}1[n]] is provided as an output 374 from summation circuit 370, and a1[n−k] is the succeeding hard decision from buffer 315. In some cases, the estimated outputs may be estimated using a correlation approach, rather than by direct computation as discussed below in relation to
Next track interference response 324 and previous track interference response 322 are provided to inter-track interference estimator circuit 325. Inter-track interference estimator circuit 325 estimates the inter-track interference from the previous track ({{circumflex over (r)}−1[n]}) and provides it as a previous track interference output 327. Previous track interference output 327 is estimated (i.e., calculated) in accordance with the following equation:
{circumflex over (r)}−1[n]=Σa−1[n−k]ĝ−1[k], across the bit periods for the track. Similarly, inter-track interference estimator circuit 325 estimates the inter-track interference from the next track ({{circumflex over (r)}1[n]}) for the bit periods and provides it as a next track interference output 329. Next track interference output 329 is estimated (i.e., calculated) in accordance with the following equation:
{circumflex over (r)}1[n]=Σa1[n−k]ĝ1[k], across the bit periods included in the track.
Next track interference output 329 and previous track interference output 327 are provided to inter-track interference cancellation circuit 330. Inter-track interference cancellation circuit 330 subtracts the inter-track interference signals from the delayed output to yield an inter-track interference compensated output 332 ({{circumflex over (r)}0[n]}), across the bit periods included in the track. Inter-track interference compensated output 332 is calculated in accordance with the following equation:
{circumflex over (r)}0[n]=r[n]−{circumflex over (r)}1[n]−{circumflex over (r)}−1[n], across the bit periods included in the track. It should be noted that while the approach discussed in relation to inter-track interference compensation circuit 300 cancels inter-track interference from both a previous and a next track, the approach may be simplified to cancel inter-track interference from only one of the previous track or the next track. In one case, single sided inter-track interference compensation may be used for real time (e.g., while a storage device is being accessed) operation of the circuit, while double sided inter-track interference compensation may be used for off time (e.g., while an attempt to recover data that was not recoverable in real time is performed) operation of the circuit.
Turning to
A read/write head assembly is positioned relative to the selected track and it is determined whether the servo wedge data has been identified (block 410). Once the servo wedge data has been found and processed (block 410), data is read from the selected track and stored as current read data to a current read data buffer (bock 415). Inter-track interference cancellation using an adaptive inter-track interference response estimation circuit is performed on the current read data using the preceding track inter-track interference buffer and the succeeding track inter-track interference buffer to yield inter-track interference canceled data (block 435). Such inter-track interference cancellation may be done consistent with that described above in relation to
As the hard data corresponding to the selected track become available it is determined whether the bits correspond to a gap in the current track (block 445). Thus, using the example of
The next bit period is then selected (block 455). It is determined if the end of the wedge (i.e., the region between servo data wedges) has been reached (block 460). Where the end of the wedge has not yet been reached (block 460), the processes of blocks 415-460 is repeated for the next bit period. Alternatively, where the end of the wedge has been reached (block 460), it is determined whether the end of the track has been reached (block 465). Where the end of the track has not yet been reached (block 465), the processes of blocks 410-465 are repeated for the remaining portion of the current track. Otherwise, the next track is selected and the processes of blocks 410-465 are repeated for the next track. By following this approach, the preceding track inter-track interference buffer is prepared for processing the next track when a consecutive track read is followed by including data from a track preceding the preceding track that corresponds to gaps in the preceding track.
Turning to
r
0
[t]=Σa
0
[k]h
0(t−kT),
where a0[k] represents the currently sensed bit period from the storage medium, T denotes the duration of one bit, and h0(t) represents the inter-symbol interference function (i.e., interference from adjacent symbols along the same track). The inter-track interference corresponding to the two tracks on either side of the current track in equalized output 503 (i.e., an inter-track interference from a previous track r−1(t), and an inter-track interference from a next track r1(t)) may be represented by the following equations, respectively:
r
−1(t)=Σa−1[k]h−1(t−kT+τ−1) and
r
1(t)=Σa1[k]h1(t−kT+τ1),
where h−1(t) represents the inter-track interference response from the previous track, h1(t) represents the inter-track interference response from the next track, τ−1 represents the phase delay of the track being read with respect to the previous track, and τ1 represents the phase delay of the track being read with respect to the next track. The functions h−1(•) and h1(•) are interference models based on various criteria including the relative proximity of adjacent tracks. Such models may be developed for a particular storage device or medium. Accounting for the inter-track interference, equalized output 503 (in continuous-time) may be represented by the following equation:
r(t)=r0(t)+r1(t)+r−1(t).
Thus, discrete-time version of the equalized output 503 may be represented by the following equation:
r[r]=r(nT)=Σa0[k]g0[n−k]+Σa1[k]g1[n−k]+Σa−1[k]g−1[n−k],
where g0[k]=h0(kT), g1[k]=h1(kT+τ1), and g−1[k]=h−1(kT+τ−1). Assuming {a0[n], a−1[n], a1[n]} are mutually uncorrelated bit streams, the expected values for the functions h−1(•) and h1(•) are defined as follows:
E[r[n]·a
−1
[n−n
−1
]]=g
−1
[n
−1
]=h
−1(n−1T+{circumflex over (τ)}−1); and
E[r[n]·a
1
[n−n
1
]]=g
−1
[n
1
]=h
1(n1T+{circumflex over (τ)}1),
respectively.
Latency circuit 535 delays equalized output 503 in time to match the latency involved in calculating inter-track interference responses by inter-track interference estimator circuit 520 and in calculating inter-track interference by inter-track interference estimator circuit 525. The delayed signals are provided as a delayed output 537 to an inter-track interference cancellation circuit 530.
Inter-track interference compensation circuit 500 includes a buffer 510 that stores hard data bits retrieved from a previous track (i.e., a track located on a first side of the track being processed), and a buffer 515 that stores hard data bits retrieved from a next track (i.e., a track located on a second side of the track being processed). These hard bits may be stored after a prior processing of data sensed from the respective tracks (i.e., the previous track and the next track). The data from buffer 510 is provided as a data output 512 and is denoted as a−1[n], where n indicates the bit position within the track. The data from buffer 515 is provided as a data output 514 and is denoted as a1[n], where n indicates the bit position within the track. Data input 512 and data input 514 are provided to correlation based inter-track interference response circuit 520 and an inter-track interference estimator circuit 525.
Correlation based inter-track interference response circuit 520 calculates an estimated inter-track interference response from the previous track (ĝ−1[k]) and provides it as a previous track interference output 522. Previous track interference response 522 satisfies the following equation:
where N−1 is the number of data bits available from a previous track, and a−1[n] are corresponding bits from a previous track. Similarly, correlation based inter-track interference response circuit 520 provides an estimated inter-track interference response from the next track (ĝ1[k]) that satisfies the following equation:
where N1 is the number of data bits available from a next track, and a1[n] are corresponding bits from a next track.
Next track interference response 524 and previous track interference response 522 are provided to inter-track interference estimator circuit 525. Inter-track interference estimator circuit 525 estimates the inter-track interference from the previous track ({r−1[n]}) for the track and provides it as a previous track interference output 527. Previous track interference output 527 is estimated (i.e., calculated) in accordance with the following equation:
{circumflex over (r)}−1[n]=Σa−1[n−k]ĝ−1[k], across the bit periods for the track. Similarly, inter-track interference estimator circuit 525 estimates the inter-track interference from the next track ({{circumflex over (r)}1[n]}) for the bit periods and provides it as a next track interference output 529. Next track interference output 529 is estimated (i.e., calculated) in accordance with the following equation:
{circumflex over (r)}−1[n]=Σa1[n−k]ĝ1[k], across the bit periods included in the track.
Next track interference output 529 and previous track interference output 527 are provided to inter-track interference cancellation circuit 530. Inter-track interference cancellation circuit 330 subtracts the inter-track interference signals from the delayed output to yield an inter-track interference compensated output 532 ({{circumflex over (r)}0[n]}), across the bit periods included in the track. Inter-track interference compensated output 532 is calculated in accordance with the following equation:
{circumflex over (r)}0[n]=r[n]−{circumflex over (r)}1[n]−{circumflex over (r)}−1[n], across the bit periods included in the track. It should be noted that while the approach discussed in relation to inter-track interference compensation circuit 500 cancels inter-track interference from both a previous and a next track, the that approach may be simplified to cancel inter-track interference from only one of the previous track or the next track. In one case, single sided inter-track interference compensation may be used for real time (e.g., while a storage device is being accessed) operation of the circuit, while double sided inter-track interference compensation may be used for off time (e.g., while an attempt to recover data that was not recoverable in real time is performed) operation of the circuit.
Turning to
A read/write head assembly is positioned relative to the selected track and it is determined whether the servo wedge data has been identified (block 610). Once the servo wedge data has been found and processed (block 610), data is read from the selected track and stored as current read data to a current read data buffer (bock 615). Inter-track interference cancellation using a correlation based inter-track interference response estimation circuit is performed on the current read data using the preceding track inter-track interference buffer and the succeeding track inter-track interference buffer to yield inter-track interference canceled data (block 635). Such inter-track interference cancellation may be done consistent with that described above in relation to
As the hard data corresponding to the selected track become available it is determined whether the bits correspond to a gap in the current track (block 645). Thus, using the example of
The next bit period is then selected (block 655). It is determined if the end of the wedge (i.e., the region between servo data wedges) has been reached (block 660). Where the end of the wedge has not yet been reached (block 660), the processes of blocks 615-660 is repeated for the next bit period. Alternatively, where the end of the wedge has been reached (block 660), it is determined whether the end of the track has been reached (block 665). Where the end of the track has not yet been reached (block 665), the processes of blocks 610-665 are repeated for the remaining portion of the current track. Otherwise, the next track is selected and the processes of blocks 610-665 are repeated for the next track. By following this approach, the preceding track inter-track interference buffer is prepared for processing the next track when a consecutive track read is followed by including data from a track preceding the preceding track that corresponds to gaps in the preceding track.
Turning to
r
0
[t]=Σa
0
[k]h
0(t−kT),
where a0[k] represents the currently sensed bit period from the storage medium, T denotes the duration of one bit, and h0(t) represents the inter-symbol interference function (i.e., interference from adjacent symbols along the same track). The inter-track interference corresponding to the two tracks on either side of the current track in equalized output 703 (i.e., an inter-track interference from a previous track r−1(t), and an inter-track interference from a next track r1(t)) may be represented by the following equations, respectively:
r
−1(t)=Σa−1[k]h−1(t−kT+τ−1) and
r
1(t)=Σa1[k]h1(t−kT+τ1),
where h−1(t) represents the inter-track interference response from the previous track, h1(t) represents the inter-track interference response from the next track, τ−1 represents the phase delay of the track being read with respect to the previous track, and c represents the phase delay of the track being read with respect to the next track. The functions h−1(•) and h1(•) are interference models based on various criteria including the relative proximity of adjacent tracks. Such models may be developed for a particular storage device or medium. Accounting for the inter-track interference, equalized output 703 (in continuous-time) may be represented by the following equation:
r(t)=r0(t)+r1(t)+r−1(t).
Thus, discrete-time version of the equalized output 703 may be represented by the following equation:
r[n]=r(nT)=Σa0[k]g0[n−k]+Σa1[k]g1[n−k]+Σa−1[k]g−1[n−k],
where g0[k]=h0(kT), g1[k]=h1(kT+τ1), and g−1[k]=h−1(kT+τ1).
Non-zero frequency offset inter-track interference compensation circuit 700 includes a buffer 710 that stores hard data bits retrieved from a previous track (i.e., a track located on a first side of the track being processed), and a buffer 715 that stores hard data bits retrieved from a next track (i.e., a track located on a second side of the track being processed). These hard bits may be stored after a prior processing of data sensed from the respective tracks (i.e., the previous track and the next track). The data from buffer 710 is provided as a data output 712 and is denoted as a−1[n], where n indicates the bit position within the track. The data from buffer 715 is provided as a data output 714 and is denoted as a1[n], where n indicates the bit position within the track. Data input 712 and data input 714 are provided to a block-wise estimation of inter-track interference response circuit 720 and an inter-track interference estimator circuit 725.
A block selector circuit 705 identifies a block 707 of bit periods {rm[n]} over which inter-track interference compensation is to be performed, where m indicates the particular block that is selected and n indicates a given bit period along a track within the block. In some cases, the block size may be indicated as a letter i−1. In such cases, the value of n would extend from the first bit period in the selected block to the first bit period plus i. Thus, for example, if the first bit period in the selected block is j, the block would include r[n], a1[n] and a−1[n] where n extends between j and i+j−1. The size of the block selected may be predetermined and based upon a certain maximum frequency error and/or jitter expected between adjacent tracks, or may be variable and calculated based upon the estimated phase offset across a given number of sequential bit periods. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of block sizes that may be used in relation to different embodiments of the present invention. Block 707 is provided to block-wise estimation of inter-track interference response circuit 720, and to a block latency circuit 735.
Block latency circuit 735 delays block 707 in time to match the latency involved in calculating inter-track interference responses by block-wise estimation of inter-track interference response circuit 720 and in calculating inter-track interference by inter-track interference estimator circuit 725. The delayed signals are provided as a delayed output 737 to an inter-track interference cancellation circuit 730.
A block-to-block shift estimation of inter-track interference response circuit 740 calculates a phase delay 742 of the track being read with respect to the previous track, and a phase delay 744 of the track being read with respect to the next track. This calculation is done by determining the indices of the maximum tap coefficients in the estimated inter-track interference responses that was used in generating previous track interference output 727 and next track interference output 729. Where the maximum filter tap of the inter-track interference response used in calculating a respective one of previous track interference output 727 is one of the taps to the right of center or the left of center in block-wise estimation of inter-track interference response circuit 720, then phase delay 742 is selected to cause a shift of the maximum tap back toward the center of the filter. Similarly, where the maximum filter tap of the inter-track interference response used in calculating a respective one of next track interference output 729 is one of the taps to the right of center or the left of center in block-wise estimation of inter-track interference response circuit 720, then phase delay 744 is selected to cause a shift of the maximum tap back toward the center of the filter. Phase delay 742 and phase delay 744 are provided along with data output 712, data output 714 and block 707 to block-wise estimation of inter-track interference response circuit 720.
Block-wise estimation of inter-track interference response circuit 720 calculates an estimated inter-track interference response from the previous track (ĝ−1,m[k]) and provides it as a previous track interference output 722. Previous track interference response 722 satisfies the following equation:
where δ−1,m denotes the shift in correlator reference required for centering the inter-track interference response from the previous track ĝ−1,m[k], Nb denotes the block-size, and k−1,m−1 denotes index of the maximum tap coefficient in ĝ−1,m−1[k]. In some cases, the estimated outputs may be estimated using an adaptive approach, rather than by correlation computation. Similarly, block-wise estimation of inter-track interference response circuit 720 calculates an estimated inter-track interference response from the next track (ĝ1,m[k]) and provides it as a next track interference response 724. Next track interference response 724 is calculated in accordance with the following equation:
where δ1,m denotes the shift in correlator reference required for centering the inter-track interference response from the previous track ĝ1,m[k] and k1,m−1 denotes index of the maximum tap coefficient in ĝ1,m−1[k]. Starting phase offsets δ−1,0 and δ1,0 are initialized to zero, if sectors are phase synchronized at the beginning and/or if no a priori information on phase offset is available.
Next track interference response 724 and previous track interference response 722 are provided to inter-track interference estimator circuit 725. Inter-track interference estimator circuit 725 estimates the inter-track interference from the previous track ({{circumflex over (r)}−1,m[n]}) for the block m and provides it as a previous track interference output 727. Previous track interference output 727 is estimated (i.e., calculated) in accordance with the following equation:
{circumflex over (r)}−1,m[n]=Σa−1[n+(m−1)Nb−k−δ−1,m]ĝ−1,m[k], across the bit periods included in the block m. Similarly, inter-track interference estimator circuit 725 estimates the inter-track interference from the next track ({{circumflex over (r)}1,m[n]}) for the block m and provides it as a next track interference output 729. Next track interference output 729 is estimated (i.e., calculated) in accordance with the following equation:
{circumflex over (r)}1,m[n]=Σa1[n+(m−1)Nb−k−δ1,m]ĝ1,m[k], across the bit periods included in the block m.
Next track interference output 729 and previous track interference output 727 are provided to inter-track interference cancellation circuit 730 along with delayed output 737. Inter-track interference cancellation circuit 730 subtracts the inter-track interference signals from the delayed output to yield an inter-track interference compensated output 732 ({{circumflex over (r)}0,m[n]}), across the bit periods included in the block m. Inter-track interference compensated output 732 is calculated in accordance with the following equation:
{circumflex over (r)}0,m[n]=rm[n]−{circumflex over (r)}1,m[n]−{circumflex over (r)}−1,m[n], across the bit periods included in the block m.
As just some of many advantages achievable through use of a block-wise inter-track interference estimation and cancellation circuitry: inter-track interference can be compensated using less circuitry than may be required if a digital phase locked loop and interpolation techniques are used to compensate the frequency offset between write clocks on adjacent tracks. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of other advantages that may be achieved in accordance with various embodiments of the present invention. Also, it should be noted that while the preceding discussion applies inter-track interference processing to the output of an equalizer, such inter-track interference may also be applied to other data outputs. For example, such inter-track interference processing may be applied to the output of the analog to digital converter.
r
0
[t]=Σa
0
[k]h
0(t−kT),
where a0[k] represents the currently sensed bit period from the storage medium, T denotes the duration of one bit, and h0(t) represents the inter-symbol interference function (i.e., interference from adjacent symbols along the same track). The inter-track interference corresponding to the two tracks on either side of the current track in equalized output 803 (i.e., an inter-track interference from a previous track r−1(t), and an inter-track interference from a next track r1(t)) may be represented by the following equations, respectively:
r
−1(t)=Σa−1[k]h−1(t−kT+τ−1) and
r
1(t)=Σa1[k]h1(t−kT+τ1),
where h−1(t) represents the inter-track interference response from the previous track, h1(t) represents the inter-track interference response from the next track, τ−1 represents the phase delay of the track being read with respect to the previous track, and τ1 represents the phase delay of the track being read with respect to the next track. The functions h−1(•) and h1(•) are interference models based on various criteria including the relative proximity of adjacent tracks. Such models may be developed for a particular storage device or medium. Accounting for the inter-track interference, equalized output 803 (in continuous-time) may be represented by the following equation:
r(t)=r0(t)+r1(t)+r−1(t).
Thus, discrete-time version of the equalized output 803 may be represented by the following equation:
r[n]=r(nT)=Σa0[k]g0[n−k]+Σa1[k]g1[n−k]+Σa−1[k]g−1[n−k],
where g0[k]=h0(kT), g1[k]=h1(kT+τ1), and g−1[k]=h−1(kT+τ−1).
Gap compensating inter-track interference compensation circuit 800 includes a buffer 810 that stores hard data bits retrieved from a previous track (i.e., a track located on a first side of the track being processed) modified by hard bits corresponding to a track preceding the previous track in the gaps of the previous track, and a buffer 815 that stores hard data bits retrieved from a next track (i.e., a track located on a second side of the track being processed). These hard bits may be stored after a prior processing of data sensed from the respective tracks (i.e., the previous track and the next track). The data from buffer 810 is provided as a data output 812 and is denoted as a−1[n], where n indicates the bit position within the track. The data from buffer 815 is provided as a data output 814 and is denoted as a1[n], where n indicates the bit position within the track. Data input 812 and data input 814 are provided to an inter-track interference response estimation circuit 820 and an inter-track interference estimator circuit 825. In addition, equalized output 803 is provided to a latency circuit 835.
Latency circuit 835 delays equalized output 803 in time to match the latency involved in calculating inter-track interference responses by inter-track interference estimator circuit 820 and in calculating inter-track interference by inter-track interference estimator circuit 825. The delayed signals are provided as a delayed output 837 to an inter-track interference cancellation circuit 830.
Inter-track interference response estimator circuit 820 calculates an estimated inter-track interference response from the previous track (ĝ−1[k]) and provides it as a previous track interference output 822. Previous track interference response 822 satisfies the following equation:
where N−1 is the number of data bits available from a previous track, and a−1[n] are corresponding bits from a previous track. In some cases, the estimated outputs may be estimated using an adaptation approach, rather than by correlation computation. Similarly, the inter-track interference response circuit 820 provides an estimated inter-track interference response from the next track (ĝ1[k]) that satisfies the following equation:
where N1 is the number of data bits available from a next track, and a1[n−k] are corresponding bits from a next track.
Next track interference response 824 and previous track interference response 822 are provided to inter-track interference estimator circuit 825. Inter-track interference estimator circuit 825 estimates the inter-track interference from the previous track ({circumflex over (r)}−1[n]) and provides it as a previous track interference output 827. Previous track interference output 827 is estimated (i.e., calculated) in accordance with the following equation:
{circumflex over (r)}
−1
[n]=Σa
−1
[n−k]ĝ
−1
[k].
Similarly, inter-track interference estimator circuit 825 estimates the inter-track interference from the next track ({circumflex over (r)}1[n]) for the block m and provides it as a next track interference output 829. Next track interference output 829 is estimated (i.e., calculated) in accordance with the following equation:
{circumflex over (r)}
1
[n]=Σa
1
[n−k]ĝ
1
[k].
Next track interference output 829 and previous track interference output 827 are provided to inter-track interference cancellation circuit 830 along with delayed output 837. Inter-track interference cancellation circuit 830 subtracts the inter-track interference signals from the delayed output to yield an inter-track interference compensated output 832 ({circumflex over (r)}0[n]), across the bit periods included in the block m. Inter-track interference compensated output 832 is calculated in accordance with the following equation:
{circumflex over (r)}
0
[n]=r[n]−{circumflex over (r)}
1
[n]−{circumflex over (r)}
−1
[n].
A gap determination and hard data load circuit 890 receives hard data 896 from the current track being processed, and loads it into previous track buffer 810. Such loading is prevented when hard data 896 corresponds to a gap in the current track. The existence of a gap in the current track is determined based on an end of sector 892 and a start of sector 894. Thus, previous track buffer 810 is updated with hard data from the current track, except for when the current track has a gap in which case the data in previous track buffer 810 is not overwritten, leaving the data from the prior track. Thus, as the next track is read and processed, the data in previous track buffer 810 is the data from the previous track for regions where there is no gap, and data from the second previous track for gap regions of the previous track. As a specific example using
As just some of many advantages achievable through use of a gap compensating inter-track interference cancellation circuit, inter-track interference can be compensated in a shingle writing situation where information from multiple preceding tracks are accommodated in the cancellation. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of other advantages that may be achieved in accordance with various embodiments of the present invention.
Turning to
Turning to
A read/write head assembly is positioned relative to the selected track and it is determined whether the servo wedge data has been identified (block 1010). Once the servo wedge data has been found and processed (block 1010), data is read from the selected track and stored as current read data to a current read data buffer (bock 1015). Inter-track interference cancellation is performed on the current read data using the preceding track inter-track interference buffer and the succeeding track inter-track interference buffer to yield inter-track interference canceled data (block 1035). This inter-track interference canceled data is provided to a downstream data processing circuit to yield hard data corresponding to the selected track (block 1040). Such downstream processing may be any processing circuit known in the art. In one particular embodiment of the present invention, the downstream processing may include performing one or more iterations of a combination of a maximum a posteriori data detection process and a low density parity check decoding process. Based on the disclosure provided herein, one of ordinary skill in the art will recognize various processing circuits and approaches that may be used in accordance with different embodiments of the present invention to yield hard data from the inter-track interference canceled data.
As the hard data corresponding to the selected track become available it is determined whether the bits correspond to a gap in the current track (block 1045). Thus, using the example of
The next bit period is then selected (block 1055). It is determined if the end of the wedge (i.e., the region between servo data wedges) has been reached (block 1060). Where the end of the wedge has not yet been reached (block 1060), the processes of blocks 1015-1060 is repeated for the next bit period. Alternatively, where the end of the wedge has been reached (block 1060), it is determined whether the end of the track has been reached (block 1065). Where the end of the track has not yet been reached (block 1065), the processes of blocks 1010-1065 are repeated for the remaining portion of the current track. Otherwise, the next track is selected and the processes of blocks 1010-1065 are repeated for the next track. By following this approach, the preceding track inter-track interference buffer is prepared for processing the next track when a consecutive track read is followed by including data from a track preceding the preceding track that corresponds to gaps in the preceding track.
Turning to
r
0
[t]=Σa
0
[k]h
0(t−kT),
where a0[k] represents the currently sensed bit period from the storage medium, T denotes the duration of one bit, and h0(t) represents the inter-symbol interference function (i.e., interference from adjacent symbols along the same track). The inter-track interference corresponding to the two tracks on either side of the current track in equalized output 1103 (i.e., an inter-track interference from a previous track r−1(t), and an inter-track interference from a next track r1(t)) may be represented by the following equations, respectively:
r
−1(t)=Σa−1[k]h−1(t−kT+τ−1) and
r
1(t)=Σa1[k]h1(t−kT+τ1),
where h−1(t) represents the inter-track interference response from the previous track, h1(t) represents the inter-track interference response from the next track, τ−1 represents the phase delay of the track being read with respect to the previous track, and τ1 represents the phase delay of the track being read with respect to the next track. The functions h−1(•) and h1(•) are interference models based on various criteria including the relative proximity of adjacent tracks. Such models may be developed for a particular storage device or medium. Accounting for the inter-track interference, equalized output 1103 (in continuous-time) may be represented by the following equation:
r(t)=r0(t)+r1(t)+r−1(t).
Thus, discrete-time version of the equalized output 1103 may be represented by the following equation:
r[n]=r(nT)=Σa0[k]g0[n−k]+Σa1[k]g1[n−k]+Σa−1[k]g−1[n−k],
where g0[k]=h0(kT), g1[k]=h1(kT+τ1), and g−1[k]=h−1(kT+τ−1).
Combined gap compensating and frequency offset compensating inter-track interference compensation circuit 1100 includes a buffer 1110 that stores hard data bits retrieved from a previous track (i.e., a track located on a first side of the track being processed), and a buffer 1115 that stores hard data bits retrieved from a next track (i.e., a track located on a second side of the track being processed). These hard bits may be stored after a prior processing of data sensed from the respective tracks (i.e., the previous track and the next track). The data from buffer 1110 is provided as a data output 1112 and is denoted as a−1[n], where n indicates the bit position within the track. The data from buffer 1115 is provided as a data output 1114 and is denoted as a1[n], where n indicates the bit position within the track. Data input 1112 and data input 1114 are provided to a block-wise estimation of inter-track interference response circuit 1120 and an inter-track interference estimator circuit 1125.
A block selector circuit 1105 identifies a block 1107 of bit periods {rm[n]} over which inter-track interference compensation is to be performed, where m indicates the particular block that is selected and n indicates a given bit period along a track within the block. In some cases, the block size may be indicated as a letter i. In such cases, the value of n would extend from the first bit period in the selected block to the first bit period plus i−1. Thus, for example, if the first bit period in the selected block is j, the block would include r[n], a1[n] and a−1[n] where n extends between j and i+j−1. The size of the block selected may be predetermined and based upon a certain maximum frequency error and/or jitter expected between adjacent tracks, or may be variable and calculated based upon the estimated phase offset across a given number of sequential bit periods. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of block sizes that may be used in relation to different embodiments of the present invention. Block 1107 is provided to block-wise estimation of inter-track interference response circuit 1120, and to a block latency circuit 1135.
Block latency circuit 1135 delays block 1107 in time to match the latency involved in calculating inter-track interference responses by block-wise estimation of inter-track interference response circuit 1120 and in calculating inter-track interference by inter-track interference estimator circuit 1125. The delayed signals are provided as a delayed output 1137 to an inter-track interference cancellation circuit 1130.
A block-to-block shift estimation of inter-track interference response circuit 1140 calculates a phase delay 1142 of the track being read with respect to the previous track, and a phase delay 1144 of the track being read with respect to the next track. This calculation is done by determining the indices of the maximum tap coefficients in the estimated inter-track interference responses that was used in generating previous track interference output 1127 and next track interference output 1129. Where the maximum filter tap of the inter-track interference response used in calculating a respective one of previous track interference output 1127 is one of the taps to the right of center or the left of center in block-wise estimation of inter-track interference response circuit 1120, then phase delay 1142 is selected to cause a shift of the maximum tap back toward the center of the filter. Similarly, where the maximum filter tap of the inter-track interference response used in calculating a respective one of next track interference output 1129 is one of the taps to the right of center or the left of center in block-wise estimation of inter-track interference response circuit 1120, then phase delay 1144 is selected to cause a shift of the maximum tap back toward the center of the filter. Phase delay 1142 and phase delay 1144 are provided along with data output 1112, data output 1114 and block 1107 to block-wise estimation of inter-track interference response circuit 1120.
Block-wise estimation of inter-track interference response circuit 1120 calculates an estimated inter-track interference response from the previous track (ĝ−1,m[k]) and provides it as a previous track interference output 1122. Previous track interference response 1122 satisfies the following equation:
where δ−1,m denotes the shift in correlator reference required for centering the inter-track interference response from the previous track ĝ−1,m[k], Nb denotes the block-size, and k−1,m−1 denotes index of the maximum tap coefficient in ĝ−1,m−1[k]. In some cases, the estimated outputs may be estimated using an adaptive approach, rather than by correlation computation. Similarly, block-wise estimation of inter-track interference response circuit 1120 calculates an estimated inter-track interference response from the next track (ĝ1,m[k]) and provides it as a next track interference response 1124. Next track interference response 1124 is calculated in accordance with the following equation:
where δ1,m denotes the shift in correlator reference required for centering the inter-track interference response from the previous track ĝ1,m[k] and k1,m−1 denotes index of the maximum tap coefficient in ĝ1,m−1[k]. Starting phase offsets δ−1,0 and δ1,0 are initialized to zero, if sectors are phase synchronized at the beginning and/or if no a priori information on phase offset is available.
Next track interference response 1124 and previous track interference response 1122 are provided to inter-track interference estimator circuit 1125. Inter-track interference estimator circuit 1125 estimates the inter-track interference from the previous track ({{circumflex over (r)}−1,m[n]}) for the block m and provides it as a previous track interference output 1127. Previous track interference output 1127 is estimated (i.e., calculated) in accordance with the following equation:
{circumflex over (r)}−1,m[n]=Σa−1[n+(m−1)Nb−δ−1,m−k]ĝ−1,m[k], across the bit periods included in the block m. Similarly, inter-track interference estimator circuit 325 estimates the inter-track interference from the next track ({{circumflex over (r)}1,m[n]}) for the block m and provides it as a next track interference output 1129. Next track interference output 1129 is estimated (i.e., calculated) in accordance with the following equation:
{circumflex over (r)}1,m[n]=Σa1[n+(m−1)Nb−δ1,m−k]ĝ1,m[k], across the bit periods included in the block m.
Next track interference output 1129 and previous track interference output 1127 are provided to inter-track interference cancellation circuit 1130 along with delayed output 1137. Inter-track interference cancellation circuit 1130 subtracts the inter-track interference signals from the delayed output to yield an inter-track interference compensated output 1132 ({{circumflex over (r)}0,m[n]}), across the bit periods included in the block m. Inter-track interference compensated output 1132 is calculated in accordance with the following equation:
{circumflex over (r)}0,m[n]=rm[n]−{circumflex over (r)}1,m[n]−{circumflex over (r)}1,m[n], across the bit periods included in the block m.
A gap determination and hard data load circuit 1190 receives hard data 1196 from the current track being processed, and loads it into previous track buffer 1110. Such loading is prevented when hard data 1196 corresponds to a gap in the current track. The existence of a gap in the current track is determined based on an end of sector 1192 and a start of sector 1194. Thus, previous track buffer 1110 is updated with hard data from the current track, except for when the current track has a gap in which case the data in previous track buffer 1110 is not overwritten, leaving the data from the prior track. Thus, as the next track is read and processed, the data in previous track buffer 1110 is the data from the previous track for regions where there is no gap, and data from the second previous track for gap regions of the previous track. As a specific example using
As just some of many advantages achievable through use of gap compensating and frequency offset compensating a block-wise inter-track interference estimation and cancellation circuitry: inter-track interference can be compensated using less circuitry than may be required if a digital phase locked loop and interpolation techniques are used to compensate; and inter-track interference can be compensated in a shingled writing situation where information from multiple preceding tracks are accommodated in the cancellation. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of other advantages that may be achieved in accordance with various embodiments of the present invention.
Turning to
In addition, the size of the blocks to be treated together during block-wise inter-track interference compensation is selected (block 1207). The size of the blocks selected may be predetermined and based upon a certain maximum frequency error and/or jitter expected between adjacent tracks, or may be variable and calculated based upon the estimated phase offset across a given number of sequential bit periods. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of block sizes that may be used in relation to different embodiments of the present invention.
A read/write head assembly is positioned relative to the selected track and it is determined whether the servo wedge data has been identified (block 1210). Once the servo wedge data has been found and processed (block 1210), block processing for the current block begins (block 1213). Data is read from the selected track and stored as current read data to a current read data buffer (bock 1215). Inter-track interference cancellation is performed on the current read data using the preceding track inter-track interference buffer and the succeeding track inter-track interference buffer to yield inter-track interference canceled data (block 1235). This inter-track interference canceled data is provided to a downstream data processing circuit to yield hard data corresponding to the selected track (block 1240). Such downstream processing may be any processing circuit known in the art. In one particular embodiment of the present invention, the downstream processing may include performing one or more iterations of a combination of a maximum a posteriori data detection process and a low density parity check decoding process. Based on the disclosure provided herein, one of ordinary skill in the art will recognize various processing circuits and approaches that may be used in accordance with different embodiments of the present invention to yield hard data from the inter-track interference canceled data.
As the hard data corresponding to the selected track become available it is determined whether the bits correspond to a gap in the current track (block 1245). Thus, using the example of
The next bit period is then selected (block 1255). It is then determined whether the next bit period is within the currently processing block, or is beyond the currently processing block (block 1257). Where the next bit period is within the currently processing block (block 1257), the processes of blocks 1215-1257 is repeated for the next bit period. Otherwise, where the next bit period is outside the currently processing block (block 1257), it is determined if the end of the wedge (i.e., the region between servo data wedges) has been reached (block 1260). Where the end of the wedge has not yet been reached (block 1260), the processes of blocks 1213-1260 is repeated for the next block. Alternatively, where the end of the wedge has been reached (block 1260), it is determined whether the end of the track has been reached (block 1265). Where the end of the track has not yet been reached (block 1265), the processes of blocks 1210-1265 are repeated for the remaining portion of the current track. Otherwise, the next track is selected and the processes of blocks 1210-1265 are repeated for the next track. By following this approach, the preceding track inter-track interference buffer is prepared for processing the next track when a consecutive track read is followed by including data from a track preceding the preceding track that corresponds to gaps in the preceding track.
r
0
[t]=Σa
0
[k]h
0(t−kT),
where a0[k] represents the currently sensed bit period from the storage medium, T denotes the duration of one bit, and h0(t) represents the inter-symbol interference function (i.e., interference from adjacent symbols along the same track). The inter-track interference corresponding to the two tracks on either side of the current track in equalized output 1303 (i.e., an inter-track interference from a previous track r−1(t), and an inter-track interference from a next track r1(t)) may be represented by the following equations, respectively:
r
−1(t)=Σa−1[k]h−1(t−kT+τ−1) and
r
1(t)=Σa1[k]h1(t−kT+τ1),
where h−1(t) represents the inter-track interference response from the previous track, h1(t) represents the inter-track interference response from the next track, τ−1 represents the phase delay of the track being read with respect to the previous track, and τ1 represents the phase delay of the track being read with respect to the next track. The functions h−1(•) and h1(•) are interference models based on various criteria including the relative proximity of adjacent tracks. Such models may be developed for a particular storage device or medium. Accounting for the inter-track interference, equalized output 1303 (in continuous-time) may be represented by the following equation:
r(t)=r0(t)+r1(t)+r−1(t).
Thus, discrete-time version of the equalized output 1303 may be represented by the following equation:
r[n]=r(nT)=Σa0[k]g0[n−k]+Σa1[k]g1[n−k]+Σa−1[k]g−1[n−k],
where g0[k]=h0(kT), g1[k]=h1(kT+τ1), and g−1[k]=h−1(kT+τ−1). Assuming {a0[n], a−1[n], a1[n]} are mutually uncorrelated it streams, the expected values for the functions h−1(•) and h1(•) are defined as follows:
E[r[n]·a
−1
[n−n
−1
]]=g
−1
[n
−1
]=h
−1(n−1T+{circumflex over (τ)}−1); and
E[r[n]·a
1
[n−n
1
]]=g
−1
[n
1
]=h
1(n1T+{circumflex over (τ)}1),
respectively.
Inter-track interference compensation circuit 1300 includes a buffer 1310 that stores hard data bits retrieved from a previous track (i.e., a track located on a first side of the track being processed), and a buffer 1315 that stores hard data bits retrieved from a next track (i.e., a track located on a second side of the track being processed). These hard bits may be stored after a prior processing of data sensed from the respective tracks (i.e., the previous track and the next track). The data from buffer 1310 is provided as a data output 1312 and is denoted as a−1[n], where n indicates the bit position within the track. The data from buffer 1315 is provided as a data output 1314 and is denoted as a1[n], where n indicates the bit position within the track. Data input 1312 and data input 1314 are provided to correlation based inter-track interference response circuit 1320 and an inter-track interference estimator circuit 1325.
Latency circuit 1335 delays equalized output 1303 in time to match the latency involved in calculating inter-track interference responses by inter-track interference estimator circuit 1320 and in calculating inter-track interference by inter-track interference estimator circuit 1325. The delayed signals are provided as a delayed output 1337 to an inter-track interference cancellation circuit 1330. The equalized output 1303 is also given as inputs to previous and next track sync mark reflection detector circuit 1350, and previous and next track phase alignment pre-processor circuit 1370.
Correlation based inter-track interference response circuit 1320 calculates an estimated inter-track interference response from the previous track (ĝ−1[k]) and provides it as a previous track interference output 1322. Previous track interference response 1322 satisfies the following equation:
where N−1 is the number of data bits available from a previous track, and a−1[n] are corresponding bits from a previous track. Similarly, correlation based inter-track interference response circuit 1320 provides an estimated inter-track interference response from the next track (ĝ1[k]) that satisfies the following equation:
where N1 is the number of data bits available from a next track, and a1[n] are corresponding bits from a next track.
Next track interference response 1324 and previous track interference response 1322 are provided to inter-track interference estimator circuit 1325. Inter-track interference estimator circuit 1325 estimates the inter-track interference from the previous track ({{circumflex over (r)}−1[n]}) for the track and provides it as a previous track interference output 1327. Previous track interference output 1327 is estimated (i.e., calculated) in accordance with the following equation:
{circumflex over (r)}−1[n]=Σa−1[n−k]ĝ−1[k], across the bit periods for the track. Similarly, inter-track interference estimator circuit 1325 estimates the inter-track interference from the next track ({{circumflex over (r)}1[n]}) for the bit periods and provides it as a next track interference output 1329.
Next track interference output 1329 is estimated (i.e., calculated) in accordance with the following equation:
{circumflex over (r)}1[n]=Σa1[n−k]ĝ1[k], across the bit periods included in the track.
Next track interference output 1329 and previous track interference output 1327 are provided to inter-track interference cancellation circuit 1330. Inter-track interference cancellation circuit 1330 subtracts the inter-track interference signals from the delayed output to yield an inter-track interference compensated output 1332 ({{circumflex over (r)}0[n]}), across the bit periods included in the track. Inter-track interference compensated output 1332 is calculated in accordance with the following equation:
{circumflex over (r)}0[n]=r[n]−{circumflex over (r)}1[n]−{circumflex over (r)}−1[n], across the bit periods included in the track.
Equalized output 1303, data output 1312 from previous track buffer 1310 and data output 1314 from next track buffer 1315 are also provided to a previous track and next track sync mark reflection detector circuit 1350. Previous track and next track sync mark reflection detector circuit 1350 queries the equalized output 1303 for reflection of sync marks from previous track and next track through inter-track interference. When the sync mark of the previous track is identified in equalized output 1303, a previous sync found signal 1352 is asserted. It should be noted that in some cases only the pattern corresponding to the previous track sync mark is queried in making a determination as to whether to assert previous sync found signal 1352. In other cases where additional robustness is desired, a combination of the pattern corresponding to the previous track sync mark and at least a portion of a preceding preamble pattern is queried in making a determination as to whether to assert previous sync found signal 1352. Similarly, when the sync mark of the next track is identified in equalized output 1303, a next sync found signal 1353 is asserted. It should be noted that in some cases only the pattern corresponding to the next track sync mark is queried in making a determination as to whether to assert next sync found signal 1353. In other cases where additional robustness is desired, a combination of the pattern corresponding to the next track sync mark and at least a portion of a preceding preamble pattern is queried in making a determination as to whether to assert next sync found signal 1353. As discussed below in relation to
Turning to
None of the three sync marks (sync data 1, sync data 2 and sync data 3) is adjacent to a track utilizing the same sync mark, and the sync marks are selected such that they are maximally separate from each other in terms of correlation. This allows for detecting a reflection (i.e., inter-track interference from a given sync mark in the adjacent track. In the case where the data is misaligned like that shown in track layout 1400, the sync mark from one track is reflected at a non-sync mark location in an adjacent track. In particular, sync data 1 from track 1405 is reflected in both sync data 2 and bit 2,1 of track 1410; sync data 2 from track 1410 is reflected in both 2T preamble and sync data 1 of track 1405, and in both sync data 3 and bit 3,1 of track 1415; sync data 3 from track 1415 is reflected in both 2T preamble and sync data 2 of track 1410, and in both 2T preamble and sync data 1 of track 1420; sync data 1 from track 1420 is reflected in both sync data 3 and bit 3,1 of track 1415, and in both 2T preamble and sync data 2 of track 1425; sync data 2 from track 1425 is reflected in both sync data 1 and bit 4,1 of track 1420, and in sync data 3, bit 6,1 and bit 6,2 of track 1430; and sync data 3 from track 1430 is reflected in both 2 T preamble and sync data 2 of track 1425, and in both 2T preamble and sync data 1 of track 1435.
Referring again to
Current sync found signal 1357, next sync found signal 1353 and previous sync found signal 1352 are provided to a phase difference calculator circuit 1360. Phase difference calculator circuit calculates offset 1362 between previous sync found signal 1352 and the current sync found signal 1357, and offset 1363 between next sync found signal 1353 and the current sync found signal 1357, and provides these offsets as inputs to inter-track interference response estimation circuit 1320 and inter-track interference estimator circuit 1325. Inter-track interference response estimation circuit 1320 and inter-track interference estimator circuit 1325 use the received offsets information to align data output 1312 (i.e., a−1[n]) from previous track buffer 1310 and data output 1314 from next track buffer 1315 with equalized output 1303 (i.e., r[n]).
In another embodiment of the current invention, the previous track and next track sync mark reflection detector circuit 1350 is replaced with a previous track and next track phase alignment pre-processor 1370. Equalized output 1303, data output 1312 from previous track buffer 1310, data output 1314 from next track buffer 1315 and current track sync found signal 1357 from current track sync mark detector circuit 1355 are provided as inputs to the phase alignment pre-processor 1370. The previous track and next track phase alignment pre-processor estimates inter-track interference responses of very long lengths for previous track and next track. The location of the maximum coefficient in the estimated inter-track interference responses from previous track and next track are output as initial phase estimate for previous track 1372 and initial phase estimate for next track 1373. The estimated initial phases 1372 and 1373 are provided as inputs to inter-track response estimator circuit 1320 and inter-track signal estimator circuit 1325 to appropriately align the data output 1312 from previous track buffer 1310 and data output 1314 from next track buffer 1315 with the equalized output 1303. Estimation of inter-track interference responses for phase estimation is performed using the same algorithm described above in connection with
It should be noted that the approach discussed in relation to inter-track interference compensation circuit 1300 estimates phase offsets of previous track and next track with current track and cancels inter-track interference from both a previous and a next track. The approach may be simplified to cancel inter-track interference from only one of the previous track or the next track, with alignment only with the sync mark from the corresponding track being completed.
Turning to
A read/write head assembly is positioned relative to the selected track and it is determined whether the servo wedge data has been identified (block 1510). Once the servo wedge data has been found and processed (block 1510), data is read from the selected track and stored as current read data to a current read data buffer (bock 1515). In addition, the read data from the current track is queried to determine whether the sync mark from the previous track is included (block 1525). In some cases, more than just the pattern corresponding to the previous track sync mark is queried. For example, a combination of the pattern corresponding to the previous track sync mark and at least a portion of a preceding preamble pattern is queried. Similarly, the read data from the current track is queried to determine whether the sync mark from the next track is included (block 1540). Again, in some cases, more than just the pattern corresponding to the next track sync mark is queried. In addition, the read data from current track is queried to determine whether the sync mark from the current track is included (block 1545). Again, in some cases, more than just the pattern corresponding to the current track sync mark is queried.
Where the sync mark from the previous track is identified (block 1530), the sync mark from the next track is identified (block 1540) and the current sync mark is identified (block 1545), a first offset between the previous track and the current track is calculated and a second offset between the next track and the current track is calculated (block 1550). These offsets are then used to align the data from the previous track inter-track interference buffer and the data from the next track inter-track interference buffer with the current data (bock 1555). The inter-track interference from the previous track ({{circumflex over (r)}−1[n]}) is calculated (block 1520), and the inter-track interference from the next track ({{circumflex over (r)}1[n]}) is calculated (block 1525). The inter-track interference from the next track and the inter-track interference from the previous track are subtracted from the currently read data to yield the inter-track interference canceled data ({{circumflex over (r)}0[n]}) (block 1535). In addition, the current data is stored to the previous track inter-track interference buffer (block 1560), and the next bit period is selected for reading (block 1565).
Alternatively, where the sync marks for the previous track, the next track and the current track are not yet found (block 1530, block 1540, block 1545), the current data is stored to the previous track inter-track interference buffer (block 1560), and the next bit period is selected for reading (block 1565). It is determined if the end of the wedge (i.e., the region between servo data wedges) has been reached (block 1570). Where the end of the wedge has not yet been reached (block 1570), the processes of blocks 1515-1565 is repeated for the next block. Alternatively, where the end of the wedge has been reached (block 1570), it is determined whether the end of the track has been reached (block 1575). Where the end of the track has not yet been reached (block 1575), the processes of blocks 1510-1565 are repeated for the remaining portion of the current track. Otherwise, the next track is selected and the processes of blocks 1510-1565 are repeated for the next track.
Turning to
In a typical read operation, read/write head assembly 1676 is accurately positioned by motor controller 1668 over a desired data track on disk platter 1678. Motor controller 1668 both positions read/write head assembly 1676 in relation to disk platter 1678 and drives spindle motor 1672 by moving read/write head assembly to the proper data track on disk platter 1678 under the direction of hard disk controller 1666. Spindle motor 1672 spins disk platter 1678 at a determined spin rate (RPMs). Once read/write head assembly 1678 is positioned adjacent the proper data track, magnetic signals representing data on disk platter 1678 are sensed by read/write head assembly 1676 as disk platter 1678 is rotated by spindle motor 1672. The sensed magnetic signals are provided as a continuous, minute analog signal representative of the magnetic data on disk platter 1678. This minute analog signal is transferred from read/write head assembly 1676 to read channel 1610 via preamplifier 1670. Preamplifier 1670 is operable to amplify the minute analog signals accessed from disk platter 1678. In turn, read channel circuit 1610 decodes and digitizes the received analog signal to recreate the information originally written to disk platter 1678. This data is provided as read data 1603 to a receiving circuit. As part of processing the received information, read channel circuit 1610 performs an inter-track interference compensation. Such an inter-track interference compensation circuit may be implemented similar to that described above in relation to
It should be noted that storage system 1600 may be integrated into a larger storage system such as, for example, a RAID (redundant array of inexpensive disks or redundant array of independent disks) based storage system. It should also be noted that various functions or blocks of storage system 1600 may be implemented in either software or firmware, while other functions or blocks are implemented in hardware.
It should be noted that the various blocks discussed in the above application may be implemented in integrated circuits along with other functionality. Such integrated circuits may include all of the functions of a given block, system or circuit, or only a subset of the block, system or circuit. Further, elements of the blocks, systems or circuits may be implemented across multiple integrated circuits. Such integrated circuits may be any type of integrated circuit known in the art including, but are not limited to, a monolithic integrated circuit, a flip chip integrated circuit, a multichip module integrated circuit, and/or a mixed signal integrated circuit. It should also be noted that various functions of the blocks, systems or circuits discussed herein may be implemented in either software or firmware. In some such cases, the entire system, block or circuit may be implemented using its software or firmware equivalent. In other cases, the one part of a given system, block or circuit may be implemented in software or firmware, while other parts are implemented in hardware.
In conclusion, the invention provides novel systems, devices, methods and arrangements for processing data from a storage medium. While detailed descriptions of one or more embodiments of the invention have been given above, various alternatives, modifications, and equivalents will be apparent to those skilled in the art without varying from the spirit of the invention. For example, one or more embodiments of the present invention may be applied to various data storage systems and digital communication systems, such as, for example, tape recording systems, optical disk drives, wireless systems, and digital subscriber line systems. Therefore, the above description should not be taken as limiting the scope of the invention, which is defined by the appended claims.
The present application claims priority to (is a non-provisional of) U.S. Pat. App. No. 61/453,676, entitled “Systems and Methods for Track to Track Interference Compensation”, and filed Mar. 17, 2011 by Mathew et al.; U.S. Pat. App. No. 61/453,680, entitled “Systems and Methods for Handling Sector Gaps in Inter-track Interference Compensation”, and filed Mar. 17, 2011 by Mathew et al.; U.S. Pat. App. No. 61/382,117, entitled “Estimation and Cancellation of ITI in SMR”, and filed Sep. 10, 2010 by Mathew et al. The entirety of the aforementioned provisional patent application is incorporated herein by reference for all purposes.
Number | Date | Country | |
---|---|---|---|
61453676 | Mar 2011 | US | |
61453680 | Mar 2011 | US | |
61382117 | Sep 2010 | US |