Разное

Irq 14: IRQ 14 Assigned to — Настройка BIOS

Содержание

Прерывания от внешних устройств в системе x86. Часть 1. Эволюция контроллеров прерываний / Хабр

В данной статье хотелось бы рассмотреть механизмы доставки прерываний от внешних устройств в системе x86 и попытаться ответить на вопросы:

  • что такое PIC и для чего он нужен?
  • что такое APIC и для чего он нужен? Для чего нужны LAPIC и I/O APIC?
  • в чём отличия APIC, xAPIC и x2APIC?
  • что такое MSI? В чём отличия MSI и MSI-X?
  • как с этим связаны таблицы $PIR, MPtable, ACPI?

Если на какой-то из этих вопросов вам интересно получить ответ или вы просто хотите ознакомиться с эволюцией контроллеров прерываний в системе x86, добро пожаловать под кат.

Введение

Все мы знаем, что такое прерывание. Для тех, кто нет, цитата из википедии:

Прерывание (англ. interrupt) — сигнал от программного или аппаратного обеспечения, сообщающий процессору о наступлении какого-либо события, требующего немедленного внимания.
Прерывание извещает процессор о наступлении высокоприоритетного события, требующего прерывания текущего кода, выполняемого процессором. Процессор отвечает приостановкой своей текущей активности, сохраняя свое состояние и выполняя функцию, называемую обработчиком прерывания (или программой обработки прерывания), которая реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.

В зависимости от источника возникновения сигнала прерывания делятся на:

  • асинхронные, или внешние (аппаратные) — события, которые исходят от внешних аппаратных устройств (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание (англ. Interrupt request, IRQ) — устройства сообщают, что они требуют внимания со стороны ОС;
  • синхронные, или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение стека, обращение к недопустимым адресам памяти или недопустимый код операции;

В данной статье хотелось бы обсудить внешние прерывания IRQ.

Зачем они нужны? Допустим мы хотим выполнить какое-либо действие со входным пакетом для сетевой карты, когда он придёт. Чтобы не спрашивать сетевую карту постоянно «есть ли у тебя новый пакет?» и не тратить на это ресурсы процессора, можно использовать прерывание IRQ. Линия прерываний устройства соединяется с линией INTR процессора, и при получении пакета сетевая карта «дергает» эту линию. Процессор понимает, что для него есть информация и читает пакет.

Но что делать если устройств много? На все внешние устройства ножек процессора не напасёшься.

Чтобы решить эту проблему, придумали микросхему — контроллер прерываний.

PIC

(вики/osdev)

Первой была микросхема Intel 8259 PIC. 8 входных линий (IRQ0-7), и одна выходная, соединяющая контроллер с линией INTR процессора. Когда возникает прерывание от какого-либо устройства, 8259 дёргает линию INTR, процессор понимает, что какое-то устройство сигнализирует о прерывании и опрашивает PIC, чтобы понять по какой именно ножке IRQx возникло прерывание. Появляется дополнительная задержка на данный опрос, но зато количество линий прерываний увеличивается до 8.

Однако 8 линий быстро оказалось мало, и чтобы увеличить их количество стали использовать 2 контроллера 8259 (master и slave) соединённых каскадно (Dual PIC).

IRQ с 0 по 7 обрабатываются первым Intel 8259 PIC (master), а IRQ с 8 по 15 вторым 8259 PIC (slave). О возникновении прерывания CPU сигнализирует только master. Если возникло прерывание на линиях 8-15, второй PIC (slave) сигнализирует о прерывании мастеру по линии IRQ 2, и тот уже в свою очередь сигнализирует CPU. Это каскадное прерывание отнимает одну из 16 линий, но в итоге даёт 15 доступных прерываний для устройств.

Схема утвердилась, и именно её имеют ввиду, когда говорят сейчас о PIC (Programm Interrupt Controller). Впоследствии контроллеры 8259 получили некоторые улучшения, и стали называться 8259A, а эта схема вошла в состав чипсета. Во времена когда основной шиной для подключения внешних устройств была шина ISA, такой системы в целом хватало. Надо было лишь следить, чтобы разные устройства не подключались на одну линию IRQ для избежания конфликтов, так как прерывания ISA не разделяемые.

Обычно раскладка прерываний под устройства была более менее стандартная

Пример (взят отсюда):
IRQ 0 — system timer
IRQ 1 — keyboard controller
IRQ 2 — cascade (прерывание от slave контроллера)
IRQ 3 — serial port COM2
IRQ 4 — serial port COM1
IRQ 5 — parallel port 2 and 3 or sound card
IRQ 6 — floppy controller
IRQ 7 — parallel port 1
IRQ 8 — RTC timer
IRQ 9 — ACPI
IRQ 10 — open/SCSI/NIC
IRQ 11 — open/SCSI/NIC
IRQ 12 — mouse controller
IRQ 13 — math co-processor
IRQ 14 — ATA channel 1
IRQ 15 — ATA channel 2

Конфигурация и работа с микросхемами 8259 осуществляется через I/O порты:

Чип Регистр I/O port
Master PIC Command 0x0020
Master PIC Data 0x0021
Slave PIC Command 0x00A0
Slave PIC Data 0x00A1

→Документацию на 8259A можно найти тут

На смену шине ISA пришла шина PCI. И количество устройств явно стало превосходить число 15, плюс в отличие от статической шины ISA в данном случае случае устройства могут добавляться в систему динамически. Но к счастью в данной шине прерывания могут быть разделяемыми (то есть к одной линии IRQ можно подсоединить несколько устройств). В итоге чтобы решить проблему нехватки линий IRQ, прерывания ото всех PCI устройств решили группировать в линии PIRQ (Programmable Interrupt Request).

Допустим у нас 4 линии прерываний свободно на PIC контроллере, а PCI устройств 20 штук. Мы объединяем прерывания по 5 устройств на линию PIRQx и подключаем линии PIRQx к контроллеру. При возникновении прерывания на линии PIRQx процессору придётся опросить все устройства подключённые к данной линии, чтобы понять от кого именно пришло прерывание, но в целом это решает задачу. Устройство осуществляющее связывание линий прерываний PCI в линии PIRQ часто называют PIR router.

В данном методе надо следить, чтобы линии PIRQx не подсоединялись к линиям IRQx на которых уже заведены прерывания ISA (так как это вызовет конфликты), и чтобы линии PIRQx были сбалансированы (ведь чем больше устройств мы подключили к одной линии PIRQ, тем больше устройств надо будет опрашивать процессору, чтобы понять, какое именно из этих устройств вызвало прерывание).

Замечание: на рисунке маппинг PCI device -> PIR изображён абстрактно, потому что на самом деле он несколько сложнее. В реальности каждый PCI device имеет 4 линии прерываний (INTA, INTB, INTC, INTD). У каждого PCI устройства (device) может быть до 8 функций (functions) и вот каждой функции соответствует уже одно прерывание INTx. Какую именно INTx будет дёргать каждая функция устройства определяется конфигурацией чипсета.

По сути функции это отдельные логические блоки. Например в одном PCI устройстве может быть функция Smbus controller, функция SATA controller, функция LPC bridge. Со стороны ОС каждая функция — это как отдельное устройство со своим конфигурационным пространством PCI Config.

Информацию о роутинге прерываний на PIC контроллере BIOS передавал ОС с помощью таблицы $PIR и с помощью заполнения регистров 3Ch (INT_LN Interrupt Line (R/W)) и 3Dh (INT_PN Interrupt Pin (RO)) конфигурационного пространства PCI для каждой функции. Спецификация о таблице $PIR раньше была на сайте Microsoft, но сейчас её там уже нет. Содержимое строк таблицы $PIR можно понять из PCI BIOS Specification [4.2.2. Get PCI Interrupt Routing Options] или почитать вот тут

APIC

(вики, osdev)

Предыдущий метод работал пока не появились многопроцессорные системы. Дело в том, что по своему устройству PIC может передавать прерывания только на один главный процессор. А хотелось бы, чтобы нагрузка на процессоры от обработки прерываний была сбалансированной. Решением данной задачи стал новый интерфейс APIC (Advanced PIC).

Для каждого процессора добавляется специальный контроллер LAPIC (Local APIC) и для маршрутизации прерываний от устройств добавляется контроллер I/O APIC. Все эти контроллеры объединяются в общую шину с названием APIC (новые системы сейчас уже соединяются по стандартной системной шине).

Когда прерывание от устройства приходит на вывод I/O APIC, контроллер направляет прерывание в LAPIC одного из процессоров. Наличие I/O APIC позволяет сбалансировано распределять прерывания от внешних устройств между процессорами.

Первой микросхемой APIC был 82489DX, это был отдельный чип, соединяющий в себе LAPIC и I/O APIC. Для создания системы из 2 процессоров нужно было 3 таких микросхемы. 2 функционировали бы как LAPIC и одна как I/O APIC. Позднее функциональность LAPIC была напрямую включена в процессоры, а функциональность I/O APIC была оформлена в чип 82093AA.

I/O APIC 82093AA содержала 24 входных вывода, а архитектура APIC могла поддерживать до 16 CPU. Для поддержки совместимости со старыми системами, прерывания 0~15 отвели под старые прерывания ISA. А прерывания от PCI устройств стали выводить на линии IRQ 16-23. Теперь можно было не задумываться о конфликтах прерываний от ISA и PCI устройств. Также благодаря увеличенному количеству свободных линий прерываний возможно стало также увеличить количество линий PIRQx.

Программирование I/O APIC и LAPIC осуществляется через MMIO. Регистры LAPIC расположены обычно по адресу 0xFEE00000, регистры I/O APIC по адресу 0xFEС00000. Хотя в принципе все эти адреса возможно переконфигурировать.

32. Контроллеры могут работать в режиме совместимости с xAPIC, а могут в новом режиме x2APIC, где программирование LAPIC осуществляется не через MMIO, а через MSR регистры (что гораздо быстрее). Cудя по этой ссылке для работы этого режима необходима поддержка IOMMU.

Следует заметить, что в системе может быть несколько контроллеров I/O APIC. Например один на 24 прерывания в южном мосту, другой на 32 в северном. В контексте I/O APIC прерывания часто обозначаются GSI (Global System Interrupt). Так вот в такой системе будут GSI 0-55.

Есть ли в CPU встроенный LAPIC и какой именно архитектуры можно понять по бит-флагам в CPUID.
Чтобы система могла обнаружить LAPIC и I/O APIC, BIOS должен представить информацию о них системе либо через таблицу MPtable (старый метод), либо через таблицу ACPI (таблицу MADT в данном случае). Помимо общей информации, и в MPtable и в ACPI (на этот раз в таблице DSDT) должна содержаться информация о роутинге прерываний, то есть информация о том, какое устройство сидит на какой линии прерываний (аналог таблицы $PIR).

О таблице MPTable можно почитать в официальной спецификации. Раньше спецификация была на сайте Intel, а сейчас её можно найти только в архиве. Спецификация ACPI сейчас расположена на сайте UEFI (текущая версия 6.2). Следует отметить, что с помощью ACPI можно указать роутинг прерываний и для систем без APIC (вместо использования таблицы $PIR).

MSI

(вики)

Предыдущий вариант с APIC хорош, но не лишён недостатков. Все эти линии прерываний от устройств усложняют схему, и увеличивают вероятности ошибок. На смену шины PCI пришёл PCI express, в котором линии прерываний решили просто-напросто убрать. Чтобы сохранить совместимость, сигналы о возникновении прерываний (INTx#) эмулируются отдельными видами сообщений. В этой схеме логическое сложение линий прерываний, которое раньше производилось физическим соединением проводов, легло на плечи PCI мостов. Однако поддержка legacy INTx прерываний — это лишь поддержка обратной совместимости с шиной PCI. На деле PCI express предложил новый метод доставки сообщений о прерываниях — MSI (Message Signaled Interrupts). В этом методе для сигнализации о прерывании устройство просто производит запись в MMIO область отведённую под LAPIC процессора.

Если раньше на одно PCI устройство (то есть на все его функции) выделялось всего 4 прерывания, то сейчас сейчас стало возможным адресовать до 32 прерываний.

В случае с MSI нет никакого sharing для линий, каждое прерывание соответствует своему устройству.

Прерывания MSI решают также ещё одну проблему. Допустим устройство проводит memory-write транзакцию, и хочет сообщить о её завершении через прерывание. Но write транзакция может быть задержана на шине в процессе передачи (о чём устройство никак не знает), и сигнал о прерывании придёт до процессора раньше. Таким образом CPU будет читать ещё невалидные данные. В случае если используется MSI, информация об MSI передаётся также как и данные, и раньше прийти просто не сможет.

Следует заметить, что прерывания MSI не могут работать без LAPIC, но использование MSI может заменить нам I/O APIC (упрощение дизайна).

В последствии данный метод получил расширение MSI-X. Теперь каждое устройство может иметь до 2048 прерываний. И стало возможным указывать индивидуально каждому прерыванию на каком процессоре оно должно выполняться. Это может быть очень полезно для высоконагруженных устройств, например сетевых карт.

Для поддержки MSI не требуется никаких дополнительных таблиц BIOS. Но устройство должно сообщить о поддержке MSI в одной из Capability в своём PCI Config, а драйвер устройства должен поддерживать работу с MSI.

Заключение

В данной статье мы рассмотрели эволюцию контроллеров прерываний, и получили общую теоретическую информацию о доставке прерываний от внешних устройств в x86 системе.

В следующей части мы посмотрим как на практике задействовать в Linux каждый из описанных контроллеров.

Ссылки:

  • Interrupt Controllers (Stuff in the Middle)
  • What do the different interrupts in PCIe do?
  • Reducing Interrupt Latency Through the Use of Message Signaled Interrupts
  • Архитектура обработки прерываний в Intel совместимых системах

Что такое IRQ и как с ними бороться



File:		IRQ_FAQ. DOC
WrittenBy:	Alexey Kulentsov, 2:5020/449.14@fidonet
Version:	1.03 from 06/02/96 20:50
ThanksTo:	Andrew Suvorow,	2:5020/168.101
		Igor Sysoev,	2:5020/1.486

		   Что такое IRQ и как с ними бороться


 Q: Что такое IRQ и зачем зто нужно?

 A: IRQ расшифровывается как Interrupt Request, или запрос на аппаратное
    прерывание. Прерывание - это процесс, когда процессор прекращает
    нормальное выполнение программы, сохраняет необходимую информацию в
    стеке и переходит к какому-то заранее выбранному адресу памяти.
    Вызывается прерывание аппаратным сигналом с какого-либо устройства.
    Есть еще так называемые программные прерывания, но их мы тут
    рассматривать не будем. Прерывания имеют номера, и по каждому из них
    переходит переход на свой адрес.  После отработки вызванной
    процедуры, которая называется обработчиком прерывания, управление
    возвращается в исходную точку, и продолжается выполнение
    первоначальной программы.   Адреса могут выбираться различными
    способами. Например, быть фиксированными, или находиться в таблице в
    каком-то месте памяти.  Последний случай и имеет место на процессорах
    семейства 80x86.  Дальше будем рассматривать только это семейство и
    IBM-совместимые машины на его основе.

    Для поддержки IRQ в схеме компьютера необходима дополнительная
    микросхема, так называемый контроллер прерываний. В данном случае
    используется 8259 или его аналоги. В современных машинах это просто
    часть чипсета.

    Аппаратные прерывания нужны, чтобы при обслуживании процессором
    внешних устройств, требующих управления или обмена информацией,
    избежать циклов их опроса, на что потребуется много процессорного
    времени и программная поддержка этих циклов во всех программах,
    работающих на компьютере. При применении IRQ же программа может не
    заботиться об этом- обработка устройств происходит в фоне для нее. 
    Кроме того, это позволяет оперативно реагировать на устройства,
    которым нужна быстрая обработка, чтобы не потерять данные. Правда,
    тут есть свои недостатки. Например, программа может запретить на
    некоторое время аппаратные прерывания. Кроме того, для начала
    обработки прерывания должна закончиться предыдущая команда, должны
    быть сохранены регистры и т.д., то есть задержка может быть довольно
    значительна. Для более оперативного реагирования иногда применяют
    механизм DMA (Direct Memory Access). Там процессор не участвует в
    пересылке данных, и для этого используется еще одна дополнительная
    микросхема, контроллер DMA. Но это уже совсем другой разговор.

 Q: Что умеет микросхема 8259?

 A: 8259 может обслуживать восемь запросов на прерывание от внешних
    устройств, соответственно для этого имеется восемь входов, называются
    они IRQ0-IRQ7. При поступлении единичного сигнала на один из входов
    он запоминается во входном регистре запросов прерывания и дальше
    обрабатывается логикой микросхемы.  При каскадном соединении
    нескольких микросхем возможно обслуживание до 64 линий IRQ. Такое
    соединение называется каскадным, так как есть один ведущий контроллер
    и до восьми ведомых, подключаемых ко входам IRQ ведущего. Прерывания
    имеют уровни приоритетов, приоритеты задаются и меняются программным
    путем.  Программным путем также можно запрещать или разрешать
    отдельные IRQ, а также выдавать сигнал конца прерывания, что
    разрешает выдачу запомненных в регистре запросов прерывания сигналов
    с более низким приоритетом, полученных во время обработки более
    приоритетного запроса.

 Q: Как это аппаратно выглядит в IBM-совместимых машинах?

 A: Часть IRQ в машине зарезервированы для стандартных устройств на
    материнской плате, а часть может использоваться внешними устройствами
    и поэтому выведены на стандартный слот ISA. В машинах класса XT один
    контроллер и есть 8 прерываний, из них шесть выведены на шину:
    IRQ2-IRQ7.   В AT к первому контроллеру дополнительно подключен еще
    один, и в результате имеется 15 прерываний, так как одно (IRQ2
    первого контроллера) используется для каскадирования. На шине
    дополнительно появились сигналы IRQ10-IRQ12, IRQ14, IRQ15. В схеме XT
    сигналы IRQ на шине в самом простом случае подключены прямо к входам
    контроллера и не зашунтированы резисторами. В других конструкциях на
    логике ставятся буферные повторители. Соответственно пассивный сигнал
    на шине, как и на микросхеме - нулевой, а поступление запроса на
    прерывание происходит по единичному фронту.

 Q: Для чего конкретно используются IRQ в компьютере?

 A: Вот небольшая таблица, в которой указаны стандартные применения IRQ.

    Первый контроллер: 8259-1.
    Стандартное место для его векторов-с адреса 20h, или с 8-го вектора в
    таблице прерываний. Следует заметить, что это неудачное место, так
    как начиная с 286 процессора список зарезервированных фирмой Intel
    прерываний увеличился, и аппаратные прерывания стали пересекаться с
    ними.  Поэтому современные многозадачные операционные системы могут
    переносить вектора IRQ в другое место.

   IRQ Int   Применение  Дополнительные комментарии и применения
   --- ---   ----------  --------------------------------------------
    0	8h   Timer	 Системный таймер, 18.2 раза в секунду
    1   9h   Keyboard    Генерится при нажатии/отпускании кнопок
    2   Ah   LPT2/Casc.  COMx, Vert.Retrace (EGA, VGA)
    3   Bh   UART 2	 COM2, COM4
    4   Ch   UART 1	 COM1, COM3
    5   Dh   Fixed disk  LPT2(AT), COMx
    6   Eh   Diskette    Генерится FDD-контр. по окончании операции
    7   Fh   Printer	 LPT1, SoundBlaster

    Второй контроллер: 8259-2.
    Появился начиная с AT. Стандартное место для его векторов- 1C0h, или
    с 70h вектора.

   IRQ Int   Применение   Дополнительные комментарии и применения
   --- ---   -----------   --------------------------------------------
    8  70h   RTC          CMOS Real Time Clock
    9  71h   IRQ2 Emul.    Эмуляция IRQ2 для совместимости
   10  72h   Free         SoundBlaster, часто другие устройства
   11  73h   Free         Общепринятого применения не имеет
   12  74h   Free         Общепринятого применения не имеет
   13  75h   Math         Прерывание сопроцессора
   14  76h   Primary IDE  Генерится HDD-контр. по окончании операции
   15  77h   Second IDE                  <<

 Q: Ничего не понял насчет IRQ2/IRQ9 :-(

 A: История такова. В PC/XT был только один контроллер прерываний, и все
    прерывания можно было использовать для каких-либо целей. В AT
    необходимо было увеличить количество прерываний, а поскольку 8259
    соединяются каскадно, это означало, что один из входов IRQ 8259-1
    необходимо было использовать для подключения второго контроллера.
    Был выбран IRQ2. При этом пришлось решать проблему совместимости.
    Дело в том, что IRQ2 был выведен на слоты и мог использоваться
    различными устройствами.  Получается следующая задача: имеется
    устройство, которое втыкалось в PC и вырабатывало IRQ2, и софт к
    нему, который садился на соответствующее прерывание о обрабатывал
    его. Необходимо сделать так, чтобы его можно было воткнуть в AT и
    чтобы оно и софт продолжали работать. Решена была проблема следующим
    образом: во-первых, на слот на контакт B4 вместо IRQ2 теперь
    выводится IRQ9 от 8259-2. Во-вторых, биосовский обработчик IRQ9
    эмулирует IRQ2, то есть вызывает соответствующий ему вектор Int 0Ah.
    Так что теперь для старого устройства процесс выглядит следующим
    образом: Устройство генерит IRQ2, которое на самом деле IRQ9,
    вызывается обработчик IRQ9 и программно вызывает обработчик IRQ2
    софта к этому устройству, висящий на Int 0Ah. Софт думает, что так и
    надо, и ничего не замечает. При конструировании же своих устройств
    можно вешать софт сразу на IRQ9.  Естественно, если нужно оставить
    возможность воткнуть устройство и в XT, то надо сделать номер IRQ
    изменяемым. 

 Q: Зачем нужно прерывание от EGA/VGA и где используется?

 A: Это прерывание вызывается в конце прорисовки каждого кадра, позволяя
    программе выполнять какие-то действия во время обратного хода луча.
    Это нужно некоторым графическим приложениям, чтобы избежать побочных
    визуальных эффектов при смене страницы или палитры. Но так как это
    прерывание может быть запрещено на плате джампером, причем адаптеры
    продаются как раз с запрещенным прерыванием, это прерывание в
    настоящее время практически не используется, так как никто не будет
    заставлять пользователя для работы программы открывать машину и
    перетыкать джамперы. Чтобы отслеживать конец кадра, программы
    используют циклы опроса через порты.

 Q: Что такое конфликты IRQ и как их избежать?

 A: Конфликт IRQ- это когда несколько устройств со своими обработчиками
    пытаются использовать один IRQ, не умея при этом разделять его
    аппаратно или программно (большинство современного программного
    обеспечения как раз не умеет).  Для разрешения конфликта необходимо
    определить, какие именно устройства пересекаются, и перенести одно из
    них на свободный IRQ. Приведем несколько рекомендаций по этому
    поводу.

    Чаще всего встречаются конфликты по IRQ COM-портов. Это связано как с
    их распространенностью, так и c тем, что COM2 и COM4 используют по
    умолчанию IRQ3, а COM1 и COM3 - IRQ4. Вот конкретный пример.

  Q: На машине стоит стандартная мультикарточка, на COM1 находится мышка.
     Надо поставить модем. Как его настроить?

  A: Во-первых, необходимо поставить его на COM3 или COM4, чтобы он не
     пересекался с мультикартой в пространстве портов. Во-вторых, из них
     необходимо выбрать тот порт, IRQ которого по умолчанию не совпадает
     с используемым мышкой. В данном случае это COM4 (IRQ3). Если мышка
     на втором порту, то для модема надо использовать COM3 (IRQ4). На
     самом деле адрес порта и IRQ в модемах обычно выставляются
     независимо, но данный совет преследует целью избежать нестандартных
     настроек, что упростит конфигурирование программного обеспечения.  То
     же относится ко всем последующим случаям.

    Стандартные назначения для COM-портов:
             Порт  COM1 COM2 COM3 COM4
    Базовый адрес  3F8  2F8  3E8  2E8
              IRQ  4    3    4    3

    Впрочем, лучше не будем описывать каждый случай словесно, а изобразим
    таблицу рекомендуемых конфигураций, например, для мыши, модемов, SB 
    и принтера:

    IRQ2         IRQ3         IRQ4         IRQ5          IRQ7     IRQ10
    Модем2(COM3) Модем(COM4)  Мышь (COM1)  SB
    Модем2(COM4) Мышь (COM2)  Modem(COM3)  SB
    Модем3       Модем(COM4)  Мышь (COM1)  Модем2(COM3)  SB
    Модем3       Мышь (COM2)  Modem(COM3)  Modem2(COM4)  SB
    Модем3       Модем(COM4)  Мышь (COM1)  Модем2(COM3)  Printer  SB
    Модем3       Мышь (COM2)  Modem(COM3)  Modem2(COM4)  Printer  SB

    Были использованы следующие соображения: во возможности стандартные
    назначения, по возможности обходиться IRQ3-IRQ7.  Два последних
    случая- когда используется прерывание от принтера. Наименьшими
    возможностями по конфигурированию обладает мышка, от нее
    соответственно выбирается вариант. Берете список того, что надо
    поставить, и идете с начала таблицы, проверяя, подходит ли каждай
    вариант, если выбросить из него лишнее оборудование. Прошу
    соображения насчет того, как должна выглядеть эта таблица и должна ли
    вообще, отписать мне (адрес в конце файла). Вот еще один вариант:
   - - - - - -8 - - - - - - - - - - - - - - - - - thanks to Igor Sysoef
  г==========T==T==T===T==T==T==T==T==T==T==T==T==T==T==T==¬
  ¦Dev \ IRQ ¦ 0¦ 1¦2/9¦ 3¦ 4¦ 5¦ 6¦ 7¦ 8¦10¦11¦12¦13¦14¦15¦
  ¦----------+--+--+---+--+--+--+--+--+--+--+--+--+--+--+--¦
  ¦COM1      ¦ .¦ .¦ * ¦ *¦ !¦ *¦ ?¦ *¦ .¦ *¦ *¦ *¦ .¦ .¦ *¦
  ¦COM2      ¦ .¦ .¦ * ¦ !¦ *¦ *¦ ?¦ *¦ .¦ *¦ *¦ *¦ .¦ .¦ *¦
  ¦COM3      ¦ .¦ .¦ + ¦ +¦ !¦ +¦ ?¦ *¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦
  ¦COM4      ¦ . ¦ .¦ + ¦ !¦ +¦ +¦ ?¦ *¦ .¦ *¦ *¦ *¦ .¦ .¦ *¦
  ¦COMx      ¦ .¦ .¦ + ¦ +¦ +¦ +¦ ?¦ *¦ .¦ *¦ *¦ *¦ .¦ .¦ *¦
  ¦LPT1      ¦ .¦ .¦ . ¦ .¦ .¦ *¦ .¦ !¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦
  ¦LPT2      ¦ .¦ .¦ . ¦ .¦ .¦ !¦ .¦ *¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦
  ¦SCSI      ¦ .¦ .¦ * ¦ *¦ *¦ *¦ .¦ *¦ .¦ +¦ +¦ +¦ .¦ *¦ +¦
  ¦Sound Card¦ .¦ .¦ * ¦ *¦ *¦ !¦ .¦ !¦ .¦ +¦ +¦ +¦ .¦ .¦ *¦
  ¦1st IDE   ¦ .¦ .¦ . ¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦ !¦ .¦
  ¦2nd IDE   ¦ .¦ .¦ . ¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦ !¦
  ¦PS/2 Mouse¦ .¦ .¦ . ¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦ .¦ !¦ .¦ .¦ .¦
  ¦Сеть      ¦ .¦ .¦ * ¦ *¦ *¦ +¦ .¦ *¦ .¦ +¦ +¦ +¦ .¦ .¦ *¦
  ¦Стpиммеp  ¦ .¦ .¦ * ¦ *¦ *¦ +¦ $¦ *¦ .¦ *¦ *¦ .¦ .¦ .¦ .¦
  L==========¦==¦==¦===¦==¦==¦==¦==¦==¦==¦==¦==¦==¦==¦==¦==-
  ! - общепpинятый ваpиант (default)
  + - pаспpостpаненный ваpиант
  * - pедкий (для irq 2-7) или недавно появившийся (для irq 10-15) ваpиант
  ? - паталогические случаи, напpимеp, у меня есть стаpая мультяха где 
      есть два com, котоpым можно задать irq 2, 3, 4, 5, 6(!), 7. 
  $ - стpиммеp на флоповом контpоллеpе, тоже, в общем-то, паталогия.
   - - - - - -8 - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 Q: Как правильно сделать устройство в слот, использующее IRQ? Можно ли
    использовать несколько устройств на одном IRQ?

 A: Можно. Рассмотрим устройство выхода IRQ на плате. Во-первых, в
    пассивном состоянии он должен быть в Z-состоянии. Значит, нужен
    элемент с трехстабильным выводом. Это нужно, чтобы можно было
    подключать несколько плат к одному IRQ. Кроме того, поскольку в
    машине это обычно не предусмотрено, надо зашунтировать выход на землю
    резистором килоом на десять, чтобы обеспечить нулевой уровень в
    пассивном состоянии. При выдаче IRQ выход должен переходить в
    единичное состояние. Таким образом, для корректной работы нужен
    элемент типа 555ЛП8 и резистор- не очень сложно. Теперь о программном
    обеспечении. Для функционирования нескольких независимых обработчиков
    они должны выполнять следующие действия:  Во-первых, сразу же
    размаскировывать IRQ, а для предотвращения повторного входа при
    нереентрантном коде использовать собственные флажки.  Во-вторых,
    исходить из того, что неизвестно, свое ли устройство требует
    обработки, и проверять это. Отсюда сразу следует вывод, что
    устройство должно иметь какие-то порты, по которым это можно
    идентифицировать. У COM-порта есть такая возможность, у LPT-нет.
    В-третьих, всегда передавать управление по цепочке следующему
    обработчику. Это надо делать и в случае активности своего устройства,
    чтобы при совпадении сигналов IRQ от нескольких устройсв, что
    означает их потерю, остальные не остались без обработки. И перестает
    быть критичным время, которое устройство держит активным сигнал IRQ.
    Кроме того, должны выполняться общие рекомендации по организации
    резидентов и работе с разделяемыми ресурсами: при выходе или
    окончании работы с устройством каждая программа должна не запрещать
    соответствующее прерывание, а приводить контроллер 8259 в исходное
    состояние. А запрещать вызов прерывания нужно на уровне устройства,
    если есть такая возможность.  Снятие обработчиков с прерывания должно
    осуществляться в порядке, обратном порядку их загрузки.

 Q: Что за новые пункты, касающиеся IRQ, появились в BIOS Setup 
    материнской платы с PCI шиной?

 A: Hа PCI идеология IRQ изменилась, и самые существенные отличия от 
    соответствующих сигналов на ISA - это, во-первых, задание номеров 
    IRQ для конкретных слотов в сетапе, то есть функция выбора номера 
    IRQ перешла от карточки к материнской плате, а, во-вторых, 
    возможность работать как по перепаду, так и по уровню, что 
    позволяет осуществить более корректное зашаривание IRQ между 
    устройствами, в том числе не отвечающими вышеизложенным 
    требованиям, относящимся к устройствам на ISA.

 Q: Я сделал устройство, передающее/принимающее данные и генерящее при
    этом IRQ, и софт к нему, работающий в фоновом режиме. Однако скорость
    передачи очень низка, и компьютер сильно тормозится при этом.  Что
    делать?

 A: Вызов прерывания - это довольно длительный процесс, поэтому надо
    минимизировать их количество на единицу информации. То есть надо
    передавать информацию блоками в синхронном режиме, а прерывание
    должно генериться только одно, при поступлении блока. Если работа с
    блоками невозможна, применяют FIFO, например, в COM-портах. Это буфер
    типа очередь, накапливающий информацию и выдающий прерывание по
    достижении определенной степени наполненности, после чего можно
    считать ее всю сразу. То же самое при передаче- буфер заполняется и
    начинает сам передавать данные дальше, а по окончании передачи
    вызывает прерывание. Реализуется FIFO, как правило, на отдельных
    микросхемах, имеющих в названии цифры 16550.


  Послесловие:

    Пишите мне, если Вы заметили ошибки/неточности, или считаете, что
    сюда надо добавить еще какую-нибудь информацию.

			    Alexey Kulentsov,
	     2:5020/216. 6 aka 2:5020/401.7 aka 2:5020/449.14

end of file


Страдания по IRQ — Ferra.ru

Бывало ли у вас так:  вы включаете сканер или подключаете внешний привод компакт дисков, и в этот момент вся система начинает заметно тормозить и вести себя неадекватно: мышь по экрану двигается рывками, звук начинает заикаться или отключается… Бывают и более тяжелые случаи. Например, после установки новой звуковой платы, при любых попытках вывести звук, даже при старте Windows, компьютер зависает насмерть. Если бывало, то эта статья – о вашем случае. Если нет, то все равно прочтите эту статью – если вдруг это случится, то вы будете знать, что делать.

Эти проблемы, чаще всего, вызваны конфликтом  аппаратных прерываний компьютера. Забавно, но довольно серьезная часть проблем с компьютером после установки нового железа как раз и связана с этими самыми конфликтами, только о них никто не говорит и вообще, эта тема мало обсуждается. Понимание всего вопроса в целом довольно обширная тема и каждый случай конфликта часто отличается от предыдущего, как по симптомам, так и по методам решения. В этой статье мы попытаемся объяснить сложившуюся ситуацию для пользователей, которые уже не боятся компьютеров, но еще не набрали достаточно опыта для решения проблем с конфликтами железа самостоятельно. К сожалению, некоторые моменты статьи довольно тяжело могут восприниматься из-за описаний систем построенных на нечеткой логике, которая, кстати, и является сильной стороной человека по отношению к компьютерам.

Немного истории

Многим эта часть статьи покажется необязательной, так как рассказ будет о старых временах, где-то с 1985 года, но эта информация важна тем, кто хочет разобраться в сути проблемы и понять, почему всё сложилось так неоднозначно.

Давным-давно, в далекой Америке, был разработан процессор x86, который является прародителем всех процессоров, используемых в персональных компьютерах стандарта IBM PC. То есть все Pentium и Athlon имеют в своей основе старый, добрый процессор x86. Архитектура современных процессоров уже очень сильно отличается от первого x86, тем не менее, некоторые моменты сохранились с тех давних времен, когда x86 процессор находился в начале своего пути, а именно с середины восьмидесятых годов прошлого века. Одним из таких моментов является ограничение количества линий аппаратных прерываний для центрального процессора.

Аппаратное прерывание – это реакция процессора на события, происходящие асинхронно по отношению к исполняемому программному коду. То есть прерывание – это момент когда центральный процессор по запросу от вызвавшего прерывание устройства откладывает выполняемую задачу и переключается на задачу, необходимую для работы устройства. После того, как задача для устройства выполнена, процессор вновь переключается на выполнение основной программы. Звуковую карту прерывание заставляет проиграть следующую микросекунду звука, а видеокарту прерывание заставляет сделать следующий кадр. С помощью прерываний центральный процессор заставляет жить весь компьютер. Линия аппаратного прерывания – это, утрированно говоря, физический провод, соединяющий микросхему контроллера прерываний и устройство. Количество линий аппаратных прерываний центрального процессора ограничено цифрой 16, то есть и устройств, использующих линии аппаратного прерывания, не может быть больше 16. Для организации линий аппаратных прерываний  внутри компьютера используется специализированная микросхема  — контроллер прерываний (PIC, Programmable Interupt Controller). Эта микросхема совместима по системе программных команд с микросхемой 8259A, которая имела всего 8 входов и использовалась в компьютерах класса IBM PC XT (8086 процессор). С выходом IBM PC AT (процессор 80286) внутренняя структура организации прерываний изменилась. Прерываний стало вдвое больше за счет использования еще одной микросхемы 8259A, которую подключили ко второй линии  первой микросхемы. Такая архитектура стандартного контроллера прерываний сохранилась и по сей день, причем никаких изменений на ближайшее будущее не намечается. Даже с приходом на рынок 64-битных x86 совместимых процессоров ситуация не изменится. Линии аппаратных прерываний обозначили значением – IRQ (Interupt ReQuest). Как уже упоминалось, физически у компьютера имеется 16 линий аппаратных прерываний, но эта цифра сильно уменьшается за счет прерываний? уже использованных встроенными устройствами. Некоторые прерывания имеют статус системных, поэтому их использование и переназначение их номера по желанию пользователя невозможно. В таблице они выделены буквой S перед номером. По умолчанию заняты следующие прерывания:

СистемностьЛиния IRQУстройство
S0Системный таймер
S1Клавиатура
S2Cascad (Вывод на вторую микросхему контроллера линий прерываний)
S8Часы реального времени
 9Свободно
 10Свободно
 11Свободно
 12Свободно
S13Сопроцессор
 14IDE Primary (Контроллер жестких дисков)
 15IDE Secondary (Контроллер жестких дисков)
 3Com Port 1 (Мышь)
 4Com Port 2 (Модем)
 5Свободно
S6Floppy (Дисковод)
 7LPT (Принтер)

Такая раскладка прерываний очень долго сохранялась на многих бытовых компьютерах. Почти все компьютеры на базе процессоров 386, 486 и Pentium имеют такой список использованных прерываний. При таком раскладе свободных прерываний в компьютере оказывается всего пять (5, 9, 10, 11, 12), но этого количества для большинства случаев было вполне достаточно. Устройств, требующих прерывание и устанавливаемых в компьютер в виде плат расширения, редко было больше трех. Стандартный набор того времени выглядел так: видеокарта, звуковая плата и сетевая карта. При этом было важно, чтобы одно прерывание ни в коем случае не использовалось двумя устройствами одновременно, так как это повлечет конфликт системных ресурсов, и оба устройства, находящихся на одном прерывании, работать не будут. Задачей сборщика компьютера на тот момент было разведение всех устройств по прерываниям таким образом, чтобы ни одно устройство не пересекалось с другим.

Наверное, самое время объяснить, что такое конфликт прерываний. Если два устройства находятся на одной линии прерываний, то драйвер может их спутать и переслать исполняемый кусок программы не той «железке», при этом заставляя ее исполнить этот кусок кода. Например, сетевая плата и звуковая карта находятся на 10 прерывании. Сетевая карта получает пакет из локальной сети с запросом на получение файла и отправляет запрос на прерывание центральному процессору.

Процессор отрабатывает прерывание, останавливает исполняемую задачу и передает управление драйверу сетевой карты, для отработки необходимых для приемки файла действий. Драйвер начинает работу с устройством, от которого пришло прерывание. Вот только работать он начинает не с сетевой платой, а со звуковой картой, находящейся на той же линии, передавая ей команды для приемки файла. Звуковая карта исполняет принятые команды, и полностью завешивает компьютер с BSOD (Blue Screen Of Death).

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

Исторически сложившаяся архитектура наложила очень сильный отпечаток на приоритеты линий прерываний. Подключенная вторая микросхема контроллера ко второй линии первой микросхемы вклинивается в приоритеты. Поэтому линии второй микросхемы имеют более высокий приоритет, чем линии первой. При этом, обе микросхемы выглядят для пользователя единым модулем контроллера прерываний – PIC (Program Interrupt Controller). Более того, уже давно две микросхемы для этих целей не используется, всё это встроено в северный мост чипсета, но раскладка приоритетов прерываний сохранилась. Чем больше ресурсов от компьютера требует устройство, тем более высокий приоритет должен быть у линии IRQ присвоенной этому устройству. То есть, для видеокарты желательно отдавать девятое или десятое прерывание, если оно свободно. Для звуковой карты тоже желательно найти прерывание, находящееся на втором контроллере. Подробнее об этом вопросе мы поговорим чуть ниже.

Но время не стоит на месте, и ситуация с прерываниями начала ухудшаться одновременно с разработкой новых технологий и развитием всей компьютерной области. Появились новые стандарты портов ввода-вывода, которые требуют собственного прерывания. Например, порты USB или PS/2, которые являются на настоящий момент стандартом де-факто для всех компьютеров. Свободных прерываний становилось всё меньше, а решение системных конфликтов становилось всё более сложным.

Настоящее …

Вся ситуация сильно изменилась с появлением систем ACPI и IRQ Sharing. К сожалению, эти системы никак нельзя описать в одно предложение, поэтому мы рассмотрим их чуть подробнее.

Система ACPI (Advanced Configuration and Power Interface, Расширенный интерфейс конфигурирования и управления питанием) была разработана в 1997 году тремя компаниями Microsoft, Intel и Toshiba. Если ваш компьютер поддерживает ACPI в железе, то при инсталляции операционных систем WindowsXP и Windows 2000 поддержка ACPI  автоматически встраивается в ядро операционной системы. Система ACPI занимается менеджментом энергосберегающих функций компьютера, таких, как автоматическое выключение блока питания после успешного завершения работы операционной системы, экономия заряда батарей, перевод компьютера в режим сна и пробуждение его от сна. Если ваш компьютер не — ноутбук, то единственно полезная функция от ACPI в плане управления питанием – это  автоматическое отключение блока питания.

Вторая функция ACPI — это автоматическое распределение системных ресурсов внутри компьютера. Пока ACPI в действии, вы не можете изменить никаких параметров, связанных с прерываниями. Более того, система ACPI поддерживает работу расширенного контроллера прерываний APIC.

APIC (Advanced Programmable Interrupt Controller) — усовершенствованный программируемый контроллер прерываний. Для многопроцессорных систем это необходимая система, так как позволяет распределить меж процессорами нагрузку по работе с устройствами. То есть, этот контроллер можно запрограммировать на обработку некоторых линий прерываний первым процессором, а некоторых — вторым. Для однопроцессорных систем эта опция всего лишь включает возможность использования в операционных системах WindowsXP и Windows2000 виртуальных прерываний. Мы не будем приводить алгоритмы работы виртуальных прерываний. Это бессмысленно, их нельзя менять, и они сильно зависят от реальных. Если у вас однопроцессорная система, то отключение этой функции весьма рекомендовано, но об этом позднее.

IRQ Sharing – система? позволяющая двум устройствам одновременно находиться на одном прерывании. Физически получается так, что на одной линии IRQ может висеть несколько устройств, при этом менеджмент между ними обеспечивается операционной системой. IRQ Sharing — неоднозначная система, так как использование её  необходимо для нормальной работы ПК, но при этом возможны самые разнообразные проблемы и глюки. На самом деле, использование и укрощение именно этой системы и есть цель этой статьи.

Совокупность вышеописанных систем была признана стандартом и включена в список требований к компьютерному оборудованию — PC2001. После реализации ACPI и IRQ Sharing на всех материнских платах, начиная с материнских плат для Pentium 1 (VX и TX чипсеты от Intel), сложилась раскладка прерываний, которая существует в каждом компьютере и по сей день. Вот она:

СистемностьЛиния IRQУстройство
S0Системный таймер
S1Клавиатура
S2Cascad (Вывод на вторую микросхему контроллера линий прерываний)
S8Часы реального времени
 9ACPI Controller
 10Свободно
 11USB
S12PS2
S13Сопроцессор
 14IDE Primary (Контроллер жестких дисков)
 15IDE Secondary (Контроллер жестких дисков)
 3Com Port 1 (Мышь)
 4Com Port 2 (Модем)
 5Свободно
S6Floppy (Дисковод)
 7LPT (Принтер)

Как видно из таблицы, свободных прерываний практически не осталось. Свободными можно считать только IRQ 5 и 10, всё остальное занято. По логике, как раз их-то и надо использовать для видеокарты и аудиоплаты. Но устройств, требующих собственное прерывание и не описанных в этой таблице, может быть куда больше. В таблицу они не включены, так как являются опциями, то есть могут быть в системе, а могут и не быть. Например: сетевая карта, контроллер RAID или SCSI, ТВ-тюнер, SATA, IEEE1394 (FireWire) и так далее. То есть, может сложиться ситуация, когда на два свободных прерывания будет восемь устройств, требующих собственного прерывания.  Есть три способа решения этой проблемы. Каждый способ имеет свои плюсы и минусы.

Первый способ – это  полноценное использование систем ACPI и IRQ Sharing. Если системы ACPI, а соответственно и APIC, включены, то операционная система считает, что у неё 256 прерываний, при этом реальных прерываний как было 16, так и осталось. Оставшиеся 240 прерываний – это  виртуальные прерывания, которые являются клонами реальных. ACPI автоматически распределяет прерывания и не позволяет пользователю их менять. Если устройство соглашается работать в режиме кооперации с другим устройством, то есть все шансы, что ACPI посадит их на одну физическую линию.  Если не контролировать данную ситуацию, то на одном физическом прерывании могут оказаться практически все устройства, установленные в компьютере, даже если есть свободные прерывания. Это приведет к сильнейшему торможению всей системы и серьезным сбоям в работе.

Решение:
Плюс данного подхода в отсутствии потребности вмешательства со стороны пользователя. То есть, делать ничего не надо. Просто воткнуть в материнскую плату видеоадаптер, процессор, память и так далее, а затем поставить операционную систему, которая нормально поддерживает ACPI. А это Windows XP или Windows 2000. Всё. Компьютер заработает. Именно в таком виде продаются почти все компьютеры, собранные в России. Подход прост: если работает и тормозит – то  это не гарантийный случай, а проблема пользователя.

Второй способ заключается в отказе от использования ACPI и APIC, но с параллельным использованием IRQ Sharing. Отказ от систем ACPI и APIC означает , что операционная система знает о наличии у неё только 16 прерываний, а не 256, но система IRQ Sharing позволяет находиться на одном прерывании нескольким устройствам. При этом отслеживать картину прерываний уже можно, и выбирать соседей по своему усмотрению — тоже. То есть, если у вас есть сетевая плата и звуковая карта, и при этом нужны все порты ввода-вывода установленные в материнскую плату, то от IRQ Sharing уже никак не отделаться.

Решение:
Современные материнские платы обладают некоторыми особенностями, которые необходимо знать для корректного разведения линий прерываний по устройствам. Так, все встроенные в материнскую плату устройства чаще всего имеют жесткую привязку к слотам расширения PCI, а некоторые слоты жестко привязаны друг к  другу. К примеру, у вас есть встроенная в материнскую плату звуковая карта, при этом она автоматически кооперируется с устройством в третьем слоте PCI. Если вы вставите сетевую плату в третий слот, то встроенная звуковая карта и сетевая плата будут висеть на одном прерывании, чтобы вы ни делали. Решить этот конфликт можно, переставив сетевую карту в другой слот. Или другой пример: пятый и первый слот PCI привязаны друг к другу, и установив два устройства в эти слоты, вы автоматически вешаете их на одну линию прерывания. Опять же, это лечится переустановкой одного из  устройств в другой слот. К сожалению, современные материнские платы имеют столько встроенных устройств, что найти свободный слот PCI без запаралеленных устройств бывает невозможно. В этом случае всё зависит от устройства.

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

К первой группе можно отнести видеокарту и контроллеры жестких дисков. Эти устройства должны иметь выделенное прерывание и ни в коем случае не должны его делить с чем бы то ни было. То есть, на одном прерывании с видеокартой не должно находиться ни одного устройства, в противном случае страшные глюки и тормоза гарантированы. Ко второй группе можно отнести менее ресурсоемкие устройства, например аудиоплату, ТВ-тюнер, софтверный внутренний модем (WinModem) или сетевую карту. Эти устройства могут сосуществовать на одном прерывании с устройствами из групп, которые мы опишем ниже. Тем не менее, если есть возможность, устройства, относящиеся ко второй группе, тоже желательно разместить на отдельном прерывании, так как при серьезной нагрузке возможны различные сбои. Вторая группа — эта зона риска, так как абсолютно непонятно, какое устройство с каким может войти в конфликт при использовании уже задействованных ими прерываний. Стабильность в этом случае достигается методом проб и ошибок. Единственное, что можно сказать однозначно – на одном прерывании не стоит размещать два устройства второй группы, это приведет к сбоям в работе. Третья группа — это все порты ввода вывода, USB, COM-порты, возможно LPT, IEEE1394 (FireWire), аппаратные внутренние модемы и прочие устройства не сильно загружающие компьютер. Устройства из третьей группы могут присоединяться к устройствам из второй и к самим себе. То есть, на одном прерывании могут висеть все порты USB или же один порт USB висит вместе с аудиокартой или ТВ-тюнером. Также можно повесить контроллер FireWire вместе с USB или СOM портом. Ну а четвертая группа — это устройства, не требующие прерываний. Это довольно редкая группа, и тем не менее, она существует. Например, к этой группе относились ускорители трехмерной графики от 3dfx – Voodoo и Voodoo 2. Да, кстати, если вдруг вы видите что у вашей видеокарты или USB-портов прерывание отсутствует (буковки NA — то есть Not Available), то это не значит что у вас такая редкая, хорошая видеокарта. Это с большой долей вероятности значит, что у вашего компьютера проблемы, которые надо решать немедленно. У устройств, не требующих прерывания, в инструкции об этом написано большими буквами.

Надо понимать, что все вышеперечисленные устройства могут обладать уникальными свойствами в зависимости от производителя или прошивки. Все вышеописанные правила работают не всегда и не однозначно. У вас легко может оказаться ТВ-тюнер или сетевая карта, которая напрочь откажется работать с кем-либо в паре. Или наоборот, ваша звуковая карта может вдруг повести себя стабильно на одном прерывании вместе с ТВ-тюнером. Конфликтовать умеют даже устройства, относящиеся к четвертой группе. Чаще всего они начинают глючить, если поставить их в запаралеленный с AGP слот.  При этом на понимание всех особенностей конкретно вашего железа может уйти значительное время.

Пожалуй, второй способ — самый часто используемый. При некотором понимании вопроса можно создать практически безглючный компьютер, в котором все устройства, установленные в него, будут функционировать. Минусом второго способа является потеря функций ACPI и наивысшая из всех способов сложность. Для рядового пользователя достижение нормальных результатов может занять долгое время и вызовет сильный перегруз мозгов. Плюс к этому, компьютер больше не будет сам выключаться (его придется выключать кнопкой «Power») и не будет засыпать. Что же касается режима Hybernate, то он полностью сохранит свою функциональность.

Третий способ  — самый правильный, но требует жертв.

Суть способа в полном отказе от систем ACPI и IRQ Sharing. А устройства, которые лезут на одну линию IRQ нужно просто отключать. Must be only one!, как говорил товарищ из фильма «Горец».

Решение:
Для начала нужно отключить все порты, которые не используются. Не пользуетесь LPT – отключить. Не пользуетесь вторым COM-портом и дополнительными USB-каналами – та же судьба, отключить. Каждое устройство должно иметь отдельное прерывание и ни с кем не пересекаться. Это вопрос приоритетов и потребностей, потому что при использовании данного способа половина компьютера оказывается «в отключке», зато всё остальное работает как часы. Плюс этого способа в возможности использования устаревших операционных систем и сложных программ. Например, для установки WindowsNT 4.0 на достаточно сложную машину этот способ просто необходим. Также плюс такого подхода — максимальное быстродействие всей системы без проблем со стабильностью. Если есть возможность, желательно идти именно этим путем.

Как понять, есть ли конфликты в вашем компьютере, и что делать

Самый простой способ разобраться в конфликтах — это нажать кнопку PAUSE\BREAK в момент начальной загрузки компьютера, а точнее, на втором экране BIOS. Для этого нужно обладать некоторой реакцией, так как второй экран загрузки пролетает очень быстро, и его еще нужно поймать. Также загрузку операционной системы можно остановить, поставив в BIOS приоритет загрузки с флоппика и засунув в оный какую-нибудь странную дискету. Во втором экране BIOS есть вся системная информация о железе — тактовая частота процессора, количество памяти и модели установленных жестких дисков, но самое интересное находится внизу экрана. Там перечислены установленные устройства, а напротив них стоит цифра прерывания. Показываемые на этом этапе устройства сильно зависят от модели материнской платы, а точнее от реализации BIOS.

Бывает, что список отображаемых устройств бывает полным и включает в себя контроллеры жестких дисков и все устройства, находящиеся на плате, вплоть до COM-портов. Бывает и наоборот: информации довольно мало, тогда видно только установленные устройства (как на скриншоте). А бывает, что второй экран BIOS вообще не содержит информации о прерываниях. В таком случае стоит воспользоваться другими программами, которые способны отображать физическое распределение прерываний.

Например, можно использовать стандартный диспетчер устройств, переключив его вид на «ресурсы по подключению» и раскрыв раздел «запрос на прерывания (IRQ)», или воспользоваться сторонними программами типа SiSoft Sandra.

Единственный минус их использования состоит в том, что они видят номера прерываний через призму операционной системы. Если используется система ACPI и APIC, то получить корректную информацию об аппаратных прерываниях будет весьма непросто, так как номеров будет не 16, а 256. Нас интересует ситуация, когда цифры не повторяются. Если одна и та же цифра стоит напротив USB Cntrlr, Display Cntrlr и Multimedia Device (аудиоплата или TB-тюнер), то дело совсем плохо. Например, данное окно говорит о следующем:

В компьютере используется система ACPI, APIC и IRQ Sharing, так как прерываний больше 15, и они пересекаются. Есть конфликт меж сетевой картой и звуковой платой, которые находятся на 18 прерывании. Также есть совсем несущественный конфликт меж всеми ветками USB на 21 прерывании, но это скорее норма. В целом — система стабильна, но для обеспечения большей стабильности требуется отключить ACPI и развести на разные прерывания сетевую и звуковую плату.

Как решать и что делать

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

Шаг первый: изучаем BIOS

Для начала нужно посмотреть на опции в BIOS вашего компьютера. И ничего там не трогать, в противном случае шансы на загрузку уже установленной операционной системы сильно падают. Вне зависимости от производителя BIOS и материнской платы, необходимые для работы опции могут присутствовать, а могут и отсутствовать. Стандарта для этих опций не существует, поэтому они могут иметь разные названия и находится в разных разделах BIOS. Но, применяя дедуктивный метод Шерлока Холмса, их все же можно найти. Для примера мы приведем названия этих опций в Award BIOS материнской платы GigaByte. Самые важные для нас опции находятся в разделе PnP\PCI Configuration и выглядят как номера слотов и привязанные к ним номера прерываний, которые можно менять.

С помощью этих опций можно добиться правильного распределения приоритетов линий прерываний к устройствам:
 • PCI 1 IRQ Assigment : Auto   (Auto, 3,4,5,7,9,10,11,14,15)
 • PCI 2 IRQ Assigment : Auto   (Auto, 3,4,5,7,9,10,11,14,15)
 • PCI 3 IRQ Assigment : Auto   (Auto, 3,4,5,7,9,10,11,14,15)
 • PCI 4 IRQ Assigment : Auto   (Auto, 3,4,5,7,9,10,11,14,15)

То есть, можно руками менять прерывания для слотов и привязанных к ним устройств. Если все опции выставлены в Auto, то распределением прерываний занимается автомат с алгоритмом, очень схожим с алгоритмом системы ACPI. Иногда бывает указание прерываний не цифрами, а буквами – A,B,C,D. Так же, как в случае с цифрами, буквенные прерывания позволяют собой управлять, при этом наивысший приоритет – у буквы А.

Если же этих опций нет, то приоритеты менять нельзя и единственный способ воздействия на раскладку прерываний —  это отключение устройств и перестановка плат расширений по слотам.

 • PnP OS Installed : Yes (No)

Эта опция сообщает BIOS, что распределением прерываний занимается сама операционная система. Иногда после изменения значения на NO открывается возможность контроля приоритетов по слотам.

 • ACPI Function : Enable (Disable)

Понятное дело, эта опция включает и отключает поддержку ACPI в BIOS. Если отключить эту опцию перед инсталляцией операционной системы, то, возможно, ядро ACPI и не будет инсталлировано (сильно зависит от версии и типа BIOS).

 • Interrupt Controller : APIC (PIC)

Как уже описывалось ранее, эта функция имеет разное значение на однопроцессорным и многопроцессорных системах. На однопроцессорных системах она разрешает операционной системе использование виртуальных прерываний. Если опцию поменять на PIC при инсталлированной операционной системе с ACPI ядром, то операционная система больше не загрузится, до исправления этого значение обратно на APIC. Если выставить опцию в PIC до инсталляции операционной системы, то ACPI-ядро не будет использовать виртуальные прерывания и нбудет слушать предписания BIOS при сохранении энергосберегающих функций. Полезная вещь, так как при присутствии этой опции и возможности реинсталлировать операционную систему есть возможность сохранить функции ACPI при отключении проблемной части ACPI с самостоятельным разведением прерываний. Минус — крайне редко встречается на однопроцессорных системах.

Также полезны опции по отключению устройств :
 • Midi Port Adress – можно отключить Миди порт 
 • Onboard Parallel Port – можно отключить LPT порт
 • Onboard Audio – можно отключить встроенную звуковую плату
 • Onboard LAN Control – можно отключить встроенный сетевой адаптер
 • USB Host Controller – можно отключить USB порты
 • Onboard Serial ATA – можно отключить Serial ATA
 • Onboard RAID – можно отключить RAID-контроллер.

Если указанные выше устройства не используются, то выставление Disabled отключит их и освободит используемые ими ресурсы.

Шаг второй – Карта прерываний

Ищем документацию от материнской платы. Если повезет, то в ней вы найдете карту прерываний для вашей материнской платы, которая выглядит следующим образом:

 ABCDEFG
PCI Slot 1   Shared   
PCI Slot 2Shared      
PCI Slot 3 Shared     
PCI Slot 4  Shared    
PCI Slot 5   Shared   
PCI Slot 6Shared      
AGP SlotShared      
USB 1. 1 UHCI 1     Shared 
USB 1.1 UHCI 1     Shared 
USB 1.1 UHCI 1     Shared 
USB 1.1 EHCI     Shared 
Audio codec      Used
Onboard LAN  Shared    
Onboard 1394 Shared     
Onboard SATA Shared     
Onboard IDE    Used 

Буквами вверху обозначены линии прерываний IRQ, левый столбец — это список устройств и слотов, установленных на вашей материнской плате. Указание shared означает, что устройство может работать в режиме кооперации с другими устройствами, used означает невозможность режима кооперации. Обратите внимание: линий прерываний целых 7, а раньше мы говорили, что полностью свободных линий всего пять. Это означает, что буквенные индексы тоже могут кооперироваться при нехватке ресурсов. После расшифровки информации в этой таблице получается вот что. Если у вас есть графический акселератор, установленный в AGP слот, то установка устройств во второй и шестой PCI-слоты строго запрещена, так как они используют идентичную физическую линию IRQ. Одновременная установка плат расширения в 1 и 5 слот также запрещена. У вас есть выбор: 1 или 5 слот, в противном случае оба устройства будут висеть на одном прерывании. Установка устройства в третий слот вызовет конфликт прерываний с портом 1394 и контроллером SerialATA. Если эти порты не используются, то их отключение освободит третий слот. К тому же, если вы используете SerialATA, который относится к устройствам первой группы, то просто необходимо отключить порт 1394 и не пользоваться третьим слотом. Все USB контроллеры висят на одном прерывании и вы с этим ничего не сделаете, впрочем, и не надо. Встроенная сетевая карта разделяет четвертый слот. Если используется, то четвертый слот тоже не занимать. Отключив сетевую карту, можно использовать четвертый слот по своему усмотрению. Вывод прост: в компьютер безболезненно можно установить одну плату расширения в 1 или 5 слот и видеоакселератор в слот AGP. Если нужны еще слоты, то нужно что-то отключать.

Более того, прерываний на все эти устройства всё равно не хватит, поэтому нужно освободить неиспользуемые линии IRQ. Радует только одно: типов установленных устройств не так много. Редко бывают нужны в компьютере две сетевые платы или две звуковые карты. Если используется SerialATA, то чаще всего не нужны оба канала контроллера UATA, занимающий 14 и 15 прерывание. Одно из них можно освободить, учитывая, что второе занимает CD-ROM. И так далее.

Если вы обратили внимание, не все буквенные индексы в таблице привязаны к слотам расширения PCI. Например, линия F, на которой висит USB, не привязана к слотам, в то время как из BIOS контролируются только номера прерываний для слотов. Линией F управляет внутренняя автоматика BIOS. А эта автоматика будет кооперировать эту линию IRQ с чем попало. Чтобы разрешить конфликты с этой веткой? вам потребуются шаманский бубен, кроличья лапка и большая подкова. На самом деле вам придется менять конфигурацию раскладок прерываний для слотов до тех пор, пока линия F не встанет на устраивающее вас значение. Каждым изменением вы заставляете автоматику пересчитать всю конфигурацию, и каждый раз автоматика будет назначать новое значение для линии F. Если таких бесконтрольных линий больше чем одна, задача усложняется. В нашем случае бесконтрольной осталась линия G. Но терпение и труд, как известно, всё перетрут.

Мы описали карту прерываний от материнской платы Asustek A7V8X, конкретные же карты прерываний у каждой материнской платы свои. Но основные принципы вычисления зависимостей по этому описанию можно понять.

Если же у вас нет карты прерываний в документации, то это просто осложняет задачу. Вам придется составить эту карту самостоятельно. Для опытных людей, занимающихся железом, составить эту карту в голове, ничего не записывая, не очень сложно. Для новичков может потребоваться бумага и ручка. Нарисуйте таблицу, схожую с приведенной выше. Слева перечислите устройства, сверху — линии IRQ. Зайдите в BIOS, выставите для каждого слота разное прерывание, а затем устанавливайте плату расширения в слоты PCI по порядку и смотрите номер прерывания во втором экране BIOS. Номер IRQ у переставляемой вами платы будет меняться в зависимости от слота. Также изменятся номера прерываний у скооперированных со слотами PCI встроенных в материнскую плату устройств, причем изменятся в соответствии с выставленными вами номерами IRQ для слотов PCI в BIOS. Если же устройство обладает собственной линией, как, например линия F для USB, то оно будет менять значение совсем нелогично, например перескакивая номером IRQ с одного слота на другой.

Шаг третий – Изменения в операционной системе

Самым первым изменением, с которого мы начнем настройку системы, будет замена ядра операционной системы для отключения функций ACPI. Как уже упоминалось ранее, после этого компьютер потеряет все энергосберегающие функции и перестанет сам выключаться после завершения работы операционной системы. Для этого нужно зайти в контрольную панель, выбрать иконку «Система», затем перейти в закладку «Оборудование» и нажать на «Диспетчер устройств». Затем открыть раздел «Компьютер» и двойным кликом нажать на «Компьютер с ACPI». Выбрать закладку «Драйвер» и нажать на кнопку «Обновить».

Выбрать «установку из указанного места», а затем отказаться от автоматического поиска драйвера и выбрать установку драйвера вручную. В появившемся окне убрать галочку «только совместимые устройства» и выбрать драйвер «Стандартный компьютер».

После нажатия на кнопку «Далее» компьютер скопирует необходимые файлы и уйдет на перезагрузку. После перезагрузки компьютер начнет находить ВСЕ устройства заново, включая системные устройства, но будет находить драйверы для них в автоматическом режиме. Некоторые устройства не проходят автоматическую установку, но для них достаточно выбрать автоматический поиск драйверов. После этого компьютер еще раз перезагрузится и после этого заработает в нормальном режиме. Всё, система ACPI отключена. Для того, чтобы снова включить ACPI, нужно повторить все вышеописанные действия, только выбрать «Компьютер с поддержкой ACPI».

Теперь вся системная информация касательно линий прерываний внутри операционной системы соответствует действительности. Номера прерываний соответствуют реальным. Это означает, что для мониторинга прерываний теперь можно использовать различные утилиты, показывающие прерывания в среде Windows.

Так выглядит раскладка прерываний после отключения ACPI и с сохранением IRQ Sharing. Кстати сказать, на скриншоте приведена раскладка прерываний с разрешенными основными конфликтами. Только RAID массив конфликтует с SMBus, но этот конфликт разрешить нет возможности, так как встроенный RAID-контроллер связан с SMBus картой прерываний. Приоритеты линий прерываний соответствуют типу устройств. В этом компьютере конфликты решены вторым способом, никаких доработок и изменений не требуется.

Шаг четвертый – Изменения в BIOS

Фактически, этот шаг является обобщением действий, описанных выше, только если выше были описания, то сейчас нужно предпринимать реальный действия, поэтому прошу прощения за некоторые повторения. Первым делом меняем опции в BIOS, если они конечно присутствуют:
 • PnP OS Installed : NO
 • ACPI Function : Disabled
 • Interrupt Controller : PIC

Далее отключаем ненужные порты и устройства, использовать которые вы в ближайшее время не собираетесь, за счет этого освобождаете дополнительные ветви прерываний. Из получившейся картины с помощью карты прерываний  вычисляем свободные слоты PCI. Если таковых нет, то ищем слоты PCI, которые делят прерывание с устройствами из третьей группы (порты ввода-вывода). Переставляем платы расширения именно в эти слоты, соблюдая правила описанные во втором способе (ссылка). Далее снова заходим в BIOS и с помощью опций назначения номера IRQ определенному слоту выставляем приоритеты для устройств, располагая их следующим образом. Чем выше группа, к которой принадлежит устройство, тем выше приоритет линии прерывания для него. То есть, для видеокарты это 9, 10 или 11, то же самое для контроллера жесткого диска (RAID, SATA, SCSI) и аудиоплаты. ТВ-Тюнер и сетевую карту можно повесить на 3, 4 или 5 прерывание. А для USB подойдет 7. Естественно, вы знаете лучше свой компьютер и свои потребности. Возможно, для вас наибольшее значение будет иметь как раз USB, и тогда вы будете стараться повесить USB на 10 или 11 прерывание. Все это вы должны решить для себя сами. Далее, нужно настроить устройства, которые не имеют контроля номера линии прерывания из BIOS. Для этого нужно менять прерывания для устройств в пределах приоритетов прерываний для них, то есть, погонять видеокарту с 9 по 11, так же аудио и остальные устройства. Методом перебора вы загоните автоматическую линию на требуемое значение. Скорее всего, это окажет некоторые воздействие на конечную раскладку прерываний. То есть, вы хотели повесить видео на 10, но в результате повесили на 11, только для того, чтобы USB ушло на 7. Как только вы добьетесь результата, который вас устроит, загружайте операционную систему и наслаждайтесь скоординированной работой компьютера. Только помните, включение в BIOS или физическое добавление еще одного устройства приведет снова всю систему прерываний в ХАОС, который придется решать заново.

Выводы

Весьма непросто бывает объяснить системы, которые представляют из себя не линейную информацию, а переплетение различных кусков информации в сочетании с интуицией и логикой, человеческой логикой, а не компьютерной. Из-за отсутствия упорядоченной информации и отточенных технологий, каждый человек умеющий решать конфликты внутри компьютера считает себя чуть-чуть магом, потому что каждый это делает немного по своему. У всех есть маленькие хитрости и секреты. Для того, чтобы сделать этот текст хотя бы немного понятным я старался не заострять внимания на объяснениях всех действий и точным описанием всех функций и спецификаций. Тем не менее, если у вас возникнут вопросы или комментарии, автор статьи с удовольствием выслушает и ответит на них. Мы надеемся, что эта статья поможет начинающим компьютерщикам разобраться в сложившейся ситуации.

Несварение IRQ | KV.by

Архитектура 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первичный и вторичный (переносной) винчестеры
15CD-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,
[email protected]

12.Реакция системы прерывания на запрос irq.

1.

Память ЭВМ. Классификация.

Память ЭВМ, совокупность технических устройств и процессов, обеспечивающих запись, хранение и воспроизведение информации в ЭВМ. Память — основная часть любой вычислительной системы или отдельной вычислительной машины, она реализуется аппаратурно — в виде комплекса взаимосвязанныхзапоминающих устройств (ЗУ) — и программными средствами. Максимальное количество информации, которое может храниться в П. ЭВМ (ёмкость), определяется суммарной ёмкостью всех ЗУ, а быстродействие П. ЭВМ зависит как от быстродействия отдельных ЗУ, так и от принципов их организации в единую систему памяти и способов обмена информацией внутри этой системы.

10.Прерывания микропроцессора Intel. Определение. Виды прерываний. Вектор прерыванияПрерывание — инициируемый определенным образом процесс, временно переключающий микропроцессор на выполнение другой программы с последующим возобновлением выполнения прерванной программы. Что дает использование механизма прерываний? Он позволяет обеспечить наиболее эффективное управление не только внешними устройствами, но, как мы увидим далее, и программами. Нажимая клавишу на клавиатуре, вы фактически инициируете посредством прерывания немедленный вызов программы, которая распознает нажатую клавишу, заносит ее код в буфер клавиатуры, откуда он в дальнейшем считывается некоторой другой программой или операционной системой. На время такой обработки микропроцессор прекращает выполнение некоторой программы и переключается на так называемую процедуру обработки прерывания. После того как данная процедура выполнит необходимые действия, прерванная программа продолжит выполнение с точки, где было приостановлено ее выполнение. Некоторые операционные системы используют механизм прерываний не только для обслуживания внешних устройств, но и для предоставления своих «услуг». Так, хорошо известная и до сих пор достаточно широко используемая операционная система MS-DOS взаимодействует с системными и прикладными программами преимущественно через систему прерываний. Исходя из вышеприведенных рассуждений, можно сказать, что прерывания могут быть внешними и внутренними. Внутренние аппаратные прерывания, иногда называемые отказами (faults), генерируются определенными событиями, возникающими в процессе выполнения программы, например попыткой деления на нуль. Закрепление за такими событиями опреденных номеров прерываний зашито в процессоре и не может быть изменено. Внешние аппаратные прерывания инициируются контроллерами периферийного оборудования или сопроцессорами (например, 8087/80287). Источники сигналов прерываний подключаются либо к выводу немаскируемых прерываний процессора (NMI) либо к выводу маскируемых прерываний (INTR). Линия NMI обычно предназначает для прерываний, вызываемых катастрофическими событиями, такими, как ошибки четности памяти или авария питания. Таблица векторов прерываний занимает первый килобайт оперативной памяти — адреса от 0000:0000 до 0000:03FF. Таблица состоит из 256 элементов — FAR-адресов обработчиков прерываний. Эти элементы называются векторами прерываний. В первом слове элемента таблицы записано смещение, а во втором — адрес сегмента обработчика прерывания. Векторами являются просто полные адреса памяти программы (в сегментированной форме), которая должна быть активизирована в случае возникновения прерывания.

11.Функции контроллера прерываний.

Прерывание – это сигнал, которое вырабатывает переферийное устройство, для информирования центрального процессора, чтобы он начал процесс выполнения определённой программы для переферийного устройства, вызвавшего это прерывание. При этом процессор останавливает выполнение прежней программы.

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

Так и в компьютерной системе, возможна такая ситуация, когда несколько переферийных устройств послали сигнал прерывания или запрос на прерывание. В компьютерной литературе этот сигнал обозначается IRQ (Interrupt Request).

Как уже выше говорилось, прерывания имеют определённый приоритет, который позволяет контроллеру прерываний отдавать предпочтение в данный момент времени одному устройству, а не другому. В современном компьютере существует до 16 внешних и переферийных устройств, генерирующие прерывания. Вот эти устройства:

–IRQ 0, системный таймер;

–IRQ 1, клавиатура;

–IRQ 2, исползуется для запросов устройств, подключенных каскадом;

–IRQ 8, часы реального времени;

–IRQ 9, зарезервировано;

–IRQ 10, зарезервировано;

–IRQ 11, зарезервировано;

–IRQ 12, ps/2–мышь;

–IRQ 13, сопроцессор;

–IRQ 14, контроллер «жёсткого» диска;

–IRQ 15, зарезервировано;

–IRQ 3, порты COM2,COM4;

–IRQ 4, порты COM1,COM3;

–IRQ 5, порт LPT2;

–IRQ 6, контроллер дисковода;

–IRQ 7, порт LPT1,принтер;

13.Маскируемые прерывания используются для сигнализации о событиях в устройствах. Реакция процессора на маскируемые прерывания может быть задержана сбросом его внутреннего флага IF (инструкция CLI запрещает прерывания, STI — разрешает). По возникновении события, требующего реакции, адаптер (контроллер) устройства формирует запрос прерывания, который поступает на вход контроллера прерываний. Задача контроллера прерываний — довести до процессора запрос прерывания и сообщить вектор, по которому выбирается программная процедура обработки прерываний. В IBM PC-совместимых компьютерах применяется два основных типа контроллеров прерываний

14.Прямой доступ к памяти (Direct Memory Access — DMA) применяется для выполнения операций передачи данных непосредственно между оперативной памятью и устройствами ввода/вывода. Обычно это такие устройства, как НГМД, НМД, стримеры.

При использовании DMA процессор не участвует в операциях ввода/вывода. Контроллер прямого доступа сам формирует все сигналы, необходимые для обмена данными с устройством. Скорость такого непосредственного обмена значительно выше, чем при традиционном обмене с использованием центрального процессора и команд INP, OUT.

Одним из способов обмена данными с ПУ является обмен в режиме прямого доступа к памяти (ПДП). В этом режиме обмен данными между ПУ и основной памятью микроЭВМ происходит без участия процессора. Обменом в режиме ПДП управляет не программа, выполняемая процессором, а электронные схемы, внешние по отношению к процессору. Обычно эти схемы размещаются в специальном контроллере, который называется контроллером прямого доступа к памяти.

Режим ПДП обычно используется при начальной загрузке программ в основную память микроЭВМ из устройств ввода и для организации обмена данными с быстродействующими внешними запоминающими устройствами (дисковыми накопителями).

Контроллер ПДП подключается к основной памяти посредством системного интерфейса.

16. Систеный порт. Назначение. Структура.

Это 8-разрядный порт с адресом 61h.

Функции системного порта:

1)Разрешение немаскируемых аппаратных прерываний NMI.

2)Идентификация немаскируемых аппаратных прерываний NMI.

3)Управление звуком.

Структура системного порта:

7R – ошибка четности ОЗУ или ошибка на шине PCI.

6R – ошибка на шине.

7 6

0 0 – нет ошибки

0 1 – ошибка на шине ISA

1 0 – ошибка памяти

1 1 – ошибка шины PCI

5R – выход второго канала системного таймера. OUT 2.

4R – регенерация памяти.

3R/W – разрешение контроллера памяти.

2R/W – разрешение контроллера ОЗУ и шины PCI.

1R/W – управление звуком.

0R/W – управление звуком.

R – разряд доступен только для чтения.

W – разряд доступен для записи.

Описание настроек Setup BIOS. Раздел Power Management Setup. Оптимизация и настройка Windows XP


Power Management
ACPI function
Video Off Option
Video Off Method
Suspend Switch
Doze Speed
Stby Speed
HDD Power Down
Doze Mode
Standby Mode
Suspend Mode
IRQ 3 (Wake-up)
IRQ 4 (Wake-up)
IRQ 8 (Wake-up)
IRQ 12 (Wake-up)
IRQ 3 (COM2)
IRQ 4 (COM1)
IRQ 5 (LPT2)
IRQ 6 (Floppy Disk)
IRQ 7 (LPT1)
IRQ 8 (RTC Alarm)
IRQ 9 (IRQ2 Redir)
IRQ 10 (Reserved)
IRQ 11 (Reserved)
IRQ 12 (PS/2 Mouse)
IRQ 13 (Coprocessor)
IRQ 14 (Hard Disk)
IRQ 15 (Reserved)
PWR Button < 4 Secs (он же Soft-of By PWR-BTTN)
PWR Up On Modem Act (он же Resume by Ring)
IRQ8 Resume by Suspend
ZZ Active In Suspend
Wake On LAN
AC PWR Loss Restart
Automatic Power Up
Chassis Fan Speed (xxxxRPM)
CPU Fan Speed (xxxxRPM)
Power Fan Speed (xxxxRPM)
CPU Temperature
MB Temperature
Voltage Monitor

Power Management
(управление энергопотреблением) — позволяет либо разрешать BIOS’у снижать энергопотребление компьютера, если за ним не работают, либо запрещать. Может принимать значения:

  • User Define (определяется пользователем) — при установке этого параметра вы можете самостоятельно установить время перехода в режим пониженного энергопотребления.
  • Min Saving (минимальное энергосбережение) — при выборе этого параметра компьютер будет переходить в режим пониженного энергопотребления через время от 40 мин. до 2 часов (зависит от конкретного BIOS материнской платы)
  • Max Saving (максимальное энергосбережение) — компьютер перейдет в режим пониженного энергопотребления через 10 — 30 с. после прекращения работы пользователя с ним.
  • Disable (запрещение энергосбережения) — запрещает режим энергосбережения.

ACPI function
(функционирование ACPI) — разрешает или запрещает поддержку BIOS стандарта ACPI. Следует помнить, что по состоянию на конец 1998 года только Windows 98 поддерживает этот стандарт. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

Video Off Option
(в каком режиме выключать монитор) — позволяет устанавливать, на какой стадии «засыпания» компьютера переводить монитор в режим пониженного энергопотребления. Может принимать значения:

  • Susp, Stby -> Off (выключение в режиме Suspend И Standby) — монитор перейдет в режим пониженного энергопотребления при наступлении либо режима Suspend, либо Standby.
  • All modes -> Off (выключение во всех режимах) — монитор будет переведен в режим пониженного энергопотребления в любом режиме.
  • Always On (всегда включен) — монитор никогда не будет переведен в режим пониженного энергопотребления
  • Suspend -> Off (выключение в режиме Suspend) — монитор перейдет в режим пониженного энергопотребления при наступлении режима Suspend.

Video Off Method
(способы выключения монитора)- устанавливается способ перехода монитора в режим пониженного энергопотребления. Может принимать значения:

  • DPMS OFF — снижение энергопотребления монитора до минимума
  • DPMS Reduce ON — монитор включен и может использоваться
  • DPMS Standby — монитор в режиме малого энергопотребления
  • DPMS Suspend — монитор в режиме сверхмалого энергопотребления
  • Blank Screen — экран пуст, но монитор потребляет полную мощность
  • V/H SYNC+Blank — снимаются сигналы разверток — монитор переходит в режим наименьшего энергопотребления.

Suspend Switch
(переключатель режима Suspend) — параметр разрешает или запрещает переход в режим suspend (временной остановки) с помощью кнопки на системном блоке. Для этого необходимо соединить джампер SMI на материнской плате с кнопкой на лицевой панели. Как правило, для этого используется либо специальная кнопка Sleep, либо кнопка Turbo. Режим suspend является режимом максимального снижения энергопотребления компьютером. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

Doze Speed
(частота процессора в режиме Doze) — определяет коэффициент деления тактовой частоты в режиме Doze (засыпание).

Stby Speed (частота процессора в режиме Standby) — определяет коэффициент деления тактовой частоты в режиме Standby (ожидания работы).

PM Timers — в этой секции устанавливаются времена перехода в различные стадии снижения энергопотребления.

  • HDD Power Down (выключение жесткого диска) — устанавливает либо время, через которое при отсутствии обращения жесткий диск будет выключен, либо запрещает такое выключение вообще. Параметр не оказывает влияние на диски SCSI. Может принимать значения:
    • От 1 до 15 минут
    • Disabled — запрещено
  • Doze Mode (режим засыпания) — устанавливает время перехода или запрещает переход в первую стадию снижения энергопотребления. Может принимать значения:
    • 30 Sec, 1 Min, 2 Min, 4 min, 8 Min, 20 Min, 30 Min, 40 Min, 1 Hour — время перехода (Sec — секунды, Min — минуты, Hour — час)
    • Disabled — запрещено
  • Standby Mode (режим ожидания работы) — устанавливает время перехода или запрещает переход во вторую стадию снижения энергопотребления. Может принимать значения:
    • 30 Sec, 1 Min, 2 Min, 4 min, 8 Min, 20 Min, 30 Min, 40 Min, 1 Hour — время перехода (Sec — секунды, Min — минуты, Hour — час)
    • Disabled — запрещено
  • Suspend Mode (режим временной остановки) — устанавливает время перехода или запрещает переход в третью стадию снижения энергопотребления. Может принимать значения:
    • 30 Sec, 1 Min, 2 Min, 4 min, 8 Min, 20 Min, 30 Min, 40 Min, 1 Hour — время перехода (Sec — секунды, Min — минуты, Hour — час)
    • Disabled — запрещено

PM Events — в этой секции указываются те прерывания, от обращения к которым компьютер должен «просыпаться», если к устройствам, использующим эти прерывания, есть обращения.
IRQ 3 (Wake-up)
разрешение этого параметра приведет к «пробуждению» компьютера от модема или мыши, подключенных к COM2. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 4 (Wake-up)
разрешение этого параметра приведет к «пробуждению» компьютера от модема или мыши, подключенных к COM1. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 8 (Wake-up)
разрешение этого параметра приведет к «пробуждению» компьютера от часов реального времени. Рекомендуется оставить его запрещенным, так как некоторые программы могут использовать функцию «будильника» часов компьютера для своих целей. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 12 (Wake-up)
разрешение этого параметра приведет к «пробуждению» компьютера от мыши, подключенной к порту PS/2. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

В следующей секции указываются те устройства, при активности которых компьютер «засыпать» не должен.
IRQ 3 (COM2)
при разрешении этого параметра компьютер не «засыпает», если подключенное к порту COM2 устройство используется. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 4 (COM1)
при разрешении этого параметра компьютер не «засыпает», если подключенное к порту COM1 устройство используется. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 5 (LPT2)
при разрешении этого параметра компьютер не «засыпает», если подключенное к порту LPT2 устройство (как правило, принтер) используется. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 6 (Floppy Disk)
при разрешении этого параметра компьютер не «засыпает», если к накопителю на гибких дисках происходит обращение. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 7 (LPT1)
при разрешении этого параметра компьютер не «засыпает», если подключенное к порту LPT2 устройство (как правило, принтер) используется. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 8 (RTC Alarm)
при разрешении этого параметра компьютер не «засыпает», если RTC (часы реального времени) используются как таймер. Рекомендуется оставить его запрещенным, так как некоторые программы могут использовать функцию «будильника» часов компьютера для своих целей. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 9 (IRQ2 Redir)
при разрешении этого параметра компьютер не «засыпает», если подключенное к порту COM2 устройство используется. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 10 (Reserved)
при разрешении этого параметра компьютер не «засыпает», если устройство, занимающее 10 прерывание, используется. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 11 (Reserved)при разрешении этого параметра компьютер не «засыпает», если устройство, занимающее 11 прерывание, используется. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 12 (PS/2 Mouse)
при разрешении этого параметра компьютер не «засыпает», если подключенное к порту COM2 устройство используется. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 13 (Coprocessor)
 при разрешении этого параметра компьютер не «засыпает», если сопроцессор используется. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 14 (Hard Disk)
при разрешении этого параметра компьютер не «засыпает», если к жесткому диску на первом канале IDE есть обращения. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ 15 (Reserved)
при разрешении этого параметра компьютер не «засыпает», если к жесткому диску или CD-ROM на втором канале IDE есть обращения. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

Power Up Control — параметры в этой секции определяют виды управления источником питания и применяются для источников питания в стандарте ATX и материнских плат, допускающих подключение к такому источнику.
PWR Button < 4 Secs (он же Soft-of By PWR-BTTN)
(кнопка питания нажата менее 4 секунд) — управляет функциями кнопки Power на системном блоке компьютера. Может принимать значения:

  • Soft Off (программное выключение) — кнопка работает как обычная кнопка включения/выключения питания компьютера, но при этом разрешается программное выключение компьютера (например, при выходе из Windows 95).
  • Suspend (временная остановка) — при нажатии на кнопку питания на время менее 4 секунд компьютер переходит в стадию Suspend снижения энергопотребления.
  • No Function (нет функций) — кнопка Power становится обычной кнопкой включения/выключения питания.

PWR Up On Modem Act (он же Resume by Ring)
(включение питания при звонке на модем) — разрешение этого параметра позволяет включить компьютер при звонке на модем. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

IRQ8 Resume by Suspend
(пробуждение по IRQ8) — разрешение этого параметра позволяет «разбудить» компьютер, соответствующим образом запрограммировав Alarm Time (время тревоги) в Real Time Clock (RTC — часы реального времени), так как сигнал от RTC заведен на IRQ8. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

ZZ Active In Suspend
(активность сигнала ZZ в режиме Suspend) — контроллер на материнской плате имеет сигнал ZZ, эмулирующий в режиме Suspend (временной остановки) тактовую частоту 8. 32 MHz Как правило, в большинстве материнских плат этот сигнал не используется, но если в SETUP он есть, то следует придерживаться рекомендаций по его установке от производителя материнской платы. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

Wake On LAN
(Пробуждение от сети) — при разрешении этого параметра компьютер включается по сигналу от локальной сети. Такое включение возможно только при установке в компьютер сетевой карты, поддерживающей этот режим. Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

AC PWR Loss Restart
(включить компьютер после пропадания питания) — разрешение этого параметра позволяет включить компьютер после пропадания питания. В противном случае после восстановления питания компьютер не включится и необходимо будет снова нажать кнопку подачи питания (Power). Может принимать значения:

  • Enabled — разрешено
  • Disabled — запрещено

Automatic Power Up
(автоматическое включение) — используя этот параметр, можно включать компьютер ежедневно в указанное время или включить его в указанный день и час. Может принимать значения:

  • Everday (ежедневно) — при вводе времени компьютер будет включаться ежедневно в назначенное время. Время вводится в поле Time (hh:mm:ss) Alarm в порядке часы: минуты: секунды либо клавишами PgUp, PgDn, либо непосредственным вводом чисел.
  • By Date (по дате) — компьютер включится в заданный день и в заданное время. При выборе этого параметра появляется поле для ввода времени (такое же, как и для Everyday) и поле для ввода дня месяца Date of Month Alarm — день месяца — в этом поле вводится число в месяце. Это автоматически означает, что запрограммировать включение компьютера можно только внутри одного месяца.
  • Disabled — запрещено

В следующих секциях BIOS только сообщает характеристики некоторых устройств компьютера. Разрешение параметров в этих секциях позволяет отслеживать BIOS’у эти параметры и сообщать об их выходе за пределы допустимого.
Секция Fan Monitor (наблюдение за вентиляторами)

Chassis Fan Speed (xxxxRPM)
(наблюдение за скоростью вращения дополнительного вентилятора в корпусе компьютера) — если выбрано Ignore, то скорость вращения этого вентилятора отслеживаться не будет. Этот параметр будет индицироваться только при использовании специального вентилятора с дополнительным выводом, подключаемого к специальному разъему на материнской плате. В противном случае, при остановке или критическом уменьшении скорости вращения, BIOS будет выдавать сообщение на экране перед загрузкой операционной системы.

CPU Fan Speed (xxxxRPM)
(наблюдение за скоростью вращения вентилятора охлаждения процессора) — если выбрано Ignore, то скорость вращения этого вентилятора отслеживаться не будет. Этот параметр будет индицироваться только при использовании специального вентилятора с дополнительным выводом, подключаемого к специальному разъему на материнской плате. В противном случае, при остановке или критическом уменьшении скорости вращения, BIOS будет выдавать сообщение на экране перед загрузкой операционной системы.

Power Fan Speed (xxxxRPM)
(наблюдение за скоростью вращения вентилятора блока питания) — если выбрано Ignore, то скорость вращения этого вентилятора отслеживаться не будет. В противном случае, при остановке или критическом уменьшении скорости вращения, BIOS будет выдавать сообщение на экране перед загрузкой операционной системы. Использование этого параметра возможно при наличии соответствующего блока питания.

Секция Thermal Monitor (наблюдение за температурой) — параметры изменению не подлежат.

CPU Temperature
(температура процессора) — показывает температуру процессора в градусах Цельсия и Фаренгейта. При выборе Ignore температура отслеживаться не будет. В противном случае, при критическом повышении температуры, BIOS будет выдавать сообщение на экране перед загрузкой операционной системы.

MB Temperature (температура материнской платы) — показывает температуру процессора в градусах Цельсия и Фаренгейта. При выборе Ignore температура отслеживаться не будет. В противном случае, при критическом повышении температуры, BIOS будет выдавать сообщение на экране перед загрузкой операционной системы.

Похожие публикации

  • Эксклюзив: пять основ Windows 7. Часть 2
  • Victoria — тестирование, сервисное обслуживание дисков с интерфейсами IDE и Serial ATA. Часть 3
  • Victoria — тестирование, сервисное обслуживание дисков с интерфейсами IDE и Serial ATA. Часть 2

Что такое номер запроса на прерывание на ПК?

Что такое номер запроса на прерывание на ПК?

Этот контент был заархивирован и больше не поддерживается Университетом Индианы. Информация здесь может быть неточной, а ссылки могут быть недоступны или ненадежны.

Запрос на прерывание — это сигнал от аппаратного устройства на вашем компьютер к вашему процессору. Когда аппаратному устройству требуется ЦП для выполнения что-либо (например, перемещение курсора при перемещении мыши), устройство отправляет запрос на прерывание в ЦП. Поскольку ЦП может получить несколько эти запросы на прерывание одновременно с разных устройств по одному и тому же путь (например, последовательный порт или шина PCI), ему нужен путь различать их. Для этого компьютер назначает Номер запроса на прерывание (номер IRQ) для каждого устройства и его путь к процессору.

Запрос прерывания, сделанный через номер IRQ устройства, сигнализирует о ЦП, что у устройства есть запрос, требующий обработки. (аппаратное обеспечение устройство, которое требует внимания со стороны ЦП, часто называют «нуждается в обслуживании».) Номера IRQ назначаются во время загрузки процесса для каждого аппаратного устройства, которое в нем нуждается.

Устройству требуется номер IRQ, если оно может предоставить ввод для ЦП или начать действие. Номер IRQ — это числовой способ присвоения приоритет, который устройства имеют с ЦП. Чем ниже значение номер IRQ, тем важнее необходимость ввода или действия для происходит. Некоторые устройства, которым назначены номера IRQ, включают контроллеры дисководов (гибких и жестких дисков), мышь, клавиатура и звуковая карта.

Конфликт IRQ возникает, когда два устройства пытаются использовать одно и то же IRQ число, а операционная система или материнская плата не имеют механизма для приспособление к этому. Эти конфликты были обычным явлением в старых версиях Windows, но редко встречаются в современных версиях операционной системы. система. Конфликты IRQ приводят к ошибкам, потому что ЦП не может понять какому устройству действительно принадлежит номер IRQ. Конфликт IRQ может вызвать проблемы, достаточно серьезные, чтобы заморозить или заблокировать ваш компьютер.

Однако с момента появления Windows 2000 истинное IRQ конфликты были крайне редки по причинам, перечисленным ниже. В связи к достижениям в операционной системе, старый совет о совместном использовании IRQ который был применен к Windows 95, 98, Я и NT больше не соответствуют действительности; это ты не следует пытаться разрешать конфликты IRQ в Windows 2000 и XP, вручную назначая устройствам разные номера IRQ, как предполагается, что эти устройства используют общие номера IRQ. В Windows 2000 и XP принудительное назначение IRQ вручную будет сильно мешать как работает операционная система.

Чтобы исправить конфликт IRQ в более старой версии Windows, вам нужно необходимо изменить номер IRQ на одном из устройств на неиспользуемый IRQ количество. Вы можете сделать это исправление одним из нескольких способов, включая изменение положения перемычек или микропереключателей на устройстве, внесение изменений в настройку программного обеспечения для устройства или внесение изменений в диспетчере устройств. Дополнительные сведения см. в разделе АРХИВ: что такое диспетчер устройств в Windows и как его использовать?

Конфликты IRQ не являются проблемой в современных версиях Windows для по следующим причинам:

  • Введение управления PCI/IRQ в Windows 95 OSR2 предоставил механизм изящного обмена IRQ. между устройствами.
  • Полное признание Plug and Play производителями оборудования привело их к разработке своих устройств и драйверов, чтобы они были более гибкими в отношении IRQ, которые они будут принимать.
  • Постоянное развитие Advanced Configuration and Power Стандарт интерфейса (ACPI) позволил разработать BIOS материнской платы и операционные системы, которые принимают указанные выше номера IRQ 15.

В Windows 2000 и XP на материнских платах с расширенным Программируемый контроллер прерываний (APIC), до 24 IRQ. доступный. Сам стандарт ACPI теоретически допускает до 255 виртуальные прерывания путем сопоставления виртуальной таблицы прерываний с одним IRQ (обычно IRQ 9 или 11) и позволяет Windows, а не BIOS определяет приоритет прерывания устройства запрос.

Типичные назначения IRQ для ПК

В приведенном ниже списке указаны некоторые типичные назначения IRQ для ПК:

IRQ # Устройство
0 Системный таймер
1 Клавиатура
2 Каскад из IRQ 9
3 COM-порт 2 или 4
4 COM-порт 1 или 3
5

Параллельный (принтерный) порт 2 или звуковые карты

6 Контроллер флоппи-дисковода
7 Параллельный порт (принтер) 1
8 Часы реального времени
9 Видео
10 Открыть
11 Открыть
12 Мышь PS/2
13 Сопроцессор
14

Первичный контроллер IDE (жесткие диски)

15

Дополнительный контроллер IDE (жесткие диски)

Это документ или в базе знаний.
Последнее изменение: 18.01.2018 12:46:12 .

настроек IRQ | Как просмотреть назначения IRQ и разрешить конфликты IRQ

IRQ означает I прерывание R e Q uest и относится к специальным пронумерованным каналам , которые используются устройствами для привлечения внимания процессоров.

Например, когда вы нажимаете клавишу на клавиатуре, процессор посылает сигнал процессору через канал IRQ (обычно IRQ1), чтобы сообщить ему, что ему необходимо обработать некоторые данные.

реклама


Конфликты IRQ могут возникать при установке или перенастройке нового оборудования. Например, это может вызвать проблемы, если ваша мышь находится на COM 1 (IRQ4), а модем — на COM 3 (IRQ4). Ниже приведен список назначений по умолчанию для каналов IRQ в Windows.

Назначения ISA IRQ по умолчанию

Мышь
IRQ 0 Системный таймер
IRQ 1 Клавиатура
IRQ 2 Каскад с IRQ 9
IRQ 3 COM2 и COM4 по умолчанию
IRQ 4 По умолчанию COM1 и COM3
IRQ 5 ЛПТ2
Прерывание 6 Контроллер флоппи-дисковода
IRQ 7 ЛПТ1
IRQ 8 Часы реального времени
IRQ 9 СМ. 2
IRQ 10 Открыть
IRQ 11 Открыть
IRQ 12 PS/2 или Open
IRQ 13 Математический сопроцессор
IRQ 14 Основной контроллер жесткого диска
IRQ 15 Контроллер вторичного жесткого диска

Просмотр текущих назначений IRQ

  • Использование мыши
    1. Наведите указатель мыши на правый верхний угол экрана.
    2. Наведите указатель мыши вниз и нажмите Поиск .
    3. Тип Панель управления в поле поиска.
    4. Щелкните значок Панель управления .
    5. Щелкните значок Оборудование и звук .
    6. В разделе «Устройства и принтеры» нажмите Диспетчер устройств
  • Использование сенсорного экрана
    1. Проведите влево от правого края экрана.
    2. Нажмите на Поиск .
    3. Введите Панель управления в поле поиска.
    4. Коснитесь значка Панель управления .
    5. Коснитесь значка Оборудование и звук .
    6. В разделе «Устройства и принтеры» нажмите Диспетчер устройств

Теперь смотрите наш раздел ниже «Открытие списка IRQ».


  1. Нажмите кнопку СТАРТ, затем введите Панель управления в поле поиска.
  2. Нажмите на значок Панель управления в результатах (см. скриншот ниже).

Теперь смотрите наш раздел ниже «Открытие списка IRQ».


  1. Нажмите ПУСК , нажмите ПАНЕЛЬ УПРАВЛЕНИЯ .
  2. При наличии нажмите Производительность и обслуживание (просмотр категорий).
  3. Щелкните Система .
  4. Щелкните вкладку Оборудование .
  5. Нажмите кнопку ДИСПЕТЧЕР УСТРОЙСТВ .

Теперь смотрите наш раздел ниже «Открытие списка IRQ».


Открытие списка IRQ

Когда у вас откроется Диспетчер устройств , выберите ПРОСМОТР в меню панели инструментов, а затем нажмите Ресурсы по типу .

Дважды щелкните Interrupt Request (IRQ) , как показано на рис. 1.1 ниже:

Список, отображаемый на вашем компьютере, зависит от вашего оборудования.

Если у вас возникли проблемы с недавно установленным/настроенным оборудованием и драйверы установлены правильно, проверьте, есть ли у него собственный канал IRQ.


Изменение настроек IRQ

Предупреждение . Изменение системных ресурсов, таких как каналы IRQ, может привести к неправильной работе компьютера. Всегда записывайте настройки, прежде чем что-либо менять, чтобы при необходимости можно было восстановить их обратно.

Если у вас есть конфликт и вам нужно изменить настройку IRQ:

  1. Щелкните правой кнопкой мыши устройство в списке (см. выше) и выберите свойства .
  2. Нажмите Ресурсы вкладка.
  3. Снимите галочку с опции Использовать автоматические настройки .
  4. Выберите неконфликтующую конфигурацию из раскрывающегося списка.
  5. Нажмите ОК

Вы можете обнаружить, что не можете вручную изменить настройки IRQ ( Использовать автоматические настройки будет выделено серым цветом), обычно это связано с функцией ACPI, используемой в Windows XP.

Чтобы устранить конфликты с картами PCI или ISA, попробуйте вручную установить их в BIOS материнской платы или попробуйте другой слот для нового установленного устройства. Обычно вы обнаружите, что, меняя слот, вы также меняете канал IRQ.


реклама


IRQ 14 ОСНОВНАЯ IDE | ГЛАВНАЯ ЗАГРУЗОЧНАЯ ЗАПИСЬ

  • Купить полный цифровой альбом
  • Компакт-диск (CD) + цифровой альбом

    Предварительно отпечатанные, продублированные на заводе компакт-диски на черном материале (например, диски PS1), которые поставляются в конвертах, вырезанных как копии 5,25-дюймовых гибких дисков, с пылезащитными крышками.

    Включает неограниченную потоковую передачу ЗАПРОС НА ПРЕРЫВАНИЕ через бесплатное приложение Bandcamp, а также высококачественную загрузку в форматах MP3, FLAC и других форматах.

    отправляется в течение 5 дней

    Можно приобрести с подарочной картой

    10 долларов доллар США или больше
  • Пластинка/винил + цифровой альбом

    2XLP Черный винил обычной плотности, каждый в конверте с печатью на оборотной стороне плотностью 350 г/м2, вырубленном под форму дискеты размером 5,25 дюйма. Защищен конвертом из ПВХ плотностью 150 мг. Отпечатано во Франции.

    Как всегда, если вы беспокоитесь о новом цвете состояние вашей записи и, следовательно, требуется отслеживаемая и / или застрахованная доставка, пожалуйста, заказывайте через наш магазин на dataairlines.net, так как все заказы bandcamp доставляются самой дешевой незарегистрированной доставкой.Дополнительную информацию о доставке можно найти здесь: dataairlines.bandcamp.com/policies

    Включает неограниченную потоковую передачу ЗАПРОС НА ПРЕРЫВАНИЕ через бесплатное приложение Bandcamp, а также высококачественную загрузку в форматах MP3, FLAC и других форматах.

    отправляется в течение 5 дней

    Можно приобрести с подарочной картой

    $32 доллар США или больше
  • Кассета + цифровой альбом

    Аудиокассета «белое на черном» / «черное на белом».

    Включает неограниченную потоковую передачу ЗАПРОС НА ПРЕРЫВАНИЕ через бесплатное приложение Bandcamp, а также высококачественную загрузку в форматах MP3, FLAC и других форматах.

    отправляется в течение 5 дней

    Можно приобрести с подарочной картой

    12 долларов доллар США или больше
  • Футболка/одежда

    Качественная черная футболка унисекс 155 г/м2 с трафаретной печатью в Италии. Доставка из Франции. Блокировать ASCII с помощью H7 (Blocktronics, Accession, TRSi, Divine Stylers). Доступен в версиях MS-DOS Black и Norton Commander Blue. Таблица размеров в фотогалерее.

    Обратите внимание, что все заказы, размещенные через Bandcamp, отправляются незарегистрированной доставкой. Если вам требуется отслеживание или вы предпочитаете варианты доставки, которые покрывают потери или повреждения при транспортировке, посетите наш магазин по адресу www.dataairlines.net.

    отправляется в течение 5 дней

    Можно приобрести с подарочной картой

    22 доллара доллар США или больше
  • Плакат/Печать

    Плакат A2 (420 x 594 мм), 350 г/м. Поставляется свернутым в треугольной картонной коробке. Включает цифровой код загрузки bandcamp. Ascii от H7 / Blocktronics

    *** Как всегда, если вы беспокоитесь о состоянии своих товаров и, следовательно, нуждаетесь в отслеживаемой и/или застрахованной доставке, заказывайте через наш магазин на dataairlines.net, так как все заказы Bandcamp доставляются самой дешевой незарегистрированной доставкой. Дополнительную информацию о доставке можно найти здесь: dataairlines.bandcamp.com/policies
    Дополнительные варианты доставки, а также скидка на комплект из трех плакатов MBR по цене двух. Пожалуйста, посетите www.dataairlines.net/product/mbr-poster-bundle/

    отправляется в течение 5 дней

    Можно приобрести с подарочной картой

    15 долларов доллар США или больше
  • ФУТБОЛКА ASCII (DATAT05)

    Футболка/одежда

    Белая тканевая версия Футболка плотностью 155 г/м2, напечатанная методом трафаретной печати в Италии. Доставка из Франции. Блокировать ASCII с помощью H7 (Blocktronics, Accession, TRSi, Divine Stylers). Таблица размеров в фотогалерее.

    Продано

  • ДИСКЕТА (DATA069)

    Компакт-диск (CD) + цифровой альбом

    5,25-дюймовая дискета на компакт-диске. Печатный CD-R на черной обрезанной открытой настоящей 5,25-дюймовой дискете с внутренним покрытием, подходящим для компакт-диска. Поставляется с черным пылезащитным чехлом MBR с УФ-печатью.

    Включает неограниченную потоковую передачу ЗАПРОС НА ПРЕРЫВАНИЕ через бесплатное приложение Bandcamp, а также высококачественную загрузку в форматах MP3, FLAC и других форматах.

    Продано

  • Толстовка с капюшоном ASCII

    Футболка/одежда

    Толстовка из высококачественного органического хлопка. Доставка из Франции. Таблица размеров в фотогалерее. Блокировать ASCII с помощью H7 (Blocktronics, Accession, TRSi, Divine Stylers).

    Ограниченная серия. 100 единиц.

    Цена со скидкой и более низкая стоимость доставки на сайте www.dataairlines.net/product/irq-h7-ascii-hood/

    Продано

  • Бокс-сет для гибких компакт-дисков 5,25 дюйма

    Бокс-сет из пяти компакт-дисков из 5 LP от MASTER BOOT RECORD на Data Airlines: C​:​\​>CHKDSK /F (DATA058), C​:​\​>COPY ​. ​ A: /V (DATA062), INTERRUPT REQUEST (ДАННЫЕ069), 486DX (DATA071) и ПРОТОКОЛ ИНТЕРНЕТ (DATA091).

    Это предварительно отпечатанные, фабрично продублированные компакт-диски на черном материале (например, диски PS1), которые поставляются в конвертах, вырезанных как копии 5,25-дюймовых гибких дисков, с пылезащитными крышками и, наконец, упакованными в выдвижную картонную коробку из двух частей для гибких дисков (см. фотографии). )

    Сделано в Великобритании.Отправка незарегистрированной почтой в картонных коробках из Франции.Для получения дополнительных вариантов доставки рассмотрите возможность заказа на сайте dataairlines.net.

    Продано

  • Прерывание — твой друг! Предотвращение и устранение конфликтов IRQ Прерывание — это возможность, а не проблема

    COMPUTERCRAFT — прерывание — ваш друг! Предотвращение и устранение конфликтов IRQ Прерывание — это возможность, а не проблема
    Прерывание — твой друг!
    Предотвращение и устранение конфликтов IRQ

    Энтони Ольшевски

    Прерывание — это возможность, а не проблема

    ПК использует 16 прерываний (часто сокращенно IRQ, сокращение от I nterrupt). R e Q uest), пронумерованы от 0 до 15. Все устройства, подключенные к системе, привлекают внимание ЦП через прерывать. Это лучше для каждая часть персонального компьютера, которая нуждается в IRQ, чтобы иметь свои OWN уникальный IRQ. Иногда можно сыграть и получить прочь две карты, порты, что угодно совместное использование прерывания. Это часто не работа . Во всяком случае, если два устройства пытаются использовать прерывание одновременно, одно может не сработать, оба могут не сработать или вся система может зависнуть. По мере того, как на ПК добавляются «плюшки», пул IRQ сокращается.

    Вот список прерываний и общих настроек:

    IRQ 0 Прерывание системного таймера от TIMER-0. Нет определяемых пользователем опций.
    IRQ 1 Контроллер клавиатуры
    IRQ 2 Каскад для IRQ 8-15. IRQ 9 каскадируется на IRQ 2 через программную переадресацию.
    IRQ 3 Доступный. Стандартный IRQ для COM 2/COM 4.
    IRQ 4 Доступный. IRQ 4 является стандартом для COM 1/COM 3. последовательное подключение мыши. Не пытайтесь сделать так, чтобы мышь разделяла IRQ.
    IRQ 5 Доступный. Это IRQ по умолчанию для большинства звуковых карт. Сетевая карта и LPT 2 часто устанавливаются на IRQ 5, ЕСЛИ звуковая карта не используется.
    IRQ 6 Контроллер флоппи-дисковода. Нет определяемых пользователем опций.
    IRQ 7 Первичный параллельный (принтерный) порт — LPT 1. Если параллельный порт не используется, то можно использовать IRQ 7. присвоено другому устройству.
    IRQ 8 Часы реального времени. Нет определяемых пользователем опций.
    IRQ 9 Каскад на IRQ 2.
    IRQ 10 Доступный. Если звуковая карта использует IRQ 5, то это IRQ можно использовать для сетевой карты.
    IRQ 11 Доступный. Часто используется для контроллера SCSI.
    IRQ 12 Доступный. Часто используется для мыши в стиле PS2.
    IRQ 13 Математический сопроцессор. Нет определяемых пользователем оптино.
    IRQ 14 Основной контроллер IDE (жесткий диск, CD-ROM). 2 устройства IDE на одном кабеле используют один IRQ.
    IRQ 15 Дополнительный канал IDE. Доступно, если вторичный канал отключен.
    Приоритеты IRQ
    Верх
    IRQ 0
    IRQ 1
    IRQ 2/9
    IRQ 10
    IRQ 11
    IRQ 12
    IRQ 13
    IRQ 14
    IRQ 15
    Прерывание 3
    Прерывание 4
    Прерывание 5
    Прерывание 6
    IRQ 7
    IRQ 8
    Низ
    В этой таблице показано, как система обрабатывает одновременные прерывания. Лучшие люди в IRQ установка тотемного столба первого!
    Эти значения по умолчанию обычно работают нормально:
    Мышь COM1 IRQ 4
    Модем COM 2 IRQ 3
    Extra Serial COM 4 IRQ 3 (Возможен конфликт с COM 2)
    Звуковая карта IRQ 5
    Принтер IRQ 7
    Карта SCSI IRQ 9
    Сетевая карта IRQ 10
    Карта SCSI IRQ 11
    Мышь PS2 IRQ 12
    Основной IDE IRQ 14
    Дополнительный IDE IRQ15

    Вы можете убрать лишние прерывания, отключив все, что ты не пользуешься! Отключение COM 2 делает доступным IRQ 3. Отключение вторичного канала IDE позволит вам использовать IRQ 15 для что-то другое. Отключение Порт мыши PS2 освобождает IRQ 12. Чтобы получить «до последней капли», используйте жесткий диск SCSI. Ты затем можно отключить оба IDE каналы. Таким образом, и IRQ 14 и 15 получают свою свободу.

    COM-порты (сокращение от коммуникационных портов ) последовательные интерфейсы к системе. У каждого должно быть прерывание. Мыши, модемы, последовательные принтеры, все используют COM-порты. В системе может быть до 4 COM-портов: COM 1, COM 2, COM 3, и COM 4. В системах обычно используются 2: мышь (обычно на COM 1) и модем (обычно на COM 2 или COM 4). Последовательные порты заканчиваются на либо 9-контактные или 25-контактные разъемы. Доступны адаптеры для преобразования 25-контактного разъема в 9-контактный.

    Настройки COM-порта
    COM Прерывание Адрес
    COM 1 IRQ 4 3f8h
    COM 2 IRQ 3 2f8h
    COM 3 IRQ 4 3e8h
    COM 4 IRQ 3 3f8h

    Несмотря на то, что вы можете установить 4 COM-порта, традиционно для них предусмотрено только 2 IRQ. Этот путь, даже при подключении 4 последовательных устройств одновременно могут использоваться только 2. поскольку мышь постоянно используется, прерывание обмена мышкой нельзя. Это в основном оставляет COM 1 перехватывающим IRQ 4. COM 2 и COM 4 можно установить на IRQ 3 (пока так как используется только один. Новые модемы и материнские платы часто допускают широкий диапазон IRQ. настройки.

    Для приложений BBS или ISP вы можете получить многопортовую плату, которая может обрабатывать от 2 до 128 портов. порты. Это не дешево. Для рожка для обуви можно купить коробку, которая позволит нескольким внешним устройствам использовать один порт — один вовремя.

    Для стандартной установки внутреннего модема проще всего отключить COM 2 на материнской плате или IDE-карта (для старых систем). Затем внутренний модем устанавливается на COM 2, IRQ 3.

    Настройки параллельного порта
    Порт LPT IRQ Адрес
    ЛПТ1 7 378х, 3БЧ или 278х
    LPT2 5 278ч, 378ч
    LPT3 в наличии 278ч

    Раньше для ПК требовался только 1 параллельный порт, поскольку он использовался только для принтера. Теперь с ZIP приводы и цифровые камеры, второй параллельный порт становится необходимостью. Коробки переключателей, как и серийные, используются для несколько внешних устройств разделить один порт. Но, опять же, только по одному.

    Для проверки доступно большое количество условно-бесплатных программ IRQ, COM-порты и другие аспекты аппаратного обеспечения.

    Я установил новую карту, и теперь ничего не работает!

    Прежде всего, взгляните на приведенные выше таблицы. Новое устройство явно не в ладах с что-то другое. Если в системе есть серийная мышь, совершенно очевидно, что новый модем просто не нужен. буду гудеть на COM 1!

    Если ситуация не так проста, возьмите одну из других карт ПРИ ОТКЛЮЧЕНИИ ПИТАНИЯ, ИЗ КУРС . Не вытаскивайте видеокарту, иначе машина ничего не сможет сделать. Включите система. Если компьютер возвращается к жизни, вы нашли сопротивление новому оборудованию. Если система по-прежнему не загружается, извлеките другую карту и повторите попытку.

    В общем, я предпочитаю попробовать настроить параметры на новой карте.

    Если после удаления почти всего не было достигнуто никакого прогресса, начните выяснять, не появились ли новые карта просто неисправна

    Windows 95 предлагает совершенно новый набор инструментов для изучения работы с прерываниями. В идеале PnP ( P наконечник a n d P lay) должен автоматизировать весь процесс. Не делайте ставку на это.
    Дважды щелкните на ПАНЕЛИ УПРАВЛЕНИЯ, чтобы проверить Система
    Один раз в ПАНЕЛЬ УПРАВЛЕНИЯ,
    Дважды щелкните ЗНАЧОК СИСТЕМЫ
    , чтобы исследовать и заменить оборудование Настройки
    ДИСПЕТЧЕР УСТРОЙСТВ Список настроек оборудования. Вы можете Настройте их отсюда тоже.
    Чтобы работать с настройками для определенного устройства, выберите это Устройство, нажав на его описание А затем дважды щелкните СВОЙСТВА.
    Желтый восклицательный знак или красный крестик рядом с устройством означают, что возникла проблема. Распознается WINDOWS 95.
    К сожалению, часто WINDOWS 95 оптимистично говорит, что «ЭТО УСТРОЙСТВО РАБОТАЕТ ПРАВИЛЬНО», когда вообще не работает!
    Чтобы действительно изменить настройки, вы можете выбрать различные ОСНОВНЫЕ КОНФИГУРАЦИИ или, очевидно, ИЗМЕНЕНИЕ ПАРАМЕТР. Имейте хорошее представление о том, какие прерывания, области памяти и DMA возможны Для данного устройства. Кроме того, перечислите, что Ресурсы используются в настоящее время системой. Случайный выбор не только вероятно Не сработает, но тоже что-нибудь выбьет Остальное из Wack! ОКНА 95 даст вам, казалось бы, ужасное предупреждение после вас Внесите любые изменения вручную. Если вы уверены, что вы Правильно, вперед. Вы всегда можете вернуться и изменить ситуацию Опять таки.
    Если в ДИСПЕТЧЕ УСТРОЙСТВ выбрать КОМПЬЮТЕР (в самом вверху списка), а затем дважды щелкните по СВОЙСТВА, вы получаете этот экран. Это действительно то место, с которого нужно начать перед установкой любого Новое оборудование.
    ЗНАЧОК ДОБАВИТЬ НОВОЕ ОБОРУДОВАНИЕ В ПАНЕЛИ УПРАВЛЕНИЯ. WINDOWS 95 пытается автоматизировать выделение IRQ и другие системные ресурсы через PnP.
    Окно экрана мастера добавления нового оборудования
    Экран поиска ДОБАВИТЬ НОВОЕ ОБОРУДОВАНИЕ. ДА пытается Делайте это автоматически. Это занимает много времени и часто не работает. Выбрав НЕТ, вы должны сообщить системе, что это такое Вы устанавливаете.
    Предположение WINDOWS 95 о том, что делать. Если Настройки настолько явно выключены, что Система нестабильна (что бывает очень редко), воспользуйтесь мастером добавления нового оборудования Предложение. Вы всегда можете зайти в ДИСПЕТЧЕР УСТРОЙСТВ И внесите необходимые изменения позже.
    WINDOWS 95 также помогает при разрешении конфликтов. Дважды щелкните ПОМОЩЬ в меню «Пуск».
    Дважды щелкните в меню ПОМОЩЬ, ЕСЛИ У ВАС ЕСТЬ ОБОРУДОВАНИЕ КОНФЛИКТ В разделе ПОИСК И УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ.
    Это ставит вас в АППАРАТНЫЙ КОНФЛИКТ Окно ПОИСК И УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ. К сожалению, особенность Болезненно хромой. Как правило, это указывает только на очевидное. Но если вы потерялись, это так же хорошо Как и любое другое место для начала.

    Класс Win32_IRQResource — приложения Win32

    Редактировать

    Твиттер LinkedIn Фейсбук Эл. адрес

    • Статья
    • 4 минуты на чтение

    Класс WMI Win32_IRQResource представляет номер строки запроса на прерывание (IRQ) в компьютерной системе, работающей под управлением Windows. Запрос на прерывание — это сигнал, посылаемый в ЦП устройством или программой для критических по времени событий. IRQ может быть аппаратным или программным.

    Следующий синтаксис упрощен из кода формата управляемых объектов (MOF) и включает все унаследованные свойства. Свойства перечислены в алфавитном порядке, а не в порядке MOF.

    Синтаксис

     [Динамический, Provider("CIMWin32"), UUID("{8502C4D3-5FBB-11D2-AAC1-006008C78BC7}"), ИЗМЕНЕНИЕ]
    класс Win32_IRQResource: CIM_IRQ
    {
      uint16 Доступность;
      Заголовок строки;
      строка ИмяКлассаСотворения;
      строка CSCreationClassName;
      строка CSName;
      строка Описание;
      логическое оборудование;
      дата и время Дата установки;
      uint32 IRQNumber;
      имя строки;
      логическое значение
      строка Статус;
      uint16 Уровень триггера;
      uint16 Тип триггера;
      uint32 Вектор;
    };
     

    Члены

    Класс Win32_IRQResource имеет следующие типы членов:

    • Свойства

    Свойства

    Класс Win32_IRQResource имеет эти свойства.

    Наличие

    Тип данных: uint16

    Тип доступа: Только чтение

    Квалификаторы: MappingStrings («MIF.DMTF|IRQ|001.2»)

    Наличие IRQ.

    Это свойство унаследовано от CIM_IRQ .

    0

    Прочее

    Другое (1)

    Неизвестно

    Неизвестно (2)

    В наличии

    В наличии (3)

    Используется или недоступен

    Используется/недоступно (4)

    Используется и доступен или доступен для совместного использования

    Используемый и доступный/общий (5)

    Используется и доступно/доступно для совместного использования

    Заголовок

    Тип данных: строка

    Тип доступа: Только чтение

    квалификации: MaxLen (64), DisplayName («Заголовок»)

    Краткое описание объекта в одну строку.

    Это свойство унаследовано от CIM_ManagedSystemElement .

    Имя Класса Создания

    Тип данных: строка

    Тип доступа: Только чтение

    Классификаторы: CIM_Key , MaxLen (256)

    Имя первого конкретного класса, который появится в цепочке наследования, используемой при создании экземпляра. При использовании с другими ключевыми свойствами класса это свойство позволяет однозначно идентифицировать все экземпляры этого класса и его подклассов.

    Это свойство унаследовано от CIM_IRQ .

    CSCreationClassName

    Тип данных: строка

    Тип доступа: Только чтение

    Квалификаторы: Распространено CIM_ComputerSystem . CreationClassName «), CIM_Key , MaxLen (256)

    Название класса создания компьютерной системы.

    Это свойство унаследовано от CIM_IRQ .

    CSName

    Тип данных: строка

    Тип доступа: Только чтение

    Квалификаторы: Распространено CIM_ComputerSystem . Имя «), CIM_Key , MaxLen (256)

    Название компьютерной системы обзора.

    Это свойство унаследовано от CIM_IRQ .

    Описание

    Тип данных: строка

    Тип доступа: Только чтение

    Квалификаторы: DisplayName («Описание»)

    Текстовое описание объекта.

    Это свойство унаследовано от CIM_ManagedSystemElement .

    Оборудование

    Тип данных: логический

    Тип доступа: Только чтение

    квалификации: MappingStrings («Win32API|Системные структуры|RESOURCE_DESCRIPTOR|InterfaceType»)

    Если TRUE , прерывание аппаратное или программное. Аппаратный IRQ — это физический провод от периферийного устройства к чипу программируемого контроллера прерываний (PIC), через который ЦП может быть уведомлен о критичных по времени событиях. Некоторые линии IRQ зарезервированы для стандартных устройств, таких как клавиатура, дисководы гибких дисков и системные часы. Программное прерывание позволяет приложениям привлечь внимание процессора.

    Дата установки

    Тип данных: дата/время

    Тип доступа: Только чтение

    Квалификаторы: MappingStrings («MIF. DMTF|ComponentID|001.5″), DisplayName («Дата установки»)

    Дата и время установки объекта. Этому свойству не требуется значение, указывающее, что объект установлен.

    Это свойство унаследовано от CIM_ManagedSystemElement .

    Номер IRQ

    Тип данных: uint32

    Тип доступа: Только чтение

    Квалификаторы: MappingStrings («MIF.DMTF|IRQ|001.1»), ключ

    Часть значения ключа объекта.

    Это свойство унаследовано от CIM_IRQ .

    Имя

    Тип данных: строка

    Тип доступа: Только чтение

    Квалификаторы: DisplayName («Имя»)

    Метка, под которой известен объект. При создании подкласса свойство может быть переопределено как ключевое свойство.

    Это свойство унаследовано от CIM_ManagedSystemElement .

    Общий

    Тип данных: логический

    Тип доступа: Только чтение

    Квалификаторы: MappingStrings («MIF.DMTF|IRQ|001.4»)

    Если TRUE , IRQ может использоваться совместно.

    Это свойство унаследовано от CIM_IRQ .

    Статус

    Тип данных: строка

    Тип доступа: Только чтение

    Квалификаторы: MaxLen (10), DisplayName («Статус»)

    Текущее состояние объекта. Могут быть определены различные рабочие и нерабочие состояния. Рабочие состояния включают в себя: «ОК», «Ухудшение состояния» и «Предварительный сбой» (элемент, такой как жесткий диск с поддержкой SMART, может функционировать нормально, но предсказывает сбой в ближайшем будущем). К нерабочим состояниям относятся: «Ошибка», «Запуск», «Остановка» и «Сервис». Последний, «Служба», может применяться во время зеркального восстановления диска, перезагрузки списка разрешений пользователя или другой административной работы. Не вся такая работа находится в сети, но управляемый элемент не находится ни в «ОК», ни в одном из других состояний.

    Это свойство унаследовано от CIM_ManagedSystemElement .

    Значения включают следующее:

    ОК («ОК»)

    Ошибка («Ошибка»)

    Деградированный («Деградированный»)

    Неизвестно («Неизвестно»)

    Предварительный отказ («Предварительный отказ»)

    Пуск («Пуск»)

    Остановка («Остановка»)

    Сервис («Сервис»)

    Напряженный («Напряженный»)

    Без восстановления («Невосстановление»)

    Нет контакта («Нет контакта»)

    Потеря связи («Потеря связи»)

    Уровень триггера

    Тип данных: uint16

    Тип доступа: Только чтение

    Квалификаторы: MappingStrings («MIF. DMTF|Информация о IRQ системного ресурса|001.3″)

    Уровень запуска IRQ, указывающий, вызвано ли прерывание аппаратным сигналом, который становится высоким (4) или низким (3).

    Это свойство унаследовано от CIM_IRQ .

    Другое (1)

    Неизвестно (2)

    Активный Низкий (3)

    Активный Высокий (4)

    Тип триггера

    Тип данных: uint16

    Тип доступа: Только чтение

    Квалификаторы: MappingStrings («MIF.DMTF|IRQ|001.3», «MIF.DMTF|Информация о системном ресурсе IRQ|001.2»)

    Тип триггера IRQ, указывающий, происходят ли прерывания по фронту (4) или по уровню (3).

    Это свойство унаследовано от CIM_IRQ .

    Другое (1)

    Неизвестно (2)

    Уровень (3)

    Край (4)

    Вектор

    Тип данных: uint32

    Тип доступа: Только чтение

    Квалификаторы: MappingStrings («Win32API|Системные структуры| CM_PARTIAL_RESOURCE_DESCRIPTOR |Прерывание|Уровень»)

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

    Win32_IRQResource класс является производным от CIM_IRQ .

    Требования

    Требование Значение
    Минимальный поддерживаемый клиент
    Windows Vista
    Минимальный поддерживаемый сервер
    Windows Server 2008
    Пространство имен
    Корень\CIMV2
    МФ
    CIMWin32. mof
    ДЛЛ
    CIMWin32.dll

    См. также

    CIM_IRQ

    Классы оборудования компьютерных систем

    RHEL7: как уменьшить джиттер с помощью ЦП и закрепления IRQ без использования тунца?

    Окружающая среда

    • Red Hat Enterprise Linux 7
    • системд
    • PTP или любой другой процесс, чувствительный к планированию

    Выпуск

    • Необходимо уменьшить джиттер PTP
    • Необходимо выделить ядра для приложения
    • Требуется способ привязки PTP к одному ядру в узле NUMA, где находится сетевая карта, для оптимальной эффективности и минимизации задержки

    Разрешение

    RHEL 7 предлагает несколько способов привязки процессов к определенным ядрам и узлам NUMA. В частности 9введена команда 2097 tuna , упрощающая большинство этих шагов; для получения подробной информации об использовании tuna для этой цели см. эту сопутствующую статью с похожим названием: RHEL7: Как уменьшить джиттер с помощью ЦП и закрепления IRQ с помощью tuna?

    RHEL 7 включает расширенную функциональность, встроенную прямо в ядро, что помогает избежать необходимости ручной настройки. Точная ручная настройка системы для уменьшения джиттера — это многоэтапный процесс. Возможно, вам не понадобятся все эти шаги для достижения вашей цели.

    Также обратите внимание, что эта процедура не относится к PTP; его можно использовать для привязки любой службы systemd к определенному набору ядер.

    Отключение автоматической балансировки IRQ

    Если вы планируете закрепить IRQ вручную, нам необходимо предотвратить irqbalance перенос IRQ сетевой карты на другие ядра. Один из способов сделать это — отключить службу irqbalance:

    .
     # systemctl остановить irqbalance.service
    # systemctl отключить irqbalance.service
     

    Отключение встроенной в ядро ​​балансировки NUMA

    Затем ядро ​​попытается автоматически сбалансировать нагрузку, основываясь на своем понимании аппаратной схемы NUMA. Поскольку мы хотим переопределить систему и указать ее напрямую, мы должны убедиться, что sysctl kernel.numa_balancing отключен, установив его в ноль:

     # эхо-ядро.numa_balancing=0 >> /etc/sysctl.conf
    # sysctl -p
     

    Изоляция ЦП от планировщика процессов

    Этот шаг включает в себя установку isolcpus на 9-м уровне ядра.2097 командная строка . При этом из планировщика процессов удаляются ядра, которые вы хотели бы выделить для своего приложения, чтобы другие пользовательские процессы не переносились на них. Дополнительные сведения см. в этом документе по решениям: https://access.redhat.com/solutions/480473

    .

    ПРИМЕЧАНИЕ. Потоки ядра нельзя отключить, и они всегда будут видны на всех ядрах. В выводе ps -eLf они отображаются в квадратных скобках, например [ksoftirqd/0]

    .

    Редактировать /etc/default/grub и добавьте нужный параметр в строку GRUB_CMDLINE_LINUX (ищите isolcpus ниже — это дополнение):

     GRUB_CMDLINE_LINUX="crashkernel=auto rd. lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb тихий isolcpus=1-3,5-31"
     

    Это позволит выделить только ЦП 0 и ЦП 4 для использования операционной системой, а остальные зарезервировать для ручной настройки.

    Затем заново создайте grub2.conf и перезагрузите систему:

     # grub2-mkconfig -o /etc/grub2.cfg
    Создание файла конфигурации grub...
    Найден образ Linux: /boot/vmlinuz-3.10.0-327.el7.x86_64
    Найден образ initrd: /boot/initramfs-3.10.0-327.el7.x86_64.img
    Найден образ Linux: /boot/vmlinuz-0-rescue-53560eac827a4637b4116a7689992634
    Найден образ initrd: /boot/initramfs-0-rescue-53560eac827a4637b4116a7689992634.img
    Выполнено
    # системная перезагрузка
     

    (Подробнее см. этот документ)

    Теперь процессоры изолированы и удалены из сферы действия планировщика.

    определение службы systemd

    простая привязка ЦП

    Чтобы просто привязать модуль systemd к определенному ядру или ядрам ЦП, см. эту статью о решениях: https://access. redhat.com/solutions/2142471

    Для более детального управления, пожалуйста, продолжайте читать, так как другие факторы могут влиять на производительность.

    детальное управление и обработка IRQ

    После того, как в системе были isolcpus=... и kernel.numa_balancing=0 изменений завершено, и система была перезагружена — чтобы гарантировать, что конфигурация не изменится — мы можем определить, какой узел NUMA «ближайший» к интересующему нас сетевому интерфейсу. Хотя нам не нужно прикреплять IRQ к тому же сокету , что и сопровождающие процессы пользовательской области, сохранение их в том же узле NUMA важно для производительности.

    Сначала давайте выясним, какой узел NUMA используется для сетевой карты (здесь устройство — em1 ):

     # numactl -a -N netdev:em1 grep разрешен /proc/self/status
    Cpus_allowed: 00000000,00000000,00005555
    Cpus_allowed_list: 0,2,4,6,8,10,12,14
    MEMS_ALLYED: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000000000н00ам 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000003
    Mems_allowed_list: 0-1
     

    Из приведенного выше видно, что ближе всего к процессорам с четными номерами 0-14. Мы должны выбрать один из перечисленных процессоров в качестве ядра, чтобы зарезервировать его для службы systemd, иначе мы ничего не получим. Давайте проверим и посмотрим, сможем ли мы привязаться к CPU 6:

     # numactl -a -N netdev:em1 -C 6 grep разрешено /proc/self/status
    Cpus_allowed: 00000000,00000000,00000040
    Cpus_allowed_list: 6
    MEMS_ALLYED: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000000000н00ам 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000003
    Mems_allowed_list: 0-1
     

    Похоже, что это удалось, как мы видим 6 в Cpus_allowed_list .

    Теперь мы можем вызвать numactl из определения службы systemd для выполнения этих конкретных привязок. Например, для привязки к узлу NUMA, совместно используемому с сетевой картой (хорошо для демона PTP):

    .
     [Сервис]
    ...другие строки...
    ExecStart=/bin/numactl -aN netdev:em1 -C 6 /path/to/ptpd
    ...другие строки...
     

    ПРИМЕЧАНИЕ. Необходим флаг -a . Использовать НЕ CPUAffinity с numactl или результат не определен.

    Теперь для проверки. В этом примере я использовал httpd , но то же самое применимо и к PTP.

     # перезагрузка демона systemctl
    # systemctl запустить test.service
    # статус systemctl test.service
    ● test.service — HTTP-сервер Apache, привязанный к узлу NUMA сетевой карты em1.
       Загружено: загружено (/etc/systemd/system/test.service; отключено; настройка поставщика: отключена)
       Активен: активен (работает) с пт 2016-01-2916:11:23 по восточному поясному времени; 4 с назад
         Документы: человек:httpd(8)
               мужчина: апачектл (8)
     Основной PID: 28203 (httpd)
       Статус: "Обрабатываются запросы. .."
       Группа CG: /system.slice/test.service
               ├─28203 /usr/sbin/httpd -DFOREGROUND
               ├─28204 /usr/sbin/httpd -DFOREGROUND
               ├─28205 /usr/sbin/httpd -DFOREGROUND
               ├─28206 /usr/sbin/httpd -DFOREGROUND
               ├─28207 /usr/sbin/httpd -DFOREGROUND
               └─28208 /usr/sbin/httpd -DFOREGROUND
    29 января 16:11:23 amnesiac systemd[1]: запуск HTTP-сервера Apache...
    29 января16:11:23 amnesiac systemd[1]: Запущен HTTP-сервер Apache.
    # grep allow_list /proc/2820?/status
    /proc/28203/status:Cpus_allowed_list: 6
    /proc/28203/status:Mems_allowed_list: 0-1
    /proc/28204/status:Cpus_allowed_list: 6
    /proc/28204/status:Mems_allowed_list: 0-1
    /proc/28205/status:Cpus_allowed_list: 6
    /proc/28205/status:Mems_allowed_list: 0-1
    /proc/28206/status:Cpus_allowed_list: 6
    /proc/28206/status:Mems_allowed_list: 0-1
    /proc/28207/status:Cpus_allowed_list: 6
    /proc/28207/status:Mems_allowed_list: 0-1
    /proc/28208/status:Cpus_allowed_list: 6
    /proc/28208/status:Mems_allowed_list: 0-1
     

    Выше мы видим, что служба, запущенная systemd, закреплена на ЦП 6.

    Закрепление IRQ

    Мы можем узнать текущую схему IRQ-CPU следующим образом, но обратите внимание, что IRQ могут быть перенумерованы после перезагрузки :

     # grep -e CPU -e em1 /proc/interrupts
                ЦП0 ЦП1 ЦП2 ЦП3 ЦП4 ЦП5 ЦП6 ЦП7 ЦП8 ЦП9 ЦП10 ЦП11 ЦП12 ЦП13 ЦП14 ЦП15
      66: 67 0 0 0 1899 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-край em1-tx-0
      67: 60 0 0 0 12757 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-край em1-rx-1
      68: 25 0 0 0 387 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-край em1-rx-2
      69: 5 0 0 0 607 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-край em1-rx-3
      70: 12 0 0 0 3532 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-край em1-rx-4
     

    Здесь мы видели прерывания для em1 на двух процессорах, которые мы разрешили операционной системе (ЦП 0 и ЦП 4). Обратите внимание, что есть несколько прерываний; каждый из них представляет отдельную очередь на этом конкретном сетевом адаптере. (Количество очередей зависит от вашего оборудования.) Для этой загрузки нам нужны IRQ 9с 2097 66 по 70 .

    Напомним, что процессоры, которые мы можем использовать для IRQ, должны быть локальными по отношению к узлу NUMA, а пользовательский процесс — это ядра с четными номерами 0-14:

     # numactl -a -N netdev:em1 grep разрешен /proc/self/status
    [...]
    Cpus_allowed_list: 0,2,4,6,8,10,12,14
     

    Ранее мы зарезервировали ЦП 6 для нашей пользовательской службы systemd (демона ptp). Это оставляет 0,2,4 и 8,10,12,14 доступными с нашего локального узла NUMA для обработки соответствующих IRQ. Из них ЦП 0 и ЦП 4 также выполняют пользовательские процессы для операционной системы, поэтому мы хотим выделить еще два для закрепления IRQ. Это необходимо, потому что планировщик должен «видеть» ядра, чтобы иметь возможность их закрепить, и не может, если они изолированы.

    Измените isolcpus , чтобы освободить два дополнительных ядра для использования ОС (ЦП 10 и ЦП 12, выбранные из приведенного выше списка в том же узле NUMA). Они не «тратятся впустую», так как процессы операционной системы будут зависеть от обработки IRQ (IRQ будут использовать ядра, когда им это необходимо, и пользовательское пространство ОС будет планироваться вокруг них):

     # sed -i 's/isolcpus=1-3,5-31$/isolcpus=1-3,5-9,11,13-31/' /etc/default/grub
    # grub2-mkconfig -o /etc/grub2. cfg
    [...перезагрузка...]
    # кошка /proc/cmdline
    BOOT_IMAGE=/vmlinuz-3.10.0-327.el7.x86_64 root=/dev/mapper/root ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb тихий isolcpus=1- 3,5-9,11,13-31
     

    Теперь у ОС есть 4 ядра для работы (0, 4, 10, 12).

    Мы прикрепим очереди приема и передачи em1 к ядрам 10 и 12. Для этого нам потребуется шестнадцатеричное значение этих ядер ЦП для файла smp_affinity вектора прерывания. Из приведенной ниже таблицы мы видим, что ЦП 10 — это десятичных чисел 1024 , а ЦП 12 — десятичных чисел 4096 :

    .
    Идентификатор ЦП с отсчетом от нуля 0 1 2 3 4 5 6 7 8 9 10 11 12
    Десятичное значение 1 2 4 8 16 32 64 128 256 512 1024 2048 4096
    Шестнадцатеричное значение 1 2 4 8 10 20 40 80 100 200 400 800 1000

    Нам нужны шестнадцатеричные значения для их закрепления:

     $ printf %0. 2x'\n' 1024
    400
    $ printf %0.2x'\n' 4096
    1000
     

    Теперь мы настраиваем векторы прерываний сетевой карты, чтобы они имели правильное соответствие SMP:

     # эхо 400 > /proc/irq/66/smp_affinity
    # эхо 400 > /proc/irq/67/smp_affinity
    # эхо 400 > /proc/irq/68/smp_affinity
    # эхо 1000 > /proc/irq/69/smp_affinity
    # эхо 1000 > /proc/irq/70/smp_affinity
     

    Это можно проверить, прочитав файл smp_affinity :

     # последовательность 66 70 | xargs -I% grep -H . /proc/irq/%/smp_affinity
    /proc/irq/66/smp_affinity:00000000,00000000,00000400
    /proc/irq/67/smp_affinity:00000000,00000000,00000400
    /proc/irq/68/smp_affinity:00000000,00000000,00000400
    /прок/ирк/69/smp_affinity:00000000,00000000,00001000
    /proc/irq/70/smp_affinity:00000000,00000000,00001000
     

    ПРИМЕЧАНИЕ. Это временная настройка! Чтобы сделать это постоянным, вы должны добавить эти команды в /etc/rc.d/rc.local (обратите внимание, что /etc/rc.local является символической ссылкой на /etc/rc. d/rc .local , и цель должна быть исполняемой, а не самой символической ссылкой):

     # ls -l /etc/rc.local
    lwxrwxrwx. 1 root root 13 Feb 10 15:50 /etc/rc.local -> rc.d/rc.local
    # chmod +x /etc/rc.d/rc.local
     

    Нечто подобное следующему сценарию может быть вызвано из /etc/rc.local для привязки em1 к ЦП 10 и ЦП 12.

     #!/бин/баш
    #
    # https://access.redhat.com/solutions/2144921
    # https://access.redhat.com/solutions/435583
    # https://access.redhat.com/articles/216733
    #
    # Только для иллюстрации. Откройте для себя (потенциально несколько) IRQ
    # назначенные указанному сетевому интерфейсу, и назначаем их на заданный
    # ПРОЦЕССОР. Сначала это делается путем определения десятичного значения, скажем, CPU 10.
    # и ЦП 12:
    #
    # Идентификатор процессора с отсчетом от нуля: 0 1 2 3 4 5 6 7 8 910 11 12
    # Десятичное значение: 1 2 4 8 16 32 64 128 256 512 1024 2048 4096
    #
    # $ printf %0.2x'\n' 1024
    № 400
    # $ printf %0.2x'\n' 4096
    # 1000
    #
    # "./этот скрипт em1 400 1000"
    #
    ЕСЛИ=$1
    МАСКА1=$2
    МАСКА2=$3
    если [ -z $IFACE ] || [ -z $MASK1 ] || [-z $MASK2]
    тогда
        echo "$0 маска интерфейса1 маска2"
        эхо "$0 em1 400 1000"
        выход 1
    фи
    # Разделить многоочередные IRQ между двумя процессорами. 
    с=1
    awk -vIFACE=$IFACE '$NF ~ IFACE {print substr($1, 0, length($1)-1), $NF}' /proc/interrupts | при чтении ИМЯ IRQ
    делать
        ДО=$( /proc/irq/$IRQ/smp_affinity
        ПОСЛЕ=$(

    Со скриптом, написанным, например, для /root/setirqaffinity.sh , его можно вызвать из /etc/rc.local :

     # echo "/root/setirqaffinity.sh em1 400 1000 2>&1 >> /var/log/rclocal.log" >> /etc/rc.local
    # системная перезагрузка
    [...перезагрузка...]
    # кошка /var/log/rclocal.log
    IRQ: 76 имя: em1-tx-0 до: 00000000,00000000,00005555 маска: 400 после: 00000000,00000000,00000400
    IRQ: 77 имя: em1-rx-1 до: 00000000,00000000,00005555 маска: 400 после: 00000000,00000000,00000400
    IRQ: 78 имя: em1-rx-2 до: 00000000,00000000,00005555 маска: 1000 после: 00000000,00000000,00001000
    Прерывание: 79имя: em1-rx-3 до: 00000000,00000000,00005555 маска: 1000 после: 00000000,00000000,00001000
    IRQ: 80 имя: em1-rx-4 до: 00000000,00000000,00005555 маска: 1000 после: 00000000,00000000,00001000
     

    Как видите, система правильно установила соответствие ЦП для этих IRQ. Мы можем убедиться в этом, просмотрев /proc/interrupts :

    .
     # grep -e CPU -e em1 /proc/interrupts
                ЦП0 ЦП1 ЦП2 ЦП3 ЦП4 ЦП5 ЦП6 ЦП7 ЦП8 ЦП9ЦП10 ЦП11 ЦП12 ЦП13 ЦП14 ЦП15
      76: 18 0 0 0 0 0 0 0 0 0 245 0 0 0 0 0 IR-PCI-MSI-край em1-tx-0
      77: 27 0 0 0 0 0 0 0 0 0 718 0 0 0 0 0 IR-PCI-MSI-край em1-rx-1
      78: 4 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 IR-PCI-MSI-край em1-rx-2
      79: 3 0 0 0 0 0 0 0 0 0 0 0 35 0 0 0 IR-PCI-MSI-край em1-rx-3
      80: 2 0 0 0 0 0 0 0 0 0 0 0 71 0 0 0 IR-PCI-MSI-край em1-rx-4
     

    На ЦП 0 видно несколько прерываний, так как сетевой интерфейс работал до выполнения /etc/rc.local . Чтобы увидеть, где активно обрабатываются IRQ, вы можете использовать watch :

    .
     # смотреть grep -e CPU -e em1 /proc/interrupts
     

    Обратите внимание, что sfptpd , в частности, поставляется со своей собственной программой закрепления IRQ под названием sfcirqaffinity , которую необходимо отключить.

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *