Template by:
Free Blog Templates

суббота, 27 сентября 2008 г.

Системные ресурсы.Часть3.Прерывания шины PCI

Шина PCI поддерживает аппаратные прерывания, которые использует установленное устройство, чтобы привлечь внимание шины. Это прерывания INTA#, INTB#, INTC# и INTD#. Прерывания INTx# чувствительны к уровню, что позволяет распределять их среди нескольких устройств PCI. Если одиночное устройство PCI использует только одно прерывание, то им должно быть INTA# — одно из основных правил спецификации шины PCI. Остальные дополнительные устройства должны использовать прерывания INTB#,
INTC# и INTD#.
Для нормального функционирования шины PCI в персональном компьютере ее прерывания должны быть установлены в соответствии с существующими прерываниями ISA. Прерывания ISA не могут использоваться совместно, поэтому в большинстве случаев для каждой платы PCI, использующей прерывание INTA# шины PCI, следует установить прерывания, отличные от неразделяемых прерываний шины ISA. Рассмотрим в качестве примера систему, имеющую четыре разъема PCI и четыре установленные платы PCI, каждая из которых использует прерывание INTA#. В таком случае каждой из плат должен быть назначен отдельный запрос прерывания ISA, например IRQ9, IRQ10, IRQ11 или IRQ5.
Установка одинаковых прерываний для шин ISA и PCI обязательно приведет к конфликту. Также будут конфликтовать два устройства ISA с одинаковым прерыванием. Что же делать, если доступных прерываний недостаточно для всех установленных в системе устройств? В большинстве новых систем допускается использование одного прерывания несколькими устройствами PCI. Все системные BIOS, удовлетворяющие спецификации Plug and Play, а также операционные системы, начиная с Windows 95b (OSR 2), поддерживают функцию управления прерываниями. В таких компьютерах всю заботу о прерываниях берет на себя система. Обратите внимание, что оригинальная версия Windows 95, а также Windows 95a эту функцию не поддерживают.
Чаще всего BIOS назначает уникальные прерывания устройствам PCI. А если операционная система поддерживает управление прерываниями, то эту задачу она выполняет самостоятельно. Следует заметить, что, даже если активизирована системная функция управления прерываниями, их начальное распределение берет на себя BIOS. Если свободных прерываний недостаточно, то операционная система распределяет одно прерывание между несколькими устройствами PCI. Если операционная система не обладает функцией управления прерываниями, то она просто деактивизирует устройство до появления свободного прерывания.
Чтобы определить, поддерживается ли описанная функция в вашем компьютере, выполните ряд действий.
1. Щелкните на кнопке Пуск (Start) и выберите команду Настройка->Панель управления (SettingsOControl Panel).
2. Дважды щелкните на пиктограмме Система (System).
3. В появившемся окне активизируйте вкладку Устройства (Device Manager).
4. Щелкните на знаке "+" возле группы Системные устройства (System Devices).
5. Дважды щелкните на компоненте Шина PCI (PCI Bus). В появившемся окне активизируйте вкладку Управление IRQ (IRQ Steering). Вы увидите группу флажков.
Управление прерываниями осуществляется с помощью нескольких таблиц. В поисках необходимых параметров Windows последовательно просматривает такие таблицы IRQ:
ACPI BIOS;
спецификации MS;
PCIBIOS 2.1 в защищенном режиме;
PCIBIOS 2.1 в реальном режиме.
Для устранения проблем с распределением прерываний попробуйте по одному отключать установленные по умолчанию флажки во вкладке Управление IRQ. В первую очередь используйте таблицу IRQ из ACPI BIOS, а если проблема не будет устранена — таблицу IRQ из PCIBIOS 2.1 в защищенном режиме. Обратите внимание, что описанные действия подходят только для Windows 98; в Windows 95 эти параметры несколько отличаются.
Шина PCI позволяет использовать два типа устройств — bus master (инициатор) и slave (назначение). Устройство bus master берет на себя управление шиной и инициирует передачу данных на устройство slave. Согласно спецификации PC 97 все устройства PCI могут выступать как в роли инициирующего, так и в роли получателя. В настоящее время практически все разъемы PCI поддерживают "универсальные" устройства.
Шиной PCI управляет арбитр, который является частью контроллера шины PCI в наборе микросхем системной логики. Именно этот арбитр управляет доступом всех устройств к шине. Перед "захватом" управления шиной устройство Bus Master получает на это разрешение у арбитра. Примерно аналогичные действия происходят в локальной сети: сначала отправляется запрос на выполнение определенных действий, а при получении положительного ответа на него выполняются сами действия.