Большинству компонентов, непосредственно подключенных к вашей материнской плате, включая слоты PCI, контроллеры IDE, последовательные порты, порт клавиатуры и даже CMOS вашей материнской платы, назначаются индивидуальные запросы прерываний (IRQ).
Строка запроса прерывания, или IRQ, — это пронумерованная аппаратная линия, по которой устройство может прерывать нормальный поток данных в процессор, позволяя устройству функционировать.
Windows Vista и 7 позволяют вам расставить приоритеты для одного или нескольких IRQ (которые переводятся на одно или несколько аппаратных устройств), что потенциально повышает производительность этих устройств. Ниже приведены основные советы по редактированию реестра, которые вы можете использовать для установки приоритетов IRQ.
- Начните с открытия утилиты Информация о системе (msinfo32.exe) и перейдите к Сводка системы Аппаратные ресурсы IRQ, чтобы просмотреть IRQ, используемые в вашей системе, и устройства, использующие их.
Обратите внимание на IRQ13 (процессор цифровых данных), который мы будем использовать в этом примере:
2. Затем откройте редактор реестра и перейдите к следующему ключу. Если PriorityControl не существует, создайте ключ в разделе «Управление».
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control PriorityControl
3. Создайте новое значение DWORD в этом ключе и назовите его IRQ # Priority, где # — IRQ устройства, которому вы хотите присвоить приоритет (например, IRQ13Priority для IRQ 13, который является вашим числовым процессором).
4. Дважды щелкните новое значение и введите число для его приоритета. Введите 1 для высшего приоритета, 2 для второго и так далее. Не вводите один и тот же номер приоритета для двух записей и сделайте его простым, экспериментируя сначала только с одним или двумя значениями.
5. Закройте редактор реестра и перезагрузите компьютер, когда закончите.
Некоторые пользователи получили хорошие результаты, отдавая приоритет IRQ 8 (для системы CMOS) и IRQ, соответствующему видеокарте, но обратная связь не подтверждена. Как вы думаете, это плацебо? Оставьте свои комментарии!
An IRQ, short for Interrupt Request, is used in a computer to send exactly that—a request to interrupt the CPU by some other piece of hardware.
Purpose of IRQ
An Interrupt Request is necessary for things like keyboard presses, mouse movements, printer actions, and more. When the request is made by a device to momentarily stop the processor, the computer is then able to give the device some time to run its own operation.
For example, each time you press a key on the keyboard, an interrupt handler tells the processor that it needs to stop what it’s currently doing so that it can handle the keystrokes.
Each device communicates the request over a unique data line called a channel. Most of the time you see IRQ referenced, it’s alongside this channel number, also called an IRQ number. For example, IRQ 4 might be used for one device and IRQ 7 for another.
IRQ is pronounced as the letters I-R-Q, not as erk.
IRQ Errors
Errors related to Interrupt Request are usually only seen when installing new hardware or changing the settings in existing hardware. Here are some IRQ errors you might see:
IRQL_NOT_DISPATCH_LEVELIRQL_NOT_GREATER_OR_EQUALSTOP: 0x00000008STOP: 0x00000009
While it’s possible for the same IRQ channel to be used for more than one device (so long as both aren’t actually being used at the same time), it’s normally not the case. An IRQ conflict most likely occurs when two pieces of hardware are attempting to use the same channel for an interrupt request.
Since the Programmable Interrupt Controller (PIC) doesn’t support this, the computer might freeze up or the devices will stop working as expected (or stop working entirely).
Back in the early Windows days, IRQ errors were common, and it took a lot of troubleshooting to fix them. This is because it was more common to set IRQ channels manually, like with DIP switches, which made it more likely that more than one device was using the same IRQ line.
However, IRQs are handled much better in newer versions of Windows that use plug and play, so you’ll rarely see an IRQ conflict or other IRQ issue.
Viewing and Editing IRQ Settings
The easiest way to view IRQ information in Windows is with Device Manager. Change the View menu option to Resources by type to see the Interrupt request (IRQ) section.
You can also use System Information. Execute the msinfo32.exe command from the Run dialog box (WIN+R), and then go to Hardware Resources > IRQs.
System Information IRQ List.
Linux users can run the cat /proc/interrupts command to view IRQ mappings.
You might need to change the IRQ line for a specific device if it’s using the same IRQ as another, though it’s usually unnecessary since system resources are automatically allocated for newer devices. It’s only older Industry Standard Architecture (ISA) devices that might need manual IRQ adjustments.
How to Change IRQ Settings
You can change IRQ settings in the BIOS or within Windows via Device Manager. Here’s how to change IRQ settings with Device Manager:
Remember that making incorrect changes to these settings can cause problems you didn’t have before. Make sure you know what you’re doing and have recorded any existing settings and values so that you know what to revert to should something go wrong.
-
Open Device Manager and double-click or double-tap a device to open its Properties window. You’ll need to open that device’s category first before you’ll be able to see it, which you can do by double-clicking/tapping.
-
In the Resources tab, deselect Use automatic settings.
If you can’t find this tab or the option is greyed out or not enabled, it means that either you cannot specify a resource for that device or that the device has no other settings that can be applied to it.
-
Use the Settings based on drop down menu to select the hardware configuration that should be changed.
-
Select IRQ from the Resource settings area of the properties.
-
Use the Change Setting button to edit the IRQ value.
Common IRQ Channels
Here are what some of the more common IRQ channels are used for:
| IRQ Line | Description |
| IRQ 0 | System timer |
| IRQ 1 | Keyboard controller |
| IRQ 2 | Receives signals from IRQs 8-15 |
| IRQ 3 | Serial port controller for port 2 |
| IRQ 4 | Serial port controller for port 1 |
| IRQ 5 | Parallel port 2 and 3 (or sound card) |
| IRQ 6 | Floppy disk controller |
| IRQ 7 | Parallel port 1 (often printers) |
| IRQ 8 | CMOS/real-time clock |
| IRQ 9 | ACPI interrupt |
| IRQ 10 | Peripherals |
| IRQ 11 | Peripherals |
| IRQ 12 | PS/2 mouse connection |
| IRQ 13 | Numeric data processor |
| IRQ 14 | ATA channel (primary) |
| IRQ 15 | ATA channel (secondary) |
Since IRQ 2 has a designated purpose, any device configured to use it will instead use IRQ 9.
What Are Non-Maskable Interrupts?
There are also non-maskable interrupts (NMIs), which are interrupt requests that can’t be blocked. A non-maskable interrupt occurs when dealing with system resets or hardware errors. The interrupt request is executed immediately.
Thanks for letting us know!
Get the Latest Tech News Delivered Every Day
Subscribe
An IRQ, short for Interrupt Request, is used in a computer to send exactly that—a request to interrupt the CPU by some other piece of hardware.
Purpose of IRQ
An Interrupt Request is necessary for things like keyboard presses, mouse movements, printer actions, and more. When the request is made by a device to momentarily stop the processor, the computer is then able to give the device some time to run its own operation.
For example, each time you press a key on the keyboard, an interrupt handler tells the processor that it needs to stop what it’s currently doing so that it can handle the keystrokes.
Each device communicates the request over a unique data line called a channel. Most of the time you see IRQ referenced, it’s alongside this channel number, also called an IRQ number. For example, IRQ 4 might be used for one device and IRQ 7 for another.
IRQ is pronounced as the letters I-R-Q, not as erk.
IRQ Errors
Errors related to Interrupt Request are usually only seen when installing new hardware or changing the settings in existing hardware. Here are some IRQ errors you might see:
IRQL_NOT_DISPATCH_LEVELIRQL_NOT_GREATER_OR_EQUALSTOP: 0x00000008STOP: 0x00000009
While it’s possible for the same IRQ channel to be used for more than one device (so long as both aren’t actually being used at the same time), it’s normally not the case. An IRQ conflict most likely occurs when two pieces of hardware are attempting to use the same channel for an interrupt request.
Since the Programmable Interrupt Controller (PIC) doesn’t support this, the computer might freeze up or the devices will stop working as expected (or stop working entirely).
Back in the early Windows days, IRQ errors were common, and it took a lot of troubleshooting to fix them. This is because it was more common to set IRQ channels manually, like with DIP switches, which made it more likely that more than one device was using the same IRQ line.
However, IRQs are handled much better in newer versions of Windows that use plug and play, so you’ll rarely see an IRQ conflict or other IRQ issue.
Viewing and Editing IRQ Settings
The easiest way to view IRQ information in Windows is with Device Manager. Change the View menu option to Resources by type to see the Interrupt request (IRQ) section.
You can also use System Information. Execute the msinfo32.exe command from the Run dialog box (WIN+R), and then go to Hardware Resources > IRQs.
System Information IRQ List.
Linux users can run the cat /proc/interrupts command to view IRQ mappings.
You might need to change the IRQ line for a specific device if it’s using the same IRQ as another, though it’s usually unnecessary since system resources are automatically allocated for newer devices. It’s only older Industry Standard Architecture (ISA) devices that might need manual IRQ adjustments.
How to Change IRQ Settings
You can change IRQ settings in the BIOS or within Windows via Device Manager. Here’s how to change IRQ settings with Device Manager:
Remember that making incorrect changes to these settings can cause problems you didn’t have before. Make sure you know what you’re doing and have recorded any existing settings and values so that you know what to revert to should something go wrong.
-
Open Device Manager and double-click or double-tap a device to open its Properties window. You’ll need to open that device’s category first before you’ll be able to see it, which you can do by double-clicking/tapping.
-
In the Resources tab, deselect Use automatic settings.
If you can’t find this tab or the option is greyed out or not enabled, it means that either you cannot specify a resource for that device or that the device has no other settings that can be applied to it.
-
Use the Settings based on drop down menu to select the hardware configuration that should be changed.
-
Select IRQ from the Resource settings area of the properties.
-
Use the Change Setting button to edit the IRQ value.
Common IRQ Channels
Here are what some of the more common IRQ channels are used for:
| IRQ Line | Description |
| IRQ 0 | System timer |
| IRQ 1 | Keyboard controller |
| IRQ 2 | Receives signals from IRQs 8-15 |
| IRQ 3 | Serial port controller for port 2 |
| IRQ 4 | Serial port controller for port 1 |
| IRQ 5 | Parallel port 2 and 3 (or sound card) |
| IRQ 6 | Floppy disk controller |
| IRQ 7 | Parallel port 1 (often printers) |
| IRQ 8 | CMOS/real-time clock |
| IRQ 9 | ACPI interrupt |
| IRQ 10 | Peripherals |
| IRQ 11 | Peripherals |
| IRQ 12 | PS/2 mouse connection |
| IRQ 13 | Numeric data processor |
| IRQ 14 | ATA channel (primary) |
| IRQ 15 | ATA channel (secondary) |
Since IRQ 2 has a designated purpose, any device configured to use it will instead use IRQ 9.
What Are Non-Maskable Interrupts?
There are also non-maskable interrupts (NMIs), which are interrupt requests that can’t be blocked. A non-maskable interrupt occurs when dealing with system resets or hardware errors. The interrupt request is executed immediately.
Thanks for letting us know!
Get the Latest Tech News Delivered Every Day
Subscribe
18 Sep 2019 5:01am at June 25, 2021 in Articles •
Show devices by their IRQ
To show devices by IRQ in Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11, Windows Server 2008, Windows Server 2012 and Windows Server 2016, Windows Server 2019 do the following:
- Launch Device Manger (in Windows Run or Search type devmgmt.msc or right click on Computer->select Manage->select Device Manager)
- In the menu select View -> Resources by connection
- Expand Interrupt by request (IRQ) item category and scroll down to items starting with (PCI)
About IRQs and IRQ sharing
Devices that share the same IRQ with other devices are recognized by having the same (PCI) value. Devices that have positive (PCI) values are working in Line-based interrupts mode. Those that have negative (PCI) values are working in MSI (Message signaled interrupts) mode.
IRQs are automatically allocated by the motherboard BIOS. Ideally, latency sensitive or I/O devices like sound cards, network cards, storage (SATA, NVME, SCSI) drive controllers should have their own IRQ. Having two or tree such devices on the same IRQ could impact the performance or functionality of those devices.
Avoid IRQ sharing by using different PCI or PCIe slot
You can avoid IRQ sharing between devices and fix a IRQ conflict if you change the PCI or PCIe slot for the devices you want to get assigned with a different IRQ.
Avoid IRQ sharing by changing the interrupt mode to MSI(Message signaled interrupts)
Another way to avoid IRQ sharing between devices is to change the interrupt mode to MSI for some of those devices with MSI Utility.
Some notes on changing the interrupt request to MSI:
- Be advised that not all devices will work in MSI mode and some, if changed, may prevent Windows from booting. Some of these devices are listed in the table below.
- Before using the MSI Utility, update the drivers as some newer drivers might switch to MSI by default. Try searching for them on the original chip manufacturer and not on the motherboard manufacturers page.
- You can disable those devices that are not used (for example LAN, onboard audio card, Bluetooth etc.) via BIOS or Device Manager (in Windows Run or Search type devmgmt.msc or right click on Computer->select Manage->select Device Manager)
- For devices you don’t know they work after changing interrupt mode to MSI, change one device at a time after which restart the system so that if your Windows does not boot anymore you know which device was the problem.
- If Windows does not boot anymore:
- Windows 7: When the system starts, tap F8 until the Windows boot menu appears and select the «Last Known Good Configuration» option.
- Windows 8/10/11: When the system starts, tap F8 until the Windows boot menu appears, select «safe mode», launch MSI Utility and revert the latest change you made. If «safe mode» does not work, in the boot menu press F10-> F1-> Troubleshoot-> Advanced Options-> System Restore-> pick the most recent restore point.
Device and driver MSI(Message signaled interrupts) compatibility status
| Device/driver | Can be changed to MSI | Notes |
ASUS Xonar PCI/PCI-e cards [show more][hide]
|
No | Switching to MSI mode will prevent the system from booting. |
| Creative X-FI | No | Reports say there is no audio when switched to MSI. |
| Marvell Yukon 88E805* PCI-E Gigabit Ethernet Controller | No | Will work but the device will not be stable when it is intensively in use and then it will lose the connection |
| Realtek PCIe GBE Family Controller | Yes | |
| AMD SATA storage controller | No | Only if it is switched by the drivers themselves |
| Intel AHCI and RAID storage controller | No | Older drivers probably won’t work. Newer drivers of Intel Rapid Storage v11.7 and above enable it by default |
| Standard AHCI 1.0 Serial ATA Controller | No | |
| NVIDIA GeForce & Quadro display adapters | Yes | With newer drivers might be switched by default. On older drivers you can manually switch it |
| Intel(R) ***** Familiy PCI Express Root | Yes | |
| Intel(R) ***** Express Chipset PCI Express Root Port * | Yes | |
| Intel(R) Management Engine Interface | Yes | |
| Intel(R) USB 3.0 eXtensible Host Controller | Yes | |
| Intel(R) ***** SMBus Controller | No | |
| Intel(R) ***** Family USB Universal Host Controller | No | |
| Intel(R) ***** Family USB2 Enhanced Host Controller | No | |
| PCI standard PCI-to-PCI bridge | Yes |
* = any.
List will be periodically updated. Some of these could work with newer drivers.
Information in this page applies to the following OS:
- Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11, Windows Server 2008, Windows Server 2012, Windows Server 2016, Windows Server 2019
- Remove From My Forums
-
Вопрос
-
У меня на одном IRQ оказались FireWire(PCI), куда подключена звуковая карта и PCIe, где инсталирована DSP карта. когда я запускаю прогамму где задействованно это оборудование, то всё тормозит и виснет, можнот ли как-то поменять прерывание? Такой проблемы в XP не было.
Ответы
-
Несколько устройств на одном прерывании это совершенно нормально и скорее всего было и в ХП. Проблема скорее всего не в самом факте общего прерывания а в кривых драйверах. Возможно есть апдейт который разрешит проблему.
Если нет то надо зайти в BIOS (это он выделяет ресурсы) и назначить персональное прерывание каждому адаптеру.
-
Помечено в качестве ответа
30 сентября 2009 г. 9:56
-
Помечено в качестве ответа
🚥 Оптимизация задержек
- Отключение таймера HPET
- Включение MSI mode
- Приоритизация прерываний
- Приоритизация драйверов
- Распараллеливание драйверов по ядрам
Отключение таймера HPET
Основная проблема в Windows с которой нам нужно бороться – это использование таймера HPET [?], что уже создаёт лишнюю абстракцию, т.к. это является заменой стандартного таймера RTC [?] или того же HPET (реализаций много, это не так важно), который уже встроен во все современные материнские платы и является аппаратным. В этом и кроется проблема – Windows всё равно тянет одеяло на себя и использует свой программный таймер, так или иначе.
Изначально идея нового таймера здравая и хорошая – добиться более высокой точности для управления прерываниями [?] для мультимедийных программ, хотя у него и намного больше применений, в том числе он отвечает за счёт времени и многое другое. Но мы бы тут не собрались, если бы он работал так как задумывалось. Проблем таймер создаёт достаточно [Проблемы с HPET]. Если вкратце, то значение выдаваемое таймером должно быть строго фиксированным, но в виду своей странной реализации оно имеет плавающее значение и периодические меняется, из-за чего прерывания происходят в разное время, что и вызывает запоздания, а они в свою очередь микрофризы и микролаги, особенно это заметно при использовании игр или высоконагруженных приложений (рендер, обработка фотографий и т.п.).
Некоторые мультимедийные программы, а так же игры могут сами фиксировать данный параметр для увеличения плавности [?], поэтому мы его сами зафиксируем на минимально возможном значении в 0.5ms, для всей системы в том числе.
‼️ Ни в коем случае не отключайте данный таймер в BIOS – там он должен быть включён для корректной работы системы в целом. В новых версиях BIOS подобная настройка включена по-умолчанию и зачастую её изменение не возможно. Подробную информацию как изменить параметры в BIOS можно найти в руководстве к материнской плате или в интернете.
Для того чтобы отключить HPET в Windows необходимо использовать встроенную утилиту bcdedit. Но сперва нам надо убедиться, что таймер в Windows активен:
Если у вас нет значений useplatformtick и disabledynamictick или они установлены как No, то первым шагом для нас будет их отключение:
bcdedit /set disabledynamictick yes bcdedit /set useplatformtick yes
Сброс значений по-умолчанию
bcdedit /set disabledynamictick no > nul bcdedit /set useplatformtick no > nul
Пример правильного отключения таймера HPET в Windows:
Теперь, отключив таймер в Windows, нам надо зафиксировать его в значении 0.5ms – для этого необходимо использовать утилиту Intelligent Standby List Cleaner [скачать]. Здесь можно увидеть, что значение нашего таймера Current timer resolution постоянно изменяется, что не есть хорошо и именно это нам надо исправлять.
Пример не настроенного таймера в Intelligent Standby List Cleaner:
Для правильной настройки необходимо установить следующие параметры:
Start ISCL minimized and auto-Start monitoringвключеноLaunch ISCL on user logon (TaskSheduler)включеноEnable custom timer resolutionвключеноWanted timer resolutionустановлено в0.50
Так же здесь можно настроить очищение системного кэша памяти [?]. Для этого необходимо изменить параметр Free memory is lower than, который отвечает за минимальное значение свободной памяти – оптимальным значением является размер вашей памяти разделённый на 2, после достижения которого кэш памяти будет очищен. Параметр The list size is at least отвечает за минимальный размер кэшированный памяти и его рекомендуется оставлять дефолтным — равным 1024 Mb.
Если лень считать
(4 Gb) 4096 /2 = 2048
(8 Gb) 8192 /2 = 4096
(16 Gb) 16384 /2 = 8192
(24 Gb) 24576 /2 = 12288
(32 Gb) 32768 /2 = 16384
⚠️ Во избежание дополнительных микрофризов при очищении кэша памяти, если у вас её мало или же её очень активно используют программы, данную настройку лучше протестировать с разными параметрами и найти оптимальную для вашего сценария использования.
После настройки надо нажать Start и проверить зафиксирован ли таймер – значение Current timer resolution должно быть строго равно 0.5ms и не изменяться. Значение может обновится с задержкой!
Пример правильной настройки Intelligent Standby List Cleaner:
Включение MSI mode
💡 Для дальнейшей настройки необходимо ознакомиться c
Определение IRQ,
Определение USB Host Controller.
А зачем нам ещё включать какой-то MSI mode [?]? Всё очень просто, если раньше на одно устройство выделялось всего 4 прерывания [Страдания по IRQ], то с помощью MSI стало возможным увеличить их до 32, что значительно ускоряет общение между устройствами.
Почти все последние драйверы, от нормальных производителей, используют изначально режим прерывания MSI, тем более это обязательное условие для PCI Express железок. Но для ускорения всей системы так же не лишним будет включение MSI и для USB Host Controller.
Для включения MSI mode мы будем использовать утилиту MSI Util v2 [скачать]. Ищем здесь нашу видеокарту и USB Host Controller (если по названию не получается найти, то в строке с именем так же указан Device ID). Ставим галочку в столбце MSI, так же меняем Interrupt priority на Hight, после чего жмём кнопку Apply.
Пример настройки MSI с помощью MSI Util v2:
‼️ Нельзя устанавливать использование
MSI modeдля всех ваших устройств, иначе устройства могут работать не корректно.
⚠️ Данная настройка сбрасывается на дефолтное значение после обновления драйвера nVidia!
Приоритизация прерываний
💡 Для дальнейшей настройки необходимо ознакомиться c
Работа с реестром,
Определение IRQ.
Продолжая тему прерываний, далее нам необходимо настроить приоритет прерываний для конкретно заданных устройств – этим в Windows занимается IRQL [?]. Проблема приоритизации всегда имеет место быть, т.к. каждое устройство считает себя важней остальных и это порождает некоторые проблемы [Проблемы IRQL].
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPriorityControl] ; видеокарта "IRQ***Priority"=dword:00000001 ; none ; USB Host Controller "IRQ***Priority"=dword:00000002 ; none
Значения по-умолчанию:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPriorityControl] "IRQ***Priority"=- "IRQ***Priority"=-
В качестве имени параметра мы используем IRQ***Priority, где *** надо заменить на IRQ (несколько цифр) нашей видеокарты и USB Host Controller.
✨ Для видеокарты рекомендуется ставить значение равным
1, дляUSB Host Controller– значение2[Приоритеты IRQ].
Приоритизация драйверов
💡 Для дальнейшей настройки необходимо ознакомиться c
Работа с реестром.
Следующим шагом после настройки приоритетов IRQL [?] необходимо указать приоритет для каких сервисов (в нашем случае драйверов) необходимо выполнять прерывания в первую очередь. Когда происходит прерывание, Windows, используя IRQL для определения приоритета прерывания, проверяет может ли прерывание обслуживаться в данный момент или нет, если условие выполняется, то приоритет потока начинает его выполнение. Всё что ниже по приоритету – ставиться в очередь. Таким образом мы зафиксируем критически важные сервисы, прерывания от которых необходимо обрабатывать в первую очередь.
Windows Registry Editor Version 5.00 ; DirectX Graphics Kernel [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesDXGKrnlParameters] "ThreadPriority"=dword:0000000f ; драйвер видеокарты nVidia [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesnvlddmkmParameters] "ThreadPriority"=dword:0000001f ; USB3 HUB Driver [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesUSBHUB3Parameters] "ThreadPriority"=dword:0000000f ; USB xHCI Compliant Host Controller [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesUSBXHCIParameters] "ThreadPriority"=dword:0000000f
Значения по-умолчанию:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesDXGKrnlParameters] "ThreadPriority"=- [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesnvlddmkmParameters] "ThreadPriority"=- [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesUSBHUB3Parameters] "ThreadPriority"=- [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesUSBXHCIParameters] "ThreadPriority"=-
✨ В качестве параметра установите значения равным 15 (
f) (что соответствуетHight), если система работает стабильно, то можно повысить приоритет установив параметр равным 31 (1f) (что соответствуетRealtime) [Процессы и потоки в Windows] дляnvlddmkm.
Распараллеливание драйверов по ядрам
💡 Для дальнейшей настройки необходимо ознакомиться c
Определение IRQ,
Определение USB Host Controller.
Самое сложное осталось позади и теперь мы будет освобождать первое ядро, куда Windows зачем-то добавляет почти все драйверы. Этим мы с одной стороны разгрузим ядро, а с другой так же уменьшим задержки.
Для этого нам понадобиться утилита Interrupt Affinity Policy Tool [скачать].
✨ При использовании утилиты будут периодически появляться сообщения об ошибке – их можно спокойно игнорировать, т.к. программа давно не обновлялась и на работу программы они никак не влияют.
Пример списка устройств в утилите Interrupt Affinity Policy Tool:
В этом списке надо найти свою видеокарту и USB Host Controller (название может не соответствовать, поэтому искать лучше по полю Location Info), нажать Set Mask и выбрать ядро на которое будет назначен драйвер. Выбирать надо на любое ядро отличное от первого.
⚠️ На CPU, где включен
Hyper-Threading[?] /SMT[?], ядра и потоки в программе чередуются –CPU 0— Ядро 1,CPU 1— Поток 1,CPU 2— Ядро 2,CPU 3— Поток 2 и т.д., соответственно, чтобы выбрать третье ядро надо указатьCPU 4иCPU 5. На CPU безHyper-Threading/SMTядра, само собой, указаны без потоков.
После выбора ядра появится сообщение о том, что можно перезагрузить драйвер – нажимаем Yes. В зависимости от устройства может моргнуть экран или произойти переопределение устройств – это нормально, после этого утилита сообщит, что всё прошло успешно.
‼️ Нельзя переносить все драйверы на другие ядра, этим вы лишь можете добиться появления
BSOD[?]!
⚠️ Данная настройка сбрасывается на дефолтное значение после обновления драйвера nVidia!
Управление приоритетами IRQ
Управление запросами на аппаратное прерывание
Большинству компонентов, непосредственно присоединенных к системной плате, включая PCI-слоты, IDE-контроллеры, последовательные порты, порт клавиатуры даже CMOS системной платы, присвоены отдельные IRQ. Запрос на аппаратное прерывание, или IRQ, прерывает нормальный ход работы процессора, позволяя устройству функционировать. Windows 7 позволяет расположить по приоритету один или более IRQ (которые преобразовываются в одно или более устройств), потенциально улучшая производительность этих устройств.
- Начните с запуска утилиты информации о системе (msinfo32.exe) и откройте ветвь Сведения о системе ► Аппаратные ресурсы ► Прерывания (IRQ), чтобы просмотреть, какие IRQ и для каких устройств используются.
- Затем откройте редактор реестра (см. главу 3) и перейдите к ветви HKEY_LOCAL_ MACHINESYSTEMCurrentControlSetControlPriorityControl.
- Создайте новое значение DWORD в этом разделе и назовите параметр IRQ#Priority, где # — номер IRQ-устройства, для которого вы хотите задать приоритет (например, IRQ13Priority соответствует IRQ 13, то есть арифметическому сопроцессору).
- Дважды щелкните на новом значении и укажите номер приоритета. Введите 1 для высшего приоритета, 2 для второго и т. д. Удостоверьтесь, что не ввели одно и то же число для двух записей, и не пытайтесь сделать все сразу, лучше поэкспериментируйте с одним или двумя значениями.
- По окончании закройте редактор реестра и перезагрузите компьютер.
Содержание
- Исправить проблему с драйвером контроллера прерываний системы
- Способ 1. Обновите драйвер контроллера системных прерываний через диспетчер устройств
- Способ 2. Загрузите драйвер вашего чипсета с сайта производителя
- Способ 3. Обновите драйвер через Driver Easy автоматически (рекомендуется)
- Системные прерывания грузят процессор в Windows 10
- 1. Обновление драйверов
- 2. Отключить звуковые эффекты
- 3. Отключение Magic Packet
- 4. Отключение USB-контроллеров
- 5. Антивирусный сканер
- 6. Отключение устройств
- 7. Выявить задержки DPC
- Вывод:
- Системный контроллер прерываний драйвер windows 10
- Страдания по IRQ
- Немного истории
- Настоящее …
- Как понять, есть ли конфликты в вашем компьютере, и что делать
- Шаг первый: изучаем BIOS
- Шаг второй – Карта прерываний
- Шаг третий – Изменения в операционной системе
- Шаг четвертый – Изменения в BIOS
- Выводы
Исправить проблему с драйвером контроллера прерываний системы
Многие пользователи сообщали, когда они получают доступ к новой операционной системе, они нашли Контроллер системных прерываний без драйвера в диспетчере устройств. Это не сложная проблема для решения. В этом посте мы покажем вам три простых способа установить драйвер обратно. Не торопитесь, продолжайте с методами и выберите тот, который вы предпочитаете.
Способ 1. Обновите драйвер контроллера системных прерываний через диспетчер устройств
Способ 2. Загрузите драйвер вашего чипсета с сайта производителя
Способ 3. Обновите драйвер через Driver Easy автоматически (рекомендуется)
Способ 1. Обновите драйвер контроллера системных прерываний через диспетчер устройств
1)
Нажмите Windows ключ + р ключ вместе, чтобы открыть окно Run.
Затем введите devmgmt.msc в поле и нажмите Enter, чтобы открыть диспетчер устройств.
2)
Найдите и щелкните правой кнопкой мыши на Контроллер системных прерываний на открытое окно.
Тогда выбирай Обновить драйвер.
3)
выберите Автоматический поиск обновленного программного обеспечения драйвера.
4)
Затем Windows автоматически определит правильный драйвер для устройства.
Способ 2. Загрузите драйвер вашего чипсета с сайта производителя
Контроллер системных прерываний является частью чипсета, и его драйвер также включен в драйвер чипсета. Таким образом, если вы хотите загрузить драйвер вручную, вы можете найти драйвер чипсета на сайте производителя.
Выполните шаг 1) 2) в способе 1 найти контроллер системных прерываний в окне диспетчера устройств.
2)
Щелкните правой кнопкой мыши и выберите свойства.
3)
Выберите для просмотра на подробности панель и установите свойство как Аппаратные идентификаторы.
Затем щелкните правой кнопкой мыши на верхнем значении и выберите копия.
4)
Затем вставьте то, что вы копируете, в понравившуюся поисковую систему или прямо на веб-сайте производителя вашего чипсета.
Загрузите правильный драйвер из результата и установите его на свой компьютер.
Способ 3. Обновите драйвер через Driver Easy автоматически (рекомендуется)
Windows не всегда может найти обновление для вашего устройства. Кроме того, у вас, вероятно, возникают проблемы с поиском правильных драйверов. К счастью, здесь вы можете позволить Водитель Легко помочь тебе.
Водитель Легко действительно безопасный и удобный инструмент для водителей Это может помочь вам отсканировать все отсутствующие и устаревшие драйвера всего за несколько секунд. И он автоматически предоставит последнюю версию и совместимый драйвер для вашего устройства.
Вы можете попробовать его Бесплатная версия, и установить драйверы один за другим. Но если обновить до Pro версия, вы можете автоматически обновить все ваши отсутствующие и устаревшие драйверы с только один раз — Обновить все.
Не беспокойтесь, чтобы попробовать его Pro версию, так как мы предлагаем вам без вопросов 30-дневная гарантия возврата денег а также профессиональная техническая поддержка 24/7. Такой очаровательный инструмент для водителя. Никогда не пропустите это. Попробуй сейчас.
Это все, что нужно сделать.
Любые вопросы, пожалуйста, не стесняйтесь, дайте нам знать, оставив комментарий ниже, спасибо.
Источник
Системные прерывания грузят процессор в Windows 10
В диспетчере задач Windows 10 вы можете обнаружить, что процесс Системные прерывания сильно грузит процессор, иногда до 100%. Нет точного определения, что может быть виновников высокой нагрузку, так как этот процесс всего лишь посредник, который подбрасывает ЦП полученные инструкции, а процессор останавливает текущую работу и начинает их обрабатывать. По этой причине и происходит загрузка ЦП, которую чаще всего можно заметить в слабо частотных процессорах.
Что такое системные прерывания? К примеру, есть директор ЖКХ (процессор), в ЖКХ сидит диспетчер (системные прерывания), который принимает заявки от людей (оборудование, программы). Когда народ начинает массового жаловаться и оставляет заявки диспетчеру, который в свою очередь отправляет их директору, то директор останавливает текущие работы и начинает обрабатывать заявки.
Нормальной нагрузкой на ЦП, процессом системные прерывания, считается до 5%, если больше, то имеются проблемы. Никогда не отключайте процесс «Системные прерывания» вручную, это может нарушить еще больше работу вашей системы. Давайте разберем способы, как исправить, когда системные прерывания грузят процессор в Windows 10.
Важно: Откройте диспетчер задач Ctrl+Shift+Esc. Он должен быть всегда открыт, и вы должны всегда мониторить процесс «Системные прерывания», после каждого проделанного способа или определенного действия.
1. Обновление драйверов
Нажмите Win+X и выберите «Диспетчер устройств«. В диспетчере устройств, если у вас есть оборудование с желтым восклицательным знаком, значит нужно обновить для него драйвер. Также, рекомендую обновить драйвера до последних версий видеокарты и процессора, даже, если нет восклицательного знака.
2. Отключить звуковые эффекты
Нажмите правой кнопкой мыши по иконке динамика в трее около часов и выберите «Звуки«. Выберите динамики и нажмите снизу на кнопку «Свойства«. В новом окне перейдите во вкладку «Улучшения» (Enhancemrnts) и установите галочку на отключение всех звуковых эффектов. Также, если у имеется вкладка «Пространственный звук«, то перейдите в неё и отключите.
3. Отключение Magic Packet
В Windows 10 есть сетевая функция Magic Packet, которая позволяет выводить компьютер или ноутбук из спящего режима при передачи данных. Magic Packet может быть виновником системных прерываний и нагрузки на ПК.
В диспетчере устройств разверните графу «Сетевые адаптеры» и выберите тот адаптеры, через который осуществляете подключение к интернету (Ethernet и WiFi). Нажмите по нему правой кнопкой мыши и выберите «Свойства». В новом окне перейдите во вкладку «Дополнительно» и найдите в писке параметр Magic Packet и справа выберите значение Отключено. Перезагрузите систему и проверьте системные прерывания.
4. Отключение USB-контроллеров
Первым делом, если к ноутбуку или ПК подключены флешки, внешние диски, принтер, то отключите всю с USB портов, и проверьте в диспетчере задач, грузит ли процессор системные прерывания. Подождите минуты 2. Если грузит, то заходим обратно в диспетчер устройств и разворачиваем графу «Контроллеры USB«. Отключаем все USB устройства, которые можно отключить, после чего перезагружаем ПК и смотрим, решена ли проблема.
Примечание: В меню может и не быть «Отключить устройство», это сделано, чтобы вы не отключили действующую мышь и клавиатуру, но вы должны подготовиться к этому заранее и придумать альтернативный способ для повторного включения или определить мышь и клавиатуру и не отключать их.
5. Антивирусный сканер
6. Отключение устройств
Отключим по прядку устройства, которые могут быть наиболее вероятными виновниками нагрузи на процессор системными прерываниями. Не рекомендую проделывать данный способ, если слабо разбираетесь. В диспетчере устройств отключайте не важные для работы ПК устройства и смотрите каждый раз в диспетчер задач нагрузку на ЦП. Наиболее явные виновники:
Важно : Не отключайте важные системное оборудование, которое нужно для стабильной работы Windows 10.
Включите все обратно, если вы не смогли выявить виновника и следуем ниже способу.
7. Выявить задержки DPC
Постараемся выявить виновника при помощи программы LatencyMon. Переходи на сайт и скачиваем утилиту https://www.resplendence.com/downloads
Далее запускаем программу и жмем Play. Переходим во вкладку Drivers и ждем, чтобы собралось больше данных с количеством задержек. Далее нужно отсортировать DPS count, нажмите по этому слову. Драйверы с большим количеством DPC, потенциально могут вызвать большое количество прерываний. По процессу можно найти в Google, к какому драйверу он относиться, или пишите в комменты я подскажу.
Вывод:
Помните, что системные прерывания могут грузить процессор в Windows 10 не только из-за плохих драйверов или программного сбоя. В ноутбуках эта проблема может быть из-за батареи или плохого зарядного устройства. Также, это может быть плохое оборудование как оперативная память, которая нуждается в замене.
Источник
Системный контроллер прерываний драйвер windows 10
Отключение таймера HPET
‼️ Ни в коем случае не отключайте данный таймер в BIOS – там он должен быть включён для корректной работы системы в целом. В новых версиях BIOS подобная настройка включена по-умолчанию и зачастую её изменение не возможно. Подробную информацию как изменить параметры в BIOS можно найти в руководстве к материнской плате или в интернете.
Пример правильного отключения таймера HPET в Windows:
Пример не настроенного таймера в Intelligent Standby List Cleaner :
Для правильной настройки необходимо установить следующие параметры:
⚠️ Во избежание дополнительных микрофризов при очищении кэша памяти, если у вас её мало или же её очень активно используют программы, данную настройку лучше протестировать с разными параметрами и найти оптимальную для вашего сценария использования.
После настройки надо нажать Start и проверить зафиксирован ли таймер – значение Current timer resolution должно быть строго равно 0.5ms и не изменяться. Значение может обновится с задержкой!
Пример правильной настройки Intelligent Standby List Cleaner :
Включение MSI mode
Пример настройки MSI с помощью MSI Util v2 :
‼️ Нельзя устанавливать использование MSI mode для всех ваших устройств, иначе устройства могут работать не корректно.
⚠️ Данная настройка сбрасывается на дефолтное значение после обновления драйвера nVidia!
💡 Для дальнейшей настройки необходимо ознакомиться c Работа с реестром.
Следующим шагом после настройки приоритетов IRQL [?] необходимо указать приоритет для каких сервисов (в нашем случае драйверов) необходимо выполнять прерывания в первую очередь. Когда происходит прерывание, Windows, используя IRQL для определения приоритета прерывания, проверяет может ли прерывание обслуживаться в данный момент или нет, если условие выполняется, то приоритет потока начинает его выполнение. Всё что ниже по приоритету – ставиться в очередь. Таким образом мы зафиксируем критически важные сервисы, прерывания от которых необходимо обрабатывать в первую очередь.
Распараллеливание драйверов по ядрам
Самое сложное осталось позади и теперь мы будет освобождать первое ядро, куда Windows зачем-то добавляет почти все драйверы. Этим мы с одной стороны разгрузим ядро, а с другой так же уменьшим задержки.
✨ При использовании утилиты будут периодически появляться сообщения об ошибке – их можно спокойно игнорировать, т.к. программа давно не обновлялась и на работу программы они никак не влияют.
Пример списка устройств в утилите Interrupt Affinity Policy Tool :
В этом списке надо найти свою видеокарту и USB Host Controller (название может не соответствовать, поэтому искать лучше по полю Location Info ), нажать Set Mask и выбрать ядро на которое будет назначен драйвер. Выбирать надо на любое ядро отличное от первого.
⚠️ Данная настройка сбрасывается на дефолтное значение после обновления драйвера nVidia!
Источник
Страдания по IRQ
Бывало ли у вас так: вы включаете сканер или подключаете внешний привод компакт дисков, и в этот момент вся система начинает заметно тормозить и вести себя неадекватно: мышь по экрану двигается рывками, звук начинает заикаться или отключается. Бывают и более тяжелые случаи. Например, после установки новой звуковой платы, при любых попытках вывести звук, даже при старте Windows, компьютер зависает насмерть. Если бывало, то эта статья – о вашем случае. Если нет, то все равно прочтите эту статью – если вдруг это случится, то вы будете знать, что делать.
Эти проблемы, чаще всего, вызваны конфликтом аппаратных прерываний компьютера. Забавно, но довольно серьезная часть проблем с компьютером после установки нового железа как раз и связана с этими самыми конфликтами, только о них никто не говорит и вообще, эта тема мало обсуждается. Понимание всего вопроса в целом довольно обширная тема и каждый случай конфликта часто отличается от предыдущего, как по симптомам, так и по методам решения. В этой статье мы попытаемся объяснить сложившуюся ситуацию для пользователей, которые уже не боятся компьютеров, но еще не набрали достаточно опыта для решения проблем с конфликтами железа самостоятельно. К сожалению, некоторые моменты статьи довольно тяжело могут восприниматься из-за описаний систем построенных на нечеткой логике, которая, кстати, и является сильной стороной человека по отношению к компьютерам.
Немного истории
Многим эта часть статьи покажется необязательной, так как рассказ будет о старых временах, где-то с 1985 года, но эта информация важна тем, кто хочет разобраться в сути проблемы и понять, почему всё сложилось так неоднозначно.
Давным-давно, в далекой Америке, был разработан процессор x86, который является прародителем всех процессоров, используемых в персональных компьютерах стандарта IBM PC. То есть все Pentium и Athlon имеют в своей основе старый, добрый процессор x86. Архитектура современных процессоров уже очень сильно отличается от первого x86, тем не менее, некоторые моменты сохранились с тех давних времен, когда x86 процессор находился в начале своего пути, а именно с середины восьмидесятых годов прошлого века. Одним из таких моментов является ограничение количества линий аппаратных прерываний для центрального процессора.
| Системность | Линия IRQ | Устройство |
| S | Системный таймер | |
| S | 1 | Клавиатура |
| S | 2 | Cascad (Вывод на вторую микросхему контроллера линий прерываний) |
| S | 8 | Часы реального времени |
| 9 | Свободно | |
| 10 | Свободно | |
| 11 | Свободно | |
| 12 | Свободно | |
| S | 13 | Сопроцессор |
| 14 | IDE Primary (Контроллер жестких дисков) | |
| 15 | IDE Secondary (Контроллер жестких дисков) | |
| 3 | Com Port 1 (Мышь) | |
| 4 | Com Port 2 (Модем) | |
| 5 | Свободно | |
| S | 6 | Floppy (Дисковод) |
| 7 | LPT (Принтер) |
Такая раскладка прерываний очень долго сохранялась на многих бытовых компьютерах. Почти все компьютеры на базе процессоров 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. К сожалению, эти системы никак нельзя описать в одно предложение, поэтому мы рассмотрим их чуть подробнее.
| Системность | Линия IRQ | Устройство |
| S | Системный таймер | |
| S | 1 | Клавиатура |
| S | 2 | Cascad (Вывод на вторую микросхему контроллера линий прерываний) |
| S | 8 | Часы реального времени |
| 9 | ACPI Controller | |
| 10 | Свободно | |
| 11 | USB | |
| S | 12 | PS2 |
| S | 13 | Сопроцессор |
| 14 | IDE Primary (Контроллер жестких дисков) | |
| 15 | IDE Secondary (Контроллер жестких дисков) | |
| 3 | Com Port 1 (Мышь) | |
| 4 | Com Port 2 (Модем) | |
| 5 | Свободно | |
| S | 6 | Floppy (Дисковод) |
| 7 | LPT (Принтер) |
Как видно из таблицы, свободных прерываний практически не осталось. Свободными можно считать только IRQ 5 и 10, всё остальное занято. По логике, как раз их-то и надо использовать для видеокарты и аудиоплаты. Но устройств, требующих собственное прерывание и не описанных в этой таблице, может быть куда больше. В таблицу они не включены, так как являются опциями, то есть могут быть в системе, а могут и не быть. Например: сетевая карта, контроллер RAID или SCSI, ТВ-тюнер, SATA, IEEE1394 (FireWire) и так далее. То есть, может сложиться ситуация, когда на два свободных прерывания будет восемь устройств, требующих собственного прерывания. Есть три способа решения этой проблемы. Каждый способ имеет свои плюсы и минусы.
Первый способ – это полноценное использование систем ACPI и IRQ Sharing. Если системы ACPI, а соответственно и APIC, включены, то операционная система считает, что у неё 256 прерываний, при этом реальных прерываний как было 16, так и осталось. Оставшиеся 240 прерываний – это виртуальные прерывания, которые являются клонами реальных. ACPI автоматически распределяет прерывания и не позволяет пользователю их менять. Если устройство соглашается работать в режиме кооперации с другим устройством, то есть все шансы, что ACPI посадит их на одну физическую линию. Если не контролировать данную ситуацию, то на одном физическом прерывании могут оказаться практически все устройства, установленные в компьютере, даже если есть свободные прерывания. Это приведет к сильнейшему торможению всей системы и серьезным сбоям в работе.
Решение:
Плюс данного подхода в отсутствии потребности вмешательства со стороны пользователя. То есть, делать ничего не надо. Просто воткнуть в материнскую плату видеоадаптер, процессор, память и так далее, а затем поставить операционную систему, которая нормально поддерживает ACPI. А это Windows XP или Windows 2000. Всё. Компьютер заработает. Именно в таком виде продаются почти все компьютеры, собранные в России. Подход прост: если работает и тормозит – то это не гарантийный случай, а проблема пользователя.
Решение:
Современные материнские платы обладают некоторыми особенностями, которые необходимо знать для корректного разведения линий прерываний по устройствам. Так, все встроенные в материнскую плату устройства чаще всего имеют жесткую привязку к слотам расширения PCI, а некоторые слоты жестко привязаны друг к другу. К примеру, у вас есть встроенная в материнскую плату звуковая карта, при этом она автоматически кооперируется с устройством в третьем слоте PCI. Если вы вставите сетевую плату в третий слот, то встроенная звуковая карта и сетевая плата будут висеть на одном прерывании, чтобы вы ни делали. Решить этот конфликт можно, переставив сетевую карту в другой слот. Или другой пример: пятый и первый слот PCI привязаны друг к другу, и установив два устройства в эти слоты, вы автоматически вешаете их на одну линию прерывания. Опять же, это лечится переустановкой одного из устройств в другой слот. К сожалению, современные материнские платы имеют столько встроенных устройств, что найти свободный слот PCI без запаралеленных устройств бывает невозможно. В этом случае всё зависит от устройства.
Все локальные устройства, находящиеся в компьютере можно разбить на четыре группы по степени зависимости от прерывания.
Надо понимать, что все вышеперечисленные устройства могут обладать уникальными свойствами в зависимости от производителя или прошивки. Все вышеописанные правила работают не всегда и не однозначно. У вас легко может оказаться ТВ-тюнер или сетевая карта, которая напрочь откажется работать с кем-либо в паре. Или наоборот, ваша звуковая карта может вдруг повести себя стабильно на одном прерывании вместе с ТВ-тюнером. Конфликтовать умеют даже устройства, относящиеся к четвертой группе. Чаще всего они начинают глючить, если поставить их в запаралеленный с AGP слот. При этом на понимание всех особенностей конкретно вашего железа может уйти значительное время.
Суть способа в полном отказе от систем ACPI и IRQ Sharing. А устройства, которые лезут на одну линию IRQ нужно просто отключать. Must be only one!, как говорил товарищ из фильма «Горец».
Как понять, есть ли конфликты в вашем компьютере, и что делать
Бывает, что список отображаемых устройств бывает полным и включает в себя контроллеры жестких дисков и все устройства, находящиеся на плате, вплоть до COM-портов. Бывает и наоборот: информации довольно мало, тогда видно только установленные устройства (как на скриншоте). А бывает, что второй экран BIOS вообще не содержит информации о прерываниях. В таком случае стоит воспользоваться другими программами, которые способны отображать физическое распределение прерываний.
Например, можно использовать стандартный диспетчер устройств, переключив его вид на «ресурсы по подключению» и раскрыв раздел «запрос на прерывания (IRQ)», или воспользоваться сторонними программами типа SiSoft Sandra.
Единственный минус их использования состоит в том, что они видят номера прерываний через призму операционной системы. Если используется система ACPI и APIC, то получить корректную информацию об аппаратных прерываниях будет весьма непросто, так как номеров будет не 16, а 256. Нас интересует ситуация, когда цифры не повторяются. Если одна и та же цифра стоит напротив USB Cntrlr, Display Cntrlr и Multimedia Device (аудиоплата или TB-тюнер), то дело совсем плохо. Например, данное окно говорит о следующем:
Как решать и что делать
Нужно понимать, что действия по разрешению конфликтов могут привести к полному падению операционной системы и потере данных. Сделайте резервные копии ваших документов, запишите все пароли и сетевые настройки, и только после этого предпринимайте действия. Лучше всего экспериментировать на свежеустановленной операционной системе и иметь возможность переустановить её после проведения всех действий, если что-то сложится некорректно. Само собой, автор и редакция не несут никакой ответственности за результаты ваших экспериментов.
Шаг первый: изучаем BIOS
Для начала нужно посмотреть на опции в BIOS вашего компьютера. И ничего там не трогать, в противном случае шансы на загрузку уже установленной операционной системы сильно падают. Вне зависимости от производителя BIOS и материнской платы, необходимые для работы опции могут присутствовать, а могут и отсутствовать. Стандарта для этих опций не существует, поэтому они могут иметь разные названия и находится в разных разделах BIOS. Но, применяя дедуктивный метод Шерлока Холмса, их все же можно найти. Для примера мы приведем названия этих опций в Award BIOS материнской платы GigaByte. Самые важные для нас опции находятся в разделе PnPPCI 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)
Также полезны опции по отключению устройств :
• 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 отключит их и освободит используемые ими ресурсы.
Шаг второй – Карта прерываний
Ищем документацию от материнской платы. Если повезет, то в ней вы найдете карту прерываний для вашей материнской платы, которая выглядит следующим образом:
| A | B | C | D | E | F | G |
| PCI Slot 1 | Shared | |||||
| PCI Slot 2 | Shared | |||||
| PCI Slot 3 | Shared | |||||
| PCI Slot 4 | Shared | |||||
| PCI Slot 5 | Shared | |||||
| PCI Slot 6 | Shared | |||||
| AGP Slot | Shared | |||||
| 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. Радует только одно: типов установленных устройств не так много. Редко бывают нужны в компьютере две сетевые платы или две звуковые карты. Если используется SerialATA, то чаще всего не нужны оба канала контроллера UATA, занимающий 14 и 15 прерывание. Одно из них можно освободить, учитывая, что второе занимает CD-ROM. И так далее.
Если вы обратили внимание, не все буквенные индексы в таблице привязаны к слотам расширения PCI. Например, линия F, на которой висит USB, не привязана к слотам, в то время как из BIOS контролируются только номера прерываний для слотов. Линией F управляет внутренняя автоматика BIOS. А эта автоматика будет кооперировать эту линию IRQ с чем попало. Чтобы разрешить конфликты с этой веткой? вам потребуются шаманский бубен, кроличья лапка и большая подкова. На самом деле вам придется менять конфигурацию раскладок прерываний для слотов до тех пор, пока линия F не встанет на устраивающее вас значение. Каждым изменением вы заставляете автоматику пересчитать всю конфигурацию, и каждый раз автоматика будет назначать новое значение для линии F. Если таких бесконтрольных линий больше чем одна, задача усложняется. В нашем случае бесконтрольной осталась линия G. Но терпение и труд, как известно, всё перетрут.
Мы описали карту прерываний от материнской платы Asustek A7V8X, конкретные же карты прерываний у каждой материнской платы свои. Но основные принципы вычисления зависимостей по этому описанию можно понять.
Шаг третий – Изменения в операционной системе
Самым первым изменением, с которого мы начнем настройку системы, будет замена ядра операционной системы для отключения функций 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
Выводы
Весьма непросто бывает объяснить системы, которые представляют из себя не линейную информацию, а переплетение различных кусков информации в сочетании с интуицией и логикой, человеческой логикой, а не компьютерной. Из-за отсутствия упорядоченной информации и отточенных технологий, каждый человек умеющий решать конфликты внутри компьютера считает себя чуть-чуть магом, потому что каждый это делает немного по своему. У всех есть маленькие хитрости и секреты. Для того, чтобы сделать этот текст хотя бы немного понятным я старался не заострять внимания на объяснениях всех действий и точным описанием всех функций и спецификаций. Тем не менее, если у вас возникнут вопросы или комментарии, автор статьи с удовольствием выслушает и ответит на них. Мы надеемся, что эта статья поможет начинающим компьютерщикам разобраться в сложившейся ситуации.
Источник



























