- •Физические принципы
- •Три важных физических факта
- •Базовая конструкция жесткого диска
- •Важность чистоты
- •Запись и считывание информации
- •Размер бита
- •Способы кодирования данных
- •Простой импульсный подход
- •Частотная модуляция
- •Кодирование без возврата к нулю
- •Модифицированная частотная модуляция
- •Улучшенное arll-кодирование
- •Проблема несовершенства и ее решение
- •Частичное решение — обнаружение ошибок
- •Исправление ошибок
Модифицированная частотная модуляция
В первых ленточных и дисковых накопителях применялось FM-кодирование; через некоторое время инженеры и математики нашли способ удвоить эффективность системы. Сравнительно простой вариант FM-кодирования ранее назывался кодированием с двойной плотностью, а сейчас называется модифицированной частотной модуляцией или MFM-кодированием, и наиболее распространен в дисковых накопителях для персональных компьютеров.
Дискеты с маркой DSDD имеют две рабочие стороны (Double-Sided) и рассчитаны на двойную плотность (Double-Density) кодирования. Такое кодирование данных применяется во всех накопителях на гибких дисках и применялось в первом накопителе на жестких дисках для компьютера IBM PC/XT. Отметим, что в MFM-кодировании переходы синхронизации требуются только при отсутствии близко расположенных переходов данных. Следовательно, большинство сигналов синхронизации можно убрать и все-таки надежно знать, какие переходы несут данные, а какие — информацию о синхронизации.
На рис. 2.7,в показано изменение намагниченности для того же набора данных, что и на рис. 2.7,6. Изменения сверху вниз или наоборот показывают переходы поля. На рис. 2.7,г показаны импульсы напряжения, возникающие в головке считывания.
Отметим, что на рис, 2.7,6 имеется переход (синхронизации) в начале каждой битовой ячейки и еще один переход в середине битовой ячейки, который хранит двоичную единицу. В MFM-кодировании просто убирается максимум переходов синхронизации, но с возможностью восстановления записанных данных. Правило MFM-кодирования формулируется довольно просто. В
FM-кодировании убираем все импульсы синхронизации, кроме случая, когда данная и предыдущая ячейки содержат двоичные нули. Все битовые ячейки, хранящие единицы, и ячейки сразу после них достаточно близки к переходу, поэтому только для синхронизации дополнительных переходов не нужно.
Правило отделения при считывании сигналов синхронизации и данных также довольно простое. Необходимо различать только сигнал в начале битовой ячейки (это импульс синхронизации между двумя нулевыми битами) от сигнала в середине ячейки, означающего двоичную единицу.
Минимальное и максимальное расстояния переходов в этом способе кодирования данных в два раза больше, чем в FM-кодировании. Минимальный промежуток удваивается, а данные в MFM-кодировании требуют вдвое меньше длины дорожки — отсюда и появился термин "двойная плотность". FM-кодирование имеет только две частоты (f и 2f), а в MFM-кодировании есть три частоты (f, 1.5f и 2f). Требование того, чтобы контроллер различал больше частот, означает, что электронные схемы и дисковые двигатели должны быть стабильнее, чем в FM-кодировании; оказалось, что удовлетворить это требование не так сложно.
RLL-кодирование
Оказалось, что, несмотря на популярность и эффективность, MFM-кодирование не самый эффективный способ кодирования данных. В MFM-кодировании размер битовой ячейки уменьшается до минимальной длины магнитного триггера, но можно достичь лучшего результата при дальнейшем сокращении числа сигналов синхронизации. Степень сокращения зависит от постоянства скорости вращения диска и от точности выделения импульсов, поступающих от головки считывания.
Разработчики дисковых систем проверили много способов снижения среднего числа импульсов синхронизации на бит данных и соответствующего повышения максимальной плотности битов на поверхности диска. Наибольшее распространение, по крайней мере, для жестких дисков PC, получило так называемое кодирование с ограниченной длиной отрезка или RLL-кодирование. В этом способе совершенно нет сигналов синхронизации! Это стало возможно при записи на диск наборов, которые отличаются от наборов сохраняемых данных. При правильном выборе записываемых наборов контроллер при считывании данных может "обратить" этот процесс.
Математики и инженеры считают способ 2,7 RLL разновидностью записи с групповым кодированием (Group-oded Recording — GCR). Идея группового кодирования состоит в том, что группа битов данных заменяется большей группой записываемых битов.
Обычная форма способа 2,7 RLL относится к кодированию GCR с переменной длиной. Другими словами, размер групп заменяющих битов зависит от фактических битов данных.
RLL-кодирование использует два ограничения на любой набор переходов магнитных полей, которые можно записать на поверхности диска. Во-первых, переходы магнитного поля не должны следовать чаще, чем минимальная длина магнитного триггера (этим предотвращается риск стирания предшествующего магнитного поля при записи нового). Во-вторых, промежутки без переходов не должны быть столь длинными, чтобы контроллер диска потерял текущую позицию на диске.
Таким образом, для переходов магнитного поля имеются максимальная и минимальная допустимые частоты. (Другими словами, в терминах расстояний по дорожке между переходами магнитного поля имеются максимальная и минимальная допустимые длины промежутка или "отрезка" без переходов. Кодирование RLL и означает, что эти "отрезки" дорожки между переходами ограничены верхней и нижней величинами.)
В RLL-коднрованин, как и в FM- и MFM-кодировании, переходы происходят только в начале или середине любой битовой ячейки. Вместо простого преобразования поступающих битов данных в переходы контроллер анализирует их небольшими группами, и для каждой группы сохраняется специально подобранная последовательность переходов и отсутствий переходов. Далее буква Т (Transition)
означает переход, а буква О (Open) -- пустой участок. По дорожке переходы Т и пустые участки О занимают точно половину битовой ячейки.
В 2,7 RLL-кодировании последовательности Т и О необходимо выбрать так, чтобы независимо от поступающего потока данных всегда было минимум два и никогда не больше семи О между любыми двумя Т. При выполнении этого правила минимальное расстояние между переходами равно трем полубитовым ячейкам, а максимальное восьми.
На рис. 2.8 показана схема формирования последовательности Т и О из входного потока двоичных данных. Обратим внимание на показанные справа последовательности: некоторые из них начинаются с Т, а другие перед Т имеют несколько О. Часть последовательностей имеет внутри более одного Т, но всегда между последовательными Т есть минимум два О. Наконец, каждая последовательность имеет в конце минимум два О. В этом случае независимо от способа объединения последовательностей всегда между двумя соседними Т будет минимум два О.
Кроме того, из рис. 2.8 видно, что ни в одной последовательности нет более трех О в конце и более четырех О в начале. Следовательно, между двумя соседними Т никогда не может быть более семи О.
Схема преобразования двоичного потока данных в магнитные переходы Т и промежутки между ними О в ?,7 RLL-кодировании
Каждая последовательность Т и О имеет точно в два раза больше знаков, чем набор кодируемых единиц и нулей. Поскольку от О до Т минимум три знака, то в минимальную длину магнитного триггера можно поместить три знака. Поскольку два знака равны одному биту, размер битовой ячейки сокращается до двух третей длины триггера. Такой размер позволяет накопителю разместить в полтора раза (150%) больше битов на длине дорожки, чем в MFM-кодировании, и в три раза больше битов, чем в FM-кодировании.
Таким образом, в RLL-кодировании специальные наборы переходов заменяют фактические записываемые наборы данных. Наборы выбраны так, чтобы отношение максимального промежутка между переходами поля к минимальному было как 8 к 3. Применение такого способа позволяет в том же пространстве сохранить па 50°о больше данных. Большинство жестких дисков вращаются с одинаковой скоростью, на запись и считывание одной и той же информации уходит только две трети времени. На рис. 2.7,д показано, как выглядит RLL-кодирование одного и того же байта по сравнению с другими способами кодирования. Несмотря на возможность улучшения RLL-кодирования, этот процесс оказывается непростым и недостаточно надежным для большинства пользователей. Как всегда, на практике RLL-кодирование встречает определенные ограничения.
Поскольку в RLL-кодировании переходы магнитного поля оказываются не ближе, чем в MFM-кодированпи, многие полагают, что можно применять MFM-накопитель как RLL-накопитель, просто подключив к MFM-накопнтелю RLL-контроллер. К сожалению, при первом появлении на рынке несколько лет назад для надежного применения RLL-кодированпя пришлось усложнить электронику жестких дисков и контроллера. Накопители и контроллеры довольно часто и. с драматическими последствиями отказывали.
С тех пор фирмы-производители RLL-контроллеров разработали лучшие методы, а производители накопителей стали более жестко тестировать своп изделия. В результате сейчас появились накопители, "сертифицированные для RLL-кодпрования", а других пока нет. Объединение RLL-сертифицированного накопителя с rll- контроллером оказывается довольно надежным устройством.
До введения тестирования на RLL-совместимость у вас была вероятность примерно в 50°'о на то, "что MFM-иакопитель мог приемлемо работать с RLL-контроллером. Почти все такие накопители сейчас маркируются как "допускающие RLL"; по-видимому, все накопители, маркированные MFM, совместимостью с RLL не обладают.