![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Традиционный сервис BIOS
Традиционный дисковый сервис работает в 16-разрядном режиме процессора, все параметры вызова передаются через регистры процессора. Адрес сектора задается в системе CHS и размещен весьма специфично. Сервис вызывается программным прерыванием Int 13h, при вызове принимаются следующие соглашения: ♦ номер функции задается в регистре АН и не должен превышать 3Fh; ♦ логический номер диска задается в регистре DL (бит 7 = 0 — признак обращения к НГМД); ♦ номер цилиндра (О-1023) задается в регистре СН (младшие8бит)иСЦ7: 6] (стар ♦ номер головки (0-255) задается в регистре DH; ♦ номер начального сектора (1-63) задается в регистре CL [ 5: 0]; ♦ количество секторов, участвующих в операции, 8 бит — в регистре AL (0-255); ♦ указатель на начало буфера оперативной памяти для считываемых и записы ♦ результат выполнения операции определяется по флагу переноса: С F = 0 —успешное выполнение операции, CF = 1 — обнаружены ошибки (код состояния возвращается в регистре АН, код завершения последней операции с дискетами хранится по адресу 40: 4lh, с жесткими дисками — 40: 74h); ♦ таблица параметров диска для дискет (DPT) задана указателем в памяти по Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера Список функций традиционного сервиса приведен в табл. 12.7, подробнее они описаны в [4, 9]. Устройства могут не поддерживать некоторые функции, о чем драйверы должны «честно сообщить» кодом возврата Olh. Таблица 12.7. Функции традиционного дискового сервиса 12.8. Сервисы и прерывания BIOS 1 Только для фиксированных дисков. 2 Только для дискет и других сменных носителей. 3 Назначение отличается от обычного. Формально традиционный сервис позволяет работать с дисками, имеющими до 1024 х 256 х 63 = 16 515 072 секторов (около 8, 4 Гбайт). Ряд операционных систем имеет ошибку, не позволяющую использовать полный объем, допустимый данным сервисом. Для дисков объемом более 15 481 935 секторов следует пользоваться только функциями расширенного сервиса (см. ниже). Однако при работе с устройствами АТА имеется еще и барьер в 528 Мбайт. Дело в том, что контроллер жесткого диска АТА, на который ориентированы драйверы Int 13h, имеет только 4-битный регистр номера головки (а в BIOS — 6 бит). Правда, этот же контроллер способен принимать 16-битный номер цилиндра (в BIOS — 10 бит). Понятно, что непосредственно без искажений через эти два фильтра (формат вызова и формат регистров контроллера) может пройти только вызов с самыми жесткими ограничениями по каждой координате. Тогда ограничение, полученное тем же перемножением диапазонов координат, получается около 528 миллионов байт: (210 = 1024 цилиндра) х (24 - 528 482 304 байт. 16 головок) х (26 - 1 = 63 сектора) х 512 байт = Для преодоления 528-мегабайтного барьера дисков АТА, не трогая программного интерфейса, в BIOS ввели расширение традиционного дискового сервиса. Интер- 490______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера фейс АТА в трехмерной геометрии позволяет реализовать довольно большой (но уже не запредельный) объем диска: (216 = 65 536 цилиндров) х (24 = 16 головок) х (28 - 1 = 255 сектора) х 512 байт = - 136, 9 Гбайт. Чтобы достичь хотя бы интерфейсного ограничения BIOS (8, 4 Гбайт), стали применять трансляцию параметров вызова функций Int 13h, которые будем теперь называть логическими, в физические* параметры, передаваемые контроллерам АТА-дисков. В функции, которая сообщает параметры диска (функция 8), производится обратная трансляция, так что на стороне вызова программного интерфейса Int 13h присутствуют только логические параметры. Естественно, логический объем диска не может превышать физического: (С х Н х S )ЛОГ ≤ (С х Н х 8)ФИЗ- Подробнее о преодолении барьеров и способах трансляции (LBA, Large Disk, ЕСН5)см.в[1, 4, 9]
|