BIOS Setup

BIOS Setup


- (выбор способа включения вентиля линии A20). Параметр позволяет управлять способом включения адресной линии A20, которая отвечает за доступ к памяти, физические адреса которой превышают 1 Мбайт. Стоит напомнить, что 20-разрядная адресная шина (A0 - A19) позволяла адресоваться в пределах первого мегабайта памяти. Если быть более точным, то эта линия отвечает за доступ к первым 64 килобайтам верхней памяти, известным как область HMA (High Memory Area). Доступ к HMA требует управления специальным аппаратным узлом, работа которого может быть блокирована или активизирована. При установке опции "Gate A20 Option" в состояние "Fast" работа линии будет контролироваться специальным набором микросхем на системной плате. Если линия А20 деблокирована, то HMA-область доступна для любой программы, функционирующей в реальном режиме работы процессора. Обычно эта область памяти отдается под MS-DOS, а для деблокирования линии используется драйвер HIMEM.SYS.
Может принимать значения:
"Fast" - управление осуществляется чипсетом, что повышает скорость работы,
"Normal" - управление осуществляется через контроллер клавиатуры.
В некоторых версиях BIOS опция может называться "Fast Gate A20 Option", а параметрами будут стандартные "Enabled"/ "Disabled". Иногда в старых версиях BIOS можно встретить опцию с почти романтическим названием "LOWA20# Select". А речь идет о том, какое устройство управляет низким уровнем сигнала на линии A20: чипсет или контроллер клавиатуры.
Достаточно редко, но все же можно встретить в литературе в отношении управления линии A20 такой термин, как "эмуляция". В данном случае имеется ввиду, что стандартный способ управления "вентилем" осуществляется через контроллер клавиатуры. А чипсет заменяет, подменяет это управление, "эмулирует" его (дополнительно см. ниже). И следующая опция очень хорошо показывает это. "Keyboard Emulation" имеет два значения. "Enabled" соответствует "Fast", а "Disabled" - "Normal". Следующая опция "Gate A20 Emulation" (или "Fast Gate A20 Emulation") уже не должна вызывать вопросов. Правда, опций с такими названиями, пожалуй, уже не встретишь. Иногда в литературе можно найти трактовку опции "Turbo Switch Function" как аналога "Fast Gate A20 Option", подразумевая функцию переключения, но это не совсем корректно.
Пользователям, умеющим работать с командной строкой, можно порекомендовать внешнюю команду DOS MEM /A, показывающую стандартную информацию о памяти и дополнительную информацию о сегменте HMA. Команда работает и в среде "Windows 9x".
Ну и наконец, опция "Cyrix A20M Pin", применявшаяся во времена 386-х процессоров. Процессоры Cyrix уже тогда были "особенными". Речь идет о дополнительной поддержке со стороны BIOS. Ведь в отличие от процессоров Intel, 386-е процессоры Cyrix имели собственный кэш. Такие процессоры могли иметь проблемы с обновленными комплектующими, поддерживающими кэш-память. Вполне вероятными были и другие системные конфликты. Чтобы обеспечить управление линии A20 контроллером клавиатуры, BIOS через включение опции ("Enabled") сообщал центральному процессору о состоянии вентиля. И еще о кэше. Установка "BIOS Setup" позволяла процессору через внутренний кэш кэшировать первые 64 КБ каждого (!) мегабайта памяти в реальном режиме (вентиль всегда был открыт в защищенном режиме работы процессора), и это было достаточно эффективным.

Логически память разбивается на сегменты размером по 64 КБ, что соответствует 2^16. В совсем "стареньких" машинах с 16-разрядными процессорами физически адрес не мог перейти ограничение в 64 КБ. 20-разрядная адресация, т.е. использование 20-разрядной адресной шины, достигалась благодаря тому, что при формировании 20-разрядного физического адреса использовалось суммирование со смещением в 4 разряда двух адресов: адреса сегмента и исполнительного адреса.
При вычислении физических адресов в системах с 8086/88-ми процессорами могла иметь место вполне стандартная ситуация, а именно адресное переполнение, которое при наличии 20-разрядной шины адреса приводило к сворачиванию адресного пространства в т.н. кольцо. А это и происходило как раз в процессе упомянутого суммирования.
В процессорах следующего поколения (в 286-х был преодолен предел в 1 МБ адресного пространства) на его выходе A20 устанавливалось значение "1", что соответствовало адресу из второго мегабайта памяти. При разработке процессоров и чипсетов машин класса IBM PC/AT) в схему чипсета был введен специальный вентиль Gate A20. В то время его появление в наборе логики было прежде всего связано с обеспечением полной программной совместимости с предыдущим классом машин. Вентиль принудительно устанавливал нулевое значение на линии A20 адресной шины.


На первых машинах, где был реализован контроль и управление линией A20, управление последней осуществлялось через программно управляемый бит чипа контроллера клавиатуры 8042 (или 8742) (см. дополнительно раздел "Keyboard"). Позднее эта функция была возложена и на чипсет, что значительно ускорило скоростные характеристики ("Gate A20 Fast Control") системы.
В итоге это означало, что появление 32-разрядных процессоров не вызвало заметных изменений по данной теме, поскольку специальный вход процессоров (A20M - A20 Mask) остался. Упомянутый вход современного процессора есть не что иное, как маскирование бита A20 физического адреса для эмуляции адресного пространства 8086 в реальном режиме работы процессора. А это связано и с тем, адресная линия A20 используется также для переключения из реального режима в защищенный, что сразу нашло применение в многозадачных и сетевых средах. Иногда можно встретить в описаниях и такие пояснения. Что существует категория пользователей, использующих старое программное обеспечение. Для таких и предназначена эта опция. Это означает, что наличие такой опции связано с совместимостью со старым ПО. Правда, фразы о категориях пользователей встречаются все реже и реже, но опция по прежнему входит в "стандартный" набор "BIOS Setup". Необходимо также отметить, что некоторые старые драйверы MS-DOS, например VDISK.SYS, могут блокировать линию А20, входя в конфликт с драйвером HIMEM.SYS (это опять таки из далекого прошлого).
Уточним вопрос об "эмуляции" и переключении процессора. Обычным образом программы для A20-операций используют обращения через BIOS или порты 60/64h, предназначенные для контроллера клавиатуры. Чипсет перехватывает эти обращения, тем самым эмулируя контроллер клавиатуры и разрешая дальнейшую генерацию соответствующих сигналов. Последовательность при этом следующая. В порт 64h записывается значение D1h, а затем в порт 60h - 02h. Если же в порт 64h затем записать значение FEh, то можно произвести "теплый" рестарт процессора. В обычном режиме работы процессора контроль линии A20, как "Fast", осуществляется через порт 92h, который программы используют для BIOS-вызовов. Возможна ситуация, когда контроль одновременно осуществляется и контроллером клавиатуры, и чипсетом. В этом случае линия A20 контроллируется через порты 60/64h.  








Содержание раздела