ts@cup.portal.com (Tim W Smith) (07/19/90)
Having found myself recently with two NuBus cards that contained NCR 53C700 SCSI chips (these cards are not available at the moment, and I can't say who makes them, so don't ask), I decided to see how quickly I could get these chips to execute a SCSI command. (I mean who fast the chips could go, not how fast I could write the code...:-) ) I put the two cards in Mac IIs, and had one execute a script that acted as a target device. This target device took a 6 byte command, then went into a DATA IN phase, sent one byte, then sent status and message. To get maximum speed, the target software did not examine the command. It just assumed that the initiator wanted a single byte. On the other end, I had a script that sent a six byte command, grabbed the data byte, grabbed the status, grabbed the message, and then executed a scrip interrupt instruction. The software on the Mac looped starting the script and then waiting for the DMA Interrupt bit to be set on the 700. I was able to execute over 13000 SCSI commands/second with this setup. I then changed the initiator script to execute a script interrupt instruction after each phase change. The Mac software was changed to handle this. This had almost no impact on performance. The time per command went up maybe 5 microseconds. I think for my next experiment, I will try a SCSI RAM disk. If I can change my initiator software to expect 256 bytes/logical block rather than 512 bytes/logical block, I think I can implement a RAM disk with the 700 that will handle the entire SCSI transaction in the scripts. It will not need the CPU for anything other than initialization. I'll post the results of that experiment if anyone is curious. Summary: The NCR 53C700 is pretty cool. Tim Smith