Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!mips!pacbell.com!ucsd!ucrmath!rhyde From: rhyde@ucrmath.ucr.edu (randy hyde) Newsgroups: comp.sys.nsc.32k Subject: Re: SCSI Woes, revisited Message-ID: <14318@ucrmath.ucr.edu> Date: 9 May 91 18:00:59 GMT References: Organization: University of California, Riverside Lines: 24 I've been playing around with the cache vs. pseudo-DMA transfer tradeoffs and I've come up with a couple of theories I'd like to bounce around and see if they're realistic-- MOVD vs. MOVMD (My understanding is that MOVMD is *not* interruptable, that's why it was limited to 16 bytes). Perhaps the execution times of four MOVD instrs and one MOVMD instruction are the same. However, the MOVMD instruction is more compact so it impacts the instr cache less. MOVMD would seem to be a better choice in this regard. To transfer a 512 byte block, I've seen it implied here and in the documenttion that one should execute 128 MOVD instrs in a row. This is probably great if all those instrs are in the cache. If they're not, I would imagine that executing some smaller number (say 32) in a loop would produce better results since you would pay the price of filling the cache for only 35 (or so) instrs and then you could run the remaining 96 MOVDs out of cache. Would this produce better results? Alas, I've been unable to test these two theories out, it seems my drive tops out somewhere between 700K-1Mbyte/sec transfer rate (when transferring 64K blocks). Every trick I try to speed it up fails. The disk transfer rate seems to be the limiting factor. However, I don't want to use this as an excuse to stop trying, I may buy a faster SCSI-II drive some day. *** Randy Hyde