NonStop S-Series Server Description Manual (G06.24+)
Interrupt System
HP NonStop S-Series Server Description Manual—520331-003
8-10
Interrupt Masking
Interrupt Masking
Four TNS registers, simulated by exception-handling millicode, are associated with 
interrupts: two 16-bit interrupt registers (INTA and INTB) and two 16-bit mask 
registers (Mask A and Mask B). (Mask A is frequently referred to as “Mask” because 
it is the only one recognized by the operating system.) The bit assignments of these 
registers are illustrated in Figure 8-5. In general, the priority of interrupts is in top-to-
bottom order as shown in the figure—that is, uncorrectable memory error is the highest 
and dispatcher the lowest. However, certain interrupts are exceptions to this general 
rule and may be preemptive or mutually exclusive with other interrupts.
Only certain TNS interrupts are maskable—that is, the corresponding bits of the 
associated mask register are used by the operating system to allow or defer particular 
interrupt types at various times.  The checking operation is performed by a logical AND 
of the interrupt and mask registers. The interrupt condition is ignored if the 
corresponding mask bit is equal to 0, and it will continue to be deferred until the mask 
bit is set to 1.
Bits 1 and 4 of Mask A are not used as masks, although they are assigned. Thus 
when the defined interrupt condition occurs, the interrupt handler is entered regardless 
of the state of the mask bit.  Accordingly, setting the corresponding interrupt register bit 
would serve no purpose and so these bits also are never set (although assigned). A 
partial exception is INTA.<1> and its corresponding Mask A bit (uncorrectable memory 
error), which millicode does use in some circumstances.
The V bit (overflow bit in the Environment register) substitutes for bit 6 of INTA 
(formerly assigned as arithmetic overflow or divide by zero), and it is separately 
masked by the trap enable bit (T) of the Environment register to enable or disable that 
interrupt. The V bit behaves differently from other interrupt bits; it gets cleared or set 
by the most recent instruction that can affect it. (Other interrupt bits persist until 
explicitly cleared by the exception millicode or the interrupt handler.)
If two or more interrupt conditions exist simultaneously (assuming a maskable 
condition has its corresponding mask register bit set), the interrupt type with the 
highest priority (lowest bit number) takes precedence. The others are deferred until 
the higher-priority interrupts have been processed.
Interrupts for stack overflow, instruction failure, and instruction breakpoint have entries 
neither in the interrupt registers nor in the mask registers; these cause an interrupt 
whenever they occur, ignoring priority. The page fault interrupt, although it does have 
an (unused) assignment in INTA and Mask A, also causes an interrupt whenever it 
occurs, ignoring priority.










