IRQ, DMA, and I/O Memory Addresses For an extremely detailed explanation of Interrupts, DMA Channels, and I/O Memory Addresses, let the PC Guide be your teacher. There are FOUR things that cause SYSTEM CONFIGURATION CONFLICTS: 1. 2. 3. 4. IRQ signal lines being shared by devices DMA signal lines being shared I/O addresses being shared Memory addresses (ROM and/or RAM) being shared If you have Windows95 an easy way of finding what devices are using what IRQ's ior any of the above is to right click on the My Computer icon click on the Device Manager tab double click on the computer This will pull up all the device's and what IRQ's they are using or what IRQ's are free, I/O addresses, etc. Print out a brief or detailed summary record by clicking on the print button in the bottom right corner of the dialogue box. What is an IRQ (Interrupt Request Line)? An IRQ or Interrupt Request Line allows a hardware device inside of the computer a direct line to the microprocessor and tells the microprocessor to stop what it is doing when the device needs atttention. The interrupt request signals run along the IRQ lines to an INTERRUPT CONTROLLER that assigns priorities to incoming IRQs and delivers them to the CPU. The interrupt controller is hardware found on the motherboard in a larger chip as part of a chipset. A computer is limited to 15 IRQ's. IRQ's are prioritized in the computer according to the importance of the device (0, 1, 2, 8, 9, 10, 11, 12, 13, 14, 15, 3, 4, 5, 6, and 7). When the ISA expansion slot was created IRQ 9 - 15 was added to the original 8 IRQ's. If devices with the IRQ 10 - 15 require notice from the CPU, IRQ 9 sends a signal to IRQ2. IRQ2 then acts as a bridge and signals the CPU that a device with IRQ10 - 15 address needs attention. PCI slots differ in that they have their own interrupt controllers. ONE DEVICE PER IRQ: Since the interrupt controller expects signals from only one device per IRQ line, if you have more than one device sending IRQ signals along the same line, you may get an IRQ conflict that can freeze your machine. This is why assigning IRQs to new hardware as you install it is so important--and why it can be such a pain when it goes wrong. Luckily today's Plug'n Play (PnP) computers are supposed to assign IRQ's as a device is added, but this does not always occur as smoothly as it should, especially when replacing cards and conflicts sometimes arise. The CPU works at a much higher speed than the devices and therefore seems as through its is multitasking with more than one device, although the CPU is carrying out instructions one at a time. IRQ SHARING: If you have used all your IRQ's sometimes depending upon the device you can have the two device's sharing an IRQ, usually this will work if both devices do not request access at the same time. IRQ HANDLING: Usually when installing a new device you may come to an IRQ conflict which is when two devices in a computer are trying to use the same IRQ number and cause the devices not to work. To resolve an IRQ conflict one must take either the device that is causing the conflict and reassign it to another IRQ or take the new device and assign it to another IRQ. For example, it may be necessary to change the IRQ setting on an expansion card to free an IRQ for the modem. If your sound card is using IRQ5, you can reinstall it using IRQ11, and thus free IRQ5 for use by your modem. Most serial devices, including your modem, are incapable of operating at IRQs above 7. The IRQs with no assignment are often the target of SCSI, network, and sound cards. These are often the safest place to use for a new IRQ, but be sure it is not in use already. There are many charts online that give a summary of standard IRQ's for PC compatible computers. Below are a few. If you own a proprietary computer, such as, a Compaq or a Packard Bell, it is best to call technical support and ask which IRQ's are free, and any other information you should know regarding memory addresses. Compare the below charts and see those IRQ's that remain constant. Then print out a record of your home computer and/or a school computer and make further comparisons. Make note of which IRQ's are free for future use. STANDARD IRQs: IRQ ASSIGNMENT # NMI Reports memory parity errors 0 System timer 1 Keyboard 2 Cascade to (from?) IRQ 9 (Used by some VGA and network cards {NE2000}) 3 COM2 and COM4 4 COM1 and COM3 5 LPT2 6 Floppy disk controller 7 LPT1 8 Realtime clock 9 Software redirected to interrupt 0AH 10 11 Adaptec 154x SCSI controllers 12 13 Coprocessor 14 Primary IDE interface 15 Secondary IDE interface IRQ's and who gets them. Interrupt Who gets it, usually. IRQ0 System Timer This is a list of all the standard IRQs: 0 Reserved, Interval Timer IRQ1 Keyboard 1 Reserved, keyboard buffer full IRQ2 Some video cards IRQ3 COM2, COM4 2 Reserved, Cascade interrupt from slave PIC IRQ4 COM1, COM3 3 Serial Port 2 4 Serial Port 1 5 Parallel Port 2 IRQ5 Sound Card IRQ6 Floppy drive controller IRQ7 LPT1 (printer port) IRQ8 CMOS Clock 6 Floppy 7 Parallel Port 1 8 Real Time Clock 9 User available 10 User available 11 user available 12 Mouse port if enabled(PS/2), else user available 13 Reserved, Math coprocessor 14 IDE if enabled, else available to user 15 Secondary IDE if enabled, else user available IRQ9 Redirected to IRQ2 IRQ10 Free IRQ11 Free IRQ12 Free IRQ13 Math Coprocessor IRQ14 Hard Drive Controller IRQ15 Free DMA I/O ADDRESSES or CHANNELS Direct Memory Access (DMA) is another I/O interfacing technique. DMA controller transfers data from a drive or other peripheral device directly to the computer's memory without CPU intervention. A DMA controller is designed to service one or more Input/Output devices. Each service interface is called a channel. It takes the load of the processor and results in faster overall data transfer. The standard computer (PC) has two DMA controllers. The first controls channels 0,1,2,3 and the second channels 4,5,6,7. Thus we have 8 channels altogether. However, channel 4 is lost since it is used by the Direct Memory Access controller. The low channels 0-3 is so designated because they move one byte (8 bits) per transfer while the high channels moves 2 bytes per transfer. Refer to the PC Guide for a detailed recording of DMA channels and their assignments. I/O Addresses Each device needs a port address. It is a memory locations used by the device for interfacing with the computer. One number represents where the CPU goes to goes to get device information for processing and the second number tells the CPU where to send the informaton. Some devices are more intricate and need more memory addresses than others. Some devices might have a set of addresses being used for different functions while other have only one. The size of the address space may also vary from just one bit and up. Again the below chart gives a sample of I/O addresses assigned to particular devices. Refer to the PC Guide for a detailed account of addresses and their assignments. I/O ADDRESSES I/O Base Address DEVICE Common Device Usage With Typical I/O Address Range 000 - 01F 1st DMA Controller 8237 A-5 (000 - 01F) 020 - 03F 1st Interupt Controller 8259A, Master (020 - 03F) 040 - 05F 8254-2 (040 - 05F) 060 - 07F 8042, Keyboard (060 - 06F) Real Time Clock, NMI mask (070 - 07F) 080 - 09F DMA Page Register, 74LS612 (080 - 09F) DMA Ch 0 (087) DMA Ch 1 (083) DMA Ch 2 (081) DMA Ch 3 (082) DMA Ch 5 (08B) DMA Ch 6 (089) DMA Ch 7 (08A) Refresh (08F) 0A0 - 0BF 2nd Interupt Controller 8259A, Slave (0A0 - 0BF) 0C0 - 0DF 2nd DMA Controller 8237 A-5 (0C0 - 0DF) 0E0 - 0FF Clear 80287 Busy (0F0) Reset 80287 (0F1) 80287 Math Coprocessor (0F8 - 0FF) 100 - 11F 120 - 13F 140 - 15F 160 - 17F 180 - 19F 1A0 - 1BF 1C0 - 1DF 1E0 - 1FF Hard Disk (1F0 - 1F8) 200 - 21F Game Controller/Joystick (200 - 20F) Expansion Unit (210 - 217) 220 - 23F 240 - 25F 260 - 27F LPT 2 Parallel Port: (278 - 27F) 280 - 29F LCD display on Wyse 2108 PC SMC Elite default factory setting (280 - 29F) 2A0 - 2BF 2C0 - 2DF 2E0 - 2FF COM 4: (2E8 - 2EF) GPIB Adapter 0 (2E1) COM 2: (2F8 - 2FF) Data aquisition (2E2 - 2E3) 300 - 31F Prototype Card (300 - 31F) 3Com EtherLink default factory setting (300 - 31F) 320 - 33F XT Hard Disk Interface (320 - 32F) 340 - 35F 360 - 37F LPT 1 Parallel Port: (378 - 37F) 380 - 39F SLDC/Secondary Bi-Sync Interface (380 - 38C) 3A0 - 3BF Primary Bi-sync Interface (3A0 - 3A9) Monochrome Display (3B0 - 3BB) 3C0 - 3DF EGA Display Control (3C0 - 3CF) Colour/Graphics Display - CGA (3D0 - 3DF) 3E0 - 3FF COM 3: (3E8 - 3EF) Floppy disk controller (3F0 - 3F7) COM 1: (3F8 - 3FF) MAINTENANCE The first step to take is to inventory all of the IRQ's, DMA's, and I/O Addresses used by the system and by any additional user installed devices. You should also save the above information in a printed summary or as a file on your disk so that you can update and refer to it when needed. You can print a system summary from the device manager tab in from the Properties of My Computer. As a standard practice it is also a good idea to write a label with the IRQ for every device in your machine. Paste this either on the back or inside the case. Back to Hardware Components and their Function