logo
Материалы по интерфейсам периферий / Для Скрипко / Для пособия ПУ (Восстановлен) (2)

Mfm кодирование

Частотная модуляция была очень расточительной: каждый бит информации требовал два "магнитика". По сравнению с более продвинутыми методами кодирования, у FM-кодирования каждый бит сопровождался информацией о синхронизации (клоковой), в то время как сама задача кодирования и состоит в уменьшении информации о синхронизации на один и тот же удельный объем данных. Этот метод кодирования использовался в ранних дисководах на гибких дисках. Если вы можете вспомнить, были такие гибкие диски с пометкой "single density" в 80-ых годах прошлого столетия. FM-кодирование вскоре было заменено на лучшее MFM-кодирование (Modified Frequency Modulation).

MFM-кодирование было лучше чем FM-кодирование в смысле уменьшения магнитных переходов полярности, используемых для синхронизации (клоковых). Вместо вставки клоковой информации на каждый бит, она вставлялась только в случае двух последовательных нулей. Ведь, когда пишется 1, у нас и так есть смена полярности (в середине бита), так что нет необходимости в дополнительной смене полярности в целях правильного восстановления синхронизации. Когда 0 следует после единицы, у нас уже недавно (во время 1) была клоковая информация, и мы можем отталкиваться от нее. Так что смена полярности нам в данном случае не нужна, а требуется она только тогда, когда мы имеем последовательно два 0.

Таблица показывает кодовые последовательности для MFM-кодирования, где R означает смену полярности, в то время как N означает отсутствие ее. Среднее количество смен полярности на один бит равно 0.75. В лучшем случае (последовательность 0 и 1) — 0.25, в худшем (все единицы или нули) — 1.

Битовая последовательность

Кодированная последовательность

Смены полярности на бит

Вероятность появления в случайном наборе данных

0 (предшествующий 0)

RN

1

25%

0 (предшествующий 1)

NN

0

25%

1

NR

1

50%

Взвешенное среднее

0.75

100%

Т.к. среднее количество перемен полярности на один бит в два раза меньше, чем у FM-кодирования, можно записать в два раза больше информации на одном и том же участке поверхности. Единственной ценой такого улучшения будет лишь более сложная электроника для кодирования и декодирования информации, т.к. в MFM-кодировании используется более сложный алгоритм, чем в FM-кодировании. Тем не менее, это было малеой ценой для удвоения полезной информации, записываемой в накопителе.

MFM-кодирование использовалось в ранних винчестерах, а также в флоппи-дисководах. Т.к. MFM-кодирование в два раза поднимало объем записываемой информации, такие гибкие диски назывались "double density". MFM-кодирование до сих пор используется в дисководах на магнитных дисках. Для жестких дисков вскоре был изобретен более эффективный метод кодирования информации: RLL. В случае с гибкими дисками, новые методы уже не использовались, в силу отсутствия необходимости в переносе больших объемов данных на гибких дисках (это было бы достаточно не надежно), а также в случае с гибкими дисками требуется совместимость новых стандартов кодирования и старых: любой современный дисковод может читать как FM-, так и MFM-кодированные диски, в то время как принцип RLL-кодирования принципиально отличается от двух предыдущих.

На рисунке представлено кодированная форма записи байта "10001111" в случае FM и MFM кодирования.