■ НРС — количество головок в каждом цилиндре (общее количество головок);
■ SPT — количество секторов на каждой дорожке;
■ int X — целочисленная часть X;
■ X mod Y — модуль (остаток) от X/Y.
С помощью этих формул можно вычислить параметры LBA практически для любого адреса CHS и наоборот. Данный накопитель содержит 16383 цилиндров, 16 головок и 63 сектора на каждой дорожке. Соотношение адресов CHS и LBA показано в табл. 7.9.
Команды BIOS и команды АТА
Помимо двух методов адресации секторов (CHS и LBA), существует еще два уровня интерфейса, в которых используется адресация секторов. Одним из интерфейсов является область взаимодействия операционной системы и базовой системы ввода-вывода (с помощью команд BIOS); другим — область сопряжения базовой системы ввода-вывода и накопителя (с помощью команд АТА). На каждом из этих уровней используются определенные команды, которые поддерживают как режим CHS, так и LBA. На рис. 7.6 показаны различные уровни интерфейса.
Когда операционная система обращается к базовой системе ввода-вывода для чтения или записи секторов, она выдает соответствующие команды через программное прерывание INT13h, которое представляет собой стандартную подпрограмму BIOS, используемую для доступа к диску. Подфункции прерывания INT13h позволяют выполнять чтение или запись секторов, используя при этом адресацию LBA или CHS. После этого стандартные программы базовой системы ввода-вывода преобразуют команды BIOS в аппаратные команды АТА, которые передаются через порты шины ввода-вывода на контроллер дисковода. Аппаратные команды АТА также могут использовать адресацию CHS или LBA, несмотря на то что существуют определенные ограничения. Будет ли использоваться базовой системой ввода-вывода и накопителем адресация CHS или LBA, зависит от емкости жесткого диска, срока службы накопителя и "возраста" BIOS, установленных параметров BIOS Setup и используемой операционной системы.