Метод записи данных на жесткий магнитный диск


Диаграмма магнитно записи способом модифицированной частотной модуляции: с - синхросигнал

Для записи на ЖМД используются методы ЧМ, модифицированной частотной модуляции (МЧМ) и RLL-метод, при котором каждый байт данных преобразуется в 16-битовый код.

При методе МЧМ плотность записи данных возрастает вдвое по сравнению с методом ЧМ. Если записываемый бит данных является единицей, то стоящий перед ним бит тактового импульса не записывается. Если записывается "0", а предыдущий бит был "1", то синхросигнал также не записывается, как и бит данных. Если перед "0" стоит бит "0", то синхросигнал записывается.

Дорожки и секторы

Дорожка - это одно "кольцо" данных на одной стороне диска. Дорожки на диске разбивают на нумерованные отрезки, называемые секторами.

Количество секторов может быть разным в зависимости от плотности дорожек и типа накопителя. Например, дорожка гибких дисков может содержать от 8 до 36 секторов, а дорожка жесткого диска - от 380 до 700. Секторы, создаваемые с помощью стандартных программ форматирования, имеют емкость 512 байт.

Нумерация секторов на дорожке начинается с единицы, в отличие от головок и цилиндров, отсчет которых ведется с нуля.

При форматировании диска в начале и конце каждого сектора создаются дополнительные области для записи их номеров, а также прочая служебная информация, благодаря которой контроллер идентифицирует начало и конец сектора. Это позволяет отличать неформатированную и форматированную емкости диска. После форматирования емкость диска уменьшается.

В начале каждого сектора записывается его заголовок (или префикс - prefix portion ), по которому определяется начало и номер сектора, а в конце - заключение (или суффикс - suffix portion ), в котором находится контрольная сумма ( checksum ), необходимая для проверки целостности данных.

Форматирование низкого уровня современных жестких дисков выполняется на заводе, изготовитель указывает только форматную емкость диска. В каждом секторе можно записать 512 байт данных, но область данных - это только часть сектора. Каждый сектор на диске обычно занимает 571 байт, из которых под данные отводится только 512 байт.

Чтобы очистить секторы, в них зачастую записываются специальные последовательности байтов. Префиксы, суффиксы и промежутки - пространство, которое представляет собой разницу между неформатированной и форматированной емкостями диска и "теряется" после его форматирования.

Процесс форматирования низкого уровня приводит к смещению нумерации секторов, в результате чего секторы на соседних дорожках, имеющие одинаковые номера, смещаются друг относительно друга. Например, сектор 9 одной дорожки находится рядом с сектором 8 следующей дорожки, который, в свою очередь, располагается бок о бок с сектором 7 следующей дорожки и т.д. Оптимальная величина смещения определяется соотношением частоты вращения диска и радиальной скорости головки.

Идентификатор (ID) сектора состоит из полей записи номеров цилиндра, головки и сектора, а также контрольного поля CRC для проверки точности считывания информации ID. В большинстве контроллеров седьмой бит поля номера головки используется для маркировки дефектных секторов в процессе форматирования низкого уровня или анализа поверхности.

Интервал включения записи следует сразу за байтами CRC ; он гарантирует, что информация в следующей области данных будет записана правильно. Кроме того, он служит для завершения анализа CRC (контрольной суммы) идентификатора сектора.

В поле данных можно записать 512 байт информации. За ним располагается еще одно поле CRC для проверки правильности записи данных. В большинстве накопителей размер этого поля составляет два байта, но некоторые контроллеры могут работать и с более длинными полями кодов коррекции ошибок ( Error Correction Code - ЕСС ). Записанные в этом поле байты кодов коррекции ошибок позволяют при считывании обнаруживать и исправлять некоторые ошибки. Эффективность этой операции зависит от выбранного метода коррекции и особенностей контроллера. Наличие интервала отключения записи позволяет полностью завершить анализ байтов ECC (CRC).

Интервал между записями необходим для того, чтобы застраховать данные из следующего сектора от случайного стирания при записи в предыдущий сектор. Это может произойти, если при форматировании диск вращался с частотой, несколько меньшей, чем при последующих операциях записи.