Toaster
07-31-2000, 09:03 PM
Hi folks,
I keep seeing this type post over and over and thought i`d go into some detail to shed light on "system resources". These resources are finite and when exhausted *will* cause problems when another device/adaptor is installed. PNP or "plug and pray" is a BIOS function that attempts to allocate resources automaticaly. In many cases it works and works well. However, sometimes it does not.
Each PNP capable device has a "perferred" setting, a secondary setting, a tertiary setting and a fall back setting in which all control is handed over to the BIOS and a PNP O/S (like win9x and many others).
When there are free interupts available, the device requests a particular interupt. If it`s available, the requested interupt is allocated to that device and all is well.
However, when a requested interupt is already allocated, the device reverts to a secondary choice and if this is not available a tertiary interupt request is made. Failing this, the device hands control to the system BIOS and O/S and "takes what it gets". This is not the best solution because the device may "jocky" for its primary choice by contantly quizzing the O/S and BIOS. Should a perferred IRQ (Interupt) become available, the device is granted access to the IRQ. Otherwise it keeps "jokeying" and quizzing waisting CPU time and using system bus bandwidth. This can cost well above 20% of CPU time, iv`e seen over 40% on several occaision. If a device gets its primary choice, the system becomes stable and the device doesn`t jocky for it`s primary IRQ request. Often, if the device is granted its secondary IRQ request the system stabilizes and minimal "jockying" is done.
Here is a list of common IRQ`s and ones you CAN NOT change. Those marked with "*" are system IRQ`s and those unmarked are "user device" available IRQ`s:
(*) IRQ0=system timer
This IRQ does NOT appear on the I/O bus and CAN NOT be allocated by the user.
(*) IRQ1=system keyboard
Same details as IRQ0.
IRQ2=Interupt controller and a "gateway" to 16bit IRQ`s (10 and up). Most adaptors dont allow you to allocate this IRQ, some do.
If a device allows this IRQ to be used, it often if not always is "rerouted" to IRQ9.
IRQ3= async port/serial port. This IRQ can be disabled in many BIOS`s and may be reclaimed.
It is common for this IRQ to be associated with Comm2 when comm2`s address is 2F8.
IRQ4= async port/serial port. Same details as IRQ3 except if associated with a comm port, its address should be 3F8. Otherwise the function and "usability" of IRQ3 and 4 are identical.
IRQ5= open for add-on devices. This is the primary IRQ for sound cards and LPT2. If you do NOT have a second parr. port, assign your sond card to this IRQ for optimum compatability with gaming software.
*ANY* "soundblaster" sound card should be associated with this IRQ as a primary IRQ.
(*)IRQ6= Floppy interface static IRQ.
This IRQ is not available on the I/O bus *unless* any onboard floppy controller is disabled and a floppy controller is installed in an I/O slot. Otherwise, this is a "system" IRQ and can NOT be otherwise allocated to any device.
IRQ7= Primary LPT (printer) port.
This IRQ is a "standard" IRQ on almost all systems. It DOES appear on the bus and can be allocated if any onboard device does not claim it. Some devices co-exist with IRQ7 *AND* the installed LPT port because on many systems the LPT port is not always "active".
This varies from manufacturer to manufacturer.
(*)IRQ8 RTC (real time clock)
This IRQ does NOT appear on the I/O bus and can NOT be allocated for user devices. This is the "system" clock to keep CMOS time and accessing CMOS data.
IRQ9= Cascade to IRQ2. The "gateway" to 8bit IRQ`s. This IRQ DOES appear on the I/O bus and on many systems it may be allocated by the user for devices.
Most systems allow the use of this IRQ, some do not. I found this to be an IDEAL IRQ for net cards and most SCSI cards that allow its use. This is what I call a "low latency" IRQ because it`s actually allocated by the system but has ample "time" remaining for user use.
Sond card should not be allocated here except those that use an IRQ for "soundblaster" copatability. (midi)
IRQ10= open for user use.
This is a "free" IRQ. It is often the first choice of net cards and vid-cards. All devices can use this IRQ that require a "high" IRQ. This is the start of the "high" or 16bit IRQ`s. (low IRQ`s are 9 and lower)
SCSI cards, add-in IDE cards, vid-cards amongst others consider this IRQ a "primary" choice. "hard set" net cards often default to this IRQ. Soundblaster 16bit and higher cards use this as a secondary IRQ and perform well should IRQ5 be not available.
This could be called a "general purpose" IRQ as most 16bit and higher device perform well here.
IRQ11=Open or "free" for add-on devices.
Same as for IRQ10. Video often "jokeys" for this IRQ and is considered a secondary choice for many devices. This is NOT a suitable choise for sound cards because the card will "jokey" for its primary choise and eat CPU cycles. Great for, SCSI, video and net card umongst many others. Another "general purpose" IRQ.
IRQ12= Actually a free IRQ but the computer community assigned the mouse port to this IRQ. This can be disabled in BIOS as it appears on the I/O bus. Mouse "aware" programs look to this IRQ for the presence of a "pointing device". It is VERY unwise to share or otherwise "move" the pointing device from this IRQ unless a serial mouse is used. In this case, IRQ12 can be freed and made available.
(*)IRQ13= Numeric data processor.
The math chip within your CPU REQUIRES this IRQ to function. It does NOT appear on the I/O bus and can NOT be allocated. This is a hold back from "IBM compatible" days as all software looks to this IRQ for "high math" support. There are a few exceptions to this, but not with "todays" systems.
IRQ14= Primary hard disk controller.
All software calls this IRQ for disk activity. Another hold back from the IMB-AT days when a hard disk controller HAD TO HAVE this IRQ to enable the system to boot from a HDD. Only BIOS controlled HDD controllers can escape this. SCSI and other interfaces that have "on board" BIOS support can access the HDD with other then this IRQ. This IRQ is available on the I/O bus.
(again there are exceptions but I wont go into it to retain clarity)
IRQ15=free interupt UNLESS a secondary hard disk port/controller is installed.
This is in basics the same as IRQ14 in every function. However, a secondary HDD controller/port is almost always allocated here. Should this IRQ be free on your system because you choose not to use the secondary port, many devices will "jocky" for this IRQ because it is services FIRST and gets more then its share of CPU time.
If available, SCSI and other "controller" type devices will attempt to allocate this IRQ for its uses. Net cards often attempt to claim this IRQ.
IRQ`s are "prioritized" in that the higher IRQ`s are serviced first by the CPU to give a device using this IRQ a chance for the I/O bus to move data.
Ideal choices are SCSI, IDE, and "other" high latency devices.
I hope this was useful.
These IRQ`s date back to the 286 and have since gone unchanged. While big surprizes are in store a year or so down the road, this is the way it is......for now.
I keep seeing this type post over and over and thought i`d go into some detail to shed light on "system resources". These resources are finite and when exhausted *will* cause problems when another device/adaptor is installed. PNP or "plug and pray" is a BIOS function that attempts to allocate resources automaticaly. In many cases it works and works well. However, sometimes it does not.
Each PNP capable device has a "perferred" setting, a secondary setting, a tertiary setting and a fall back setting in which all control is handed over to the BIOS and a PNP O/S (like win9x and many others).
When there are free interupts available, the device requests a particular interupt. If it`s available, the requested interupt is allocated to that device and all is well.
However, when a requested interupt is already allocated, the device reverts to a secondary choice and if this is not available a tertiary interupt request is made. Failing this, the device hands control to the system BIOS and O/S and "takes what it gets". This is not the best solution because the device may "jocky" for its primary choice by contantly quizzing the O/S and BIOS. Should a perferred IRQ (Interupt) become available, the device is granted access to the IRQ. Otherwise it keeps "jokeying" and quizzing waisting CPU time and using system bus bandwidth. This can cost well above 20% of CPU time, iv`e seen over 40% on several occaision. If a device gets its primary choice, the system becomes stable and the device doesn`t jocky for it`s primary IRQ request. Often, if the device is granted its secondary IRQ request the system stabilizes and minimal "jockying" is done.
Here is a list of common IRQ`s and ones you CAN NOT change. Those marked with "*" are system IRQ`s and those unmarked are "user device" available IRQ`s:
(*) IRQ0=system timer
This IRQ does NOT appear on the I/O bus and CAN NOT be allocated by the user.
(*) IRQ1=system keyboard
Same details as IRQ0.
IRQ2=Interupt controller and a "gateway" to 16bit IRQ`s (10 and up). Most adaptors dont allow you to allocate this IRQ, some do.
If a device allows this IRQ to be used, it often if not always is "rerouted" to IRQ9.
IRQ3= async port/serial port. This IRQ can be disabled in many BIOS`s and may be reclaimed.
It is common for this IRQ to be associated with Comm2 when comm2`s address is 2F8.
IRQ4= async port/serial port. Same details as IRQ3 except if associated with a comm port, its address should be 3F8. Otherwise the function and "usability" of IRQ3 and 4 are identical.
IRQ5= open for add-on devices. This is the primary IRQ for sound cards and LPT2. If you do NOT have a second parr. port, assign your sond card to this IRQ for optimum compatability with gaming software.
*ANY* "soundblaster" sound card should be associated with this IRQ as a primary IRQ.
(*)IRQ6= Floppy interface static IRQ.
This IRQ is not available on the I/O bus *unless* any onboard floppy controller is disabled and a floppy controller is installed in an I/O slot. Otherwise, this is a "system" IRQ and can NOT be otherwise allocated to any device.
IRQ7= Primary LPT (printer) port.
This IRQ is a "standard" IRQ on almost all systems. It DOES appear on the bus and can be allocated if any onboard device does not claim it. Some devices co-exist with IRQ7 *AND* the installed LPT port because on many systems the LPT port is not always "active".
This varies from manufacturer to manufacturer.
(*)IRQ8 RTC (real time clock)
This IRQ does NOT appear on the I/O bus and can NOT be allocated for user devices. This is the "system" clock to keep CMOS time and accessing CMOS data.
IRQ9= Cascade to IRQ2. The "gateway" to 8bit IRQ`s. This IRQ DOES appear on the I/O bus and on many systems it may be allocated by the user for devices.
Most systems allow the use of this IRQ, some do not. I found this to be an IDEAL IRQ for net cards and most SCSI cards that allow its use. This is what I call a "low latency" IRQ because it`s actually allocated by the system but has ample "time" remaining for user use.
Sond card should not be allocated here except those that use an IRQ for "soundblaster" copatability. (midi)
IRQ10= open for user use.
This is a "free" IRQ. It is often the first choice of net cards and vid-cards. All devices can use this IRQ that require a "high" IRQ. This is the start of the "high" or 16bit IRQ`s. (low IRQ`s are 9 and lower)
SCSI cards, add-in IDE cards, vid-cards amongst others consider this IRQ a "primary" choice. "hard set" net cards often default to this IRQ. Soundblaster 16bit and higher cards use this as a secondary IRQ and perform well should IRQ5 be not available.
This could be called a "general purpose" IRQ as most 16bit and higher device perform well here.
IRQ11=Open or "free" for add-on devices.
Same as for IRQ10. Video often "jokeys" for this IRQ and is considered a secondary choice for many devices. This is NOT a suitable choise for sound cards because the card will "jokey" for its primary choise and eat CPU cycles. Great for, SCSI, video and net card umongst many others. Another "general purpose" IRQ.
IRQ12= Actually a free IRQ but the computer community assigned the mouse port to this IRQ. This can be disabled in BIOS as it appears on the I/O bus. Mouse "aware" programs look to this IRQ for the presence of a "pointing device". It is VERY unwise to share or otherwise "move" the pointing device from this IRQ unless a serial mouse is used. In this case, IRQ12 can be freed and made available.
(*)IRQ13= Numeric data processor.
The math chip within your CPU REQUIRES this IRQ to function. It does NOT appear on the I/O bus and can NOT be allocated. This is a hold back from "IBM compatible" days as all software looks to this IRQ for "high math" support. There are a few exceptions to this, but not with "todays" systems.
IRQ14= Primary hard disk controller.
All software calls this IRQ for disk activity. Another hold back from the IMB-AT days when a hard disk controller HAD TO HAVE this IRQ to enable the system to boot from a HDD. Only BIOS controlled HDD controllers can escape this. SCSI and other interfaces that have "on board" BIOS support can access the HDD with other then this IRQ. This IRQ is available on the I/O bus.
(again there are exceptions but I wont go into it to retain clarity)
IRQ15=free interupt UNLESS a secondary hard disk port/controller is installed.
This is in basics the same as IRQ14 in every function. However, a secondary HDD controller/port is almost always allocated here. Should this IRQ be free on your system because you choose not to use the secondary port, many devices will "jocky" for this IRQ because it is services FIRST and gets more then its share of CPU time.
If available, SCSI and other "controller" type devices will attempt to allocate this IRQ for its uses. Net cards often attempt to claim this IRQ.
IRQ`s are "prioritized" in that the higher IRQ`s are serviced first by the CPU to give a device using this IRQ a chance for the I/O bus to move data.
Ideal choices are SCSI, IDE, and "other" high latency devices.
I hope this was useful.
These IRQ`s date back to the 286 and have since gone unchanged. While big surprizes are in store a year or so down the road, this is the way it is......for now.