Скачиваний:
406
Добавлен:
22.01.2014
Размер:
3.77 Mб
Скачать

24.4. Низкоуровневое форматирование

Низкоуровневое форматирование дисков LLF (Low Level Formatting) – это процедура создания рабочей структуры на магнитном покрытии дисков.

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

Структура формата включает в себя байты синхронизации, указывающие на начало каждого сектора, идентификационные заголовки, состоящие из номеров головки, сектора и цилиндра, а также байты циклического контроля четности (CRC, Cyclic Redundacy Check) и коды, предназначенные для обнаружения ошибок (ECC,ErrorCorrectingCode). К форматированию низкого уровня относится также маркировка дефектных секторов для исключения обращения к ним в процессе эксплуатации диска. Хотя BIOS IBM-совместимых компьютеров поддерживает работу с секторами размером 128, 256, 512 и 1024 байт, все версии MS-DOS используют только 512-байтные сектора.

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

Низкоуровневое форматирование, выполняемое пользователем с помощью обычных утилит, допустимо лишь для накопителей с внешним контроллером (ST-506/412, ESDI). Для них периодическое форматирование даже полезно, поскольку их системы позиционирования головок разомкнуты и со временем уходят от начального положения дорожек. Форматирование позволяет переписать заголовки секторов на новом положении головок.

Для выполнения операции низкоуровневого форматирования служат специальные программы. Они имеются, например, в составе пакетов Advanced Disk Manager,SpeedStor,DiskManagerи т.д. Некоторые версииBIOS(например,AMI, AWARD) также содержат подобные программы.

Для увеличения производительности современных винчестеров при низкоуровневом форматировании используют метод чередования секторов, а также методы смещения ("перекоса") цилиндров и головок.

Первые контроллеры были слишком медленны для того, чтобы выполнять последовательное чтение секторов диска и передавать их компьютеру. Действительно, после того как головка считала информацию из нужного сектора, контроллеру и процессору определенное время на ее обработку и запоминание. Лишь после завершения этой процедуры может выполняться считывание информации из следующего сектора. Однако пока контроллер и процессор были заняты, диск продолжал вращаться. В том случае, если соседним секторам были присвоены последовательные номера, оказывалось, что к моменту готовности к следующему считыванию очередной сектор уже прошел мимо головки. Для повышения эффективности работы винчестера стал применяться метод чередования секторов Interleave, при котором физические номера секторов заменяются логическими. Например, если при коэффициенте чередования 1:1 логические сектора следуют в обычном порядке: 1, 2, 3,...16, 17, то при коэффициенте чередования 2:1 картина уже несколько иная: 1, 10, 2,11,...8, 17. И еще один пример для коэффициента чередования 3:1: 1, 7, 13, 2,...11, 17, 6, 12. Числитель в коэффициенте чередования показывает за сколько полных оборотов диска могут быть прочитаны все сектора одной дорожки. В частности, для отношения 3:1 потребуется три полных оборота диска. Впрочем, эффективным средством для получения коэффициента чередования 1:1 является аппаратное кэширование при чтении. Так, некоторые контроллеры винчестеров, использующих интерфейс SТ506/412, могут прочесть содержимое только одной дорожки диска во внутреннюю буферную память (так называемый буфер дорожки), поэтому коэффициент чередования для них не играет никакой роли. Обычно их называют контроллерами с interleave 1:1. Контроллеры с высокопроизводительными интерфейсами (о них чуть ниже), благодаря достаточно высокой скорости передачи, обеспечивают уже реальное значение коэффициента чередования секторов 1:1.

Метод смещения ("перекоса") цилиндров и головок называют, соответственно, cylindеrskewиheadskew. В частности, head skew - это угол (в секторах), на который надо сместить (относительно индексной метки) начало сектора на одной поверхности диска относительно другой для компенсации времени, необходимого контроллеру для переключения с одной магнитной головки на другую. Т.е., head skew - это смещение первого логического сектора относительно индексной метки между каждой физической головкой винчестера. А суlinderskew, в свою очередь, представляет собой разницу в отсчете секторов на соседних цилиндрах диска (т.е. смещение первого логического сектора между последовательными цилиндрами), который вводится для того, чтобы компенсировать время, необходимое магнитной головке для перехода к соседнему цилиндру. Например, если предположить, что винчестер использует 17 секторов на дорожку, то при значении head skew, равном 2, под первым сектором для нулевой головки находится шестнадцатый сектор, для первой головки - четырнадцатый сектор, для второй головки - двенадцатый и т.д. Все это, разумеется, при условии, что коэффициент чередования секторов равен 1:1.

Процедуру низкоуровневого форматирования целесообразно выполнять для винчестеров с интерфейсом SТ506/412. Для жестких дисков с другим интерфейсом такая операция может иногда оказаться не только бесполезной, но и вредной.

Например, для современных ATA-винчестеров низкоуровневое форматирование выполняется еще на заводе. Поскольку эти винчестеры используют режимы трансляции параметров, то, помимо обычной информации, на диск записывается специальная информация, позволяющая идентифицировать данный накопитель (обычно говорят о дорожке под номером "минус один"). Кроме этого, так как для управления головками используется линейный двигатель, то для него на диске, в случае встроенной сервосистемы, также должна храниться служебная сервоинформация. На ранних моделях АТА-винчестеров такая информация хранилась на выделенных рабочих поверхностях, у современных же она хранится вместе с заголовками секторов. Что может произойти с таким винчестером после операции низкоуровневого форматирования, объяснять, видимо, не нужно. Коэффициент чередования для всех винчестеров ATA равен 1:1, это тоже следует иметь в виду.

Таким образом, низкоуровневое форматирование накопителя со встроенным контроллером (ATA, SCSI) утилитами, не предназначенными для данной конкретной модели, выполнять недопустимо. Отношение их контроллеров к команде низкоуровневого форматирования может быть различным:

1. команда не поддерживается и отвергается как недопустимая;

2. контроллер «сделает вид», что форматирование выполнено успешно, однако фактического форматирования выполнять не будет;

3. форматирование будет выполнено, что приведёт к потере служебной информации и возможно к потере работоспособности накопителя.

Многие типы контроллеров могут поддерживать один или несколько резервных секторов на дорожку (аlternate sесtor, Sparing sector). Такой сектор идентифицируется, например, как сектор 0 и форматируется последним физическим сектором на дорожке. Если в одном из секторов появляется ошибка, то для его замещения используется резервный сектор. В противном случае вся дорожка должна быть отмечена как дефектная.