Страждання за IRQ

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Чи бувало у вас так: ви включаєте сканер або підключаєте зовнішній привід компакт дисків, і в цей момент вся система починає помітно гальмувати і вести себе неадекватно: миша по екрану рухається ривками, звук починає заїкатися або відключається ... Бувають і більш важкі випадки ....

Дмитро Зінов'єв

Чи бувало у вас так: ви включаєте сканер або підключаєте зовнішній привід компакт дисків, і в цей момент вся система починає помітно гальмувати і вести себе неадекватно: миша по екрану рухається ривками, звук починає заїкатися або відключається ... Бувають і більш важкі випадки. Наприклад, після установки нової звукової плати, при будь-яких спроб вивести звук, навіть при старті 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 Пристрій
S 0 Системний таймер
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).

Існує ще одна невелика тонкість. Всі лінії переривань мають свій пріоритет. Чим вищий пріоритет у лінії переривання, тим швидше процесор відповість на запит від пристрою знаходиться на цій лінії. Пріоритети переривань наведені в таблиці нижче в порядку убування.

Пріоритет переривань
0 1 2 -> 8 9 10 11 12 13 14 15 3 4 5 6 7

Історично склалася архітектура наклала дуже сильний відбиток на пріоритети ліній переривань. Підключена другий мікросхема контролера до другої лінії першої мікросхеми вклинюється в пріоритети. Тому лінії другого мікросхеми мають більш високий пріоритет, ніж лінії першої. При цьому, обидві мікросхеми виглядають для користувача єдиним модулем контролера переривань - 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 Пристрій
S 0 Системний таймер
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. Все. Комп'ютер запрацює. Саме в такому вигляді продаються майже всі комп'ютери, зібрані в Росії. Підхід простий: якщо працює і гальмує - то це не гарантійний випадок, а проблема користувача.

Другий спосіб полягає у відмові від використання 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 на досить складну машину цей спосіб просто необхідний. Також плюс такого підходу - максимальне швидкодія всієї системи без проблем зі стабільністю. Якщо є можливість, бажано йти саме цим шляхом.

Як зрозуміти, чи є конфлікти у вашому комп'ютері, і що робити

Найпростіший спосіб розібратися в конфліктах - це натиснути кнопку 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 або фізична додавання ще одного пристрою призведе знову всю систему переривань в ХАОС, яке доведеться вирішувати наново.

Висновки

Дуже непросто буває пояснити системи, які являють собою не лінійну інформацію, а переплетення різних шматків інформації у поєднанні з інтуїцією і логікою, людської логікою, а не комп'ютерної. Через відсутність впорядкованої інформації і відточених технологій, кожна людина вміє вирішувати конфлікти всередині комп'ютера вважає себе трохи магом, тому що кожен це робить трохи по своєму. У всіх є маленькі хитрощі і секрети. Для того, щоб зробити цей текст хоча б трохи зрозумілим я намагався не звертати уваги на поясненнях всіх дій і точним описом всіх функцій і специфікацій. Тим не менш, якщо у вас виникнуть питання або коментарі, автор статті з задоволенням вислухає і відповість на них. Ми сподіваємося, що ця стаття допоможе початківцям комп'ютерникам розібратися в ситуації, що склалася.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
73.9кб. | скачати


Схожі роботи:
Школа страждання
Некрасов - поет страждання
Страждання святої мучениці Татіани
Житіє і страждання святої великомучениці Варвари
Страждання святих мучеників Адріана і Наталії
Житіє і страждання святої великомучениці Катерини
Страждання святого священномученика Іринея Ліонського єпископа
Страждання святих мучеників Гурія Самона і Авіва
Кім а. а. - Притча про свободу і страждання людини
© Усі права захищені
написати до нас