Modified frequency modulation

Last updated

Modified frequency modulation (MFM) is a run-length limited (RLL) line code [1] used to encode data on most floppy disks and some hard disk drives. It was first introduced on hard disks in 1970 with the IBM 3330 and then in floppy disk drives beginning with the IBM 53FD in 1976.

Contents

MFM is a modification to the original frequency modulation encoding (FM) code specifically for use with magnetic storage. MFM allowed devices to double the speed data was written to the media as the code guaranteed only one polarity change per encoded data bit. For this reason, MFM disks are typically known as "double density" while the earlier FM became known as "single density".

MFM is used with a data rate of 250–500  kbit/s (500–1000 kbit/s encoded) on industry-standard 5+14-inch and 3+12-inch ordinary and high-density floppy diskettes. MFM was also used in early hard disk designs, before the advent of more efficient types of RLL codes. Outside of niche applications, MFM encoding is obsolete in magnetic recording.

Magnetic storage

Magnetic storage devices, like hard drives and magnetic tape, store data not as absolute values, but in the changes in polarity. This is because a changing magnetic field will induce an electrical current in a nearby wire, and vice versa. By sending a series of changing currents to the read/write head while the media moves past it, the result will be a pattern of magnetic polarities on the media that change where the data was a "1". The exact nature of the media determines how many of these changes can occur within a given surface area, and when this is combined with the nominal speed of movement, it produces the maximum data rate for that system.

Disk drives are subject to a variety of mechanical and materials effects that cause the original pattern of data to "jitter" in time. If a long string of "0" are sent to disk, there is nothing to indicate which bit a following "1" might belong to - due to the effects of jitter it may become misplaced in time. Re-aligning the signals on the disk with individual data bits requires some sort of timing encoded to the disk along with the data.

A diverse range of suitable encodings, known generally as line codes, have been developed for this purpose. Their suitability depends on the media or transmission mechanism being used.

Frequency modulation

Frequency modulation encoding (FM) was the first widely used system to perform this operation. The drive controller includes an accurate clock running at half the selected data rate of the disk media. When data is written to the disk, the clock signal is interleaved with the data. On reading, the clock signals are used as short-term triggers to time the presence or lack of a following signal that represents the data bits. [2]

The upside to the FM approach is that it is extremely easy to implement the writing circuity and the clock recovery on reading is also relatively simple. The downside is that it uses up half of the disk surface for the clock signal, thus halving the total amount of data the disk can store. This led to new forms of encoding that were more efficient.

MFM coding

A byte encoded using FM (above) and MFM (below). Dashed blue line denotes clock pulse (the signal level change in it is ignored), and dashed red line, data pulse (signal level change encodes 1, and absence thereof, 0). FM-MFM-Codierung-int.svg
A byte encoded using FM (above) and MFM (below). Dashed blue line denotes clock pulse (the signal level change in it is ignored), and dashed red line, data pulse (signal level change encodes 1, and absence thereof, 0).

Modified frequency modulation encodes the clock signal and the data in a single "clock window". Unlike FM, a clock bit is only written when needed to achieve synchronization when both current and preceding data bits are not set. On average, MFM achieves double the information density of FM. [3]

The basic encoding rule for MFM is that (x, y, z, ...) encodes to (x, x NOR y, y, y NOR z, z, z NOR...). A zero bit is encoded as 10 if preceded by a zero bit in the input stream, and 00 if preceded by a one; a one bit is always encoded as 01. The number of magnetic transitions per one bit of encoded data is on average 0.75 to 1. [4]

Data... 00 ...... 01 ...... 10 ...... 11 ...
MFM clock bits...? 1 ?......? 0 0......0 0 ?......0 0 0...
MFM encoding...?010?......?0010......0100?......01010...

Note that the surrounding clock bits are sometimes known, but sometimes require knowledge of the adjacent data bits.[ citation needed ] A longer example:

Data:          0 0 0 1 1 0 1 1 ... FM encoded:   10101011111011111... MFM clock:    ? 1 1 0 0 0 0 0 0... MFM encoded:  ?0101001010001010...

(The bold bits are the data bits, the others are the clock bits.)

In FM encoding, the number of 0-bits that may appear between consecutive 1-bits is either 0 or 1. In MFM encoding there is a minimum of 1 zero bit between adjacent ones (there are never two adjacent one bits), and the maximum number of zeros in a row is 3.[ citation needed ] Thus, FM is a (0,1) RLL code, while MFM is a (1,3) code.

Data separator

Because the MFM system requires more accurate timing of the clock signal, it was not possible economically to build the required analog and digital components on a single integrated circuit using late 1970s technology. Instead, MFM drivers required the drive vendor to design their own clock recovery circuitry, a system known as the data separator. Data separator design was an art form of its own. [5]

Among the most widely used controllers of the era was the Western Digital FD1771 series. The original FD1771 supported FM only, but it was quickly paired with the FD1781 and FD1791 which performed MFM based on an externally provided clock signal. Implementing MFM support with these drivers required an external data separator. Rapid improvement in IC manufacturing in the late 1970s and early 1980s led to the first low-cost all-in-one MFM drivers in the early 1980s. The WD2791 was the first to directly support MFM using an internal analog phase locked loop, but it required a number of simple external components to implement a complete system. The WD1770 was the first to implement a complete MFM solution in a single chip.

Overall format

FM and MFM are used to indicate the position of individual bits in the original data, but the data does not in itself have any higher level of organization like "files". This is the purpose of the format of the disk. Disks are typically formatted into fixed-sized sectors which contain additional header information to link them back to files.

In the IBM formats, the start of a sector's header information and the start of the data itself are indicated with special "sync mark", a pattern of 0s and 1s that cannot appear in the data itself. This is accomplished by not encoding this data using the FM or MFM encoding, making it easy for the driver to spot it. The sync mark that is commonly used in MFM encoding is known as the "A1 sync" since the data bits form the start of the hexadecimal value A1 (10100001), but the fifth clock bit is different from the normal encoding of the A1 byte.

Data:      1 0 1 0 0 0 0 1 Clock:      0 0 0 1 1 1 0 Encoded:   100010010101001 Sync clock: 0 0 0 1 0 1 0 Sync Mark: 100010010001001                     ^ Missing clock bit

MMFM

MMFM, (Modified Modified Frequency Modulation), also abbreviated M²FM, or M2FM, is similar to MFM, but suppresses additional clock bits, producing a longer maximum run length (a (1,4) RLL code). In particular, a clock pulse is only inserted between a pair of adjacent 0-bits if the first bit of the pair did not have a clock pulse inserted before it. [6] In the example below, clock bits that would have been present in MFM are noted in bold:

Data:     1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 Clock:   0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 Encoded: 01010001001001001000010010001001001000100001

In this system, sync marks are made by inserting additional clock pulses between adjacent zero bits (following the MFM rule) where they would normally be omitted. In particular, the data bit pattern "100001" has a clock pulse inserted in the middle, where it would normally be omitted:

Data:  1 0 0 0 0 1 Normal: 0 1 0 1 0 Sync:   0 1 1 1 0

See also

Related Research Articles

<span class="mw-page-title-main">Commodore 1571</span> Floppy disk drive

The Commodore 1571 is Commodore's high-end 5¼" floppy disk drive, announced in the summer of 1985. With its double-sided drive mechanism, it has the ability to use double-sided, double-density (DS/DD) floppy disks, storing a total of 360 kB per floppy. It also implemented a "burst mode" that improved transfer speeds, helping address the very slow performance of previous Commodore drives.

<span class="mw-page-title-main">Floppy disk</span> Removable disk storage medium

A floppy disk or floppy diskette is a type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined with a fabric that removes dust particles from the spinning disk. Floppy disks store digital data which can be read and written when the disk is inserted into a floppy disk drive (FDD) connected to or inside a computer or other device.

Differential Manchester encoding (DM) is a line code in digital frequency modulation in which data and clock signals are combined to form a single two-level self-synchronizing data stream. Each data bit is encoded by a presence or absence of signal level transition in the middle of the bit period, followed by the mandatory level transition at the beginning. The code is insensitive to an inversion of polarity. In various specific applications, this method is also called by various other names, including biphase mark code (CC), F2F, Aiken biphase, and conditioned diphase.

<span class="mw-page-title-main">Line code</span> Pattern used within a communications system to represent digital data

In telecommunication, a line code is a pattern of voltage, current, or photons used to represent digital data transmitted down a communication channel or written to a storage medium. This repertoire of signals is usually called a constrained code in data storage systems. Some signals are more prone to error than others as the physics of the communication channel or storage medium constrains the repertoire of signals that can be used reliably.

<span class="mw-page-title-main">Non-return-to-zero</span> Telecommunication coding technique

In telecommunication, a non-return-to-zero (NRZ) line code is a binary code in which ones are represented by one significant condition, usually a positive voltage, while zeros are represented by some other significant condition, usually a negative voltage, with no other neutral or rest condition.

<span class="mw-page-title-main">ST506/ST412</span>

The ST-506 and ST-412 were early hard disk drive products introduced by Seagate in 1980 and 1981 respectively, that later became construed as hard disk drive interfaces: the ST-506 disk interface and the ST-412 disk interface. Compared to the ST-506 precursor, the ST-412 implemented a refinement to the seek speed, and increased the drive capacity from 5 MB to 10 MB, but was otherwise highly similar.

<span class="mw-page-title-main">Disk controller</span> Controller for disk storage, usually integrated into the drive

The disk controller is the controller circuit which enables the CPU to communicate with a hard disk, floppy disk or other kind of disk drive. It also provides an interface between the disk drive and the bus connecting it to the rest of the system.

<span class="mw-page-title-main">Disk density</span> Storage density for magnetic disks

Disk density is a capacity designation on magnetic storage, usually floppy disks. Each designation describes a set of characteristics that can affect the areal density of a disk or the efficiency of the encoded data. Such characteristics include modulation method, track width, coercivity, and magnetic field direction.

In telecommunications and electronics, a self-clocking signal is one that can be decoded without the need for a separate clock signal or other source of synchronization. This is usually done by including embedded synchronization information within the signal, and adding constraints on the coding of the data payload such that false synchronization can easily be detected.

<span class="mw-page-title-main">Return-to-zero</span> Line code in which the signal value returns to zero between each pulse

Return-to-zero describes a line code used in telecommunications signals in which the signal drops (returns) to zero between each pulse. This takes place even if a number of consecutive 0s or 1s occur in the signal. The signal is self-clocking. This means that a separate clock does not need to be sent alongside the signal, but suffers from using twice the bandwidth to achieve the same data-rate as compared to non-return-to-zero format.

In computer science, group coded recording or group code recording (GCR) refers to several distinct but related encoding methods for representing data on magnetic media. The first, used in 6250 bpi magnetic tape since 1973, is an error-correcting code combined with a run-length limited (RLL) encoding scheme, belonging into the group of modulation codes. The others are different mainframe hard disk as well as floppy disk encoding methods used in some microcomputers until the late 1980s. GCR is a modified form of a NRZI code, but necessarily with a higher transition density.

Run-length limited or RLL coding is a line coding technique that is used to send arbitrary data over a communications channel with bandwidth limits. RLL codes are defined by four main parameters: m, n, d, k. The first two, m/n, refer to the rate of the code, while the remaining two specify the minimal d and maximal k number of zeroes between consecutive ones. This is used in both telecommunication and storage systems that move a medium past a fixed recording head.

Eight-to-fourteen modulation (EFM) is a data encoding technique – formally, a line code – used by compact discs (CD), laserdiscs (LD) and pre-Hi-MD MiniDiscs. EFMPlus is a related code, used in DVDs and Super Audio CDs (SACDs).

<span class="mw-page-title-main">Western Digital FD1771</span> Floppy disk controller

The FD1771, sometimes WD1771, is the first in a line of floppy disk controllers produced by Western Digital. It uses single density FM encoding introduced in the IBM 3740. Later models in the series added support for MFM encoding and increasingly added onboard circuitry that formerly had to be implemented in external components. Originally packaged as 40-pin dual in-line package (DIP) format, later models moved to a 28-pin format that further lowered implementation costs.

Floppy disk format and density refer to the logical and physical layout of data stored on a floppy disk. Since their introduction, there have been many popular and rare floppy disk types, densities, and formats used in computing, leading to much confusion over their differences. In the early 2000s, most floppy disk types and formats became obsolete, leaving the 3+12-inch disk, using an IBM PC compatible format of 1440 KB, as the only remaining popular format.

<span class="mw-page-title-main">Floppy-disk controller</span> Circuitry that controls reading from and writing to a computers floppy disk drive

A floppy-disk controller (FDC) has evolved from a discrete set of components on one or more circuit boards to a special-purpose integrated circuit or a component thereof. An FDC directs and controls reading from and writing to a computer's floppy disk drive (FDD). The FDC is responsible for reading data presented from the host computer and converting it to the drive's on-disk format using one of a number of encoding schemes, like FM encoding or MFM encoding, and reading those formats and returning it to its original binary values.

A bit nibbler, or nibbler, is a computer software program designed to copy data from a floppy disk one bit at a time. It functions at a very low level directly interacting with the disk drive hardware to override a copy protection scheme that the floppy disk's data may be stored in. In most cases the nibbler software still analyses the data on a byte level, only looking to the bit level when dealing with synchronization marks (syncs), zero-gaps and other sector & track headers. When possible, nibblers will work with the low-level data encoding format used by the disk system, being Group Coded Recording, Frequency Modulation, or Modified Frequency Modulation.

<span class="mw-page-title-main">Floppy disk variants</span> Types of floppy disk formats

The floppy disk is a data storage and transfer medium that was ubiquitous from the mid-1970s well into the 2000s. Besides the 3½-inch and 5¼-inch formats used in IBM PC compatible systems, or the 8-inch format that preceded them, many proprietary floppy disk formats were developed, either using a different disk design or special layout and encoding methods for the data held on the disk.

Hard disk drives are accessed over one of a number of bus types, including parallel ATA, Serial ATA (SATA), SCSI, Serial Attached SCSI (SAS), and Fibre Channel. Bridge circuitry is sometimes used to connect hard disk drives to buses with which they cannot communicate natively, such as IEEE 1394, USB, SCSI, NVMe and Thunderbolt.

<span class="mw-page-title-main">Frequency modulation encoding</span> Encoding method used on early floppy and hard disk drives

Frequency modulation encoding, or simply FM, is a method of storing data that saw widespread use in early floppy disk drives and hard disk drives. The data is modified using differential Manchester encoding when written to allow clock recovery to address timing effects known as "jitter" seen on disk media. It was introduced on IBM mainframe drives and was almost universal among early minicomputer and microcomputer floppies. In the case of floppies, FM encoding allowed about 80 kB of data to be stored on a 5+14-inch disk.

References

  1. Kees Schouhamer Immink (December 1990). "Runlength-Limited Sequences". Proceedings of the IEEE. 78 (11): 1745–1759. doi:10.1109/5.63306. A detailed description is furnished of the limiting properties of runlength limited sequences.
  2. Hecht, M.; Guida, A. (July 1969). "Delay Modulation". Proceedings of the IEEE. IEEE. 57 (7): 1314–1316. doi:10.1109/PROC.1969.7249.
  3. Sammes, Anthony; Jenkinson, Brian (18 August 2007). Forensic Computing. Springer Science & Business Media. p. 109. ISBN   978-1-84628-732-9.
  4. Prosise, Jeff (30 October 1990). "Choosing a Hard Disk". PC Magazine. p. 427.
  5. Lutz, Bob; Melloni, Paolo; Wakeman, Larry (1982). Floppy Disk Data Separator Design Guide for the DP8473 (Technical report). National Semiconductor.
  6. Intel Corporation (1977). SBC 202 Double Density Diskette Controller Hardware Reference Manual (PDF). pp. 4–26. Archived (PDF) from the original on 2017-06-18.

PD-icon.svg This article incorporates public domain material from Federal Standard 1037C. General Services Administration. Archived from the original on 2022-01-22.

Further reading