logo
1 / Lectures / Lect5_pc

Автоматическое распределение системных ресурсов (Первоначальный заголовок – Спецификация Plug&Play для шины isa) ([5], с.69)

Системными ресурсами в ПЭВМ называют адреса пространства ввода-вывода и входы аппаратных (маскируемых) прерываний, а также адреса памяти и каналы контроллеров прямого доступа.

При установке в ПЭВМ карт расширения: сетевых карт, звуковых карт, внутренних модемов, различных контроллеров и т.п., – им выделяются перечисленные системные ресурсы. И если пространство ввода-вывода довольно свободно, то прерывания, обычно, представляются весьма дефицитным ресурсом.

Наиболее часто карты расширения подключаются к шинам PCI и ISA.

Первоначально назначение адресов ввода-вывода и прерываний для подключаемых устройств выполнялось вручную, с помощью переключателей (джамперов) на картах расширения. Несколько позже эти действия стали выполняться посредством специальных утилит, поставляемых изготовителем карты и позволяющих зафиксировать эти параметры ресурсов в памяти конфигурации карт (сохраняющей информацию при выключении питания).

Установленные параметры также могли заноситься в какие-либо конфигурационные файлы (и часто отражались в файлах CONFIG.SYS и AUTOEXEC.BAT для инициализации драйверов, обслуживающих данные устройства). Параметры, записанные в память конфигурации карты, драйверы могли прочитать и самостоятельно. Такая практика применялась для карт, подключаемых к шине ISA.

Процедура конфигурирования предполагала определенные знания и навыки у лиц, ее выполняющих и нередко приводила к ресурсным конфликтам между различными устройствами ПЭВМ, вплоть до невозможности загрузки системы.

Поэтому естественным для разработчиков аппаратных и программных средств было стремление упростить эту процедуру, возложив ее на саму ПЭВМ.

Начиная с 1994 г., для автоматизации процедур назначения системных ресурсов устройствам (конфигурирования карт расширения), подключаемым к шинам расширения различного типа, и исключения возможных конфликтов при выполнении теста начальной загрузки BIOS – POST (Power On Self Test) по включении ПЭВМ, ведущими производителями компьютеров и программного обеспечения (Intel, Compaq, Phoenix, Microsoft, DEC и др.) была разработана серия спецификаций (неофициальных стандартов) Plug and Play.

Эти спецификации относились к различным видам шин, портов и интерфейсов: ISA, SCSI, PCI, COM, LPT, а также BIOS и расширенным данным конфигурации системы (ESCD – Extended System Configuration Data). Позже появились дополнения для CD-ROM, IEEE 1394 и др.

Спецификации рассматривают Plug and Play как технологию, поддерживающую автоматическую конфигурацию аппаратных средств ПЭВМ и подключенных устройств. Пользователь может просто подключить новое устройство, например, звуковую карту или (внутренний) факс-модем (“plug it in”) и начать работать (“begin playing”) без необходимости конфигурировать подключенное устройство вручную. Технология Plug and Play реализована в аппаратных средствах, операционных системах, например, Microsoft® Windows® 95, и в поддерживающем программном обеспечении, таком как драйверы и BIOS”.

Проблемы автоматической конфигурации были связаны, в первую очередь, с тем, что в то время наибольшее распространение получили карты расширения, подключаемые к шине ISA, отдельные слоты которой не имели возможности независимого обращения к регистрам карты для их конфигурирования. Кроме того, как отмечалось выше, многие ISA-карты просто не допускали программного изменения назначенных системных ресурсов.

(В шине PCI возможности автоматического конфигурирования подключаемых к ней устройств были предусмотрены изначально.)

С целью разрешения этих проблем в ISA-картах, отвечающих спецификации Plug & Play, стали предусматривать возможность выполнения специальной процедуры взаимодействия с BIOS (и системными утилитами, например, DOS-менеджером конфигурации). В ходе этой процедуры было возможно “изолировать” такую ISA-карту и назначить ей свободные системные ресурсы, учитывая ее требования и ограничения.

Для этого ISA-карта расширения, отвечающая спецификации Plug and Play, оснащалась набором конфигурационных регистров (обычно, это специальная память на карте), в которых сохраняется информация о требуемых и выделенных карте системных ресурсах. Обмен информацией с этими регистрами и осуществлялся в процессе конфигурирования устройств, выполняемом BIOS или/и операционной системой.

Автоматическое конфигурирование карт расширения, подключенных к шине PCI поддерживается средствами BIOS и ориентировано на технологию Plug and Play. Стандарт PCI определяет для каждого слота конфигурационное пространство размером до 256 байт (восьмиразрядных регистров), не приписанных ни к пространству памяти ни к пространству ввода/вывода. Доступ к ним осуществляется по специальным циклам конфигурационного чтения и записи шины PCI, вырабатываемых ее контроллером при обращении процессора к его регистрам.

После аппаратного сброса (или включения питания) устройства PCI не отвечают на обращения к пространству памяти и ввода/вывода и доступны только для операций конфигурирования. В этих операциях устройства выбираются по индивидуальным сигналам IDSEL# (обычно являющихся старшими разрядами линий адреса шины PCI) и сообщают о своих потребностях в ресурсах и возможных диапазонах их перемещения.

После распределения ресурсов, выполняемого программой конфигурирования (во время POST), в устройства записываются их конфигурационные параметры и они становятся доступны командам обращения к памяти и портам ввода/вывода.

Формат конфигурационного пространства карт PCI и конфигурационных регистров карт ISA различен.

Однако, необходимость поддерживать старые карты ISA, не предусматривающие средств автоматической конфигурации (которые, кстати, получили в англоязычной литературе название legacy cards, где legacy – наследие), привела к определенным усложнениям в процессах конфигурации, позволяющим учитывать занятые такими картами ресурсы и исключать их из распределения.

Спецификации Plug & Play были построены с использованием принципов конфигурирования шины EISA, в которой имеется специальная память конфигурирования. Поэтому для сохранения информации о распределении ресурсов, получившая название Extended System Configuration Data (ESCD – расширенные данные конфигурирования системы) записывается в специальную память, сохраняющую информацию при выключении питания – NVS (Non Volatile Storage). Обычно, это отдельная энергонезависимая память, но мог быть и файл на жестком диске. В первом случае, NV-память отображается в верхнюю область адресного пространства. Доступ к этой памяти обеспечивается специальными функциями BIOS, поддерживающего Plug & Play.

С данными ESCD взаимодействует не только BIOS, но и операционная система. Причем конфигурирование устройств, которые не сконфигурировал BIOS во время POST, выполняет операционная система (например, ее менеджер конфигурации – CM). Для не Plug & Play ISA карт расширения (которые встречаются редко), информация в ESCD заносится специальной утилитой конфигурирования ISA (ISA Configuration Utility).

Процесс автоматического конфигурирования выполняется при каждой загрузке ПЭВМ, что можно заметить на экране, высвечиваемом BIOS (по табличке результатов конфигурации и сообщении о проверке или исправлении данных ESCD).

Конфигурированию подлежат не только карты расширения, но и встроенные устройства чипсета, например, мосты, IDE контроллеры и др.