Beholder faq

Основний причина такої поведінки системи є PCI-конфлікти. Ось основні джерела таких конфліктів.

1) Неповна або неправильна підтримка специфікацій шини апаратною частиною пристрою або PCI-контролером. Як правило, це проявляється в тому, що:

a) Пристрій і материнська плата несумісні один з одним, вони по різному трактують роботу шини.

b) Пристрій або контролер шини нестабільно працюють або не працюють при деяких установках шини.

c) Нестабільно працює система в цілому, оскільки пристрої вимагають взаємно виключають установок.

Дуже часто ці проблеми усуваються певними установками BIOS, іноді не усуваються ніяк. До цієї ж нагоди, мабуть, можна віднести некоректну програмування PCI-контролера BIOS материнської плати, некоректну ініціалізацію PCI-пристроїв системою і неправильна установка пристроєм свого конфігураційного простору. Справа в тому, що ініціалізація PCI-пристрої також є непростим процедуру, пов'язану зі зчитуванням конфігураційного простору пристрою і налаштуванням контролера шини відповідно до ліченими даними.

2) Апаратні проблеми, пов'язані з арбітражем шини. Справа в тому, що шина використовується спільно всіма пристроями, підключеними до неї. Якщо двом або більше пристроїв одночасно потрібен обмін даними з системою, то в процесі арбітражу визначається, яке з пристроїв отримає доступ до шини, а яке зобов'язане буде чекати. На цьому етапі існує безліч підводних каменів, пов'язаних з тим, що одні пристрої можуть чекати невизначено довго, для інших же час є критичним фактором. Типовим випадком такої проблеми є несумісність (іноді фатальна) з деякими SATA, SCSI або RAID-контролерами. Іншим можливим випадком є ​​просто некоректна відпрацювання процедури арбітражу одним з пристроїв або контролером шини.

3) Проблеми пов'язані з розподілом переривань. Теоретично, специфікації шини PCI дозволяють використовувати одне переривання декількома пристроями. На практиці ж це пов'язане з деякими труднощами. Механізм переривань в шині PCI дворівневий. На першому рівні задіяна тільки шина (апаратна частина). На другому рівні шляхом зчитування і програмування PCI-регістрів з декількох пристроїв виділяється одне або більше, дійсно активізували переривання. В даному випадку можуть позначитися помилки в драйверах будь-якого з двох пристроїв, які поділяють одне переривання. У разі, якщо переривання пристроями не розділяються, ці помилки ніяк себе не проявлять. На жаль, в даній ситуації недостатньо того, щоб без помилок був написаний драйвер потрібного вам пристрою. Необхідно, щоб помилок не містили драйвера всіх пристроїв, які поділяють переривання.

4) Непрямі проблеми, безпосередньо не пов'язані зі специфікаціями PCI. В першу чергу це взаємний вплив пристроїв по харчуванню. Справа в тому, що будь-який цифровий пристрій (до яких, безумовно, відносяться PCI-пристрої) є активним джерелом перешкод по ланцюгах харчування і землі. Також воно саме може бути чутливе до перешкод при досягненні ними певного порогового рівня. Інша проблема, також пов'язана з харчуванням, полягає в зміні рівня навантаження при роботі пристрою і, як наслідок, просідання або "плавання" напруги на цьому або сусідньому пристрої. Також система може виявитися просто нездатною забезпечити необхідне навантаження. До цього ж пункту належить і зміна електричного навантаження на сигнальних ліній шини, зміна крутизни фронтів і тимчасових діаграм сигналів при підключенні додаткових пристроїв.

Не варто применшувати ймовірність будь-якої з описаних ситуацій. У нашій практиці зустрічалися всі випадки. Все сказане показує глибину складності діагностики і усунення подібних конфліктів. При виникненні конфлікту ми можемо привести тільки найбільш загальні рекомендації, як то:

1) Переставте пристрій в інший слот.

2) Спробуйте рознести переривання пристроїв в BIOS Setup комп'ютера.

3) Спробуйте змінити налаштування BIOS, що стосуються шини PCI.

4) Спробуйте тимчасово заборонити, а ще краще видалити по черзі з системи пристрою, щоб виявити конфліктуючі.

5) Забезпечте якісне харчування системи.

Що стосується наших пристроїв. Безумовно, ми не перекладаємо всю відповідальність на інших. Ми робимо все, від нас залежне, щоб попередити можливі конфлікти. Проте, є ряд чинників, які від нас ніяк не залежать:

1) Чипсети розробляємо не ми. Незважаючи на те, що NXP / Trident виробляє одні з найбільш стабільно працюючих чіпсетів, апаратні проблеми все ще зустрічаються.

2) При виникненні конфлікту виникають об'єктивні складності в з'ясуванні причин і "винуватця".