Материалы

Прерывания шины PCI

Рейтинг:   / 0
ПлохоОтлично 

Шина PCI поддерживает аппаратные прерывания, которые используют установленные на шину устройства, чтобы привлечь к себе внимание. Это прерывания INTA#, INTB#, INTC# и INTD#. Прерывания INTx# чувствительны к уровню сигнала, что позволяет распределять их среди нескольких устройств PCI. Если одиночное устройство PCI использует только одно прерывание, то им должно быть INTA#, что является одним из основных правил спецификации шины PCI. Остальные дополнительные устройства должны использовать прерывания INTB#, INTC# и INTD#.

Для нормального функционирования шины PCI в персональном компьютере ее прерывания должны быть отображены на существующие прерывания 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), поддерживают функцию управления прерываниями PCI IRQ Steering. В таких компьютерах всю заботу о прерываниях берет на себя система. Следует отметить, что оригинальная версия Windows 95, а также Windows 95a эту функцию не поддерживают.

Чаще всего BIOS назначает уникальные прерывания устройствам PCI. А если операционная система поддерживает управление прерываниями, то эту задачу она выполняет самостоятельно. Следует заметить, что даже если активизирована системная функция управления прерываниями, их начальное распределение берет на себя BIOS. Если свободных прерываний недостаточно, то операционная система распределяет одно прерывание между несколькими устройствами PCI. Если же операционная система не обладает функцией управления прерываниями, то она просто отключает устройство до появления свободного прерывания. Чтобы определить, поддерживается ли описанная функция в вашем компьютере, выполните ряд действий.

  1. Откройте диспетчер устройств.
  2. Дважды щелкните на узле Системные устройства.
  3. Дважды щелкните на элементе Шина PCI. В открывшемся окне перейдите во вкладку "Управление IRQ", чтобы просмотреть или изменить текущие настройки.

В Windows 2000/XP/Vista отключить распределение прерываний нельзя, поэтому вкладка Управление IRQ отсутствует в диалоговом окне свойств шины PCI.

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

  • ACPI BIOS
  • Спецификации MS
  • PCIBIOS 2.1 в защищенном режиме
  • PCIBIOS 2.1 в реальном режиме

Для устранения проблем, связанных с распределением прерываний, попробуйте по одному отключать установленные по умолчанию флажки во вкладке Управление IRQ. В первую очередь, система использует таблицу IRQ из ACPI BIOS, затем — таблицу из PCIBIOS 2.1 в защищенном режиме и только после этого — таблицу из PCIBIOS 2.1 в реальном режиме. Система Windows 95 OSR2 и более поздние версии предлагают установку всего одного флажка — PCIBIOS 2.1, который по умолчанию снят. В Windows 98 проверка всех таблиц включена по умолчанию, за исключением PCIBIOS 2.1 в защищенном режиме.

Если возникли проблемы с некоторым устройством PCI, связанные с распределением прерываний в Windows 95, попробуйте установить флажок PCIBIOS 2.1 и перезагрузить компьютер. В Windows 98 попытайтесь снять флажок ACPI BIOS и перезагрузить компьютер. Если проблема не исчезнет, установите флажок PCI BIOS в защищенном режиме и снова перезагрузите систему. К выбору таблицы прерываний из PCIBIOS 2.1 в защищенном режиме следует прибегать только тогда, когда некоторое устройство PCI работает некорректно. Для доступа к этим настройкам в диспетчере устройств Windows 98 выполните следующие действия.

  1. Откройте диспетчер устройств.
  2. Дважды щелкните на узле Системные устройства.
  3. Щелкните правой кнопкой мыши на элементе Шина PCI и выберите в контекстном меню пункт Свойства.
  4. Перейдите во вкладку Управление IRQ, чтобы просмотреть или изменить текущие установки.

Если в диспетчере устройств функции управления прерываниями отключены, проверьте, установлен ли флажок Использовать управление IRQ. После установки этого флажка и перезагрузки компьютера вкладка управления IRQ может оставаться отключенной. Это значит, что таблица маршрутизации прерываний, которая должна передаваться в Windows системой BIOS, либо отсутствует, либо содержит ошибки. Проверьте в настройках BIOS, включена ли функция PCI IRQ Steering, и, если это не так, включите ее. Если доступ к управлению прерываниями так и не открылся, можете попробовать получить таблицу из защищенного режима PCIBIOS 2.1. В крайнем случае свяжитесь с производителем материнской платы и узнайте, поддерживает ли она функцию IRQ Steering.

В системах, которые поддерживают управление прерываниями, в узле Системные устройства диспетчера устройств должен отображаться элемент IRQ Holder for PCI Steering. Это указывает на то, что некоторые прерывания IRQ отображены на шину PCI и недоступны устройствам ISA, даже если ни одно из устройств ISA в настоящий момент не использует прерываний. Для просмотра прерываний, запрограммированных на режим PCI, выполните следующие действия.

  1. В меню Пуск откройте панель управления, в котором дважды щелкните на ярлыке Система.
  2. Во вкладке Оборудование щелкните на кнопке Диспетчер устройств.
  3. Дважды щелкните на узле Системные устройства.
  4. Дважды щелкните на элементе IRQ Holder for PCI Steering и в открывшемся окне перейдите во вкладку Ресурсы.

Следует отметить, что с функцией управления и сопоставления прерываний могут быть связаны определенные недоразумения. Даже несмотря на возможность совместного использования прерываний PCI (INTx#) (данная функция активизирована по умолчанию) каждое устройство, которое использует общее прерывание PCI, все равно должно быть связано с уникальным прерыванием IRQ ISA, которое, в свою очередь, совместного использования не допускает. С одним прерыванием IRQ ISA можно сопоставить несколько устройств PCI только в следующих случаях:

  • данное прерывание IRQ не использует ни одно устройство ISA;
  • BIOS и операционная система поддерживают управление IRQ PCI;
  • функция управления IRQ PCI активна.

Без активизации функции PCI IRQ Steering (управление IRQ PCI) возможности совместного использования прерываний PCI оказываются минимальными, так как все сопоставления прерываний IRQ PCI-ISA должны быть уникальными. Без функции PCI IRQ Steering очень легко столкнуться с недостатком прерываний ISA IRQ. Если функция PCI IRQ Steering поддерживается и активна, несколько устройств PCI могут использовать одно прерывание IRQ, что позволяет задействовать в системе намного больше устройств без риска оказаться в ситуации, когда доступных прерываний IRQ просто не хватит. Улучшенная поддержка функции PCI IRQ Steering — одна из основных причин перехода к Windows 98 или более новым версиям операционной системы, особенно в том случае, если в настоящий момент используется первая версия Windows 95 OSR1.

Еще одна проблема состоит в том, что в списке прерываний, представленном в диспетчере устройств Windows 9x, назначения PCI–ISA могут быть показаны в виде многочисленных записей для избранного прерывания ISA. Только одна запись будет указывать на устройство, действительно получившее то или иное прерывание (например, встроенный контроллер USB), в то время как другая запись для того же прерывания IRQ будет выглядеть, как надпись IRQ Holder for PCI Steering. Последняя запись, несмотря на декларируемое применение аналогичного прерывания, на самом деле не указывает на конфликт ресурсов; она определяет резервное прерывание, выделенное набором микросхем системной логики для возможного назначения какому-либо устройству. Это характерно для шины PCI с поддержкой технологии Plug and Play и для современных наборов микросхем системных плат. В Windows 2000/XP нескольким устройствам также может быть назначено одно прерывание, однако во избежание путаницы термин IRQ Holder не используется.

К шине PCI могут быть подключены внутренние устройства, даже если все разъемы PCI свободны. Например, в большинстве систем есть два контроллера IDE и контроллер USB, по сути представляющие собой устройства, подключенные к шине PCI. Обычно контроллеры PCI IDE получают прерывание ISA 14 (основной IDE) и 15 (вторичный IDE). Контроллеру USB присваивается прерывание 9, 10, 11 или 5. Многие современные системы оснащены двумя или более контроллерами USB (каждый из них обычно поддерживает два порта USB), но каждый контроллер USB должен быть сопоставлен с некоторым прерыванием ISA.

Шина PCI позволяет использовать два типа устройств — bus master (инициатор) и slave (получатель). Устройство bus master берет на себя управление шиной и инициирует передачу данных на устройство slave. Согласно спецификации PC 97, все устройства PCI могут выступать как в роли инициатора, так и в роли получателя. В настоящее время все разъемы PCI должны поддерживать платы инициаторов.

Шиной PCI управляет арбитр, который является частью контроллера шины PCI в наборе микросхем системной логики. Именно он управляет доступом всех устройств к шине. Перед “захватом” управления шиной устройство инициатора получает на это разрешение у арбитра. При предоставлении устройству разрешения арбитр определяет максимальное количество тактов. Арбитр равномерно распределяет доступ к шине между всеми устройствами. Это предотвращает монопольный захват шины всего одним из устройств, на ней установленных, а также ситуации взаимоблокировки, когда сразу несколько устройств пытаются получить доступ к ресурсам друг друга. Аналогичные процессы происходят в локальной сети, но сетевые ресурсы распределяются не между устройствами одной системы, а между компьютерами.



Sitelinkx by eXtro-media.de
Яндекс.Метрика