Intel 460GX Computer Hardware User Manual


 
PCI/LPC Bridge Description
15-4 Intel® 460GX Chipset Software Developers Manual
perform a non-specific EOI operation at the trailing edge of the last interrupt acknowledge pulse.
Note that from a system standpoint, this mode should be used only when a nested multi-level
interrupt structure is not required within a single Interrupt Controller. The AEOI mode can only be
used in a master Interrupt Controller and not a slave (on CNTRL-1 but not CNTRL-2).
15.2.3 Modes of Operation
15.2.3.1 Fully Nested Mode
This mode is entered after initialization unless another mode is programmed. The interrupt requests
are ordered in priority from 0 through 7 (0 being the highest). When an interrupt is acknowledged,
the highest priority request is determined and its vector placed on the bus. Additionally, a bit of the
Interrupt Service Register (IS[0:7]) is set. This IS bit remains set until the processor issues an End
of Interrupt (EOI) command immediately before returning from the service routine. If the AEOI
(Automatic End of Interrupt) is set, the IS bit remains set until the trailing edge of the second
INTA#. With the IS bit set, all further interrupts of same or lower priority are inhibited, while
higher levels will generate an interrupt (which will be acknowledged if the processor internal
interrupt enable flip-flop has been re-enabled through software).
After the initialization sequence, IRQ0 has the highest priority and IRQ7 the lowest. Priorities can
be changed, as will be explained, in the rotating priority mode.
15.2.3.2 The Special Fully Nested Mode
This mode will be used in the case of a system where cascading is used, and the priority has to be
conserved within each slave. In this case, the special fully nested mode will be programmed to the
master (using ICW4). This mode is similar to the normal nested mode with the following
exceptions:
When an interrupt request from a certain slave is in service, this slave is not locked out from the
masters priority logic and further interrupt requests from higher priority IRQs within the slave will
be recognized by the master and will initiate interrupts to the processor. (In the normal nested
mode, a slave is masked out when its request is in service and no higher requests from the same
slave can be serviced.)
When exiting the Interrupt Service routine, the software has to check whether the interrupt serviced
was the only one from that slave. This is done by sending a non-specific End of Interrupt (EOI)
command to the slave and then reading its In-service Register and checking for zero. If it is empty,
a non-specific EOI can be sent to the master too. If not, no EOI should be sent.
15.2.3.3 Automatic Rotation (Equal Priority Devices)
In some applications, there are a number of interrupting devices of equal priority. Automatic
rotation mode provides for a sequential 8-way rotation. In this mode, a device receives the lowest
priority after being serviced. In the worst case, a device requesting an interrupt will have to wait
until each of seven other devices are serviced at most once.
There are two ways to accomplish automatic rotation using OCW2; the Rotation on Non-Specific
EOI Command (R=1, SL=0, EOI=1) and the Rotate in Automatic EOI Mode which is set by (R=1,
SL=0, EOI=0) and cleared by (R=0, SL=0, EOI=0).