A non-
uniform memory access (NUMA) computer
system includes at least two nodes coupled by a node interconnect, where at least one of the nodes includes a processor for servicing interrupts. The nodes are partitioned into external interrupt domains so that an external interrupt is always presented to a processor within the external interrupt domain in which the interrupt occurs. Although each external interrupt domain typically includes only a
single node, interrupt channeling or interrupt funneling may be implemented to
route external interrupts across node boundaries for presentation to a processor. Once presented to a processor, interrupt handling
software may then execute on any processor to service the external interrupt. Servicing external interrupts is expedited by reducing the size of the
interrupt handler polling chain as compared to prior art methods. In addition to external interrupts, the interrupt architecture of the present invention supports inter-processor interrupts (IPIs) by which any processor may interrupt itself or one or more other processors in the NUMA computer
system. IPIs are triggered by writing to memory mapped registers in
global system memory, which facilitates the transmission of IPIs across node boundaries and permits
multicast IPIs to be triggered simply by transmitting one write transaction to each node containing a processor to be interrupted. The interrupt hardware within each node is also distributed for
scalability, with the hardware components communicating via interrupt transactions conveyed across shared communication paths.