A SCSI system consists of a SCSI controller (also called the host adaptor), the SCSI bus and one or more SCSI devices.
The host adaptor is the controller of the SCSI system and directly interacts with the host system (for example, the computer).
A SCSI system consists of a SCSI controller, the SCSI bus and one or more SCSI devices
It uses the SCSI bus (parallel, bi-directional) to communicate with SCSI devices via their respective device controllers. Thus, a SCSI device can communicate with another SCSI device without ever having to use any of the host system’s resources; their communication is done using only the host adaptor. This setup frees the internal processor of the system of doing I/O related tasks, allowing it to concentrate on more pressing issues and increasing the overall speed of the system. This is in contrast with IDE (ATA) devices, which depend upon the host system to broker a deal between them. Also, SCSI has support for daisy-chaining multiple devices (up to 16, depending upon the type of implementation) on a single bus, compared to two devices that can co-exist on an IDE bus.
Not only an interface
SCSI is more than just a standard that specifies how devices connect to each other physically. The SCSI standard includes a command set that standardizes the way the SCSI devices communicate with each other. It describes at length things such as the various states that the SCSI bus might be in at any given time (for example, free, selection phase or command phase) and the commands/codes/signals that the devices must use to exchange information. In effect, the standard lays down a protocol of its own, which all members must use to communicate with one another.
Each device (device is a SCSI device controller or the host adaptor, and not a peripheral) on the SCSI bus needs to be given a unique ID. This ID is an integer value that can range from 0 to 7 (or 15, depending upon the bus configuration). Most host SCSI adapters ship with their ID set to 7. This value is, of course, given in its manual and can be changed. Devices can be given any IDs irrespective of their physical order in the chain. The presence of devices with same ID would result in conflicts that would reset the bus and render it unusable until the conflict is resolved. Device IDs can be set using jumpers or dials on that device.
Each device on the SCSI bus needs to be given a unique Id
Talking about device IDs, it might well be worth mentioning a SCAM that once hit SCSI. SCAM (SCSI Configured AutoMatically) was designed to allow SCSI devices to be free from the hassle of assigning device IDs manually. The SCSI controller was to assign device IDs to each of the devices automatically, thus freeing the user from the responsibility. This attempt, however, wasn’t much successful, as all SCSI-device manufacturers did not accept it. Thus, if you had even one device in your system that did not support SCAM, you were always likely to have trouble with conflicting device IDs.
Besides, not all users appreciated this bright idea, as many of their legacy applications needed the SCSI devices to have specific device IDs for proper functioning. Thus, SCAM faded from public memory not too long after creating some initial stir.
Terminating a SCSI bus is an issue, which though fairly simple, needs to be given proper attention. Termination is nothing but the dampening of the reflected signal, which must be done at both the physical ends of the bus to ensure proper SCSI functioning. For example, consider three SCSI devices that share a bus and a SCSI controller, with the controller at one end of the bus and one of the devices at the other. The bus would have to be terminated at both the controller and the last of the devices. Termination needs to be taken care of while using SCSI because it involves using many devices on the same bus.
Bus termination can be done in several ways. Most of the newer devices can terminate themselves. Termination can be turned off or on, depending upon where in the chain the device in question is to be used. Needless to say, termination is turned off when the device is being used in the middle of a chain and turned on when it is used at the end.
Another way to terminate a SCSI bus is to use explicit bus terminators, which can be attached at either end of the SCSI bus to achieve the purpose. Terminators can be either passive (use the power signal of the SCSI bus) or active (use external voltage regulators to provide termination). Active terminators tend be more reliable. The distance between the bus terminator (whether active or passive) and the last device on the bus should not exceed 4 inches.
Also available are self-terminating SCSI cables, which can be used to terminate the SCSI bus in the absence of the above two options.
SCSI uses different techniques for signaling (that is, placing SCSI signals on the cable). Single-ended signaling uses a single wire that is driven against ground and the signal is the voltage difference between that wire and ground. Differential signaling uses an additional wire and the signal is the voltage difference between the two wires. Differential signaling was introduced as what is now known as HVD (High Voltage Differential) signaling. It operated at a voltage of 5 V. Differential signaling allows for longer cables (25 m) than single-ended signaling (maximum length of 1.5 to 6 m, depending upon the speed of the bus).
Differential signaling is also not directly compatible with single-ended signaling, so if both are to be used they have to be connected by using a special single-ended to differential converter.
Improvements were later made in HVD to introduce LVD (Low Voltage Differential) signaling, which operated at a voltage of 3V. It allows for more speed than HVD, but halved the allowed cable length to 12 m. LVD is not directly compatible with HVD, but both can be used together using a LVD to HVD converter.