Section 5
SCSI Programming Guidelines
ProDrive will ensure that the RESELECTION was still valid within a selection abort time
of
its
assertion
of
BSY. Otherwise.
an
improper reselection could result (two initiators connected to the same
target or the wrong initiator connected to a target).
5.2.5
INFORMATION TRANSFER PHASES
The COMMAND. DATA, STATUS. and MESSAGE phases are grouped together as the information
transfer phases because they are all used to transfer data
or
control information via the DATA BUS.
The
C/D.
1/0, and
MSG
signals are used to distinguish between the different information transfer phases.
(See Table 5-1.) The target drives these three signals and, therefore, controls all changes from one phase to
another. The initiator
can
request a MESSAGE OUT phase by asserting ATN, while the ProDrive can
cause the
BUS FREE phase
by
releasing MSG, C/D,
1/0,
and BSY.
TABLE 5-1 Information Transfer Phases
Signal
MSG
CID
110 Phase Name
Direction
of
Transfer
Comment
0
0 0
DATA OUT Initiator to
tar~et
Data phase
0 0
1
DATA IN Initiator from
tar~et
Data phase
0 1 0
COMMAND
Initiator to target
0
1
1 STATUS Initiator from
tar~et
1 0
0
*
1 0 1
*
1 1 0
MESSAGE OUT
Initiator to
tar~et
Messa~e
phase
1
1 1 MESSAGE
IN
Initiator from
tar~et
Message phase
Key: 0 = False. 1 = True, * = Reserved for future stanaardization
The information transfer phases use one
or
more REQ/ACK handshakes to control the information transfer.
Each
REQ/ACK handshake allows the transfer
of
one byte
of
information. During the information transfer
phases,
BSY
must remain true and SEL must remain false. Additionally, during the infonnation transfer
phases, the
ProDrive will continuously envelope the REQ/ACK handshake(s) with C/o, 1/0, and MSG in
such a manner that these control signals are valid for a
bus settle delay before the assertion
of
REQ
of
the
first handshake and remain valid until the negation
of
ACK at the end
of
the last handshake.
5.2.5.1
ASYNCHRONOUS
TRANSfER
The ProDrive controls the direction
of
information transfer by means
of
the
110
signal. When
1/0
is
true, information will
be transferred from the ProDrive to the initiator. When 1/0 is false. information is
transferred from the initiator to the
ProDrive.
If
110
is true (transfer to the initiator). the ProDrive will drive DB(7-0.P) to their desired values, delay at
least one
deskew delay plus a cable skew delay, then assert REQ. DB(7-0,P) will remain valid until
ACK
is true at the drive. The initiator should read DB(7
-O,P)
after REQ is true, then signal its acceptance
of
the
data by asserting
ACK. When ACK becomes true at the ProDrive, the drive may change
or
release DB(7-
O,P)
and will release REQ. After REQ is false, the initiator should negate ACK. Once ACK is false, the
ProDrive may continue the transfer by driving
D8(7
-O,P)
and asserting REQ, as described above.
If
1/0
is
false (transfer to 'the target) the ProDrive will request information by asserting REQ. The
initiator should drive
OB(7
·O,P)
to their desired values, delay at least one deskew delay plus a cable skew
delay,
then assert ACK. When ACK becomes true at the ProDrive, the drive will read DB(7-0,P), then
release
REQ. When REQ becomes false at the initiator, the initiator may change
or
release DB(7-0.P) and
musl negate ACK. The target may continue the transfer by asserting REQ, as described above.
5-4
SCSI
Programming
Guidelines