Компьютерное железо

Народ, объясните, плиз, чем конкретно отличается адресация LBA от старой CHS?

С CHS всё понятно - цилиндр, головка, сектор, просто и ясно, а вот LBA, она же тоже получается использует некоторые алгоритмы CHS, но как-то по-другому?
AH
Arbi Ha_Pi_Zov
3 093
В Википедии всё достаточно понятно описано.
Или вот ещё "LBA и LARGE - это методы распознавания жестких дисков большой емкости (более 528 Мбайт) .
Первоначально режим LBA предназначался для SCSI-устройств.
Цилиндры, головки и сектора распознаются не в трех измерениях, а только в одном.
При доступе к данным, сектора группируются в блоки, в которых первый сектор имеет порядковый номер 0, а адрес данных определяется относительно этого номера.
Полученный результат преобразуется в трехмерный адрес, состоящий из номеров цилиндра, головки и сектора.
Такое возможно, только если BIOS или жесткий диск поддерживают режим LBA.
Метод LARGE заключается в делении числа цилиндров на 2, если оно больше 1024 и меньше 2048, после чего число головок умножается на 2.
Этот метод может быть использован при работе с жесткими дисками, не поддерживающими LBA.
В режиме NORMAL распознаются только жесткие диски емкостью до 528 Мбайт.
Этот режим использовался в старых дисках.
Различие между режимами LARGE и LBA заключается в том, что LBA на половину уменьшает число цилиндров и вдвое увеличивает число головок, в то время как режим LARGE устанавливается как и режим NORMAL, но число цилиндров увеличивается, увеличивая тем самым емкость.
Большинство производимых сегодня жестких дисков поддерживают режим LBA, поэтому в BIOS Setup для жесткого диска следует установить либо режим Auto, либо LBA.
АК
Александр Кулай
94 634
Лучший ответ
Тимыч Тимыч Ту опечатка в конце. LARGE делит и умножает на 2, а не LBA
Тимыч Тимыч Смысл в том, что CHS обращается к секторам диска так же, как его попросила программа, вызвавшая функцию BIOS при обращении к диску. То есть с указанием C,H,S при вызове int 13. Обработчик int 13 записывает эти параметры напрямую в контроллер накопителя. Обработчик int13 в режиме Lage, для связи с операционной системой и прочим ПО, использует фиктивные C, H, S, преобразовывая их каждый раз в реальные перед своим обращением к диску. LBA тоже делает подмену, но интерфейс с ПО вобще не содержит C, H, S, а только "логический" номер сектора.
---
Отвечаю сейчас лишь потому, что вопрос актуален, поскольку интересен любителям виртуальных машин и старых игр
первые абзацы из вики немного проясняют ситуацию
LBA (англ. Logical block addressing) — механизм адресации и доступа к блоку данных на жёстком диске, при котором системному контроллеру нет необходимости учитывать геометрию самого жесткого диска (количество цилиндров, сторон, секторов на цилиндре) .
CHS (от англ. Cylinder, Head, Sector) — система адресации сектора (как минимальной единицы в операции чтения (записи) ) дисковых накопителей (жёстких магнитных дисков, накопителей на гибких магнитных дисках и т. п. ) основанная на использовании физических адресов геометрии диска.
или вы что-то другое спрашиваете?
как понял введение лба (а сейчас уже и лонг лба) связано с ростом объема накопителей
Дело в том, что BIOS Int 13 - это посредник между ПО и диском. Поэтому у него два программных интерфейса. Один обращён к операционной системе и остальному ПО и работает в трёх режимах: CHS,Large,LBA. Второй интерфейс, если его можно так условно назвать, обращён непосредственно к аппаратному диску через ячейки памяти контроллера IDE. Он в старых системах работает всегда одинаково, с реальной геометрией диска.
---
Смысл в том, что режим CHS обращается к секторам диска так же, как его попросила программа, вызвавшая функцию BIOS при обращении к диску. То есть с указанием C,H,S при вызове int 13. Обработчик int 13 записывает эти параметры напрямую в контроллер накопителя. Обработчик int13 в режиме Lage, для связи с операционной системой и прочим ПО, использует фиктивные C, H, S, преобразовывая их каждый раз в реальные перед своим обращением к диску. LBA тоже делает подмену, но интерфейс с ПО вобще не содержит C, H, S, а только "логический" номер сектора.
---
Отвечаю сейчас лишь потому, что вопрос актуален, поскольку интересен любителям виртуальных машин и старых игр
Адрес LBA - это просто номер сектора, целое число от 0 до 2^48.