Трансляция секторов и логическая адресация блоков (LBA) (часть 3)

Но трансляция секторов — еще не самое удивительное.
По результатам работы CORETEST было обнаружено, что устройство EIDE имеет 64 головки! Как же управлять ими? Если головок 64, значит пластин должно быть 32 — а устройство имеет высоту 1 дюйм!
На самом деле, конечно все не так. Устройство сообщает о том, что оно имеет 64 головки, 63 сектора, 611 цилиндров. Таким образом, общая его емкость — это 1231776 К. Но ранее я упоминал, что у меня было устройство с 2448 цилиндрами, 16 головками и 63 секторами. Математически — это одно и то же устройство, и никаких проблем возникать не должно.
Внимательный читатель обратит внимание на то, что и 16 головок могут не уместиться в устройстве высотой в 1 дюйм. Но я же должен что-то сказать ПК, когда устанавливаю диск?
В этом устройстве, как и во многих современных устройствах, используется ZBR. Это значит, что в системе используется переменное количество секторов на дорожку. Проблема остается только в том, что BIOS надо точно знать количество цилиндров, головок, секторов на дорожку на вашем устройстве и будет отказываться использовать устройство до тех пор, пока вы не снабдите его необходимой информацией.
Современные контроллеры дисков разработаны таким образом, чтобы все-таки осчастливить компьютер необходимой информацией. Эта проблема решается путем использования логической адресации блоков (Logical Block Adress — LBA). При этом переопределяется существующая геометрия диска, таким образом, что уменьшается количество цилиндров и увеличивается количество головок. Обычно этот режим предоставляется дисковым интерфейсом, но иногда для этой цели используются перемычки; это позволяет обойти ограничение DOS в 504 М.
Blog tag: Core