PRML (partial-response maximum-likelihood) comes into play when noise skews one of the samples of the signal from the disk. In the figure "A Noisy Sample," the signal should properly decode to bit pattern 101, but the third sample is hard to interpret. It could be the beginning of a negative peak that was attenuated, or it could be a peakless point that was amplified by a glitch or by interference with a neighboring peak.
A peak-detection algorithm could be confused by the noise in this signal. It might detect an extra negative peak in the 101 bit pattern. This weakness in peak detection is one reason drive makers can't pack too many peaks close together unless they resort to technology that yields a more intelligent interpretation of the samples.
Under PRML, the drive electronics doesn't try to interpret the third sample until later samples arrive. In fac
t, PRML tracks both interpretations and then computes the partial error that would occur with each interpretation. Assume that the standard assumed value for a peak is + or - 3.5 and a flat section is 0. Interpreting the 101 pattern as a 110 would generate 12.8 total units of error. The correct interpretation, however, would only generate 2.0 units of error. Thus, the PRML can make the correct choice for the interpretation.
Although it is possible to make the decision after the fourth sample, a PRML algorithm might wait until the fifth and sixth samples arrive before choosing the interpretation with the smallest amount of error. This is one reason why drive controllers alternate between positive and negative peaks. The fact that two peaks of the same polarity can't follow each other disallows certain interpretations and makes it easier to weed out bad choices.
Figure: A Noisy Sample
The third sample in this example signal is an anomaly--it doesn't correspond to a 1 bit or a 0 bit. Using P
RML, the read electronics use the value of follow-on samples to correctly interpret the anomalous sample as part of a 0 bit.
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it
is
theoretical--and no language better exemplifies this than C++.
BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin,
and dozens of other CMP publications—bringing
you critical news and information about wireless communication,
computer security, software development, embedded systems,
and more!