[comp.periphs.scsi] Asynchronous vs. synchronous transf

neese@adaptx1.UUCP (05/24/91)

>/* ---------- "Asynchronous vs. synchronous transf" ---------- */
>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?

The differences between sync and async SCSI data transfers are:

With async transfers, a REQ is asserted by the target (peripheral) and another
byte of data will not be placed on the SCSI bus until a corresponding ACK pulse
is asserted by the initiator (adapter).

With sync transfers, the protocol is established via an extended message with
arguments for the period and offset for the transfers.  The initiator and
target must agree on these two arguments.  Either initiator or target may
negotiate for the protocol and re-negotiation may occur until the two meet
terms.  If that fails, the devices return to async mode.  The data transfer
itself starts by a device sending a number of bytes corresponding to the
offset that was agreed upon.  Once the offset has been satisified the no
other data can be shipped until at least one ACK has been asserted on the
bus.  Basically, the device can stay up to offset number of bytes ahead of
the REQ pulse counts.  The period serves as the measurement of the REQ/ACK
pulses the devices will use for a consistent data transfer.

As far as disk performance goes and the EISA bus masters,....  Actually,
this applies to any SCSI adapter capable of supporting more data bandwidth
than the SCSI bus can supply;  The data transfer limit will be the disk itself.
Other factors applied, such as size of the data transfer (the larger the better
and faster), what the continous data rate of the drive is, what the period/
offset will be for sync transfers will have a dramatic effect on the
performance.  There are many other things that can effect the performance
of any given SCSI device.  Here's a real life example.  
I have 2 SCSI disks of the same capacity.  The number of sectors per track
are the same.  They both claim 5MB/sec sync transfer capability, but in the
real world;  One drive can sustain 860KB/sec max and the other drive sustains
1.2MB/sec.  So what's the difference.  The SCSI BUS FIFO used in one drive has
twice the bandwidth of the FIFO used in the slower drive.  So while both
drives can put data into the FIFO at the same rate, the lower bandwidth of the
FIFO in the slower drive causes data to be placed on the SCSI bus at slower
rates.  This only occurs when data is being placed into the FIFO from the
disk.
It's hard to blame the disk manufacturer for using a slower FIFO as high
speed FIFO's are very expensive.  With everyone pushing for lower prices,
the manufacturer doesn't have many alternatives.  You can't build a high
performance SCSI disk drive cheaply.  Everytime you take a shortcut, you
impact the overall performance of the device.

			Roy Neese
			Adaptec Senior SCSI Applications Engineer
			UUCP @  neese@adaptex
				uunet!cs.utexas.edu!utacfd!merch!adaptex!neese