
6-4
SCSI SCRIPTS Instruction Set
2.
Loading the DSP register causes the SYM53C895 to fetch its rst
instruction at the address just loaded. This is from main memory or
the internal RAM, depending on the address.
3.
The SYM53C895 typically fetches two dwords (64 bits) and decodes
the high order byte of the rst longword as a SCRIPTS instruction. If
the instruction is a Block Move, the lower three bytes of the rst
longword are stored and interpreted as the number of bytes to be
moved. The second longword is stored and interpreted as the 32-bit
beginning address in main memory to which the move is directed.
4.
For a SCSI send operation, the SYM53C895 waits until there is
enough space in the DMA FIFO to transfer a programmable size
block of data. For a SCSI receive operation, it waits until enough data
is collected in the DMA FIFO for transfer to memory. At this point,
the SYM53C895 requests use of the PCI bus again to transfer the
data.
5.
When the SYM53C895 is granted the PCI bus, it executes (as a bus
master) a burst transfer (programmable size) of data, decrements the
internally stored remaining byte count, increments the address
pointer, and then releases the PCI bus. The SYM53C895 stays off
the PCI bus until the FIFO can again hold (for a write) or has
collected (for a read) enough data to repeat the process.
The process repeats until the internally stored byte count has reached
zero. The SYM53C895 releases the PCI bus and then performs another
SCRIPTS instruction fetch cycle, using the incremented stored address
maintained in the DMA SCRIPTS Pointer register. Execution of SCRIPTS
instructions continues until an error condition occurs or an interrupt
SCRIPTS instruction is received. At this point, the SYM53C895 interrupts
the host CPU and waits for further servicing by the host system. It can
execute independent Block Move instructions specifying new byte counts
and starting locations in main memory. In this manner, the SYM53C895
performs scatter/gather operations on data without requiring help from
the host program, generating a host interrupt, or requiring an external
DMA controller to be programmed.
Figure 6.1 shows a SCRIPTS
overview.