RSS    

   Реферат: Страдания по IRQ

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

Выводы

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

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://mdforum.dynu.com


Страницы: 1, 2, 3


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.