beautypg.com

Avago Technologies LSI53C1010R User Manual

Page 250

background image

5-2

SCSI SCRIPTS Instruction Set

Version 2.2

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

When an interrupt is generated, the LSI53C1010R halts all operations
until the interrupt is serviced. Then, the start address of the next
SCRIPTS instruction is written to the

DMA SCRIPTS Pointer (DSP)

register to restart the automatic fetching and execution of instructions.

In the SCSI SCRIPTS mode the LSI53C1010R is allowed to make
decisions based on the status of the SCSI bus, which frees the
microprocessor from servicing the numerous interrupts inherent in
I/O operations.

Given the rich set of SCSI oriented features included in the instruction set,
and the ability to re-enter the SCSI algorithm at any point, this high level
interface is all that is required for both normal and exception conditions.
Switching to the low level mode for error recovery is not required.

The following types of SCRIPTS instructions are implemented in the
LSI53C1010R:

Block Move – moves data between the SCSI bus and memory.

I/O or Read/Write – causes the LSI53C1010R to trigger common
SCSI hardware sequences, or to move registers.

Transfer Control – allows SCRIPTS instructions to make decisions
based on real time SCSI bus conditions.

Memory Move – causes the LSI53C1010R to execute block moves
between different parts of main memory.

Load/Store – provides a more efficient way to move data to/from
memory from/to an internal register in the chip without using the
Memory Move instruction.

Each instruction consists of two or three 32-bit words. The first 32-bit
word is always loaded into the

DMA Command (DCMD)

and

DMA Byte Counter (DBC)

registers, the second into the

DMA SCRIPTS Pointer Save (DSPS)

register. The third word, used only

by Memory Move instructions, is loaded into the

Temporary (TEMP)

shadow register. In an indirect I/O or Move instruction, the first two 32-bit
opcode fetches are followed by one or two more 32-bit fetch cycles.

Sample Operation – The following example describes execution of a
SCRIPTS Block Move instruction.