Xref: utzoo comp.sys.att:6117 unix-pc.general:2679 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!purdue!decwrl!nsc!amdahl!bnrmtv!miket From: miket@bnrmtv.UUCP (Michael Thompson) Newsgroups: comp.sys.att,unix-pc.general Subject: SCSI Adapter Hardware Design Keywords: SCSI 3B1 Unix PC 7300 Message-ID: <5255@bnrmtv.UUCP> Date: 14 Apr 89 21:45:24 GMT Organization: Bell Northern Research, Mtn. View, CA Lines: 167 Greetings fellow Unix PCers, After reading various responses to my SCSI postings and talking with a few people over the phone, I have come up with three basic variations on the design of the SCSI adapter. The general ideas are each shown below in a form which I hope is easily understandable. I feel each is valid from a hardware standpoint, but the actual implementation of each varies in complexity. Following each diagram is a short listing of what I feel are the Pros and Cons for each design. Please let me know what you think. *** DESIGN #1 *** 16K Static RAM Buffer with Single Chip CPU Control of SCSI Chip TB = Tristate Bi-Directional Buffer (74LS245s) --+ | +--+ +--+ Address +------+ | | | Address Bus | | Bus | | |----------->|TB|---+-------------+--------------|TB|<--+----->| SCSI |--\ | Address | | | | | | | | Chip | > U | Bus +--+ | +------+ | +------+ +--+ | +-->| |--/ N | | | 8K | | | 8K | | | | | I | +-->| SRAM | +-->| SRAM | | | +------+ X | | | | | | | | +-->| Lo | +-->| Hi | | | +------+ P | | | Byte | | | Byte | | | | | C | | +------+ | +------+ +--|---|Single| | +--+ | | +--+ | | Chip | B |<---D0-D7-->| |<--+--------------------------->| | | | CPU | U | |TB| | |TB|<-----+-->| | S |<--D8-D15-->| |<----------------+------------->| | Data Bus | | | +--+ 8 Bit Data Busses +--+ +------+ | 16 Bit | Data Bus --+ Pros: 1 Easiest to implement in hardware. 2 Low chip count. 3 Unix device driver easy to code. 4 Buffer contention handled in Unix device driver and firmware. 5 Don't have to worry to much about timing of Unix PC bus. Cons: 1 Difficult to debug firmware on single chip CPU. 2 68010 must transfer data to buffer (slow and CPU overhead). 3 Hard to update firmware in single chip CPU. Must be burned in. 4 SCSI chip may not be able to transfer at max. rate. *** DESIGN #2 *** 16K Static RAM Buffer with DMA Control of SCSI Chip During Data Xfer TB = Tristate Bi-Directional Buffer (74LS245s) --+ | +--+ | | | Address Bus |----------->|TB|------------+---+-------------+-------------+ | Address | | | | | | U | Bus +--+ | | +------+ | +------+ | +------+ N | +------+ | | | 8K | | | 8K | | | | I | | DMA |--+ +-->| SRAM | +-->| SRAM | +-->| SCSI |--\ X | | Chip | | | | | | Chip | > | +-------------->| | +-->| Lo | +-->| Hi | +-->| |--/ P | | | 6844 | | | Byte | | | Byte | | | | C | | +------+ | +------+ | +------+ | +------+ | | +--+ | | +--+ | B |<-+-D0-D7-->| |<---------------+------------------>| | | U | |TB| | |TB|<---+ S |<--D8-D15-->| |<-----------------------------+---->| | | +--+ 8 Bit Data Bus's +--+ | 16 Bit | Data Bus --+ Pros: 1 Moderate difficulty to implement in hardware. 2 SCSI chip can transfer at max. rate. 3 No firmware. 4 Buffer contention handled in hardware. 5 DMA transfer independent of Unix PC bus. Cons: 1 68010 must transfer data to buffer (slow and CPU overhead). 2 Device driver will be complex to write. 3 Moderate amount of glue logic to contol Tri-State Buffers. *** DESIGN #3 *** DMA Control of SCSI Chip During Data Xfer TB = Tristate Bi-Directional Buffer (74LS245s) --+ | +--+ | | | Address Bus |--+------------>|TB|---------------------------+ | | Address | | | U | | Bus +--+ +------+ | +------+ N | | | | +-->| | I | +--------------------->| DMA | | SCSI |---\ SCSI X | | Chip | | Chip | > | +-------------------->| | | |---/ LAND P | | +------------------>|68450 | +-->| | C | | | | | | +------+ | | | +--+ +------+ | B |<--+----D0-D7-->| | | U | | |TB|<--------------------------+ S |<----+-D8-D15-->| | | +--+ 8 Bit | 16 Bit Data Bus | Data Bus --+ Pros: 1 SCSI chip can transfer at max. rate. 2 No firmware. 3 Buffer contention handled in hardware. 4 Probably most elegant solution. 5 Buffer does not have to first be loaded with data. Cons: 1 Device driver will be complex to write. 2 Lots of glue logic to contol Tri-State Buffers. 3 DMA must meet stringent Unix PC bus timing specs. 4 Overall design is hard because it must work intimately with the Unix PC hardware. One problem each design must overcome is the problem of attaching an 8 bit device to the Unix PCs 16 data bus. This can be solved by use of tristate buffers to select the lower and upper byte in the data word seperately. Where an SRAM buffer is used, each half of the word goes to a seperate SRAM chip and in Design #3, one word will be requested from every two bytes requested by the SCSI chip. The logic which performs this function is not shown in the diagrams. Surely these three designs are not the only solutions, but I am pretty sure that the final design will closely resemble one of them. If anyone sees a major or even minor problem in one of the designs, please let me know. Obviously the figures up above cannot convey the level to which I have thought each out, but I don't want to overlook something. I also am still waiting to get a hold of the Unix PC bus specs (they should be on their way) so some of the designs may have to be altered. We shall see. I plan on attending next weeks AT&T Users Group meeting in Sunnyvale so I hope to get good feedback from people there. Hope to see you there. Mike Thompson ----------------------------------------------------------------------------- | Michael P. Thompson, Member Scientific Staff | ### | BNR/Northern Telcom, Dept. 4Z15 | #### ##### ######### | 685A E. Middlefield Road | ############ ########### | Mountain View, CA 94039-7277 | #### #### #### | PH. (415) 940-2575 FAX. (415) 966-1067 | #### ####### ######## | amdahl! --\ | #### ##### ###### | UUCP. ames! ----->-- bnrmtv!miket | | hplabs! --/ | -----------------------------------------------------------------------------