Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Принцип работы винчестеров.doc
Скачиваний:
7
Добавлен:
24.11.2019
Размер:
166.91 Кб
Скачать

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

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

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

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

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

В начале каждого сектора записывается его заголовок (или префикс — prefix portion), по которому определяется начало и номер сектора, а в конце — заключение (или суффикс — suffix portion), в котором находится контрольная сумма (checksum), необходимая для проверки целостности данных. В большинстве новых дисководов вместо заголовка используется так называемая запись No-ID, вмещающая в себя больший объем данных. Помимо указанных областей служебной информации, каждый сектор содержит область данных емкостью 512 байт. При низкоуровневом (физическом) форматировании всем байтам данных присваивается некоторое значение, например F6h.

Утверждать, что размер любого сектора равен 512 байт, не вполне корректно. На самом деле в каждом секторе можно записать 512 байт данных, но область данных — это только часть сектора. Каждый сектор на диске обычно занимает 571 байт, из которых под данные отводится только 512 байт. В различных накопителях пространство, отводимое под заголовки (header) и заключения (trailer), может быть разным, но, как правило, сектор имеет размер 571 байт.

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

Для ясности...

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

А теперь перейдем к описанию некоторых областей сектора и дорожки записи. Послеиндексный интервал нужен для того, чтобы при перемещении головки на новую дорожку переходные процессы (установка) закончились до того, как она окажется перед ее первым сектором. В этом случае его можно начать считывать сразу, не дожидаясь, пока диск совершит дополнительный оборот. В некоторых накопителях, работающих с чередованием (interleave) 1:1, упомянутой задержки недостаточно. Дополнительное время можно обеспечить за счет смещения секторов таким образом, чтобы первый сектор дорожки под головкой появлялся с задержкой.

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

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

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

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

Предындексный интервал необходим для компенсации неравномерности вращения диска вдоль всей дорожки. Размер этого интервала зависит от возможных значений частоты вращения диска и сигнала синхронизации при форматировании и записи.

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