ECC on MFM drive
eric at brouhaha.com
Mon Sep 8 14:15:40 CDT 2008
Alexander Sholohov wrote:
> Could someone help me understand the algorithm used
> for data integrity check on ST251 MFM drive.
> I have ST251 drive and an Adaptec controller. Also I
> have ability to view recorded data in raw format.
> On the track I see ID field block protected by CCITT
> CRC16. And the data block protected by some 32-bit
> ECC. This is definitely not a CRC32. The algorithm in
> general looks like shift register for polynomial
> multiplication with polynomial equal to
> x32+x28+x26+x19+x17+x10+x6+x2+1 .
It's a polynomial code not unlike a CRC. (Note that a CRC
works as an error-correcting code, but aren't as good at
burst error detection/correction as codes designed for that
purpose.) It could be a BCH code. Older disk subsystems
on "big iron" used Fire code, but I'm not aware of that
even having been used on small Winchester drives.
Modern drives use Reed-Solomon code, which is a specific
case of a BCH code, but they use multiple interleaved
code blocks for each disk block. Interleave greatly
enhances the detection and correction capabilities.
More information about the cctalk