
Instruction Set of the I/O Processor
SCSI SCRIPTS
6-2
SYM53C875/875E Data Manual
Sample Operation
T he following example describes execution of a
SCRIPT S instruction. T his sample operation is for
a Block Move instruction.
1. T he host CPU, through programmed I/O,
gives the DMA SCRIPT S Pointer (DSP)
register (in the Operating Register file) the
starting address in main memory that points to
a SCSI SCRIPT S program for execution.
2. Loading the DSP register causes the
SYM53C875 to fetch its first instruction at the
address just loaded. T his will be from main
memory or the internal RAM, depending on
the address.
3. T he SYM53C875 typically fetches two
longwords (64 bits) and decodes the high order
byte of the first longword as a SCRIPT S
instruction. If the instruction is a Block Move,
the lower three bytes of the first longword are
stored and interpreted as the number of bytes
to be moved. T he 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 SYM53C875
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
SYM53C875 requests use of the PCI bus
again to transfer the data.
5. When the SYM53C875 is granted the PCI
bus, it will execute (as a bus master) a burst
transfer (programmable size) of data,
decrement the internally stored remaining byte
count, increment the address pointer, and then
release the PCI bus. T he SYM53C875 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.
T he process repeats until the internally stored byte
count has reached zero. T he SYM53C875 releases
the PCI bus and then performs another SCRIPT S
instruction fetch cycle, using the incremented
stored address maintained in the DMA SCRIPT S
Pointer register. Execution of SCRIPT S instruc-
tions continues until an error condition occurs or
an interrupt SCRIPT S instruction is received. At
this point, the SYM53C875 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 start-
ing locations in main memory. In this manner, the
SYM53C875 performs scatter/gather operations
on data without requiring help from the host pro-
gram, generating a host interrupt, or requiring an
external DMA controller to be programmed.