Section 5 SCSI Programming Guidelines
5.11.6.2 BEAD Command Operation
Read operations on the
ProDrive
are buffered using a 64K-byte buffer. When data is read from the drive,
it is first stored in the buffer. After a logical block has been read successfully into the buffer, those data
bytes are transferred from the buffer to the
SCSI bus.
The two operations involved
in
reading, transferring data from the disk to the buffer and transferring data
from the
buffer to the SCSI bus, are essentially independent processes. The first operation, transferring data
from the disk to the buffer, will continue as long as the transfer length indicates that there
is
more data to
be read from the disk and there is room in the buffer. The second operation, transferring data from the buffer
to the
SCSI bus, will start whenever the buffer contains at least one logical block.
If
the buffer fills
completely because the second operation (buffer to
SCSI bus)
is
slower than the first (disk to buffer),
transfer to the buffer will be temporarily halted to allow the transfer from the buffer to the
SCSI bus to free-
up room in the buffer. Transfer from disk to buffer continues until the transfer length is exhausted.
Transfer from the buffer to the
SCSI bus continues until the first operation is completed and the buffer
is
totally emptied.
The disconnect/reconnect strategy is tied to the dual processes
of
filling and emptying the buffer. The
ProDrive will not disconnect unless the initiator sends an IDENTIFY message with the "I Support
Disconnect" bit (bit 6) set.
If
disconnect is supported by the initiator, the drive will disconnect whenever
the buffer is empty and the transfer count is not exhausted. The point at which reconnect occurs is
controlled by the Buffer Full Ratio
(MODE SELECT Page 2 byte 2). When the buffer fills to the level
specified by the Buffer Full Ratio, the
ProDrive will initiate a reconnection. When reconnection to the
bus is established, the buffer to
SCSI bus transfer operation will resume.
If
there is a delay in establishing
the reconnection (e.g., the bus is busy), the disk to buffer operation will continue until the buffer
is
full,
or
the number
of
blocks requested has been reached.
5.11.7
WRITE COMMAND: OPCODE = OA(hex)
The WRITE command (Table 5-19) requests that the data transferred to the target be written in the area
specified by the logical block address.
5.11.7.1
Command Structure
TABLE
5-19
WRITE
Command
Bit
7
I
6
I
5
I
4
I
3
I
2
I
1
I
0
Byte
0
OPCODE=
OAH
1
LUN=O
I (MSB) LOOICAL BLOCK ADDRESS
2-3 LOOICAL BLOCK ADDRESS
(l,SB)
4 TRANSFER LENGTH
5
VU=O
I
RESERVED=O
I
F
I
L
LOGICAL BLOCK
ADDRESS
(Byte 1, Bits 4-0; Bytes 2-3) - Specifies the logical
block at which the WRITE operation will begin.
TRANSFER
LENGTH
(Byte 4) - Specifies the number
of
contiguous logical blocks to be
transferred. A transfer length
of
zero indicates that 256 blocks will be transferred. Acceptable values
are
OO-FFH'
SCSI
Programming
Guidelines
5 -
37