6.7 Memory Move Instructions

This SCRIPTS instruction allows the LSI53C810A to execute high-performance block moves of 32-bit data from one part of main memory to another. In this mode, the LSI53C810A is an independent, high-performance DMA controller irrespective of SCSI operations. Since the registers of the LSI53C810A can be mapped into system memory, this SCRIPTS instruction also moves an LSI53C810A register to or from memory or another LSI53C810A register.

For Memory Move instructions, bits 5 and 4 (SIOM and DIOM) in the DMA Mode (DMODE) register determine whether the source or destination addresses reside in memory or I/O space. By setting these bits appropriately, data may be moved within memory space, within I/O space, or between the two address spaces.

The Memory Move instruction is used to copy the specified number of bytes from the source address to the destination address.

Allowing the LSI53C810A to perform memory moves frees the system processor for other tasks and moves data at higher speeds than available from current DMA controllers. Up to 16 Mbytes may be transferred with one instruction. There are two restrictions:

Both the source and destination addresses must start with the same address alignment A[1:0]. If source and destination are not aligned, then an illegal instruction interrupt occurs.

Indirect addresses are not allowed. A burst of data is fetched from the source address, put into the DMA FIFO and then written out to the destination address. The move continues until the byte count decrements to zero, then another SCRIPTS instruction is fetched from system memory.

6-36

Instruction Set of the I/O Processor

Page 176
Image 176
LSI 53C810A technical manual Memory Move Instructions