Resources Conflicts On Special Boards

A number of devices that you might want to install in a computer system require IRQ lines or DMA channels, which means that a world of conflict could be waiting in the box the device comes in. You can save yourself problems if you use a system-configuration template to keep track of the way your system is configured.

You also can save yourself trouble by carefully reading the documentation for a new adapter board before you attempt to install it. The documentation details the IRQ lines the board can use as well as its DMA-channel requirements. In addition, the documentation details the adapter's upper-memory needs for ROM and adapter.

The following describe some of the conflicts you might encounter when you install some popular adapter boards. Although the list of adapter boards covered in these sections is far from comprehensive, the sections serve as a guide to installing complex hardware with minimum hassle. Included are tips on soundboards, SCSI host adapters, and network adapters.

Sound Cards

Sound cards are probably the biggest single resource hog in your system. They typically use at least one IRQ, two DMA channels (in DOS emulation mode), and multiple I/O port address ranges. This is because a sound card is actually several different pieces of hardware all on one board.

Most sound cards, including PCI-based models, emulate the Sound Blaster 16 from Creative Labs. Table 1 shows the default resources used by a typical PCI sound card, the Creative Labs SB512. Because sound cards are multifunction devices, each function is listed separately as it appears in the Windows Device Manager.

Device

IRQ

I/O Port Address

16-Bit DMA Channel

8-Bit DMA Channel

Sound Blaster 16 emulation

5

0220–022F 0330–0331 0388–038B

5

1

Creative Multimedia Interface

N/A

D400–D407

n/a

n/a

Creative Gameport Joystick

N/A

0200–0207

n/a

n/a

Creative SB512

9

C860–C87F

n/a

n/a

Although other brands of sound cards might use a slightly different configuration, the pattern is the same; Sound Blaster emulation requires a large number of resources. Even if SB emulation isn't used (you might be able to disable it if you no longer play DOS games), the card still uses a single IRQ and several I/O port address ranges.

If you take the time to read your soundboard's documentation and determine its communications-channel needs, compare those needs to the IRQ lines and DMA channels that already are in use in your system, and then change the settings of the other adapters to avoid conflicts with the sound card, your installation will go quickly and smoothly.

Unfortunately, many vendors no longer provide detailed information on their plug-and-play–compatible cards. That's why you need to install the sound card first and use the system resource map to record which settings the card uses before you install other cards.

One example of a potential soundboard conflict is the combination of a Sound Blaster 16 and an Adaptec SCSI adapter. The Sound and SCSI adapters conflict on DMA 5 as well as on I/O ports 330–331.

Rather than changing the settings of the sound card, it is best to alter the SCSI adapter to the next available settings that will not conflict with the sound card or anything else. The final settings are shown in the previous configuration template.

The cards in question (Sound Blaster 16 and AHA-1542CF) are not singled out here because there is something wrong with them, but instead because they happen to be very popular cards of their respective types and, as such, often are paired together in older systems.

Most people would be using PCI versions of these cards today, but they still require the same types of resource settings with the only exception being DMA channels. Unfortunately, it wasn't DMA channels that we were really running out of!

The interrupt shortage often continues even with PCI cards because for older real-mode applications or Windows 95 and earlier, they must be mapped to discrete ISA IRQs. The real solutions to the ISA IRQ problem are to use only PCI cards, use Windows 98 or newer (which support IRQ Steering), and have that support in your ROM BIOS.

Then, full sharing is possible. Every desktop system sold today is equipped with a motherboard that lacks ISA slots and breaks ties with that bus forever. These motherboards free us of the interrupt restrictions we have been under for so many years.

SCSI Adapter Boards

SCSI adapter boards use more resources than just about any other type of add-in device except perhaps a sound card. They often use resources that are in conflict with sound cards or network cards, especially if the card has an onboard BIOS for handling bootable drives.

A typical ISA SCSI host adapter with onboard BIOS requires an IRQ line, a DMA channel, a range of I/O port addresses, plus a 16KB range of unused upper memory for its ROM and possible scratch-pad RAM use. Even a simple SCSI host adapter designed for use with scanners still requires an IRQ and a range of I/O port addresses.

Fortunately, the typical SCSI adapter is also easy to reconfigure, and changing any of these settings should not affect performance or software operation. PCI-based SCSI host adapters require all of the preceding, except for the DMA channel.

Before installing a SCSI adapter, be sure to read the documentation for the card, and ensure that any IRQ lines, DMA channels, I/O ports, and upper memory the card needs are available.

If the system resources the card needs are already in use, use your system-configuration template to determine how you can alter the settings on the SCSI card or other cards to prevent any resource conflicts before you attempt to plug in the adapter card.

Network Interface Cards

Networks are becoming more and more popular all the time, thanks to the rise of easy-to-configure small office/home office networks and the use of network cards to connect to broadband Internet devices such as cable and DSL modems.

A typical network adapter does not require as many resources as some of the other cards discussed here, but it requires at least a range of I/O port addresses and an interrupt. Some network interface cards (NICs) also require a 16KB range of free upper memory to be used for the RAM transfer buffer on the network card.

As with any other cards, be sure that all these resources are unique to the card and are not shared with any other devices. If your network adapter is built in to the motherboard, it still uses IRQ and I/O port address resources.

Multiple-COM-Port Adapters

A serial port adapter usually has two or more ports onboard. These COM ports require an interrupt and a range of I/O ports each. There aren't too many problems with the I/O port addresses because the ranges used by up to four COM ports in a system are fairly well defined. The real problem is with the interrupts.

Most older installations of more than two serial ports have any additional ones sharing the same interrupts as the first two. This is incorrect and causes nothing but problems with software that runs under Windows or OS/2. With these older boards, ensure that each serial port in your system has a unique I/O port address range and, more importantly, a unique interrupt setting.

Many newer multiport adapter cards—such as those offered by Byte Runner Technologies—allow "intelligent" interrupt sharing among ports. In some cases, you can have up to 12 COM port settings without conflict problems. Check with your adapter card's manufacturer to determine whether it allows for automatic or "intelligent" interrupt sharing.

Although most people have problems incorrectly trying to share interrupts when installing more than two serial ports in a system, a fairly common problem exists with the I/O port addressing that should be mentioned. Many of the high-performance video chipsets, such as those from S3, Inc., and ATI, use some additional I/O port addresses that conflict with the standard I/O port addresses used by COM4:.

In the sample system configuration just covered, you can see that the ATI video card uses some additional I/O port addresses, specifically 2EC–2EF. This is a problem because COM4: usually is configured as 2E8–2EF, which overlaps with the video card.

The video cards that use these addresses are not normally adjustable for this setting, so you either must change the address of COM4: to a nonstandard setting or disable COM4: and restrict yourself to using only three serial ports in the system.

If you do have a serial adapter that supports nonstandard I/O address settings for the serial ports, you must ensure that those settings are not used by other cards, and you must inform any software or drivers, such as those in Windows, of your nonstandard settings.

In many cases, USB or 10/100 Ethernet connections can be used to perform the tasks formerly handled by serial ports. If you no longer need serial ports for any devices in your system, I recommend that you disable the onboard serial ports, remove multiport serial cards, and assign the IRQs used by the serial ports in the BIOS to be available for PCI/AGP Plug and Play assignment. This helps eliminate any IRQ conflicts that could occur.

Universal Serial Bus

USB ports corresponding to USB 1.1 or USB 2.0 are now found on most motherboards, and Windows 98, Windows Me, Windows 2000, and Windows XP provide you with a wide range of operating systems that support them properly.

One potential problem is that USB takes another interrupt from your system, and many computers either don't have any free or are down to their last one. If your system supports PCI IRQ Steering, this shouldn't be much of a problem because the IRQ used by your USB controller should be sharable with other PCI devices.

If you are out of interrupts, you should look at what other devices you can disable (such as COM or LPT ports) to gain back a necessary interrupt for other devices.

The big advantage of either type of USB from an IRQ or a resource perspective is that the USB bus uses only one IRQ no matter how many devices (up to 127) are attached or how many USB ports are installed in your system. Therefore, you can freely add or remove devices from the USB without worrying about running out of resources or having resource conflicts.

If you aren't using any USB devices, you should turn off the port using your motherboard CMOS Setup so that the IRQ it was using will be freed. As we continue to move to USB-based keyboards, mice, modems, printers, and so on, the IRQ shortage will be less of a problem.

As we have already seen, the elimination of the ISA bus in our systems will also go a long way toward solving this problem. For the best performance—especially with high-capacity removable media, CD/DVD rewriteable drives, scanners, and printers—look for motherboards that have USB 2.0 (High-speed USB) ports.

These ports are also completely backward compatible with USB 1.1 devices and provide better performance when several USB devices are in use simultaneously. You can also add a USB 2.0 card to an existing motherboard to provide the same benefits to an existing system.

Miscellaneous Boards

Some video cards ship with advanced software that allows special video features, such as oversized desktops, custom monitors, switch modes on-the-fly, and so on. Unfortunately, this software requires that the card be configured to use an IRQ.

If your video card doesn't require an IRQ, I suggest you dispense with this unnecessary software and configure the card to free up the interrupt for other devices. However, keep in mind that many of the latest 3D accelerators must use an IRQ to enable their bus-mastering feature to work correctly. See your video card's manual for details.

Also related to video is the use of an MPEG decoder add-on card that works in addition to your normal graphics adapter. These are used more in specialized video production and editing and in playing DVD movies; however, they do use additional system resources that must be available.

If your CPU runs at speeds above 300MHz and you have an AGP video card, you can probably use your video card for DVD playback and remove the MPEG decoder card. You will need a DVD player program, which might be supplied with your video card. See your video card's manual for details.