Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГЭК(вопросы и ответы).doc
Скачиваний:
13
Добавлен:
10.09.2019
Размер:
5.98 Mб
Скачать

1.20. Розподілення системних ресурсів між компонентами пк. Технологія PnP та її реалізація в шинах pci та isa/eisa.

Наиболее распространенными для подключения карт расширения PC явл шины ISA и PSI. В шину PSI заложены возможности автоматич конфигурирования установленных адаптеров. Спецификация шины ISA требует, чтобы всем картам назначались свои системные ресурсы – области адресов в пространствах памяти и вв/выв, линии запросов прерыв и каналы прямого доступа к памяти. При этом по используемым ресурсам платы не должны конфликтовать. Шина ISA не имеет механизмов автоматич конфигурирования и распредел-я ресурсов, так что все заботы по конфигурированию устанавливаемых адаптеров и разрешению конфликтов ложится на пользователя. Задача конфигурации осложняется и из-за отсутствия общего мех-ма автоматич передачи установленных пар-ров прикладному и системному ПО. После конфигурирования адаптеров, установленные пар-ры заносятся в какие-либо конфигурационные файлы. При необх смены конфигурации всю роботу по конфигурированию приходится проводить повторно.

Применение в адаптерах энергонезависимой памяти (NVRAM или ее разновидности - EEPROM), хранящей конфигурации настроек, в том числе и использования сист ресурсов. Конфигурирование этих адаптеров выпол программно спец утилитой, а не с помощью джамперов. Во время конфигурирования утилита может проверить выбираемые установки на наличие конфликта. Преимуществом конфигурирования с помощью NVRAM явл и то, что программный драйвер, «знающий» данную карту, сумеет прочитать и сделанные установки, так что необх в конфигурационных файлах отпадает.

Но это еще не решение проблемы автоконфигурирования в полном объеме. Ключевым моментом в автоконфигурир явл возможность на начальном этапе конфигуриров изоляции каждой карты от всех остальных. Тогда программные средства конфигурирования смогут вести с картой корректный диалог, на который не влияет присутствие других карт. Кроме того необх обеспечить единый метод двустороннего обмена конфигурационной инфой между картой и ПО. Возможность изоляции карт при конфигурировании заложена в шины MCA, PCI и EISA. В EISA для каждого слота возможно программное селективное управление сигналом AEN, запрещающим дешифрацию адресов портов вв/выв. В системе с шиной EISA имеется доп энергонезависимая память конфигурирования слотов. В шине ISA все сигналы всех слотов соединяются параллельно, а хранилище конфигурационной информации не предусмотрено.

Мосты PCI – аппаратные средства подключения шины PCI к другим шинам. Host Bridge – главный мост – используется для подключения к системной шине. Peer-to-Peer Bridge – одноранговый мост – используется для соединения двух шин PCI. При конфигурировании мостов им указывается распределение системных ресурсов по шинам, которые они связываются. Таким образом задаются пути транслирования управляющих сигналов по шинам и управление буферами данных, обеспечивая для каждого адреса памяти или ввода/вывода единственную шину назначения, по крайней мере для операций чтения.

Среди устр-в PnP выделяется класс динамически конфигурируемых устр-в DCD. Ресурсы, используемые ими, могут динамически переназначаться во время работы, не требуя перезагрузки ОС. К этому классу относятся устройства PnP ISA и PCI. Устройство DCD может находится в заблокированном состоянии, тогда ресурсы не могут быть изменены до разблокирования.

Решением задачи изоляции карт ISA, программного распределения системных ресурсов, конфигурирования и передачи параметров операционной системе и прикладному ПО является спецификация компании Intel и Microsoft Plug and Play «ISA Specification». Вышеперечисленные задачи решаются для карт PnP, которые могут работать и в окружении более старых карт.

Конфигурирование в системе PnP состоит из следующих шагов: Производится изоляция одной карты от всех остальных; Карте назначается CSN (Card Select Number), с помощью которых могут работать дальнейшие команды PnP; С карты считываются данные о сконфигурированных и поддерживаемых ресурсах. Эти шаги повторяются для всех карт, после чего: Производится распределение системных ресурсов, выделяемых каждой карте; Каждая карта конфигурируется согласно выбранному распределению ресурсов и активируется.

Все шаги конфигурирования выполняет POST, если BIOS имеет поддержку PnP, или ОС при загрузке. PnP BIOS может ограничится конфигурированием и активацией только устройств, участвующих в загрузке, оставляя конфигурирование и активацию доп устр-в ОС.

Для конфигурирования карт PnP, необходимо внести всего три 8-битных системных порта, с которыми процессор может общатся, применяя инструкции вв/выв с однобайтной передачей данных. Карты PnP должны использовать 12-битное декодирование адреса вв/выв а не 10-битное, как принято в традиционных картах ISA.

Порт ADDRESS (0279h, только запись) исп-ся для адресации рег-ров PnP, запись в него произв перед обращ к портам WRITE_DATA и READ_DATA. Этот же порт исп-ся и для записи последов-ти кодов ключа инициализации. Выбор адреса для него обусловлен тем, что ни одна разумно сделанная карта не будет пытаться использов для записи адрес рег-ра состояния стандартного LPT-порта.

Порты WRITE_DATA (0А79h, только запись) и READ_DATA (перемещаемый в диапазоне 0203h-03FFh, только чтение) используются для обмена данными с регистрами PnP. Адрес порта WRITE_DATA картами с 10-битным декодированием будет восприниматься как тот же адрес, что и у предыдущего порта, так что конфликт исключен. Перемещаемому адресу порта READ_DATA программное обеспечение PnP во время исполнения протокола изоляции может легко найти бесконфликтное положение. Адрес этого порта сообщается всем картам записью в их управляющий регистр PnP.

В конфигурационный режим логика PnP переводится с помощью ключа инициализации. Ключ представляет собой последовательность записей в порт ADDRESS. Аппаратная логика карты, проверяющая ключ, основана на сдвиговом регистре с обратными связями LFSR.

Протокол изоляции основан на уникальном идентификаторе Serial Identifier, хранящемся в памяти каждой карты PnP. Этот идентиф представляет собой ненулевое 72-битное число, состоящее из двух 32-битных полей и 8-битного контрольного кода, вычисляемого с помощью регистра LFSR. Первое 32-битное поле – идентификатор производителя. Второе поле назначается производителем уникально для каждого экземпляра всех выпускаемых им карт. Доступ к идентиф осущ-ся последов-но, начиная с бита 0 нулевого байта идентиф производителя и заканчивая битом 7 контрольной суммы. Протокол изоляции может быть программно инициирован в любой момент времени посылкой конкретного ключа инициализации, переводящего все карты в конфигурационный режим. В этом режиме карта ожидает 72 пары операций чтения порта READ_DATA. Ответ каждой карты на эти операции определяется значением очередного бита ее последовательного идентиф.

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

По завершении протокола изоляции ПО имеет список идентификаторов, сообщенных и самим картам. Далее общение программы с каждой картой идет по ее селективному номеру CSN, фигурирующему в командах PnP. Нулевой CSN присваивается картам по программному или аппаратному сбросу и используется как широковещательный адрес.

Обращения к регистрам PnP представляют собой операции записи или чтения портов вв/выв по адресам WRITE_DATA или READ_DATA соотв. При этом для указания конкретного регистра PnP используется индекс – номер этого регистра, предварительно записанный в ADDRESS.

Каждая карта имеет стандартный набор регистров PnP, причем часть из них относится к карте в целом, а часть – к каждому устр-ву, входящему в карту. В любой момент времени в индексном простр-ве регистров PnP отображаются общие регистры карты и регистры только одного лог устр-ва. Выбор лог устр-ва осуществляется записью в регистр Logical Device Number, входящий в группу управляющих регистров карты.

С точки зрения PnP карта может перебывать в нескольких состояниях. Isolate, Config, при этом все другие карты переходят в режим Sleep. Программирование каждого лог устр-ва завершается установкой его бита активации на шине ISA, а всей карты – переводом ее в состояние Wait for key. После перехода всех карт в это состояние их случайное реконфигурирование будет блокировано 32-байтным ключом. Доступ к регистрам PnP возможен через ключ в любое время, но запись в них должна производится в полной уверенности о знании последствий. Каждое лог устр-во имеет собственные дескрипторы используемых системных ресурсов: дескр памяти, дескр областей вв/выв, дескр запросов прерыв, дескр каналов прямого доступа к памяти.