ISA/PCI Question...IRQ Sharing

M

Matteo

Guest
* Why are level sensitive interrupt signals generated by devices,
instead of edge sensitive signals?

* Why must a PCI bus be implemented rather than ISA?

* Couple a non PNP adapter card share an IRQ?

Been searching for some definitie answers, but found mostly just very
brief general overviews

Thanks,
Matteo
 
On Mon, 27 Oct 2003 00:51:49 +0800, "Matteo" <matteo-at-iinet-dot-net-dot-au>
wrote:

* Why are level sensitive interrupt signals generated by devices,
instead of edge sensitive signals?
Old hardware, usually

* Why must a PCI bus be implemented rather than ISA?
Greater speed and better control

* Couple a non PNP adapter card share an IRQ?
Software dependent

Been searching for some definitie answers, but found mostly just very
brief general overviews

Thanks,
Matteo
 
Matteo <matteo-at-iinet-dot-net-dot-au> wrote in message
news:3f9bfbe7$0$23595$5a62ac22@freenews.iinet.net.au...

* Why are level sensitive interrupt signals generated
by devices, instead of edge sensitive signals?
Because thats a better, more reliable system.

* Why must a PCI bus be implemented rather than ISA?
PCI has much more capability.

* Couple a non PNP adapter card share an IRQ?
In theory, yes. In practice there arent any non
PNP cards that can share an IRQ in the sense of
both using the IRQ simultaneously as opposed to
one or the other card using a single IRQ at a time.

Been searching for some definitie answers, but
found mostly just very brief general overviews
 
"Matteo" <matteo-at-iinet-dot-net-dot-au> wrote in message
news:3f9bfbe7$0$23595$5a62ac22@freenews.iinet.net.au...
* Why are level sensitive interrupt signals generated by devices,
instead of edge sensitive signals?
Why ? Why not ?

It seems to be straightforward to use level sensitive, and no real benefit
to be stuffed doing edge sensitive.

* Why must a PCI bus be implemented rather than ISA?
Because ISA was 8 bit, and then 16 bit data.

It was 8Mhz, which is slow.


It had a limitted address range too, limited to the first 16 megabytes. Your
main ram had to share this range.
Without any fancy tricks, there were only about 128K to use for access to
ISA devices - this was the area between 640k and 1024k that was dedicated to
IO devices.

ISA video cards used "bank switching" to allow access to the full 1 or
2megabytes of video ram. They used a 64k block of addresses in the IO area
and that block of addresses was changed via IO registers to point to
different places in the video ram.

Some ISA devices, such as video capture cards, did use the address range
between 15M and 16M to provide a 1 megabyte sized buffer. Your motherboard
has to support "memory hole" for this to work. And your OS has to support it
too.


PCI doesnt add interrupts, but it does allow sharing interrupts.
It also allows recognition and configuration of the resources used by the
cards.

The memory address range is increased dramatically, to allow fast and
efficient access to dual port memory on the cards, with linear fashion.

* Couple a non PNP adapter card share an IRQ?
Well not at the same time. The main reason is that people who wrote device
drivers assumed that ISA cards would not share IRQ's.

There was the potential for an electrical conflict (a short circuit, by
having one device trying to send the IRQ line to 5volts, and another
shorting it to earth to hold it at 0 volts) but in practice the conflict
isnt destructive.


Sharing of PNP ISA irq's is also a problem., isnt it ?

Been searching for some definitie answers, but found mostly just very
brief general overviews

Thanks,
Matteo
 
"Leon The Peon" <noemail@nowhere.com> wrote in message news:bniacd$3eh$1@seagoon.newcastle.edu.au...
"Matteo" <matteo-at-iinet-dot-net-dot-au> wrote in message
news:3f9bfbe7$0$23595$5a62ac22@freenews.iinet.net.au...
* Why are level sensitive interrupt signals generated by devices,
instead of edge sensitive signals?

Why ? Why not ?

It seems to be straightforward to use level sensitive, and no real benefit
to be stuffed doing edge sensitive.

* Why must a PCI bus be implemented rather than ISA?

Because ISA was 8 bit, and then 16 bit data.

It was 8Mhz, which is slow.


It had a limitted address range too, limited to the first 16 megabytes. Your
main ram had to share this range.
Without any fancy tricks, there were only about 128K to use for access to
ISA devices - this was the area between 640k and 1024k that was dedicated to
IO devices.

ISA video cards used "bank switching" to allow access to the full 1 or
2megabytes of video ram. They used a 64k block of addresses in the IO area
and that block of addresses was changed via IO registers to point to
different places in the video ram.

Some ISA devices, such as video capture cards, did use the address range
between 15M and 16M to provide a 1 megabyte sized buffer. Your motherboard
has to support "memory hole" for this to work. And your OS has to support it
too.


PCI doesnt add interrupts, but it does allow sharing interrupts.
It also allows recognition and configuration of the resources used by the
cards.

The memory address range is increased dramatically, to allow fast and
efficient access to dual port memory on the cards, with linear fashion.

* Couple a non PNP adapter card share an IRQ?

Well not at the same time. The main reason is that people who
wrote device drivers assumed that ISA cards would not share IRQ's.
Nope, the main reason is because ISA cant do it.

PCI can.

There was the potential for an electrical conflict (a short circuit,
by having one device trying to send the IRQ line to 5volts,
Nope, that doesnt produce a short circuit.

and another shorting it to earth to hold it at 0 volts)
but in practice the conflict isnt destructive.
Because it isnt a short circuit.

Sharing of PNP ISA irq's is also a problem., isnt it ?

Been searching for some definitie answers, but found mostly just very
brief general overviews

Thanks,
Matteo
 
PCs were built with the assumption that IRQs would not be shared. Many
cards used 74LS125 chips to drive the IRQ lines - these are wired to pull up
hard, but disconnect from the IRQ line instead of pulling it down. I think
this would have prevented damage when 2 or more cards shared an interupt
line, even if the cards tended not to work properly.

The *rising* edge of the IRQ signal triggers the Peripheral Interrupt
Controller, but the card has to hold the line high until the interrupt is
serviced.

I have schematics for ISA cards which are supposed to share an interrupt,
but the circuit looks suspect - weird stuff with monostables driving the IRQ
line - it probably worked with multiple cards of the same type from the same
manufacturer. Even then, you had to write a special interrupt handler,
which went and read the registers in the chips on the cards to see which
ones had an interrupt waiting to be serviced.

I used to stack machines with cards and write the interrupt handlers, and I
took a lot of trouble to make sure that no interrupts were shared between
cards. Even then, you could have 2 or 3 chips on a single ISA card, all
sharing an IRQ and the interrupt handler had to check all chips on the board
to see if an interrupt was waiting service.

All this was DOS stuff with ISA.

I don't know enough about PCI to comment on how the interrupts are handled,
but I get the feeling that there is provision to work out exactly which card
caused a particular interrupt, even if that interrupt is shared. PCI
interrupts are not shared in the sense that they pull the same IRQ line -
rather the separate card interrupts are channelled to the interrupt
controller in a software configurable way.

I have found it easy to use PCI cards under Windows - install the device
driver supplied by the manufacturer. Write your Windows program in VB,
Delphi, C/C++ etc and communicate with the card using the supplied DLL.
Under Windows, you can't easily do time critical stuff the way you could
under DOS.

Nowadays, I try to keep time-critical stuff running in an external
microprocessor outside the PC, and run Windows as a human interface
communicating with the PC via RS232 etc. However, people are still using a
PC running DOS for real time work.

The ISA bus is dying out as manufacturers move to PCI.

Roger



"Matteo" <matteo-at-iinet-dot-net-dot-au> wrote in message
news:3f9bfbe7$0$23595$5a62ac22@freenews.iinet.net.au...
* Why are level sensitive interrupt signals generated by devices,
instead of edge sensitive signals?

* Why must a PCI bus be implemented rather than ISA?

* Couple a non PNP adapter card share an IRQ?

Been searching for some definitie answers, but found mostly just very
brief general overviews

Thanks,
Matteo
 
Rod Speed wrote:
Well not at the same time. The main reason is that people who
wrote device drivers assumed that ISA cards would not share IRQ's.
Nope, the main reason is because ISA cant do it.
PCI can.
Really? wow, that machine sitting next to me running ISA modem and ISA
sound card on the same IRQ must be worth a heap... as it seems to e
doing the impossible.

It also depends on the OS that you are using, XP can force them to use
the same IRQ's.
 
In aus.computers T.N.O. <news@dave.net.nz> wrote:
Rod Speed wrote:
Well not at the same time. The main reason is that people who
wrote device drivers assumed that ISA cards would not share IRQ's.
Nope, the main reason is because ISA cant do it.
PCI can.
Really? wow, that machine sitting next to me running ISA modem and ISA
sound card on the same IRQ must be worth a heap... as it seems to e
doing the impossible.
[...]

What wodree meant "it's impossible for isa to support shared irqs except in
some circumastances". ;-)

If the devices are on different cards, a shared ISA IRQ is effectively
a wired-and. I.e. it will only be seen if all devices access at the
same time (more or less).

But shared IRQ's on the same ISA card is, of course, quite another matter.
 
T.N.O. <news@dave.net.nz> wrote in message
news:3f9cdd79@news.iconz.co.nz...
Rod Speed wrote:

Well not at the same time. The main reason is that people who
wrote device drivers assumed that ISA cards would not share IRQ's.

Nope, the main reason is because ISA cant do it.
PCI can.

Really? wow, that machine sitting next to me running
ISA modem and ISA sound card on the same IRQ must
be worth a heap... as it seems to be doing the impossible.
Nope, you just dont notice the problem with sharing an IRQ with those devices.

It also depends on the OS that you are using,
Nope.

XP can force them to use the same IRQ's.
Even dos can use the same IRQ for two ISA devices.

Doesnt do a damned thing about the problem at the electrical level tho.
 
The ISA bus is dying out as manufacturers move to PCI.

And a crying shame that there are so few motherboards that can handle an ISA
card.

I payed my hard earnt dollars for one that has one ISA slot and it restricts
me to onboard sound and video and to an AMD chip, but I needed it so I could
keep my old gear running 'cause I didn't want to spend an even bigger
fortune upgrading all my extra bits like scsi scanners.

Peter
 
Bubby wrote:
I payed my hard earnt dollars for one that has one ISA slot and it restricts
me to onboard sound and video and to an AMD chip, but I needed it so I could
keep my old gear running 'cause I didn't want to spend an even bigger
fortune upgrading all my extra bits like scsi scanners.
There is still a P4 mobo that has ISA. ~$500 NZ
 
On Tue, 28 Oct 2003 20:37:11 +1000, "Bubby" <please@reply.to.group>
wrote:

The ISA bus is dying out as manufacturers move to PCI.

And a crying shame that there are so few motherboards that can handle an ISA
card.

I payed my hard earnt dollars for one that has one ISA slot and it restricts
me to onboard sound and video and to an AMD chip, but I needed it so I could
keep my old gear running 'cause I didn't want to spend an even bigger
fortune upgrading all my extra bits like scsi scanners.
Agreed. Not only that but it's quite possible to design an
interface to ISA using standard logic chips and therefore
pretty easy to develop special purpose cards, interfacing
to PCI is much, much harder and a lot more expensive.

Mike Harding
 
"Bubby" <please@reply.to.group> wrote:

The ISA bus is dying out as manufacturers move to PCI.

And a crying shame that there are so few motherboards that can handle an ISA
card.

I payed my hard earnt dollars for one that has one ISA slot and it restricts
me to onboard sound and video and to an AMD chip, but I needed it so I could
keep my old gear running 'cause I didn't want to spend an even bigger
fortune upgrading all my extra bits like scsi scanners.

Peter

I doubt if there are any "standard" ISA cards that you can't replace
with a PCI one for under fifty dollars. By standard I mean commonly
used; I'm excluding electronic control or alarm monitoring.
 
On Mon, 27 Oct 2003 00:51:49 +0800, "Matteo"
<matteo-at-iinet-dot-net-dot-au> wrote:

I've been busy. Is there still any interest in this, or was this
homework for some one ?


* Why are level sensitive interrupt signals generated by devices,
instead of edge sensitive signals?
Because open-collector (open-drain), level-sensitive signals allow
sharing to occur, with less circuitry. That is, if you use a pull-up
resistor (or a current source), when any one device wants to signal an
interrupt, they simple pull-down (sink the current of) the line, and
everyone listening/using the line knows something wants attention,
simply by probing the state of the line, at any time. The OS is then
charged with the responsabilty of determining what needs that attention.

With edge-triggered, there needs to be "toggling circuitry", and the
only place most PC's have that circuitry is in the Interrupt controller.
Specifically, the 8259 Programmable Interrupt Controller (and it's
derrivatives) or PIC for short. Modern PC's now use an Advanced version
of these called APICs, and their various derivatives.

* Why must a PCI bus be implemented rather than ISA?
?

* Couple a non PNP adapter card share an IRQ?
I presume you meant "Could" not "Couple".

The answer is, it depends on many things, but the bottom line is, not
reliably, and not typically.

Because ISA uses edge-triggering, and the PIC doesn't have a counter to
increment and decrement the number of IRQ's received or serviced, then
there are windows of opportunity where interrupts can be missed. That
aside, a well designed interrupt servicing routine can, in many
circumstances, workaround these limitations. The keys are to "service"
the PIC as quick as possible, and to know which devices are sharing the
interrupt line. Oh, and the sharing devices need to support a method of
Querying, as in calling everyone you know (on the telephone) and asking
"Hey, did you just call ?".

Been searching for some definitie answers, but found mostly just very
brief general overviews
If I have time, then I'll answer what I (reasonably) can... :)

___________________________________________
Richard Rudek. MicroDek, Sydney, Australia.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
 
it was a question on one of my labs
however i do have an interest in it as i have recently completed my
electronics engineering advanced diploma, now completing computer
systems engineering

its all good and well to understand the general concept, but i like to
get into the nitty gritty of it all

but your reply was quite in depth, thankyou :)
 

Welcome to EDABoard.com

Sponsor

Back
Top