beautypg.com

Avago Technologies LSI53C1000R User Manual

Page 245

background image

SCSI SCRIPTS

5-3

Version 2.2

Copyright © 2000–2003 by LSI Logic Corporation. All rights reserved.

The host CPU, through programmed I/O, gives the

DMA SCRIPTS Pointer (DSP)

register (in the Operating register file)

the starting address in main memory that points to a SCSI SCRIPTS
program for execution.

Loading the

DMA SCRIPTS Pointer (DSP)

register causes the

LSI53C1000R to fetch its first instruction at the address just loaded.
This fetch is from main memory or the internal RAM, depending on
the address.

The LSI53C1000R typically fetches two Dwords (64 bits) and
decodes the high order byte of the first Dword as a SCRIPTS
instruction. If the instruction is a Block Move, the lower three bytes
of the first Dword are stored and interpreted as the number of bytes
to move. The second Dword is stored and interpreted as the 32-bit
beginning address in main memory to which the move is directed.

For a SCSI send operation, the LSI53C1000R 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
LSI53C1000R requests use of the PCI bus again to transfer the data.

When the LSI53C1000R 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 LSI53C1000R
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 LSI53C1000R releases the PCI bus and then performs another
SCRIPTS instruction fetch cycle, using the incremented stored address
maintained in the

DMA SCRIPTS Pointer (DSP)

register. Execution of

SCRIPTS instructions continues until an error condition occurs or an
interrupt SCRIPTS instruction is received. At this point, the
LSI53C1000R 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 LSI53C1000R performs scatter/gather operations on data
without requiring help from the host program, generating a host interrupt,
or programming of an external DMA controller.

Figure 5.1

provides an overview of SCRIPTS operation.

This manual is related to the following products: