Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!purdue!decwrl!shelby!neon!kaufman From: kaufman@Neon.Stanford.EDU (Marc T. Kaufman) Newsgroups: comp.sys.mac.hardware Subject: Re: Sharing the SCSI bus? Message-ID: <1989Dec10.171249.2721@Neon.Stanford.EDU> Date: 10 Dec 89 17:12:49 GMT References: <1989Nov29.030959.27969@Neon.Stanford.EDU> <8252@pogo.WV.TEK.COM> <1989Dec5.165138.5192@Neon.Stanford.EDU> <1989Dec8.232535.14072@cpd.com> Sender: USENET News System Reply-To: kaufman@Neon.Stanford.EDU (Marc T. Kaufman) Distribution: na Organization: Computer Science Department, Stanford University Lines: 30 In article <1989Dec8.232535.14072@cpd.com> neil@cpd.com (Neil Gorsuch) writes: .I haven't followed this discussion, but here is some information about .the MAC SCSI performance which defines some of it's implementation: .1. We only see 250 Kbytes per second data transfer rates, as opposed .to 2.5 Mbytes per second on other machines, using our new scsi box. .The MAC obviously uses the CPU in a tight loop, instead of using DMA .like most workstations do. I don't know WHICH model of Mac you are using. A Mac II can get 600 KB/sec in handshaking mode and 1.5 MB/sec in "blind" mode (the mode really isn't "blind", as there is a PAL that checks for REQ/ACK sequencing -- but there is an inter-character timeout of about 2 microseconds in this mode). Yes, the Mac uses a CPU loop, but on 020/030 machines that goes at least as fast as a DMA would. .2. The MAC doesn't use a SCSI interface chip, since it doesn't .tolerate fast multiple transitions between SCSI states, like most .workstations do. You have to allow time for the MAC processor ro .notice every state change. The Mac uses an older SCSI chip that requires the CPU to watch things. But SCSI protocol should work properly even if the Mac is slow to notice a bus phase change (since the change is not supposed to be MADE until the initiator drops ACK from the previous byte, and the change is not supposed to be NOTICED until the target sets REQ, at which time the target will wait for the initiator). I have seen some target controller implementations that were not fully conforming in this regard. Marc Kaufman (kaufman@Neon.stanford.edu)