Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!cs.utexas.edu!uunet!ncrlnk!ncrwic!encad!entec!jlohmeye From: jlohmeye@entec.Wichita.NCR.COM (John Lohmeyer) Newsgroups: comp.periphs Subject: Re: Summary of Diff. between synch. and asynch. SCSI Message-ID: <377@entec.Wichita.NCR.COM> Date: 3 Aug 89 14:46:06 GMT References: <1637@gazette.bcm.tmc.edu> Reply-To: jlohmeye@entec.UUCP (John Lohmeyer) Distribution: usa Organization: NCR Corporation, Wichita, KS Lines: 95 In article <1637@gazette.bcm.tmc.edu> dinah@krebs.bcm.tmc.edu () writes: >Here is the summary of the responses I received from the question on the >difference between synchronous and asynchronous SCSI. Thanks for your >help. Sorry for the slow response on my part - I changed jobs between the time >I posted and now. > When I saw your original posting, I was too busy to respond. I'm glad you posted this summary. In order to not waste too much bandwidth, I've deleted a lot of excellent responses. However, there are a couple nits I'd like to pick (no flame intended :-) >From sun!aeras!tneale Thu Jul 13 15:34:25 1989 > >The SCSI spec says that the minimum data transfer rates are: ^^^^^^^^^^^^^^ > > async: 1.5 MB/sec > sync: 4.0 MB/sec > Actually... The SCSI standard does not really specify these numbers. They are widely quoted, however and you could derive the 4.0 MB/sec number from the other times specified in SCSI. The async number is highly dependent on both the implementation of the SCSI devices and the cable length. On the long cables permitted by the differential driver option even an excellent implementation will not achieve much over 1 MB/sec. On very short cables (within a cabinet) some implementations can go faster than sync SCSI. Many sync SCSI implementations can achieve up to 5 MB/sec. I once gave a presentation at a SCSI Forum on why all these different numbers get quoted. I can't give it all here, but I thought it might be helpful to explain the difference between the 4 MB/sec and 5 MB/sec numbers that we frequently see for the maximum sync speed. The 4 MB/sec figure assumes that the drivers and receivers in the sending device are external from the protocol chip and hence are subject to skew delays. That is, the protocol chip must allow time for differences in the propagation speed of the drivers. If the drivers are built into the protocol chip, then there will be almost no difference in their propagation speeds. Thus such a design can negotiate for a little faster speed: 5 MB/sec. This is only practical for single-ended designs -- no protocol chips build in the differential drivers due to the heat these things dissipate. >From: kong!ncratl.Atlanta.NCR.COM!mclauss > ...stuff deleted... > >This means that the cable must be traversed 2 times for each byte. That makes >the transfer time vary with cable length. The longer the cable the slower >the data transfer. > >For synchronous SCSI, the initiator and target device do some negotiation >up front and set up some hardware parameters. Once this is done, anytime >data is transfered (see below), a REQ and data are sent, then after a >parameter delay another REQ and data are sent. This is done for a >parameterized number of times up to (I believe) 10. The ACK pulses for >each REQ may begin whenever they get there and are expected at certain >time intervals after that. The ACK pulses are counted to make sure the >correct number are recieved. The following phases transfer data: > > data in > data out > command in [no such phase -- he probably means status phase] > command out [this phase is async only] Actually... There are 2 _round_trip_ delays involved for each byte transferred asynchronously. There is only 1 round trip delay involved for each byte transferred synchronously. But the real speed advantage comes from allowing the handshakes for synchronous transfers to overlap. That is, the sender can keep sending bytes without any acknowledgment up to the REQ/ACK Offset. The REQ/ACK Offset is a negotiated quantity (0 to 255) that is part of the synchronous negotiation (the other part is the Transfer Period). 0 and 255 are special cases. 0 means asynchonous. 255 means there is no maximum REQ/ACK Offset. For most protocol chips, the maximum supported REQ/ACK Offset is roughly how deep their FIFO stack is. Typical values range from 4 to 16. There is no advantage to larger values -- the data won't go any faster. Values above 4 may make it a little easier to interface to these chips, but the maximum cable length of 25 meters means that you can only have about 3-4 bytes "on the cable" at a time. Synchronous ONLY applies to the data phases, DATA IN and DATA OUT. All other phases use asynchronous transfers. Also, the target (controller) always drives the REQ signal; the initiator (host) always drives the ACK signal. For data transfers to the target, the target asserts REQ to request a byte. The initiator puts the byte on the data bus and then asserts ACK to indicate the byte is valid. Thanks for giving me this opportunity to nit pick. :-) -- John Lohmeyer J.Lohmeyer@Wichita.NCR.COM NCR Corp. uunet!ncrlnk!ncrwic!entec!jlohmeye 3718 N. Rock Rd. Voice: 316-636-8703 Wichita, KS 67226 SCSI BBS 316-636-8700 300/1200/2400 24 hours