Несварение IRQ

Архитектура IBM PC-совместимого компьютера подразумевает, что для взаимодействия с устройствами, контроллеры которых являются внешними по отношению к системной шине, требуется определенный ресурс. Назвали его Interrupt ReQuest, сокращенно IRQ (или русский вариант - "ирка", всем Иринам заранее приношу извинения за своих коллег), и задача сборщика компьютера - назначить каждому внешнему устройству его IRQ. Естественно, что максимальное количество внешних устройств ограничено числом этих каналов IRQ, причем от строгости разведения ирок по железу зависит его конфликтность.

Древних вполне устраивало 8 каналов, распределенных так, как показано на рис. 1.

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

Итак, архитектура IBM PC AT допускает подключение, как минимум, четырех устройств, которые не будут конфликтовать друг с другом. Однако, постаравшись, можно изыскать и другие ресурсы. Например, не у каждого на столе стоят два принтера. Прерывание 5 можно отдать внешнему устройству. Далее, та же судьба постигнет и IRQ 7, когда и принтер, и сканер у нас работают на шине USB (мышь USB с COM1, к сожалению, не переместишь, если ОС не поддерживает подключение USB, например, старые Windows и большинство Linux). Вместо USB для сканера с успехом может выступить SCSI. Она же (см. рис. 2) может принять на себя и всевозможные устройства, подключаемые к каналам контроллера IDE (IRQ 14 и 15).

 

Вместе взятые, контроллеры этих шин способны разгрузить систему до неузнаваемости. Но в реальности мы имеем все-таки более распространенные варианты.

На IRQ 3 висит внешний модем, а при наличии внутреннего PCI (пусть ISA отомрет как класс) модема отдадим 3-е модему - пусть будет размен "один на один". На 4 пусть себе находится мышь, если мы выберем PS/2, то под нее будет резервироваться один из верхних IRQ, а нижний можно использовать для другого устройства. Как правило, при сборке системного блока на "фирмах" единственный винчестер и CD-ROM вешают на один шлейф (первичный канал контроллера, IRQ 14), но мы займем два, тем более, что для резервирования информации понадобится IDE CD-RW. Итого, можно подводить баланс.

В нашем идеале (SCSI + USB, Win98 + 2000), в то время, как мы будем иметь десять свободных IRQ, мы должны отдать прерывания шести устройствам:

  1. видео,
  2. сетевой адаптер/модем,
  3. адаптер SCSI,
  4. декодер MPEG,
  5. звуковая карта,
  6. контроллер USB.

Я думаю, что избыток в 4 штуки достаточен для последующего расширения или, наоборот, эмуляции старых стандартов.

То, что мы в действительности имеем, вы можете увидеть в таблице.

# IRQ устройство
3 модем на COM2 или внутренний на PCI, или сетевая карта PCI
4 мышь COM1 или PS2 (см. 12)
5 свободно для, например, эмуляции звука под DOS
7 принтер+сканнер
9 свободно, для, например, MPEG кодера
10 свободно, для, например, звуковой карты
11 свободно для, например, видео
12 свободно, для, например, USB-контроллера или PS2
14 первичный и вторичный (переносной) винчестеры
15 CD-ROM + CD-RW

В итоге давайте немного посчитаем. Не принимая во внимание интегрированные устройства, по спецификации 4xx чипсетов (430HX, 430VX, 430 TX, 440 LX, 440 BX) на материнской плате не может быть более 5 слотов PCI этой (2.2) ревизии, использующих уникальные IRQ, на один южный мост. С переходом к хабовой архитектуре (серия 8хх: 810, 820, 840, 815) это число возросло до 6. В случае необходимости расширения один "слот" отдается на каскадирование и паяется еще один южный мост (редкий зверь в наших краях). Если производитель паяет на плату более пяти слотов PCI, то он обязан указать в спецификации на изделие, какие слоты "шарят", то есть используют совместно одно прерывание, иными словами, устройства в каких слотах не могут работать одновременно.

Если же на материнскую плату производитель чего-то интегрирует, то число "уникальных" слотов уменьшается на соответствующее количество штук. Посему при покупке таких решений обращайте на этот факт внимание. Если на гипотетической плате шесть слотов PCI, интегрирован звук (кстати, может, и на ISA, поэтому минус 1), видео (чаще всего на AGP, это тоже минус 1), сетевой адаптер и контроллер SCSI, то, скорее всего, большинство слотов "шареные". Вариант второй, "второй мост" редок и встречается чаще всего в платах дороже 300 долларов.

Так что нельзя подходить к вопросу расширяемости стандартного PC настолько легкомысленно, как это делают большинство наших сограждан. Один раз сделать легко, только перед этим стоит 77 раз, наверное, подумать о конфликтности и достаточности ресурсов.

Пишите, всегда ваш,

Mexicanetz Express,
mexaco@chat.ru

Версия для печатиВерсия для печати

Номер: 

40 за 2000 год

Рубрика: 

Hardware
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Аватар пользователя Артем
Все конечно правильно, но на мой взгляд это занают и понимают если не большинство, то очень многие. Гораздо более интересный вопрос, КАК же эти прерывания распределить. Как например в системе Win2000 разнести на свободные прерывания, кои имеются, модем, ACPI controller, звук и сетевой адаптер, которые система услужливо пвесила на 11 IRQ?
Аватар пользователя omegian
А ты лучше посмотри при загрузке системы, что тебе биос пишет. У меня винда тоже говорит, что 5 устройсв на 11-м irq, а вот биос говорит, что на разных. Последнему я больше верю, он как-бы поближе к железу...
Аватар пользователя Макс Курмаз
Нет, когда BIOS пишет одно, а win2000 - другое, каждый из них прав. Просто win2000 распределяет прерывания по-своему, и в этом нет ничего плохого. См. http://www.kv.by/hardware/articles/177.html
Аватар пользователя Василий
И все таки нет простого ответа КАК ЭТИ ПРЕРЫВАНИЯ ПЕРЕРАСПРЕДЕЛИТЬ РУЧКАМИ, а то просто описано где что висит а если на одном IRQ несколько устройств. Надеюсь на ответ по существу.
Аватар пользователя Василий
Кстати у меня абсолютно такая же ситуация что и у Гудзенко Артема Николаевича, дайте пожалуйста совет по существу.
Аватар пользователя Killer{R}
Совет по существу - лезете в Devive manager и девайсу Computer ставите драйвер Standart PC вместо того что был (а был с поддержкой ACPI) после этого все прырывания будут как BIOS указал. Одна трабла - пропадает поддержка ACPI (наверно - у меня AT-питание из принципа, АТХ считаю полным отстоем и маздаем)
Аватар пользователя Buhoy Killer{R}
Вышеописанная мера отключает фичу винды по раздаче IRQ устройствам. Не верьте BIOSу - PCI устройства могут менять прерывания не только by BIOS. винда раздает их по своему усмотрению.
Аватар пользователя Василий
Что значит

>все прырывания будут как BIOS указал

а если и bios и win2k пишут что на 11irq несколько устройств как тогда?

Аватар пользователя Макс Курмаз
Объясните, зачем вам ручками раздавать прерывания. Конфликты бывают из-за использования одних и тех же _аппаратных_ линий PIRQ, а номера входов контроллера прерываний, которые вы хотите ручками переставить, тут не при чем.
Аватар пользователя Killer{R}
Проблема в том что Win2k любит все PCI устройства вешать на одно прерывание. Работать так конечно все работает, но это не самое лучшее решение с точки зрения производительности.