U.S. patent application number 14/500226 was filed with the patent office on 2015-01-15 for storage media inter-track interference cancellation.
This patent application is currently assigned to LSI Corporation. The applicant listed for this patent is LSI Corporation. Invention is credited to Carl E. Forham, Erich F. Haratsch, Ming Jin, Timothy B. Lund, George Mathew, Jongseung Park, Timothy W. Swatosh.
Application Number | 20150015984 14/500226 |
Document ID | / |
Family ID | 47555603 |
Filed Date | 2015-01-15 |
United States Patent
Application |
20150015984 |
Kind Code |
A1 |
Jin; Ming ; et al. |
January 15, 2015 |
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 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 ITT cancelled data and provides the
decoded ITI cancelled data as output of the read channel.
Inventors: |
Jin; Ming; (Fremont, CA)
; Haratsch; Erich F.; (San Jose, CA) ; Mathew;
George; (San Jose, CA) ; Park; Jongseung;
(Allentown, PA) ; Swatosh; Timothy W.; (Rochester,
MN) ; Lund; Timothy B.; (Rochester, MN) ;
Forham; Carl E.; (Rochester, MN) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
LSI Corporation |
San Jose |
CA |
US |
|
|
Assignee: |
LSI Corporation
San Jose
CA
|
Family ID: |
47555603 |
Appl. No.: |
14/500226 |
Filed: |
September 29, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13591937 |
Aug 22, 2012 |
8879182 |
|
|
14500226 |
|
|
|
|
Current U.S.
Class: |
360/45 |
Current CPC
Class: |
G11B 20/1217 20130101;
G11B 2020/10759 20130101; G11B 2020/1856 20130101; G11B 2020/183
20130101; G11B 19/045 20130101; G11B 20/10046 20130101; G11B
2020/1232 20130101; G11B 20/10212 20130101; G11B 2020/185 20130101;
G11B 2020/1298 20130101; G11B 5/012 20130101; G11B 20/10462
20130101; G11B 20/1423 20130101; G11B 2220/2516 20130101; G11B 5/09
20130101 |
Class at
Publication: |
360/45 |
International
Class: |
G11B 5/09 20060101
G11B005/09; G11B 20/10 20060101 G11B020/10 |
Claims
1. A storage media controller for cancelling inter-track
interference (ITI) in one or more sectors read from a desired track
of a storage medium, the media controller comprising: a read
channel configured to read one or more sectors in a desired track
of the storage medium; an iterative decoder circuit operable to
apply a data decoding algorithm to one or more read sectors derived
from a desired track of the storage medium to yield a decoded
output; if the decoded output fails to converge: the read channel
is configured to read selected sectors of a first adjacent track
and a second adjacent track; an ITI canceller of the read channel
configured to (i) estimate ITI in the one or more read sectors of
the desired track corresponding to the selected sectors of the
first adjacent track and the second adjacent track, (ii) subtract
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, and (iii) replay the
ITI cancelled data to the iterative decoder; the iterative decoder
circuit is configured to (i) decode the ITI cancelled data and (ii)
provide the decoded ITI cancelled data as output data of the read
channel; otherwise, if the decoded output converges, the iterative
decoder of the read channel is configured to provide the decoded
one or more read sectors as output data of the read channel.
2. The media controller of claim 1, wherein the read channel is
configured to read the adjacent tracks in a raw-data mode, wherein
the data for the adjacent tracks is non-return-to-zero (NRZ)
data.
3. The media controller of claim 2, wherein the read channel is
configured to read the one or more desired sectors of the desired
track in a retry mode having a corresponding maximum global retry
threshold and a corresponding maximum local retry threshold.
4. The media controller of claim 2, wherein: the read channel is
configured to read the one or more desired sectors of the desired
track occurs in a first revolution of the storage medium; the read
channel is configured to read the one or more sectors of the
desired track in raw-data mode occurs in a second revolution of the
storage medium; and the read channel is configured to read the
corresponding sectors of the first adjacent track occurs in a third
revolution of the storage medium.
5. The media controller of claim 1, wherein: the storage medium is
a shingled magnetic recorded media; the detected data is provided
to a host device by at least one of 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, and a Peripheral Component Interconnect Express (PCI-E) link;
and the media controller is implemented as an integrated circuit
chip.
6. The media controller of claim 1, wherein the media controller is
implemented as part of an integrated circuit.
7. A method for cancelling inter-track interference (ITI), the
method comprising: decoding one or more read sectors of a desired
track of a storage medium; reading selected sectors of a first
adjacent track and a second adjacent track; estimating ITI in the
one or more read sectors corresponding to the selected sectors of
the first adjacent track and the second adjacent track;
subtracting, by an 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; decoding the updated sector data to provide ITI cancelled
data; based upon a determination that at least one of 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 the ITI
canceller; and providing, by the iterative decoder, detected bits
corresponding to the Y-samples to the ITI canceller.
8. The method of claim 7, wherein estimating ITI in the one or more
read sectors corresponding to the selected sectors of the first
adjacent track and the second adjacent track comprises: generating,
by the ITT 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.
9. The method of claim 7, the method further comprising: reading
the one or more read sectors of the desired track in a raw-data
mode, wherein the data for the desired track is non-return-to-Zero
(NRZ) data.
10. The method of claim 7, Wherein: reading the one or more read
sectors of the desired track occurs in a first revolution of the
storage medium; reading the one or more read sectors of the desired
track in raw-data mode occurs in a second revolution of the storage
medium; reading the corresponding sectors of the first adjacent
track occurs in a third revolution of the storage medium; and
reading the corresponding sectors of the second adjacent track
occurs in a fourth revolution of the storage medium.
11. The method of claim 7, the method further comprising: reading
the adjacent tracks in raw-data mode, wherein the data for the
adjacent tracks is non-return-to-Zero (NRZ) data.
12. The method of claim 7, wherein the one or more read 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.
13. The method of claim 7, wherein the storage medium is a shingled
magnetic recorded media.
14. 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: decoding one or more read sectors of a desired track of
a storage medium; reading a selected sectors of a first adjacent
track and a second adjacent track; estimating ITI in the one or
more read sectors corresponding to the selected sectors of the
first adjacent track and the second adjacent track; subtracting, by
the ITI canceller circuit, 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;
decoding the updated sector data to provide ITI cancelled data;
based upon a determination that at least one of 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 the ITI canceller;
and providing, by the iterative decoder, detected bits
corresponding to the Y-samples to the ITI canceller.
15. wherein estimating ITI in the one or more read sectors
corresponding to the selected sectors of the first adjacent track
and the second adjacent track comprises: generating, by the ITT
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.
16. The storage medium of claim 15, further comprising: reading the
one or more read sectors of the desired track in a raw-data mode,
wherein the data for the desired track is non-return-to-Zero (NRZ)
data.
17. The storage medium of claim 15, wherein: reading the one or
more read sectors of the desired track occurs in a first revolution
of the storage medium; reading the one or more read sectors of the
desired track in raw-data mode occurs in a second revolution of the
storage medium; reading the corresponding sectors of the first
adjacent track occurs in a third revolution of the storage medium;
and reading the corresponding sectors of the second adjacent track
occurs in a fourth revolution of the storage medium.
18. The storage medium of claim 15, further comprising: reading the
adjacent tracks in raw-data mode, wherein the data for the adjacent
tracks is non-return-to-Zero (NRZ) data.
19. The storage medium of claim 15, wherein the one or more read
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.
20. The storage medium of claim 15, wherein the storage medium is a
shingled magnetic recorded media.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present application is a continuation of U.S. patent
application Ser. No. 13/591,937 entitled "Storage Media Inter-Track
Interference Cancellation", and filed Aug. 22, 2012 by Haratsch et
at The aforementioned application is a continuation in part of U.S.
patent application Ser. No. 13/186,174, filed Jul. 19, 2011, a
continuation in part of U.S. patent application Ser. No.
13/186,197, filed Jul. 19, 2011, a continuation in part of U.S.
patent application Ser. No. 13/186,213, filed on Jul. 19, 2011, a
continuation in part of U.S. patent application Ser. No.
13/250,246, filed on Sep. 30, 2011, and a continuation in part of
U.S. patent application Ser. No. 13/460,204, filed on Apr. 30,
2012. All of the aforementioned references are incorporated herein
by reference for all purposes.
BACKGROUND
[0002] 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.
[0003] 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, altered, and provided to an analog-to-digital
converter (ADC) Where the signal is digitized and passed through an
equalizer and decoded.
[0004] 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.
[0005] 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
[0006] 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.
[0007] 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 FIGURES
[0008] 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.
[0009] FIG. 1A shows a block diagram of a read channel
incorporating inter-track interference (ITI) cancellation in
accordance with described embodiments;
[0010] FIG. 1B shows a block diagram of an iterative decoder of the
read channel of FIG. 1A;
[0011] FIG. 2 shows an exemplary diagram of track arrangement on a
storage media in communication with the read channel of FIG.
1A;
[0012] 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;
[0013] FIG. 4 shows a flow diagram of an ITI cancellation routine
in accordance with described embodiments;
[0014] FIG. 5 shows a How diagram of an ITI cancellation routine in
accordance with described embodiments; and
[0015] 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
[0016] 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-US-00001 TABLE 1 ITI Inter-Track Interference IC Integrated
Circuit AMBA Advanced Microcontroller APB Advanced Peripheral Bus
Bus Architecture AHB Advanced High- AXI Advanced eXtensible
performance 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
[0017] 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.).
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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).
[0022] 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.
[0023] 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.
[0024] 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
512 B 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.
[0025] 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.
[0026] 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.RTM., Power PC.RTM.
or ARM processor (Pentium.RTM. is a registered trademark of Intel
Corporation, ARM processors are by ARM Holdings, plc, and Power
PC.RTM. 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).
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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 ITT processing has
already been completed without waiting for data from either side
track to be read from media 112.
[0037] At step 420, ITT 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 ITT cancellation, Y-samples
for track N are correlated with NRZ data from the adjacent track
N+1 without using NRZ data for track N.
[0038] At step 422, ITT cancellation module 108 subtracts the
estimated ITT for track N+1 from the Y-samples for track N. At step
424, ITT 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).
[0039] 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.
[0040] 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.
[0041] 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.
[0042] 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.
[0043] 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.
[0044] 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.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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.
[0050] 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.
[0051] 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.
[0052] 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.
[0053] 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.
[0054] 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.
[0055] 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.
[0056] 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 512 B
sectors).
[0057] 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.
[0058] 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.
[0059] 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.
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 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.
[0064] 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.
* * * * *