[comp.periphs.scsi] Asynchronous vs. synchronous transfer and bus-mastering

solomon@chaos.utexas.edu (Thomas Solomon) (05/19/91)

This is probably a question that is obvious to most of the people
in this group, but I'm new to the world of SCSI, so bear with me.

I've heard of both synchronous and asynchronous mode for SCSI
transfers.  In all of the spec sheets that I have seen for disk
drives and controllers, the synchronous mode is alway substantially
faster.  We have an application that will require us to squeeze
every ounce of performance from our disk drive.  We will be running
just one task when we need this performance, so I would think that
we would be able to synchronize whatever needs to be synchronized
to run in the faster mode.

My question:  can anyone describe the difference between sync. and
asynch. mode, or point me in the direction of a FAQ file or magazine
article that will explain this difference?  I need to know not only
the differences between synch and asynch, but also how one goes about
using the synch. mode.  Also, can disk performance be improved by
using the bus-mastering DMA capabilities of the new EISA SCSI cards,
and if so, how?

Thanks.

				Tom Solomon
				solomon@chaos.utexas.edu

kev@hpcpbla.HP.COM (Kevin Jones) (05/20/91)

Synchronous/Asynchronous are thw two methods of handshaking by which
means data is transferred on a SCSI bus.

ASYNCHRONOUS = An interlocked handshake occurs where a REQ signal
               controlled by the (disk) drive is asserted to indicate
               a byte is to be transferred, then an ACK signal
               controlled by the host is asserted to indicate the byte
               has been received/sent.
SYNCHRONOUS = Handshaking is clocked by the REQ signal (into the host)
              and by the ACK signal (out of the host):
              eg. when transferring to the host, data is placed on the bus
              by the (disk) drive, then REQ is asserted and de-asserted.
              The host "clocks in" the data byte.
              The drive then performs the same operation to send the
              next byte, having delayed a time PERIOD in order for the
              host to "absorb"the byte. This is performed up to a
              maximum of MAX-OFFSET times, at which point the drive
              must wait for ACK pulses to be generated by the host.

All SCSI devices must support ASYNCHRONOUS handshaking mode. This is
their power-up default.

In order to achieve SYNCHRONOUS transfers, the host and the drive
must negotiate with each other (by means of SCSI Synchronous Data
Transfer Request messages). The negotiation establishes the
"PERIOD" and "MAX-OFFSET" parameters to be used during data transfers
on the bus. The agreement reached persists until some event such as
a power-cycle or hard bus reset occurs.

The negotiation is typically initiated by the physical device driver
in the host. In some cases it may be initiated by the drive
(the host's physical device driver should be able to handle such
 an event if it is smart enough).

The SCSI1 specification allowed for asynchronous transfers at speeds
up to 1.5 Mbytes/Sec and synchronous transfers at speeds up to
5.0 Mbytes/Sec.

The SCSI2 specification allows for asynchronous transfers at speeds
up to 3.0 Mbytes/Sec and synchronous transfers at speeds up to
10.0 Mbytes/Sec. To achieve these speed increases, the margins on
the REQ/ACK signals were reduced. These higher speeds are sometimes
referred to as "FAST SCSI".

With regards to maximising throughput, a number of factors as well
as bus handshaking speed need to be considered.
1. Bus bandwidth available (ie. what else is using the bus)
2. Command/Status processing overhead of the disk
3. Seek times (track-track) of the disk.
4. Host system overhead (esp. if you're using the filing system to
   transfer your data to/from the disk).

Regards,

Kevin Jones


-----------------------------------------------------------------
Kevin Jones.                       | Hewlett Packard Ltd,
                                   | Computer Peripherals Bristol,
kev%hpcpbla@hplb.hpl.hp.com        | Filton Road,
                                   | Stoke Gifford,
Tel: 011 44 272 799910 (ext 22351) | Bristol.   BS12 6QZ.
                                   | ENGLAND.
-----------------------------------------------------------------

This response does not represent the official position of, or
statement by, the Hewlett-Packard Company.  The above data is
provided for informational purposes only. It is supplied
without warranty of any kind.