Section 5
SCSI Programming Guidelines
5.2.5.2 SYNCHRONOUS TRANSFER
Synchronous data transfer may
be
used in the data phase only
if
it was previously agreed to by the initiator
and target via the message system. The messages determine the use
of
synchronous mode by the two SCSI
devices, establishing a REQ/ACK offset and transfer period. See the Synchronous Data Transfer Request
message (Section 5.6.2).
The REQI ACK offset specifies the maximum number
of
REQ
pulses that can be sent by the target before
corresponding ACK pulses are received from the initiator. This establishes a pacing mechanism.
If
the
number
of
REQ
pulses sent exceeds the number
of
ACK pulses received by the
REQ/
ACK offset, the
ProDrive will not assert REQ again until it receives the next ACK pulse. The number
of
ACK and
REQ
pulses must be equal for the data phase to
be
successfully completed.
The
ProDrive will assert
REQ
for at least an assertion period. Before asserting
REQ,
it will wait at least
a transfer period from the last transition
of
REQ to true, and a minimum
of
a negation period from the last
transition
of
REQ
to false.
The initiator must send one pulse on the
ACK signal for each REQ signal received. The ACK signal must
be asserted for at least an assertion period. Before asserting the
ACK signal, the initiator must wait at least
a transfer period from the last transition
of
ACK to true and a negation period from the last transition
of
A
CK
to false.
If
I/O is true, (transfer to the initiator), the ProDrive will first drive DB(7
-O,P)
to the appropriate values,
wait at least one deskew delay plus a cable skew delay, then assert REQ. DB(7-O,P) will be held valid for at
least one deskew delay plus one cable skew delay, plus one hold time after the assertion
of
REQ. The
ProDrive will assert REQ for at least an assertion period. It may then release
REQ
and change or release
DB(7-0,P). The initiator must read the value on DB(7-0,P) within one hold time
of
the transition
of
REQ
to true. It must then respond with an ACK pulse.
If
110
is false, (transfer to the ProDrive), the initiator must transfer one byte for each REQ pulse received.
After receiving a
REQ pulse, the initiator must first drive DB(7
-O,P)
to the appropriate values, delay at least
one deskew delay plus one cable skew delay, then assert
ACK. DB(7-0,P) must
be
valid for at least one
deskew delay plus one cable skew delay plus one hold time after the assertion
of
ACK. ACK must be
asserted for a minimum
of
an assertion period. At that point, the initiator may negate ACK and may
change
or
release DB(7
-O,P).
The
ProDrive
will read the value
of
DB(7
-O,P)
within one hold time
of
the
transition
of
ACK to true.
5.2.6
COMMAND PHASE
The COMMAND phase allows the target to request command information from the initiator. The
ProDrive will assert the C/D signal and negate I/O and MSG during the
REQ/ACK
handshake(s)
of
this
phase.
5.2.7
DATA PHASE
The data phase encompasses both the DATA IN and the DATA OUT phases.
5.2.7.1
PATA IN PHASE
The DATA IN phase allows the target to request that data
be
sent to the initiator from the target. The
ProDrive will assert the I/O signal and negate C/D and MSG during the
REQ/ACK
handshake(s)
of
this
phase.
5.2.7.2
DATA OUT PHASE
The DATA
OUT
phase allows the target to request that data
be
sent from the initiator to the target. The
ProDrive will negate the C/D, I/O, and MSG signals during the
REQ/ACK
handshake(s)
of
this phase.
SCSI Programming
Guidelines
5-5