Small Computer System Interface (SCSI): Basic Primer A number of people have issues with Small Computer System Interface (SCSI) devices. SCSI devices are not difficult as long as you understand them. SCSI was the only high performance device connections before SATA and other newer types came along. It is used on many servers specifically for RAID systems where high throughput is a necessity. SCSI was standardized in 1986 and is pronounced ‘skuzzy’. Originally, the acronym was to be pronounced ‘sexy’, but ‘skuzzy’ stuck. The SCSI standards include commands and protocols as well as optical and electrical interfaces. A SCSI controller can have connections of 8 or 16 devices. The devices can be a combination of internal and external devices or all of one type. Internal devices can be hard disks, tape drives, CD devices, etc. External devices can include external hard disks, external CD devices, external tape drives, scanners, etc. The SCSI controller is a card that connects to the computer bus to allow data to be passed to and from the SCSI devices. When a system needs information from a SCSI hard disk, the command is sent along the system bus to the SCSI controller. The SCSI controller interprets the message to the appropriate SCSI command. The SCSI command is sent along the SCSI connectors to the appropriate SCSI device where the data is retrieved, sent back to the SCSI controller, and then along the system bus to RAM or the CPU. NOTE: Data from devices go to the CPU for processing unless the device supports Direct Memory Access (DMA). DMA allows the data to go straight to RAM without being processed by the CPU. There seems to be two difficult things to understand about SCSI. The first is termination and the second is SCSI numbering. Both of these things can be simple once you have an understanding about them. Termination is required on a SCSI Bus. A SCSI Bus is comprised of all of the devices connected to a single SCSI Controller. Each computer can have multiple SCSI controllers so each controller is one SCSI Bus. NOTE: Special circumstances exist when a SCSI bus can have multiple controllers. I will discuss this later in the article. Let’s assume we have a SCSI controller with three SCSI hard disks connected to it. The connection goes from the controller to the first hard disk, then to the second hard disk and finally to the third hard disk. The ends of the bus need to be terminated so any signals sent along the bus are not ‘bounced’. The signal gets to the last device and has no where to go so this is why a terminator is needed. A terminator is a resistor that absorbs signals preventing them from bouncing back. Every SCSI bus has two endpoints which need to be terminated. NOTE: Newer SCSI devices and controllers have self terminating ends. Self terminating means that the controller or device can sense that it is the last device and will enable a built in terminator. Older controllers and devices require the use of a small plug which is placed over the connector not used since each controller and device has two connectors. Once each endpoint is terminated, each device needs a number. For the controller to communicate with the devices, each device must have an address just like devices on a network. For SCSI controllers which handle 8 devices, the addresses are 0-7. For controllers that can manage 16 devices, the addresses are 0-15. The controller uses one address itself so each device can send data to the controller. For most SCSI controllers, the higher address numbers have precedence. The controller for the 8 devices will be numbered 7 while the 16 device controller will be numbered 15. When devices on the bus need to send data, the devices may need to communicate at one time. Of course the devices cannot all send data at once. The device with the highest address number has a higher priority and can send its data first. The controller should usually have a higher priority but it can be lowered a little when data throughput from hard disks may be more important. When multiple SCSI controllers are placed in one system, each SCSI Bus is separate from another. This means that each SCSI controller can have the same address number. Now, you may be wondering about the SCSI Bus with two controllers. Redundancy is important, but this layout is not what you may be thinking. In some cluster situations, two servers are connected to an external hard disk. The external hard disk contains the applications being run by each server. If one server fails, the other can take over all applications and the users see no loss of productivity. There will be a loss of performance, but it may not be noticed depending on the servers and the load. The external hard disk is a SCSI drive while each server in the cluster contains one SCSI controller, both connected to the external SCSI drive. Each controller, since it is on one bus, needs to have a different address. Let’s say the SCSI controllers each support 8 devices. One controller can have an address of 7 and the other can be 6 while the external hard disk is 5. The number of devices on a SCSI Bus is determined by the bus width. The bus width is the number of wires in the connector. When a signal is sent along the bus, there are a specific number of wires to carry the signal. One signal represents one address. If a controller has a bus width of 8 then it can address 8 devices, while a 16 bit bus width can address 16 devices. It is also important to know that the SCSI controller has a specific type. Each type has a different connector. Each device must have a similar connector or a special cable converter is needed to connect the device to the SCSI Bus. For example, the Ultra Wide SCSI has 68 pins on the connector and the Ultra2 SCSI has 50 pins. NOTE: Before purchasing SCSI devices and a controller, be sure to verify that they will work together or that you can get a converter to make it work.