Реклама:

Цилиндр

Головка

Сектор

LBA

0

0

1

0

0

0

63

62

1

1

1

63

999

15

63

1007999

1000

0

1

1008000

9999

15

63

10079999

10000

0

1

10080000

16382

15

63

16514063

Рис. 7.12. Взаимоотношения между BIOS и схемой физической адресации секторов. (Здесь выражение L-CHS обозначает логический CHS, a P-CHS — физический CHS)

Когда операционная система обращается к BIOS для чтения или записи секторов, она выдает соответствующие команды через программное прерывание INT13h, которое обращается к стандартной подпрограмме BIOS, используемой для доступа к диску. Подфункции прерывания INT13h позволяют выполнять чтение или запись секторов, используя при этом адресацию LBA или CHS. После этого стандартные программы базовой системы ввода-вывода преобразуют команды BIOS в аппаратные команды АТА, которые передаются через порты шины ввода-вывода на контроллер дисковода. Аппаратные команды АТА также могут использовать адресацию CHS или LBA, несмотря на то что существуют определенные ограничения. Будут ли BIOS и накопитель использовать адресацию CHS или LBA, зависит от емкости жесткого диска, срока службы накопителя и "возраста" BIOS, установленных параметров BIOS и используемой операционной системы.

Ограничения CHS (преодоление ограничения в 528 Мбайт)

BIOS обращается к драйверу жесткого диска с помощью прерывания INT13h, которое предоставляет функции чтения и записи на диск на уровне секторов. Прерывание INT13h требует указания определенного сектора, при этом каждый сектор адресуется расположением цилиндра, головки и сектора. Этот интерфейс обращения к диску называется CHS-адресацией и используется операционной системой и дисковыми утилитами низкого уровня. Изначально интерфейс прерывания 13Ь был реализован IBM в BIOS для контроллера жесткого диска компьютера PC XT. Этот интерфейс был создан в 1983 году, а в 1984 году был включен в BIOS системной платы PC AT. Интерфейс использует числа для адресации каждого отдельного сектора, цилиндра и головки. В табл. 7.18 приведены ограничения параметров CHS прерывания INT13h для стандартной BIOS.

Таблица 7.18. Ограничения параметров CHS для прерывания BIOS INT13h

Поле

Размер поля, бит

Максимальное значение

Диапазон

Количество используемых значений

Цилиндры

10

1024

0-1023

1024

Головки

8

256

0-255

256

Секторы

6

64

0-63

64

Концепция определения максимального значения при заданном количестве цифр проста. К примеру, если у вас есть отель, в котором номера комнат ограничены двумя разрядами, вы сможете пронумеровать только сто комнат — от 0 до 99. Номера CHS, используемые интерфейсом INT13h, записаны в двоичном формате. Поскольку цилиндры адресуются десятью битами, можно использовать максимум 1024 цилиндра (от 0 до 1023). Максимальное количество головок, с которыми можно работать через BIOS, равно 256; они нумеруются от 0 до 255. И наконец секторы, с которыми еще больше проблем. Секторы на дорожке адресуются шестью битами, значит, можно адресовать максимум 64 сектора. Однако, поскольку нумерация начинается не с нуля, а с единицы, суммарное количество секторов на дорожку, с которым может работать BIOS, не должно превышать 63.


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