Реклама:

Представьте теперь, что мы взяли восемь секторов и, не обращаясь непосредственно к физическим цилиндрам, головкам и секторам, пронумеровали их от 0 до 7. Таким образом, если необходимо обратиться к четвертому сектору накопителя, можно сослаться на него как на сектор 0,1,2 в режиме CHS или как на сектор 3 в режиме LBA. Соотношение между номерами секторов воображаемого восьмисекторного накопителя в режимах CHS и LBA приведено в табл. 7.16.

Таблица 7.16. Нумерация секторов в режимах CHS и LBA для воображаемого накопителя, содержащего два цилиндра, две головки и по два сектора на каждой дорожке (в общей сложности — восемь секторов)_

Режим

Соответствующие номера секторов

         

CHS LBA

0,0,1 0,0,2 0,1,1 0 1 2

0,1,2 3

1,0,1 4

1,0,2 5

1,1,1 6

1,1,2 7

Как видно из приведенного примера, использование нумерации LBA заметно облегчает и упрощает процесс обработки данных. Несмотря на это при создании первых ПК вся адресация АТА на уровне устройства выполнялась методом CHS.

Преобразования CHS/LBA и LBA/CHS

Адресация секторов может выполняться как в режиме CHS, так и в режиме LBA. Для любого конкретного накопителя существует определенное соответствие между адресациями CHS и LBA, которое, в частности, позволяет преобразовывать адреса CHS в адреса LBA и наоборот. Спецификация АТА-1 предлагает довольно простую формулу, с помощью которой можно преобразовывать параметры CHS в LBA:

LBA = (((С х НРС) + Н) х SPT) + S - 1.

Обратив эту формулу, можно выполнить обратное преобразование, т.е. преобразовать параметры LBA в адрес CHS:

C = int(LBA/SPT/HPC),

Н = int ((LBA/SPT) mod НРС),

S = (LBA mod SPT) + 1.

В этих формулах использованы следующие обозначения:

■ LBA — адрес логического блока;

■ С — цилиндр;

■ Н — головка;

■ S — сектор;

■ НРС — количество головок в каждом цилиндре ;

■ SPT — количество секторов на каждой дорожке;

■ int X — целочисленная часть X;

■ X mod Y — остаток от деления X на Y.

С помощью данных формул можно вычислить параметры LBA практически для любого адреса CHS и наоборот. Если взять накопитель с 16 383 цилиндрами, 16 головками и 63 секторами на каждой дорожке, полученное соотношение адресов CHS и LBA будет подобно показанному в табл. 7.17.

Команды BIOS и команды АТА

Помимо двух методов адресации секторов (CHS и LBA), существуют еще два уровня интерфейса, в которых она выполняется. Первым уровнем является область взаимодействия операционной системы и BIOS (с помощью команд драйвера); вторым — область сопряжения BIOS и накопителя (с помощью команд АТА). На каждом из этих уровней используются оп-

ределенные команды, которые поддерживают как режим CHS, так и режим LBA. На рис. 7.12 схематически показаны уровни интерфейса.

Таблица 7.17. Параметры CHS и соответствующая им нумерация секторов LBA для накопителя, содержащего 16383 цилиндра, 16 головок и 63 сектора на каждой дорожке (общее количество секторов— 16514064)_


⇐ Предыдущая страница| |Следующая страница ⇒