Всі локальні пристрої, що знаходяться в комп'ютері можна розбити на чотири групи за ступенем залежності від переривання.
До першої групи можна віднести відеокарту і контролери жорстких дисків. Ці пристрої повинні мати виділене переривання і ні в якому разі не повинні його ділити з чим би то не було. Тобто, на одному перериванні з відеокартою не повинно перебувати ні одного пристрою, в іншому випадку страшні глюки і гальма гарантовані. До другої групи можна віднести менш ресурсомісткі пристрої, наприклад аудіоплати, ТБ-тюнер, софтверний внутрішній модем (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 на досить складну машину цей спосіб просто необхідний. Також плюс такого підходу - максимальне швидкодія всієї системи без проблем зі стабільністю. Якщо є можливість, бажано йти саме цим шляхом.
Як зрозуміти, чи є конфлікти у вашому комп'ютері, і що робити
Найпростіший спосіб розібратися в конфліктах - це натиснути кнопку PAUSEBREAK в момент початкового завантаження комп'ютера, а точніше, на другому екрані 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. Найважливіші для нас опції знаходяться в розділі 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)
Як вже описувалося раніше, ця функція має різне значення на однопроцесорних та багатопроцесорних системах. На однопроцесорних системах вона дозволяє операційній системі використання віртуальних переривань. Якщо опцію поміняти на 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 відключить їх і звільнить використовувані ними ресурси.
Крок другий - Карта переривань
Шукаємо документацію від материнської плати. Якщо пощастить, то в ній ви знайдете карту переривань для вашої материнської плати, яка виглядає наступним чином:
| 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, лівий стовпець - це список пристроїв і слотів, встановлених на вашій материнській платі. Вказівка 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 або фізична додавання ще одного пристрою призведе знову всю систему переривань в ХАОС, яке доведеться вирішувати наново.
Висновки
Дуже непросто буває пояснити системи, які являють собою не лінійну інформацію, а переплетення різних шматків інформації у поєднанні з інтуїцією і логікою, людської логікою, а не комп'ютерної. Через відсутність впорядкованої інформації і відточених технологій, кожна людина вміє вирішувати конфлікти всередині комп'ютера вважає себе трохи магом, тому що кожен це робить трохи по своєму. У всіх є маленькі хитрощі і секрети. Для того, щоб зробити цей текст хоча б трохи зрозумілим я намагався не звертати уваги на поясненнях всіх дій і точним описом всіх функцій і специфікацій. Тим не менш, якщо у вас виникнуть питання або коментарі, автор статті з задоволенням вислухає і відповість на них. Ми сподіваємося, що ця стаття допоможе початківцям комп'ютерникам розібратися в ситуації, що склалася.