PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Системные платы

Системные ресурсы

Конфликты прерываний

Вероятно, наиболее распространенный конфликт прерываний (IRQ) связан с интегрированным последовательным портом COM2, существующим в современных системных платах, и внутренним модемом (имеется в виду полноценный внутренний PC-модем, а не программный модем, который также называется WinModem). Дело в том, что в полноценном внутреннем модеме уже есть поддержка некоторого порта; по умолчанию этот порт назначается в COM2, при этом в системе также обычно включен второй последовательный порт. Таким образом, в системе оказывается два идентичных порта, использующих одни и те же ресурсы (прерывания и адреса порта ввода-вывода).

Решить эту проблему довольно просто: следует войти в BIOS Setup системы и отключить встроенный порт COM2. Кроме того, можно подумать об отключении порта COM1, который также используется крайне редко. Отключение неиспользуемых портов СОМх — один из лучших способов высвобождения прерываний (IRQ) для других устройств.

Еще один распространенный конфликт также связан с последовательными портами. В стандартной таблице распределения прерываний вы, наверное, заметили, что IRQ3 назначается порту COM2, а IRQ4 — порту COM1. Проблема возникает тогда, когда в систему добавляются дополнительные порты COM3 и/или COM4 и им не назначаются вручную свободные прерывания (по умолчанию они используют все те же IRQ3 и IRQ4).

Дополнительные сложности вносит то, что некоторые платы портов не допускают выбора прерываний, отличных от IRQ3 и IRQ4. В результате назначение IRQ3 порту COM4 и IRQ4 порту COM3 приводит к конфликту с портами COM1 и COM2, также использующими эти прерывания: два порта не могут одновременно использовать один и тот же канал управления прерываниями. При работе в DOS это допускалось, поскольку в ней одновременно могла выполняться только одна задача, но в Windows и OS/2 это совершенно невозможно. Для того чтобы в компьютере можно было применять более двух параллельных портов COM, необходима многопортовая плата, которая, помимо прерываний с номерами 3 и 4, позволяет использовать дополнительные прерывания. Совместное использование прерываний в принципе допустимо для устройств, которые в обычных условиях не работают одновременно (или постоянно). Порты не попадают в эту категорию устройств. Совместно можно применять прерывание для сканера и модема, однако и в этом случае, если они будут использоваться одновременно, возникнет конфликт. К счастью, большинство устройств, которые ранее использовали порты (например, мыши, принтеры этикеток и внешние модемы), теперь подключаются к портам USB, так что проблем с необходимостью поддержки множества портов у современных пользователей компьютеров возникать не должно.

Если все же необходимо использовать несколько последовательных портов, лучшим решением станет покупка многопортовой платы, которая либо предоставляет возможность установить неконфликтующие прерывания, либо содержит собственный процессор, позволяющий распределять одно системное прерывание между несколькими портами. Некоторые старые многопортовые карты имели интерфейс ISA, но сегодня их вытеснили карты PCI, которые к тому же имеют преимущества в быстродействии.

Если некоторое устройство, упомянутое в таблице, отсутствует (например, встроенный порт мыши (IRQ12) или второй параллельный порт (IRQ5)), их прерывания можно считать доступными. К примеру, второй параллельный порт можно встретить крайне редко, так что отведенное для него прерывание IRQ5 чаще всего используется для платы звукового адаптера. Аналогично прерывание IRQ15 используется для вторичного контроллера IDE. Если в системе к вторичному каналу IDE не подключены дисковые устройства, можно отключить этот контроллер в BIOS, тем самым освободив еще одно прерывание для других устройств.

Следует отметить, что проще всего проверить настройки прерыаний в диспетчере устройств Windows. В системе Windows 95b существует программа HWDIAG, а в Windows 98 и более поздних версиях — консоль Сведения о системе. Эти утилиты позволяют получить детальный отчет об использовании ресурсов в системе, а также об установленных драйверах устройств и записей реестра Windows для каждого из устройств. В системах Windows XP и Vista информацию о системе предоставляет программа Msinfo32.

Чтобы обеспечить максимально возможное количество совместных прерываний в современной системе без разъемов ISA, при работе с системной BIOS выполните следующие действия.

  1. Отключите все неиспользуемые порты в системной BIOS. Например, если вместо последовательного и параллельного портов используются порты USB, отключите их. В результате можно высвободить до трех прерываний.
  2. Укажите прерывание IRQ, освобожденное в п. 1, в списке доступных прерываний для устройств PCI/PnP. В зависимости от версии BIOS соответствующие параметры доступны в разделе PnP/PCI Resource Exclusion или PnP/PCI Configuration.
  3. Активизируйте параметр Reset Configuration Data, чтобы очистить таблицы маршрутизации IRQ в памяти CMOS.
  4. Сохраните изменения и завершите работу с программой настройки BIOS.



Каналы прямого доступа к памяти (DMA)

Такие каналы используются устройствами, осуществляющими высокоскоростной обмен данными. Последовательный и параллельный порты, например, не используют каналы прямого доступа к памяти (DMA), в отличие от звуковой платы и адаптера SCSI. Один канал DMA может использоваться разными устройствами, но не одновременно. Например, канал DMA 1 может использоваться как сетевым адаптером, так и накопителем на магнитной ленте, но вы не сможете записывать информацию на ленту при работе в сети. Для этого каждому адаптеру необходимо выделить свой канал DMA.

Примечание!

В современных компьютерах существует несколько типов каналов DMA. Каналы, рассматриваемые в настоящем разделе, связаны с шиной ISA. Другие шины, такие как ATA/IDE, предназначенная для дисковых устройств, несколько по-другому используют эти каналы. Таким образом, материал, представленный в настоящем разделе, не относится к устройствам ATA/IDE, даже если в них используется режим DMA или Ultra DMA.



Каналы DMA 8-разрядной шины ISA

В этой шине для скоростной передачи данных между устройствами вводавывода и памятью можно использовать четыре канала DMA.

Поскольку в большинстве компьютеров установлены контроллеры как гибких, так и жестких дисков, доступным остается только один канал DMA.

Каналы DMA 16-разрядной шины ISA

восьми, причем семь из них доступны платам адаптеров, устанавливаемым в слоты. Как и дополнительные линии IRQ, эти каналы DMA подключены с помощью второго контроллера, имеющего каскадное подключение к первому.

Канал DMA 4 используется для подключения к процессору каналов DMA 0–3. Каналы 0–3 доступны для 8-разрядных обменов данными, а каналы 5–7 — только для 16-разрядных.

Следует отметить, что адаптеры PCI не используют каналы прямого доступа к памяти ISA, данные каналы доступны только для плат ISA. Однако некоторые платы PCI (например, звуковые) эмулируют эти каналы DMA для работы со старым программным обеспечением.

Из всех каналов DMA стандартное назначение во всех компьютерных системах имеет только канал DMA 2, который используется контроллером гибких дисков. Канал DMA 4 не используется и не представлен в слотах шины. Каналы DMA 1 и DMA 5 обычно используются в звуковых платах, например в Sound Blaster 16. Для скоростной передачи информации эта плата использует как 8-, так и 16-разрядный канал. Канал DMA 3 используется в том случае, если для параллельного порта задан режим ECP или EPP/ECP. Некоторые нестандартные системы, например старые компьютеры Packard Bell, при работе с параллельным портом по умолчанию используют канал DMA 1, а не DMA 3. В этом случае канал DMA 3 можно назначить параллельному порту с помощью переключателей на системной плате, что позволит избежать конфликтов со звуковыми платами, использующими канал DMA 1.

Примечание!

Заметьте, что хотя канал DMA 0 представлен в слотах расширения 16-разрядного разъема и поэтому может использоваться только 16-разрядными адаптерами, работает он, как 8-разрядный. Поэтому часто контакты канала DMA 0 не представлены на 16-разрядных платах, которые не могут нормально работать в 8-разрядном режиме. На таких 16-разрядных платах (наподобие адаптера стандарта SCSI), которые используют каналы DMA, представлены контакты каналов 5-7.


Адреса портов ввода-вывода

Порты ввода-вывода позволяют установить связь между устройствами и программным обеспечением в компьютере. Если вы хотите отправить какую-либо информацию в последовательный порт, то должны знать, какой порт ввода-вывода (радиоканал) он прослушивает. Аналогично, если нужно получить данные из последовательного порта, следует прослушивать тот адрес, на который они передаются.

В отличие от прерываний IRQ и каналов прямого доступа к памяти, в персональных компьютерах существует великое множество портов ввода-вывода. Существует 65535 портов, пронумерованных от 0000h до FFFFh, и это, пожалуй, самый удивительный артефакт в процессоре Intel. Хотя многие устройства используют до восьми портов, все равно их доступного количества более чем достаточно. Самая большая проблема состоит в том, чтобы двум устройствам случайно не назначить один и тот же порт.

Современные системы, поддерживающие спецификацию Plug and Play, автоматически разрешают любые конфликты из-за портов, выбирая альтернативные порты для одного из конфликтующих устройств.

Хотя порты ввода-вывода обозначаются шестнадцатеричными адресами, подобными адресам памяти, они не являются памятью, они — порты. Различие состоит в том, что данные, отправленные по адресу памяти 1000h, будут сохранены в модуле памяти SIMM или DIMM. Если вы отсылаете данные по адресу 1000h порта ввода-вывода, то они попадают на этот “канал” шины, и любое устройство, прослушивающее канал, может их принять. Если никакое устройство не прослушивает этот адрес порта, то данные достигнут конца шины и будут поглощены ее нагрузочными резисторами.

Специальные программы — драйверы — взаимодействуют с устройствами, используя различные адреса портов. Драйвер должен знать, какие порты использует устройство, чтобы работать с ним. Обычно это не составляет проблемы, поскольку и драйвер, и устройство, как правило, поставляются одним и тем же производителем.

Системная плата и набор микросхем системной логики обычно используют адреса порто ввода-вывода от 0h до FFh, а все другие устройства — от 100h до FFFFh.

Чтобы выяснить, какие адреса порта используются в конкретной системной плате, загляните в прилагаемую к ней документацию или же воспользуйтесь диспетчером устройств Windows.

Устройства на шине, как правило, используют адреса, начиная с 100h.

Чтобы точно знать, какие адреса используют ваши устройства, настоятельно рекомендую обратиться к документации или просмотреть информацию об устройстве в диспетчере устройств Windows.

Практически все устройства на системных шинах используют адреса портов вводавывода. Большинство из них стандартизировано, поэтому, как правило, каких-либо конфликтов или проблем с адресами портов для этих устройств не возникает.