Метод записи данных на жесткий магнитный диск
Диаграмма магнитно записи способом модифицированной частотной модуляции: с - синхросигнал
Для записи на ЖМД используются методы ЧМ, модифицированной частотной модуляции (МЧМ) и 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).
Интервал между записями необходим для того, чтобы застраховать данные из следующего сектора от случайного стирания при записи в предыдущий сектор. Это может произойти, если при форматировании диск вращался с частотой, несколько меньшей, чем при последующих операциях записи.