Главная » Ассемблер, Железо » Форматы адресации данных LBA и CHS

0

Если у программиста возникает потребность в работе с диском на низком уровне (то есть на уровне BIOS или дискового контроллера), то он должен знать формат носителя информации, чтобы получить доступ к данным. Понятие «формат носителя информации» включает в себя:

•           структуру информации на носителе (физический формат);

•       способы адресации элементов физической структуры (логический формат).

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

Как уже было упомянуто выше, физический адрес сектора на диске может быть задан или в формате линейного адреса (LBA), или в формате «цилиндр-головка-сектор» (CHS). Линейная адресация применяется для жестких дисков и сменных носителей большой емкости, а формат CHS — в основном для гибких дисков.

Режим LBA отличается исключительно простотой: для обращения к информации на диске используется только один параметр — абсолютный (логический) адрес сектора. Счет секторов ведется с нуля, а максимальный номер сектора равен 228-1.

Формат CHS неудобен тем, что программист вынужден выполнять дополнительные преобразования адреса сектора данных, к которому производится обращение — пересчитывать линейный (логический) адрес в трехмерную систему координат, включающую номер цилиндра (дорожки) С, номер поверхности диска (головки) Н и номер сектора на дорожке S. При этом программист должен учитывать, что счет номеров цилиндров и поверхностей ведется с нуля, а счет номеров секторов — с единицы. Если в документации дисковода указано, что он имеет Ст)! цилиндров, поверхностей и секторов на дорожке, то значение С может изменяться от 0 до (С^-1), значение Н — от 0 до, а значение S — от 1 до S^.

Соответствие между физическим адресом сектора в формате CHS и его логическим номером N определяется следующей формулой: I

Обратите внимание, что счет логических номеров ведется с нуля. Для обратного преобразования N в CHS используется целочисленное деление (остаток отбрасывается):

I

Предельные значения величиниопределяются количе

ством двоичных разрядов, выделенных для их хранения в регистрах контроллера диска. Для жестких дисков они могут достигать значений 65 536, 16 и 255 соответственно (при использовании стандартных функций BIOS возникают дополнительные ограничения: предельное число цилиндров — 1024, секторов — 63). Максимально возможный объем диска АТА-типа равен произведению числа секторов на диске на размер сектора в байтах — 128 Гбайт в режиме LBA и 127,5 Гбайт в режиме CHS (то есть почти не зависит от режима адресации). В настоящий момент указанный предел практически достигнут — уже выпускаются диски объемом 80 Гбайт. Дисководы с интерфейсом SCSI изначально рассчитаны только на линеиную адресацию данных и позволяют адресовать до I секторов, то есть могут хранить до 2 Тбайт информации.

Источник: Кулаков В. К90 Программирование на аппаратном уровне: специальный справочник (+дискета). 2-е издание. — СПб.: Питер, 2003. — 847 е.: ил.

По теме:

  • Комментарии