1 scsi scripts, Scsi scripts, Section 5.1, “scsi scripts – Avago Technologies LSI53C896 User Manual
Page 230

5-2
SCSI SCRIPTS Instruction Set
Version 3.3
Copyright © 1998–2003 by LSI Logic Corporation. All rights reserved.
5.1 SCSI SCRIPTS
To operate in the SCSI SCRIPTS mode, the LSI53C896 requires only a
SCRIPTS start address. The start address must be at a Dword (4-byte)
boundary. This aligns all the following SCRIPTS at a Dword boundary
because all SCRIPTS are 8 or 12 bytes long. Instructions are fetched
until an interrupt instruction is encountered, or until an unexpected event
(such as a hardware error) causes an interrupt to the external processor.
When an interrupt is generated, the LSI53C896 halts all operations until
the interrupt is serviced. Then, the start address of the next SCRIPTS
instruction is written to the
register to
restart the automatic fetching and execution of instructions.
In the SCSI SCRIPTS mode the LSI53C896 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
LSI53C896:
•
Block Move – moves data between the SCSI bus and memory.
•
I/O or Read/Write – causes the LSI53C896 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 LSI53C896 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
and
registers, the second into the