Before you start
Objectives: Learn what is SCSI, how it is used, how it is configured, which SCSI standards exist, and how do different connectors look like.
Prerequisites: no prerequisites.
Key terms: SCSI, devices, bus, device, connector, wide, cable, ID, high, MHz, controller, density, bit
What is SCSI
SCSI is an interface for connecting many different types of devices like hard disks, tape drive, DVD-ROM drives, etc. SCSI is different from IDE, EIDE or ATA. SCSI is typically used in high-performance systems and servers. SCSI uses a communications bus, often called a chain, which consists of series of devices of any type all connected together. All of those devices are controlled by the SCSI controller. The SCSI controller can be built into the motherboard or it can come in a form of expansion board which can be installed in expansion slot. SCSI is pronounced “scuzzy”
Most SCSI boards will actually have two different connectors. One connector is internal connector, and the other one is external connector. This allows us to connect internal as well as external devices to the SCSI bus. For example, to the internal connector we could attach a SCSI hard drive. To the external connector we could connect a SCSI printer. In this case we actually have three different SCSI devices on the SCSI bus, and those are the controller, the hard disk, and the printer. Now, the SCSI bus can actually have up to 8 or 16 devices, depending on which SCSI standard is used. All those devices can be attached to the same internal SCSI ribbon cable on which other devices are connected also. So, internally we have a single ribbon cable with lots of connectors. Externally, things work things work a little differently. Most external SCSI devices actually have two different SCSI ports. One port is the “in” port, and the other is the “out” port. So, externally we chain devices together by using the “in” and the “out” port. In our case we have a printer, so we will connect our SCSI cable to the “in” port on our printer, and we can connect another device to the “out” port on our printer to the “in” port on that other device. The other device also has both the “in” and the “out” ports. This way we can connect a lot of of different devices to the system by using only one interface card. We are not limited to only one SCSI card in the system. We can install two or even more SCSI cards and control a whole bunch of different SCSI devices at the same time.
Setting up the SCSI bus is a little bit more complex than setting up IDE or ATA type systems. With SCSI we have to understand two important things. The first one is the SCSI ID. The purpose of the SCSI ID is to uniquely identify each device on the SCSI bus. Every device has to have a unique ID that identifies it to the controller. No two devices can have the same ID. Depending on the SCSI standard, the SCSI ID can be either a number from 0 to 7 or 0 to 15. The SCSI ID is used by the SCSI controller to route the appropriate information to the right device. When configuring the SCSI bus, the very first thing we need to do is set the SCSI ID on the various devices that currently reside on the SCSI bus, and ensure that each one is unique. When doing this we should remember that the position of the devices on the cable is not related to the SCSI ID, there is no relationship whatsoever. What the SCSI ID does is set the priority of the particular device. The lower the device ID, the higher the priority. SCSI ID “0” has the highest priority. For performance, we should assign lower IDs to the hard drives. The ID of the SCSI controller is 7 by default, but we can change it.
We can assign the SCSI ID in different ways, depending on the device. The first way is with jumpers. On the back many SCSI devices, especially CD-ROM drives, we’ll see a set of three jumpers. By placing a shunt on these jumpers we set the SCSI ID. The first jumper has a value of one. The second jumper has the value of two. Third jumper has the value of four (not three – this is because we actually work with binary numbers here). The ID is the sum of all the jumpers that have shunts. If we don’t use any jumpers, the ID is 0. On some devices will have DIP switches which can be used to set the SCSI ID. Other devices will have a round dial indicator which can be used to set the SCSI ID. Some dials will have a button which can be pressed in order to set the ID.
As we said, we should always use unique IDs in the chain, but there is a time when we can break that rule – by using Logical Unit Numbers or LUNs. A LUN allows multiple SCSI devices to share the same ID. LUNs are usually used with disk arrays, since a whole disk array will usually be represented as one disk to the BIOS, so there is no point for using multiple IDs for all the disk in the disk array.
Another thing to keep in mind when configuring the SCSI bus is thetermination. When the data travels to the ribbon cable to the various devices, we want it to go in one direction. We don’t want the signal to be reflected of the end device and come back trough the ribbon cable. That would duplicate the data. In order to keep this from happening we need to put a terminator on each end of the SCSI bus, or to the last device in the chain. The terminator is a resistor that absorbs the data signals, and that prevents the signal from being reflected up and down the bus. Terminators are implemented in a variety of different ways of the SCSI bus. One type is implemented off the device. We attach the terminator device to the end of the chain on the ribbon cable, or to the last external device (to the “out” port) in the chain. In some situations we will use jumpers to set the termination on the particular device. If we want the device to be terminated, we simply put a shunt on the jumper on that device. With some devices we will be able to the software running on our PC to configure the termination. Newer device use the Active Termination technology. Active Termination will check if the device is last in the chain. If it’s the last device, it automatically enables termination. Most newer SCSI devices will use this type of termination, which makes things a lot easier. Remember that both ends of the SCSI bus must be terminated. Devices in the middle, between ends, must not be terminated. Any device that is attached to the SCSI bus after the terminator will not be visible to the controller. Most of the SCSI configuration problems are related to either misconfigured SCSI IDs or misconfigured termination.
There are a lot of different variations when it comes to SCSI standards and we should be familiar with them in order to make sure that we are using the right equipment with the right controller. Before we get to standards we have to know that SCSI can be categorized by how the interface sends signals in the SCSI cabling. There are three basic methods. The first method is calledSingle-Ended (SE). Single-ended SCSI devices use one wire to transfer a single bit of data. The cables that connect them to the SCSI controller can be a maximum of about 1.5 to 3 meters long, depending on the SCSI standard in use. Some older single-ended SCSI-1 devices could be up to 6 meters long. The Single-ended method is susceptible to noise and allows limited cable lengths. The second method is called High Voltage Differential (HVD). HVD uses a pair of wires to transmit a single bit of data on the SCSI bus. This method sends two lines for each signal. One line is the inverse of the other. The difference between these two lines is the SCSI signal. This method is less susceptible to noise and allows an increase in cable length of 82 ft. (25 meters) for all speeds, with a minimum cable length of 30 cm. The third method is called Low Voltage Differential (LVD). This method is similar to HVD, however, it uses less voltage. This method is faster, less susceptible to noise, and allows an increase in cable length over HVD. With multiple devices on an LVD controller, the cable length should not exceed 40 ft (12 meters). You have to remember that Single-ended and Differential devices and controllers are completely incompatible. Beware that there was no difference in the plug between SCSI 2 Single-ended and the SCSI 2 Differential. If we attach those two types together, the devices will probably be damaged since the the electrical signaling is totally different.
Let’s talk about SCSI standards now. The first standard is SCSI 1. It was adopted in 1986 and it provided a SCSI bus that was eight bits wide. The bus ran at a clock speed of 5 MHz. SCSI 1 had a lot of problems because there was a lot of lack of compatibility. The SCSI 1 standard required compliant hardware to respond uniformly only to 18 basic commands. Many device manufacturers created additions to the standard which resulted in incompatibility.We pretty much had to buy the SCSI controller and the SCSI device from the same vendor in order to make things work. Maximum number of devices including the controller was 8. The cable type was 50-pin Centronics. The maximum bus length was 6 m for Single-ended signaling method, 25 m for HVD method, and 12 meters for LVD.
Centronics Male Connector
Centronics Female Connector
To address the compatibility problem in SCSI 1, the SCSI 2 standard was adopted in 1990. It improved termination, added new commands and command queuing feature. Command queuing allows a SCSI controller to send up to 256 commands to a device at a time. The device can then store and process them and reorder them without using the bus. New commands allowed SCSI to support other devices besides hard drives, including CD-ROM drives, tape drives, scanners and digital cameras. The goal of SCSI 2 was to make a standardized set of commands, and a standardized set of hardware. That way, the different vendors equipment can all work together. By doing this, several things were defined. The first thing SCSI 2 defined are standard connectors. The second thing that was defined are standard bus widths, and there were two of them. One was 8 bits wide (same as SCSI 1), and the other was an optional 16 bit wide bus. The 16 bit bus was often called the “Wide SCSI 2” bus. The SCSI 2 also defines the bus speeds. Like SCSI 1, SCSI 2 can also work on 5 MHz, but it also defines a 10 MHz bus. 10 MHz bus was often referred to as Fast SCSI 2. All those settings could be mixed together. When mixing them we get different types of SCSI 2. TheRegular SCSI 2 used 8 bit wide bus that ran at 5 MHz. The Wide SCSI 2used 16 bit bus that ran at 5 MHz. Fast SCSI 2 used an 8 bit wide bus that ran on 10 MHz. The Fast Wide SCSI 2 used a 16 bit bus that ran on 10 MHz. The number of devices on Fast Wide SCSI 2 was 16 (including the controller). Regular SCSI 2 was not that fast, it only provided a throughput around MHz 5 MB per second. Both Wide and Fast SCSI 2 offered 10 MB per second, while the Fast Wide offered 20 MB per second. When it comes to signaling, Single-ended SCSI was probably the most widely implemented version of SCSI 2. Single-ended Fast SCSI 2 bus can be a maximum of 3 m long. With Differential signaling the cable could be up to 25 m long. The cable used in Fast SCSI-2 is High Density 50-pin, and in Wide Fast SCSI-2 is High Density 68-pin.
High Density 50-pin Male Connector
High Density 50-pin Female Connector
High Density 68-pin Male Connector
High Density 68-pin Female Connector
The next standard is the SCSI 3. With SCSI 2 we could have up to 8 devices (including the controller) on the SCSI bus. With SCSI 3 we can have up to 16 different devices. With SCSI 3, SCSI IDs for newer devices no longer must be set manually. It also added support for Firewire, and support for serial data transmissions. SCSI 3 also has two bus widths, 8 bit or 16 bit. However, SCSI 3 defined three new bus speeds. We had 20 MHz, 40 MHz, and 80 MHz. The 20 MHz version of SCSI 3 is also called Ultra SCSI. The 40 MHz version is called Ultra-2 SCSI. The 80 MHz version is called Ultra-3 SCSI. With SCSI-3 we also could combine different speeds with different bus widths. Ultra SCSIran at 20 MHz with 8 bit wide bus (20 MB/s throughput). Wide Ultra SCSI ran at 20 MHz with the 16 bit wide bus (40 MB/s). Ultra-2 SCSI ran with the 40 MHz bus which was 8 bits wide (40 MB/s). Wide Ultra-2 SCSI ran at 40 MHz and it was 16 bits wide (80 MB/s). Ultra-3 SCSI ran at 40 MHz and it was 16 bits wide (also called Ultra160 with 160 MB/s throughput). Finally, Ultra-4(also called Ultra320 or Fast160) ran at 80 MHz and it was 16 bits wide (320 MB/s throughput). When dealing with SCSI 3, we have a whole variety of maximum cable lengths based on different SCSI 3 variations. For example, the Ultra SCSI 3 comes in two different flavors – Single-ended and Differential. SCSI 3 Ultra is the only version of SCSI 3 that actually has a Single-ended version, all the others are Differential only. With Ultra SCSI 3 the Single-ended SCSI bus can be a maximum of 1.5 m in length, while the Differential version of Ultra SCSI 3 can be maximum of 25 m in length (for HVDand 12 m for LVD). Wide Ultra, Ultra 2, Wide Ultra 2 come in Differential version only and the maximum cable length is 25 m for HVD and 12 m for LVD. With all Ultra 3 versions the maximum cable length is 12 m since only LVD is used. The cable used for Ultra SCSI-3 is High Density 50-pin, in Wide Ultra SCSI-3 is High Density 68-pin, in Ultra-2 SCSI-3 is High Density 50-pin, in Wide Ultra-2 SCSI-3 is High Density 68-pin, and in Ultra 3 SCSI-3 is High Density 68-pin.
There are also a SCSI-4 and a SCSI-5 standards which provide different data transfer rates and connectors. They usually use Very High Density (VHD) cables. VHD connectors have 68-pins and are smaller than the HD connectors.
Very High Density VHD Male Connector
Very High Density VHD Female Connector
Other connectors that can be found used with SCSI are IDC, DB25, DB37, and DB50. IDC cables are internal ribbon cables (similar to internal IDE cables) with 50-pins. The IDC cable connects to the internal port on the host adapter. IDC cables are used for 8-bit SCSI. Two typicall DB connectors that are used are DB25 and DB50. DB25 connectors have two rows of pins and are used with older Macs, Zip drives, and scanners. DB50 connectors have three rows of pins and are typically used with Sun SPARCstations. DB connectors are not very common today.
IDC Connector Male
IDC Connector Female
DB25 Connector Male
DB25 Connector Female
DB37 Connector Male
DB37 Connector Female
DB50 Connector Male
DB50 Connector Female
All those standards that we mentioned up to now are parallel interfaces. But, actually SCSI is available in a variety of interfaces. So the first is parallel SCSI (now also called SPI), which uses a parallel bus design. As of 2008, SPI is being replaced by Serial Attached SCSI (SAS), which uses a serial design but retains other aspects of the technology. SAS devices don’t require termination because they use point-to-point connections with the controller. Because only one device is connected to the SAS cable, the entire cable bandwidth is dedicated to the device. Many other interfaces which do not rely on complete SCSI standards still implement the SCSI command protocol. For example, iSCSI drops physical implementation entirely while retaining the SCSI architectural model. iSCSI uses TCP/IP as a transport mechanism.
When configuring SCSI devices first we have to identify the SCSI host adapter. High-end workstations and server motherboards often have a built-in SCSI controller. If not, we have to install a SCSI controller card (host adapter) in an expansion slot like PCI or PCIe. We have to make sure to select the SCSI card based on the SCSI standards it supports. The next thing we have to do is select the correct cables. The type of cable and connectors used depends on the SCSI standard used by the SCSI controller and devices. The next thing we have to do is configure the device IDs. Each device (including the controller) has to have a unique ID on the SCSI chain. We should set a device to a unique ID before we install it. The lower the ID, the higher the priority the device has. The next thing we have to take care of is the termination, which prevents electrical noise and data reflection. Remember that both ends of the SCSI chain must be terminated. Most newer SCSI devices have the auto termination feature available. The next thing that must happen is CMOS configuration. When dealing with SCSI hard drives, the on-board BIOS extension on the hard drive runs automatically during the POST and configures the drive. The last thing we have to do is install drivers for our devices. There are three general types of drivers for SCSI devices. Those are Advanced SCSI Programming Interface (ASPI), Common Access Method (CAM) and Layered Device Driver Architecture (LADDR).