link420 link421 link422 link423 link424 link425 link426 link427 link428 link429 link430 link431 link432 link433 link434 link435 link436 link437 link438 link439 link440 link441 link442 link443 link444 link445 link446 link447 link448 link449 link450 link451 link452 link453 link454 link455 link456 link457 link458 link459 link460 link461 link462 link463 link464 link465 link466 link467 link468 link469 link470 link471 link472 link473 link474 link475 link476 link477 link478 link479 link480 link481 link482 link483 link484 link485 link486 link487 link488 link489 link490 link491 link492 link493 link494 link495 link496 link497 link498 link499 link500 link501 link502 link503 link504 link505 link506 link507 link508 link509 link510 link511 link512 link513 link514 link515 link516 link517 link518 link519 link520 link521 link522 link523 link524 link525 link526 link527 link528 link529 link530 link531 link532 link533 link534 link535 link536 link537 link538 link539 link540 link541 link542 link543 link544 link545 link546 link547 link548 link549 link550 link551 link552 link553 link554 link555 link556 link557 link558 link559

PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Системные платы

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

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