Question on Synchronous data transfer
PAT LaVARRE (PAT LAVARRE)
LAVARRE at iomega.com
Mon Mar 4 06:31:14 PST 1996
* From the SCSI Reflector, posted by:
* PAT LaVARRE (PAT LAVARRE) <LAVARRE at IOMEGA.COM>
Hmmm. I'll answer the specifics in a
separate sending, but first ...
You do realise the initiator may ACK before
it sees a full offset's worth of REQ's?
In detail ...
-- -- -- -- -- -- -- -- -- -- -- -- -- --
Define "offset" to be the number of REQ's
outstanding i.e. the number of REQ's for
which no corresponding ACK has yet appeared
on the bus.
When the target and initiator negotiate a
MAXIMUM offset ...
... the target agrees to never raise the
offset above that maximum.
That is, given a maximum offset of N, the
target agrees to send no more than N REQ's
without waiting for an ACK. If the target
sees 1 ACK, it can send another REQ. If the
target sees 2 ACK's, it can send two more
... the initiator agrees to never lower the
offset below the IMPLICIT minimum of zero.
(OK, maybe it's explicit somewhere, but me I
missed it on my first reading.)
That is, no matter the maximum offset
agreed, the initiator agrees to send no ACK
before its time. Until the initiator sees a
REQ, it may send no ACK's. Once the
initiator sees 1 or more REQ's, it may send
just that many corresponding ACK's.
Cheers. Pat LaVarre
Negative offsets might be convenient (e.g.
in data out), but they complicate
definition, in particular because a phase is
not said to have begun until the first REQ
Async transfer is NOT the same as sync
transfer with a maximum offset of one.
In SCSI designs, I've never personally
worked at as low a level as the handshaking
I trust that the mailing group will shoot me
down in a hurry if I've erred on any point?
More information about the T10