[Asterisk-Users] How many X100P's in a system..
Stephen R. Besch
sbesch at acsu.buffalo.edu
Fri May 23 08:00:26 MST 2003
Alas, having only one card would in fact not work for a very simple
hardware reason. Each card on a hardware interrupt generates a service
request when conditions on that card warrant it. The other cards, in
particular the one generating the interrupts in a "one card generates
interrupts" scheme would not know when to generate those interrupts. In
a hardware sense, whenever a group of cards shares an interrupt, some
mechanism must be in place for each card to assert an interrupt. This
is usually done using a "wired OR" configuration, typically implemented
using open collector or open drain pull downs all wired to the same
interrupt line. One also needs to determine who is generating the
interrupt. In a general sense, this means that a unique driver is
needed for each type of card. Each driver on that interrupt polls its
own card to determine if it is the interrupting hardware. In point of
fact, this same strategy was possible on the ISA bus, it just wasn't used.
Also, in general it only takes about 3-4 instructions (I/O instruction,
test, and jump) to test for interrupt status and jump to the next
interrupt routine - if the routines are written carefully and driver
chaining is done efficiently. The interrupt status for the driver can
(and should) be tested before the stack frame is set or argument list
managed or any other processing is done. Processing of the interrupt by
the kernel, before you even get to the driver chain most likely presents
a far longer instruction stream than testing for interrupt service.
Latency should never be an issue.
--
Stephen R. Besch, Ph.D.
SachsLab
320 Cary Hall
SUNY at Buffalo
Buffalo, NY 14214
(716) 829-3289 x106
More information about the asterisk-users
mailing list