beautypg.com

6 halting in an orderly fashion – Avago Technologies LSI53C876E User Manual

Page 60

background image

2-38

Functional Description

A related situation to interrupt stacking is when two interrupts occur
simultaneously. Since stacking does not occur until the SIP or DIP bits
are set, there is a small timing window in which multiple interrupts can
occur but are not stacked. These could be multiple SCSI interrupts (SIP
set), multiple DMA interrupts (DIP set), or multiple SCSI and multiple
DMA interrupts (both SIP and DIP set).

As previously mentioned, DMA interrupts do not attempt to flush the
FIFOs before generating the interrupt. It is important to set either the
Clear DMA FIFO (CLF) and Clear SCSI FIFO (CSF) bits if a DMA
interrupt occurs and the DMA FIFO Empty (DFE) bit is not set. This is
because any future SCSI interrupts are not posted until the DMA FIFO
is cleared of data. These “locked out” SCSI interrupts are posted as soon
as the DMA FIFO is empty.

2.2.10.6 Halting in an Orderly Fashion

When an interrupt occurs, the LSI53C876 attempts to halt in an orderly
fashion.

If the interrupt occurs in the middle of an instruction fetch, the fetch
is completed, except in the case of a Bus Fault. Execution does not
begin, but the

DMA SCRIPTS Pointer (DSP)

points to the next

instruction since it is updated when the current instruction is fetched.

If the DMA direction is a write to memory and a SCSI interrupt
occurs, the LSI53C876 attempts to flush the DMA FIFO to memory
before halting. Under any other circumstances only the current cycle
is completed before halting, so the DFE bit in

DMA Status (DSTAT)

register should be checked to see if any data remains in the DMA
FIFO.

SCSI SREQ/SACK handshakes that have begun are completed
before halting.

The LSI53C876 attempts to clean up any outstanding synchronous
offset before halting.

In the case of Transfer Control Instructions, once instruction
execution begins it continues to completion before halting.

If the instruction is a JUMP/CALL WHEN/IF , the

DMA

SCRIPTS Pointer (DSP)

is updated to the transfer address before

halting.

All other instructions may halt before completion.