The resources in a system are limited. Unfortunately, the demands on those resources seem to be unlimited. As you add more and more adapter cards to your system, you will find that the potential for resource conflicts increases. If your system is fully PnP-compatible, potential conflicts should be resolved automatically, but often are not. How do you know whether you have a resource conflict? Typically, one of the devices in your system stops working. Resource conflicts can exhibit themselves in other ways, though. Any of the following events could be diagnosed as a resource conflict:
Windows 9x/Me and Windows 2000/XP also show conflicts by highlighting a device in yellow or red in the Device Manager representation. By using the Windows Device Manager, you can usually spot the conflicts quickly. In the following sections, you learn some of the steps you can take to head off resource conflicts or track them down when they occur. Caution Be careful when diagnosing resource conflicts; a problem might not be a resource conflict at all, but a computer virus. Many computer viruses are designed to exhibit themselves as glitches or periodic problems. If you suspect a resource conflict, it might be worthwhile to run a virus check first to ensure that the system is clean. This procedure could save you hours of work and frustration. One way to resolve conflicts is to help prevent them in the first place. Especially if you are building up a new system, you can take several steps to avoid problems. One is to avoid using older ISA devices. By definition, they cannot share IRQs, and that is the resource most in demand. PCI (and AGP) cards can share IRQs with IRQ Steering and as such are a much better choice. Tip The serial, PS/2 mouse, and parallel ports still found in most recent systems are all ISA devices that cannot share IRQs. If you no longer use these ports, you can use these devices' IRQs for other devices if you
Another way you can help is to install cards in a particular sequence, and not all at once. Modifying the installation sequence often helps because many cards can use only one or two out of a predefined selection of IRQs that is specific to each brand or model of card. By installing the cards in a controlled sequence, the plug-and-play software can more easily work around IRQ conflicts caused by the default configurations of different cards. The first time you start up a new system you have assembled or done major upgrades on, the first thing you should check is the BIOS Setup. If you have a setting for PnP Operating System in your BIOS, be sure it is enabled if you are running an operating system with plug-and-play support, such as Windows 9x/Me/2000/XP. Otherwise, make sure it's disabled if you are running an OS that is not plug-and-play, such as Windows NT. On initial startup I recommend a minimum configuration with only the graphics card, memory, and storage drives (floppy, hard disk, CD-ROM, and DVD). This allows for the least possibility of system conflicts in the initial configuration. If your motherboard came with a CD including drivers specific to the chipset or other built-in features of the board, now is the time to load or install them. Complete the configuration of all built-in devices before installing any other cards or external devices. After the basic system has been configured (and after you have successfully loaded your operating system and any updates or patches), you can then begin adding one device at a time in a specific order. So, you will power down, install the new device, power up, and proceed to install any necessary drivers and configure the device. You'll probably have to restart your system after you are done to fully complete the configuration. Tip I sometimes recommend that between installing devices you enter the Device Manager in Windows and print out the resource settings as they are configured at the time. This way you have a record of how the configuration changes during the entire device installation and configuration process. Here's the loading sequence for additional cards:
Normally, using this controlled sequence of configuring or building up your system results in easier integration with less conflicts and configuration hassles. Resolving Conflicts ManuallyIn the past, the only way to resolve conflicts manually was to take the cover off your system and start changing switches or jumper settings on the adapter cards. Fortunately, this is a bit easier with plug-and-play because all the configuration is done via the Device Manager software included in the operating system. Although some early plug-and-play cards also had jumper switches or setup options to enable them to be configured manually, this feature was found primarily on ISA PnP-compatible cards. Be sure you write down or print out your current system settings before you start making changes. That way, you will know where you began and can go back to the original configuration (if necessary). Finally, dig out the manuals for all your adapter boards; you might need them, particularly if they can be configured manually or be switched to PnP mode. Additionally, you could look for more current information online at the manufacturers' websites. Now you are ready to begin your detective work. As you try various resource settings, keep the following questions in mind; the answers will help you narrow down the conflict areas:
Whenever you make changes in your system, reboot and see whether the problem persists. When you believe that you have solved the problem, be sure to test all your software. Fixing one problem often seems to cause another to crop up. The only way to ensure that all problems are resolved is to test everything in your system. One of the best pieces of advice I can give you is to try changing one thing at a time, and then retest. That is the most methodical and the simplest way to isolate a problem quickly and efficiently. As you attempt to resolve your resource conflicts, you should work with and update a system-configuration template, as discussed in the following section. Using a System-Configuration TemplateA system-configuration template is helpful because remembering something that is written down is easier than keeping it in your head. To create a configuration template, you need to start writing down which resources are used by which parts of your system. Then, when you need to make a change or add an adapter, you can quickly determine where conflicts might arise. You can also use the Windows 9x/Me/2000/XP Device Manager to list and print this information. I like to use a worksheet split into three main areasone for interrupts, another for DMA channels, and a middle area for devices that do not use interrupts. Each section lists the IRQ or DMA channel on the left and the I/O port device range on the right. This way, I get the clearest picture of which resources are used and which ones are available in a given system. The next page shows the system-configuration template I have developed over the years and still use almost daily. This type of configuration sheet is resource based instead of component based. Each row in the template represents a different resource and lists the component using the resource as well as the resources used. The chart has pre-entered all the fixed items in a modern PC for which the configuration cannot be changed. To fill out this type of chart, you would perform the following steps:
Of course, a template such as this is best used when first installing components, not after. After you have it completely filled out to match your system, you can label it and keep it with the system. Whenever you add more devices, the template will be your guide as to how any new devices should be configured if you need to configure devices manually. Note Thanks to plug-and-play configuration, the days of fixed IRQ and other hardware resources are receding into the past. Don't be surprised if your system has assigned different IRQ, I/O port address, or DMA settings after you install a new card. That's why I recommend recording information both before and after you add a new device to your system. You also might want to track which PCI slot is used by a particular card because some systems convert PCI IRQs to different ISA IRQs depending on which slot is used for a card. Also, some systems pair PCI slots or might pair the AGP slot and a PCI slot, assigning cards installed in both paired slots to the same ISA IRQ. Check the system or motherboard documentation to determine which slots and onboard devices share a particular IRQ. Page 397 shows the same template filled out for a typical PC system with a mixture of PCI and ISA devices.
As you can see from this template, only one IRQ and two DMA channels remain available, and that would be no IRQs if I enabled the USB on the motherboard! As you can see, interrupt shortages are a big problem in modern systems, particularly when ISA and PCI devices are in use. In that case, I would probably find a way to recover one of the other interrupts; for example, I am not really using COM1, so I could disable that port and gain back IRQ4. In this sample configuration, the primary and secondary IDE connectors were built in to the motherboard:
Whether these devices are built in to the motherboard or on a separate card makes no difference because the resource allocations are the same in either case. All default settings are typically used for these devices and are indicated in the completed configuration. Next, the accessory cards were configured. In this example, the following cards were installed:
It helps to install the cards in this order. Start with the video card; next, add the sound card. Because of problems with software that must be configured to the sound card, it is best to install it early and ensure that only default settings are used. It is better to change settings on cards other than the sound card. After the sound card, the SCSI adapter was installed; however, the default I/O port addresses (330331) and DMA channel (DMA 5) used were in conflict with other cards (mainly the sound card). These settings were changed to their next logical settings that did not cause a conflict. Finally, the network card was installed, which also had default settings that conflicted with other cards. In this case, the Ethernet card came preconfigured to IRQ3, which was already in use by COM2:. The solution was to change the setting, and IRQ9 was the next logical choice in the card's configuration settings. Even though this is a fully loaded configuration, only three individual items among all the cards had to be changed to achieve an optimum system configuration. As you can see, using a configuration template such as the one shown can make what would otherwise be a jumble of settings lay out in an easy-to-follow manner. The only real problems you will run into after you work with these templates are cards that do not allow for enough adjustment in their settings or cards that are lacking in documentation. As you can imagine, you will need the documentation for each adapter card, as well as the motherboard, to accurately complete a configuration table such as the one shown. Tip Do not rely too much on third-party DOS-based software diagnostics, such as MSD.EXE, which claim to be capable of showing hardware settings such as IRQ and I/O port settings. Even though they can be helpful in certain situations, they are often wrong with respect to at least some of the information they display about your system. One or two items shown incorrectly can be very troublesome if you believe the incorrect information and configure your system based on it! Some third-party products such as AMIDiag and CheckIt do a better job, but a much better utility to view these settings is the Device Manager built in to Windows 9x/Me/2000/XP. With plug-and-play hardware, it not only reports settings, but it allows you to change them in some cases (sometimes this requires moving the card to another PCI slot). On older legacy hardware, you can view the settings but not change them. To change the settings of legacy (nonplug-and-play) hardware, you must manually move jumpers or switches and run the special configuration software that came with the card. Consult the card manufacturer or documentation for more information. Heading Off Problems: Special BoardsA 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. As mentioned in the preceding section, 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, particularly if you are still using ISA boards. 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. Note Although PCI cards also use all the resources discussed earlier except DMA channels, most are designed to use any available resource. Thus, the resources used by a particular PCI card are controlled less by the card's design than by the configuration of the particular system in use. For example, if IRQ3 or IRQ4 (normally set aside for use by COM2 and COM1) are not used by COM ports and are made available for PCI/PnP use on a given system, a PCI card might use one of these IRQs. However, on a system that has only IRQ9, IRQ10, and IRQ11 available for PCI/PnP configuration, the identical card might use one of these IRQs instead. In addition, some systems assign different IRQs to different PCI expansion slots. The following sections 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 CardsSound 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 4.84 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.
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 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-playcompatible 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. Tip The best advice I can give you for installing a sound card is to put the sound card in before all other cardsexcept for video. In other words, let the sound card retain all its default settings if you can. Try to change the settings of other adapters when a conflict with the sound card arises. The problem here is that many older programs that use sound are very poorly written with respect to supporting alternative resource settings on sound cards. Save yourself some grief, and let the sound card have its way! Even the latest sound cards can have problems if they're installed after other cards. I know a user who had to remove all his plug-and-play cards before his system would recognize his plug-and-play sound card. If your system has integrated sound but you prefer to use a sound card, don't forget to use the BIOS configuration program to disable onboard sound before you install the sound card. One example of a potential soundboard conflict is the combination of a Sound Blaster 16 and an Adaptec SCSI adapter, as I noted earlier in this chapter. The Sound and SCSI adapters conflict on DMA 5 as well as on I/O ports 330331. 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 reason to use the defaults for the sound card is that some older (mostly DOS-based) software often assumes default settings for sound hardware and won't work when alternative settings are used. However, devices that use SCSI ports can use any available setting. 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. Tip The newer PCI sound cards are largely incompatible with older DOS-based software because they don't use DMA channels like their ISA counterparts. If you don't update your software to 32-bit Windows versions, you won't be able to use these newer PCI bus sound cards. Most of the newer PCI cards do include an emulation program that allows the card to work with older DMA-dependent software, but the results are often problematic. If you use integrated sound, the drivers for your motherboard might include a Sound Blaster emulation driver. For the best results, use the PC/PCI connector found on some motherboards to connect a patch cable to a PC/PCI-compatible sound card. The PC/PCI connector enables the sound card to use ISA-style DMA channels without clumsy emulation software. SCSI Adapter BoardsSCSI 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. Note Some ISA-based SCSI and network cards can be configured to work in PnP mode or use manual configuration settings. With these cards, you can use the configuration method you prefer. If PnP doesn't work, set the card manually (through jumpers, DIP switches, or software). Network Interface CardsNetworks 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 AdaptersA 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. 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 cardssuch as those offered by Byte Runner Technologiesallow "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. Some video chipsets use 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 2EC2EF. This is a problem because COM4: usually is configured as 2E82EF, 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 BusUSB 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 (in some cases, more than one), 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 on systems with a single USB controller. Some systems with multiple USB controllers use additional IRQs, but USB controllers can share IRQs with each other or with other PCI devices. 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 performanceespecially with high-capacity removable media, CD/DVD rewriteable drives, scanners, and printerslook 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 BoardsSome 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. Plug-and-Play SystemsPlug and Play (PnP) represents a major revolution in interface technology. PnP first came on the market in 1995, and most motherboards and adapter cards since 1996 take advantage of it. Prior to that, PC users were forced to muddle through a nightmare of DIP switches and jumpers every time they wanted to add new devices to their systems. The results, all too often, were system resource conflicts and nonfunctioning cards. PnP was not an entirely new concept. It was a key design feature of MCA and EISA interfaces that preceded it by almost 10 years, but the limited appeal of MCA and EISA meant that they never became true de facto industry standards. Therefore, mainstream PC users still had to worry about I/O addresses, DMA channels, and IRQ settings. Early PCI-based systems also used a form of PnP configuration, but because there was no provision for managing conflicts between PCI and ISA cards, many users still had configuration problems. But now that PnP has become prevalent, worry-free hardware setup is available to all computer buyers. For PnP to work, the following components are desired:
Each of these components needs to be PnP-compatible, meaning that it complies with the PnP specifications. The Hardware ComponentThe hardware component refers to both computer systems and adapter cards. The term does not mean, however, that you can't use your older ISA adapter cards (referred to as legacy cards) in a PnP system. You can use these cards; in fact, your PnP BIOS automatically reassigns PnP-compatible cards around existing legacy components. Also, many late-model ISA cards can be switched into PnP-compatible mode. PnP adapter cards communicate with the system BIOS and the operating system to convey information about which system resources are necessary. The BIOS and operating system, in turn, resolve conflicts (wherever possible) and inform the adapter card which specific resources it should use. The adapter card then can modify its configuration to use the specified resources. The BIOS ComponentThe BIOS component means that most users of pre-1996 PCs need to update their BIOSs or purchase new machines that have PnP BIOSs. For a BIOS to be compatible, it must support 13 additional system function calls, which can be used by the OS component of a PnP system. The PnP BIOS specification was developed jointly by Compaq, Intel, and Phoenix Technologies. The PnP features of the BIOS are implemented through an expanded POST. The BIOS is responsible for identification, isolation, and possible configuration of PnP adapter cards. The BIOS accomplishes these tasks by performing the following steps:
The Operating System ComponentThe operating system component is found in most modern operating systems, such as Windows 9x/Me/2000/XP. In some cases system manufacturers have provided extensions to the operating system for their specific hardware. Such is especially true for notebook systems, for example. Be sure you load these extensions if they are required by your system. It is the responsibility of the operating system to inform users of conflicts that can't be resolved by the BIOS. Depending on the sophistication of the operating system, the user then could configure the offending cards manually (onscreen) or turn off the system and set switches on the physical cards. When the system is restarted, the system is checked for remaining (or new) conflicts, any of which are brought to the user's attention. Through this repetitive process, all system conflicts are resolved. Note Because of revisions in some of the Plug and Play specifications, especially the ACPI specification, it can help to ensure you are running the latest BIOS and drivers for your system. With the Flash ROM used in most PnP systems, you can download the new BIOS image from the system vendor or manufacturer and run the supplied BIOS update program. |