[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