link280 link281 link282 link283 link284 link285 link286 link287 link288 link289 link290 link291 link292 link293 link294 link295 link296 link297 link298 link299 link300 link301 link302 link303 link304 link305 link306 link307 link308 link309 link310 link311 link312 link313 link314 link315 link316 link317 link318 link319 link320 link321 link322 link323 link324 link325 link326 link327 link328 link329 link330 link331 link332 link333 link334 link335 link336 link337 link338 link339 link340 link341 link342 link343 link344 link345 link346 link347 link348 link349 link350 link351 link352 link353 link354 link355 link356 link357 link358 link359 link360 link361 link362 link363 link364 link365 link366 link367 link368 link369 link370 link371 link372 link373 link374 link375 link376 link377 link378 link379 link380 link381 link382 link383 link384 link385 link386 link387 link388 link389 link390 link391 link392 link393 link394 link395 link396 link397 link398 link399 link400 link401 link402 link403 link404 link405 link406 link407 link408 link409 link410 link411 link412 link413 link414 link415 link416 link417 link418 link419

PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Накопители на жёстких дисках

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

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

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

Нумерация секторов на дорожке начинается с единицы, в отличие от головок и цилиндров, отсчет которых ведется с нуля. Например, дискета емкостью 1,44 Мбайт содержит 80 цилиндров, пронумерованных от 0 до 79, в дисководе установлены две головки (с номерами 0 и 1) и каждая дорожка цилиндра разбита на 18 секторов (1–18).

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

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

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


Примечание!

Форматирование низкого уровня обсуждается далее. Не путайте его с форматированием высокого уровня, которое выполняется с помощью программы FORMAT в DOS и Windows.

Заголовки и суффиксы секторов не зависят от операционной и файловой систем, а также от файлов, хранящихся на жестком диске. Помимо этих элементов, существует множество промежутков в секторах, между секторами на каждой дорожке и между дорожками, но ни один из этих промежутков не может быть использован для записи данных. Промежутки создаются во время форматирования на низком (физическом) уровне, при котором удаляются все записанные данные. На жестком диске промежутки выполняют точно такие же функции, как и на магнитофонной кассете, где они используются для разделения музыкальных записей. Начальные, завершающие и промежуточные пробелы представляют собой именно то пространство, которое определяет разницу между форматной и неформатной емкостью диска. Например, емкость 4-мегабайтовой дискеты (3,5-дюйма) после форматирования “уменьшается” до 2,88 Мбайт (форматная емкость). Дискета емкостью 2 Мбайт (до форматирования) имеет форматную емкость 1,44 Мбайт. Жесткий диск Seagate ST-4038, имеющий неформатную емкость 38 Мбайт, после форматирования “уменьшается” до 32 Мбайт (форматная емкость).

Форматирование низкого уровня современных жестких дисков ATA/IDE и SCSI выполняется еще на заводе, поэтому изготовитель указывает только форматную емкость диска. Тем не менее практически на всех дисках имеется некоторое зарезервированное пространство для управления данными, которые будут записаны на диске. Как видите, утверждать, что размер любого сектора равен 512 байт, — не вполне корректно. На самом деле в каждом секторе можно записать 512 байт данных, но область данных — это только часть сектора. Каждый сектор на диске обычно занимает 571 байт, из которых под данные отводится только 512 байт. В различных накопителях пространство, отводимое под заголовки и суффиксы, может быть разным, но, как правило, сектор имеет размер 571 байт. Как уже говорилось, многие современные диски используют схему разметки без идентификаторов заголовков секторов, что высвобождает дополнительное пространство для данных.

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

В таблице в качестве примера приведен формат дорожки и сектора стандартного жесткого диска, имеющего 17 секторов на дорожке. Из таблицы видно, что “полезный” объем дорожки примерно на 15% меньше возможного.

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

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


Примечание!

Раньше параметр смещения головки устанавливался пользователем вручную при низкоуровневом форматировании. Сегодня такое форматирования выполняется в промышленных условиях, и эти параметры нельзя изменить.

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

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

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

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

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

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