[comp.sys.mac] SCSI Accelerator in comp.binaries.mac seems OK.

earleh@eleazar.dartmouth.edu (Earle R. Horton) (06/06/88)

I got the SCSI Accelerator INIT from comp.binaries.mac, and since I just
bought a Nova 30, and hadn't even started loading it yet, it seemed like 
a good thing to try out.  Results:

I disassembled the INIT first, and the code is harmless, extremely harmless.
(Don't believe me, back up your stuff first.)

I installed it on the Nova, and it does seem to work a bit faster.  The main
problem is that I have no idea how to reformat the Nova for 1-to-1 interleave,
and the manual gives no hints on that or even what the present interleave
is.  Since the Nova comes with its own formatter, I guess I have to write
to MicroTech to find out.  (The best results are obtained with SCSI
Accelerator when a 1-to-1 interleave is used.)

Summary:

Looks like a good thing to have in your system folder for Mac Plus users,
and it's not even real big.

Disclaimer:  I don't even know the guy who wrote it.

*********************************************************************
*Earle R. Horton, H.B. 8000, Dartmouth College, Hanover, NH 03755   *
*********************************************************************

thecloud@pnet06.cts.com (Ken Mcleod) (06/06/88)

earleh@eleazar.dartmouth.edu (Earle R. Horton) writes:
>I got the SCSI Accelerator INIT from comp.binaries.mac, and since I just
>bought a Nova 30, and hadn't even started loading it yet, it seemed like 
>a good thing to try out.

 I have tried using the SCSI Accelerator INIT (version 1.1) on my Jasmine
20 (miniscribe drive). It doesn't do ANYTHING for performance; the Disk
Timer II numbers "before and after" were exactly the same. The Jasmine
formatting software doesn't let you set the interleave (v.2.34), but I
understood it to be 2:1, which was recommended by SCSI Accelerator's
author. So am I missing something, or does this INIT only work on certain
brands of hard drives?

Ken McLeod =========================     .......     ======================
UUCP: {crash uunet}!pnet06!thecloud     :.     .:    "Fear, surprise, and
ARPA: crash!pnet06!thecloud@nosc.mil   :::.. ..:::    ruthless efficiency.
INET: thecloud@pnet06.cts.com             ////       

dolf@uva.UUCP (Dolf Starreveld) (06/08/88)

In article <21735@think.UUCP> ephraim@vidar.think.com.UUCP (ephraim vishniac) writes:
> In article <214@hodge.UUCP> thecloud@pnet06.cts.com (Ken Mcleod) writes:
> > I have tried using the SCSI Accelerator INIT (version 1.1) on my Jasmine
> >20 (miniscribe drive). It doesn't do ANYTHING for performance; the Disk
> >Timer II numbers "before and after" were exactly the same. The Jasmine
> >formatting software doesn't let you set the interleave (v.2.34), but I
> >understood it to be 2:1, which was recommended by SCSI Accelerator's
> >author. So am I missing something, or does this INIT only work on certain
> >brands of hard drives?
> 
> The SCSI Accelerator INIT only has the opportunity to work on drives
> which do all of their SCSI operations through the SCSI manager:
> there's no way for it to trap hardware access.  In order to get decent
> performance, the Jasmine software goes straight to the hardware on the
> Mac Plus.  So, the INIT can't do anything for that drive that it
> doesn't do for itself already.  Though I haven't examined it, I expect
> that what this INIT does is replace Apple's tight loop for blind
> transfers with an unrolled loop of some length.  This lets you tighten
> up your interleaving one notch on many drives.
TRUE, although the original is incorrect. It patches at the wrong place
for writes and has some other errors, see below.
> 
> Defense of Apple: They chose the speed of blind reads and writes
> deliberately to accomodate the varied timing of as many drives as
> possible.  They certainly knew how to write a faster loop, but were
> aware that it wouldn't work with many of the then-available drives.
See below.
> 
> Claimer: I wrote the Jasmine software up to version 1.95 or so.
> 

As already explained in two previous messages by Maarten Carels and me,
the original version of SCSI accellerator indeed tried to speedup blind
SCSI operations by loop unfolding. It installed the patches only on a Plus
and one of the two patches was installed in the wrong place.
This is a serious BUG. It may cause polled (non-blind) writes to only
poll he first byte of a scInc/scNoInc transfer and not the rest, therefore
effectively reducing these to blind writes. A good driver uses blind operations
when it can, so if a driver uses polled writes there is a very nice
probability that in these cases some serious mishap may come to you.
Another error was that the patch code aslways assumed 512 byte transfers
in each scInc/scNoInc command. This is incorrect and may also be the cause
of the original accellerator failing on certain drives (notably Rodime 20Mb).
Below you'll find a binhex of a new version the fixes al these bugs and
installs patches at the correct places. Actually, you'll find an archive
containing two versions as explained below.
- The first version (SCSI-accel) is the oine described above
- The second version addresses the timing problem Ephraim addresses above
  under "In defense of Apple" for some drives. As we found out (I have a
  very old Rodime RO652) some old drives (and may be even some new ones)
  can't keep up with two consecutive move.b instructions. The original
  Apple code always had the delay of one DBRA between any two bytes
  transferred. This is, as stated by Ephraim, long enough for the code
  to work with any drive. The Rodime 652 needs a small delay between each
  two bytes, but a dbra is an overkill. In the second file in the archive
  "scsi-accel-b2" the read patch is unaltered (this seems to work with
  more drives than does the write), but the write patch uses:
	move.b
	nop
	move.b
	nop
	etc .....
  This works for the Rodime 652 but may not be enough for some other drives.


So:
- If you don't use a MacPlus, you might as well stop here
- If you're driver does not use the SCSI manager SCSIRBlind and SCSWBlind
  routines, ditto
- If you don't know, install as below and just see if it works. If not
  you're driver either doesn't use these calls or does polled operations

- Backup your drive(s)
- Install b2 version (safest) in your system folder or boot from a floppy
  with b2 version installed there
- See if it works (do a duplicate of some file to test writes)
- If it works, install plain version and test in the same manner
- If it works, keep this one, else keep b2 version, or if that
  doesn't work, you're out of luck.

Extra:
- If it works, reformat at one interleave factor lower (at least if
  your software allows user selectable interleaves) (Remember, you
  made a full backup earlier :-)
- Check performance and see if is better or worse.
- Some software is so bad the interleave may be lowered even more.
  If you have the time you can try.

NOTE:
After you start using any of the two versions, beware when you attach
a new drive of another brand. It may not work with that one!
NOTE:
We did not put any showinit icons in yet, sorry!

Some results using our homewritten drivers (clean versions not bypassing
the SCSI manager):

					  No acc.		  With acc.
Disk					Read	Write		Read	Write
Quantum Q280 80Mb (Apple HD SC80)	105	105		65	65
Rodime RO652 (Symbiotic Challenger 20)  165	165		135	145
Atari 20Mb				Exact figs unknown but small speedup

Q280 was on interleave 1:1 in both tests
RO652 was on interleave 1:5 without acc. (it just needed that) and on 1:4
with accelerator (1:4 without acc. 137 1087 :-)

Comparison:
Q240/Mac II 1:1 interl., Apple driver	38	42

Conclusion:
The Quantum drives from Apple are nice to use with a MacPlus/SE. They
can run on 1:1 interleave and perform at figures close to Mac II
performance!

(This file must be converted with BinHex 4.0)
:$P0$8dNY3@0MC@`ZFfPd!&0*9#&6593K!!!!!!3Y!!!"(M9l8dP8)3!#!!!%,A*
-BA8"!!!!!!!!!!)!#R0MFfNYB@0MC@a*55)!!!['!!)Hl!!I,eS!!!!+rri!J!!
#BicrrJ#!!3%!'%#!eFi!%JlL!!*MU!!!!!!"!8P159403d46!3#HdPR8RY*Ce3!
!!HS!!!!!!!!"5J!!!!"50`!!!!!!!!!!mH8!!!3)+"!A3B-"CIb$em)0!!6rk!N
jmm)&!!J6NEKCk+59!"Nq2[3i!S##L`m+jSbCNkC&Q$&MbV!T)i"J%LG*U$3C3Q6
+`)!rEH,8bG-R`D!!#"&FbM5J*fPCU$80S+i$)$MUTKb"B3!*X%$m!#MJ!8#*%62
F02j6pi0XJ"m(1JE3pi)!("i[!-L9"SG-AVR#l[jY&8!CL!mk!,6J-m!&$"Mrc2N
CS+6)'4%`#RJ&+aB*%#9!S2%"!--U((0D-fm1Ub!a''dJ(#*iJ8#Y1VAQe&SM5!X
!!3"FT"L4B8#G%3&"!(b3!"D%5"!Rqc"5L$Dp1[AVeV0Mhkkp1rI[hU-iqqI,54h
Ka)dM9mlF1A5-%M6&Rbqr2[hlp[2Mhkqr2hraj*N(e&%)!9#J$!!-`)mX#&K!%!F
!)!J!%N9JN9a!#J!!b$rr8,'8JR)!!J!0Ff0cD5eKBf0PE#eL-J!!#mB!!KlX!"m
[@J!!!!VrrJ#!!!*MM2rq!)!"!3!B3)$9cJ!5$Z)!!Q1S!!!!!!%"58j*9%e$4&-
"!*l55T!!RY*CVJ!!!VS!!!!!!!!"l3!!!!$Qb3!!!!!!!!!!*Mi!!!3)#%!!RB!
"$JBd`JE%'$4Kj)3C3kH-R$N0@M5iNXB0Q6GhjS$BdL*1P`B*5LCS-'I-R$3Y*Si
T`kD&'"N###CaNS4+Nb&%TJ`%!)-JJ*dpI`BG@Y3S)D03SAU5TJ459!'k3-bT!`I
1'cPd30"")kG-'E&ji*34qFB-#$0Tm*3K!m*Val"ZkV34Bh%1#a"P*U)"-8-'#$&
Tk)KNmmE0'4F0GS#JJZBXBX8J)TkpDa&1fBTd`iLFJ`DN'aFJ*PF'FD,&#4"P2Dm
Yi`Ecf,-[clJ"39!1NR2rq*R!`i#+L38-"J%!%[!0Jamm!#")KBc*YarrR03KX8+
!#!D#+%5,iX`-1Zi#6)$rKbp+-c2FXMaj`30*%5a"3%32#1J(J&5JL(!&#9'N)JN
+5Q!Mc3em1*',!'bF`)3!EL#)M6S&-HLJ!(K)+)!HeQ'R(8(k!%!!!&a)BB3-"UK
MK!""!2#"0%%3%B36qd!JK(Jm4Y2MMci'#H53!%)@5H544C,hMbrDUFLLLc$+5#1
00JC4SL(3"1-%0"*SiN3FAAiC*TKHNLPQQ@1QLHDDClCTjTYUZKNRR'c5+@HGFmk
TT"mM#N53!%%)+35!%3!-`)mX#&K!%!H$#S38&34*B"pq"(N!!#$rr!0"92aP#LN
!GK6+Ma9DjJ!!!3!!!!%!!!!!!!!!!"lEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEEEEEE3j63e0*,8&MBf9X,R0TG'8#!!!!8dP8)90*9#%!!!!!!!"6593K8dP
8)3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*kTrRm!!!!!!!!"(VEEEEEEEEEEEEE
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEB!!!%!!!!"!!!!!!!!!!!H!!!!!!!!!!!
!(!!Hrrr*c!:
-- 
Dolf Starreveld  Phone: +31 20 525 7482/+31 20 592 5022, TELEX: 10262 HEF NL
EMAIL:           dolf@uva.uucp (...!mcvax!uva!dolf), or dolfs@hasara5.bitnet
SNAIL:           Dept. of Math. and Computing Science, University of Amsterdam,
                 Kruislaan 409, NL-1098 SJ  Amsterdam, The Netherlands

lbaum@bcsaic.UUCP (Larry Baum) (06/10/88)

Will this improve performance on an FX/40 Hyperdrive?  If so, what
should the interleave ratio be on a MacPlus?

LSB