Click here to print this article.

Re-Printed From SystemLogic.net

SCSI: An In-Depth Guide To SCSI Technology
Author: Tom Solinap
Date Posted: March 6th, 2001

Introduction

When I first began being interested in building my own computer, it was hard to understand the difference between different component standards. So I didn't really know what was best for my needs. This is especially true when dealing with storage. Currently, the two most popular hard drive interfaces are IDE/ATA and Small Computer Systems Interface, also known as SCSI. Both have their advantages and disadvantages. Most everyone that have tinkered with their PC has probably heard of these interfaces but most people know very little about the SCSI interface. When I started messing around with my computer, I had a basic concept of what IDE/ATA was and how it fit into the whole scheme of things. However, I only knew that SCSI existed but really didn't know much about it. I did know that it was expensive to implement.

It's not really just an interface, but more of a system level bus which makes it more advanced than IDE. It's similar to IDE in that you use a host adapter (controller) to connect a bunch of hard drives together. The difference is that each SCSI device works together with the system to manage the flow of data. SCSI is not just limited to hard drives but it can support all different types of devices. However, IDE is more commonly used because of the higher cost of SCSI. Also, the average user won't really benefit much from using SCSI. It's the higher end systems that benefit and use SCSI. Standardization has been a problem for both IDE/ATA and SCSI. It's always confusing to try to figure out what all the standards mean. This article will basically try to explain all the different types of SCSI standards and the features associated with them, as well as, look at the issues surrounding SCSI. Since there are many implementations of SCSI out there from various manufacturers, I'll try to look at SCSI in general. This is by no means a "How To" guide, but more of an explanation of the overall picture.

History of Small Computer Systems Interface (SCSI)

As I understand it, the first concepts of SCSI was thought up by Alan Shugart of Shugart Associates. He created a very early predecessor of SCSI, the Shugart Associates Systems Interface (SASI). Although it was very limited in its command set and capabilities, it was very revolutionary for its time. Shugart pushed to get SASI made into an ANSI standard, so it would be more widely used in the industry. Changes were made to the interface to improve it a bit, including the name change to SCSI. In 1986, the first SCSI standard was approved by ANSI. Since that first standard was approved, SCSI has evolved into the SCSI-2 and SCSI-3 standards. From the start, SCSI was designed to provide high level performance and expandability. In the next sections I'll try to explain the SCSI standards.

SCSI-1

SCSI-1 is what started it all. As you probably guessed, this standard is already obsolete. SCSI-1 basically involved the specs for the basic SCSI bus, which used an 8-bit bus, with about 5 MB/s max transfer rate. Data is transferred in parallel using multiple data lines. That's not really much, but you have to understand that back then, floppies were still in common use. It was very limited and only had the most basic features and transfer modes. The data transmission was very simple and used single ended transmission with passive termination. Single ended transmission or SE, involves sending positive and zero voltages to represent 1s and 0s. To understand what termination is, think back to high school physics class.

When you have a wave traveling along a piece of string, it will keep going until it reaches the end then reflect back but with a reduced amplitude. This is caused by interference between the reflected wave and the wave still traveling towards the end. Electrical signals behave in a similar way. So, when a data signal is sent along a SCSI bus and it reaches one end of it, the reflected signal will cause interference with other data signals on the bus. To eliminate this the signals are effectively terminated once they reach the end of the bus. Passive termination uses simple resistors to do this. It's not really used for any modern SCSI speeds.

SCSI-2

The next leap in SCSI was the SCSI-2 specification. It not only added enhancements that improved upon SCSI-1, but also tried to standardize the command set. The previous SCSI standard didn't really do that so manufacturers would implement their own command set, which led to much confusion. Although work on SCSI-2 began before even SCSI-1 was approved, it wasn't until 1994 that the final spec was approved by ANSI.

The improvements included Fast SCSI, Wide SCSI, active termination, differential signaling (HVD), command queuing, and other additions as well. Command queuing was introduced to allow simultaneous multiple command requests between devices on the bus. Also, more devices were supported on the bus to keep up with the current technology, such as CD-ROMs, Zip drives, etc. Fast SCSI doubles the bus speed from 5 to 10 MHz which means a transfer rate of 10 MB/s assuming the bus width is 8 bits. Wide SCSI increases the width of the bus to 16-32 bits instead of the original 8 bits, which increases the data throughput. If you combine Fast and Wide SCSI, you're looking at transfer speeds of up to 20 MB/s. Also, the number of devices that can be supported on the SCSI bus is doubled when using Wide SCSI (16 devices as opposed to 8).

Active termination improves upon the passive termination of SCSI-1 by using voltage regulators to more reliably terminate the bus. The cables and connectors have also been improved upon to allow for better data transfer. The cable lengths in the original SCSI spec were adequate at the time, but it became necessary to have longer cables support higher speeds. However, this is not as trivial as it may seem. As with any high speed bus, keeping the signal clean is always a problem. The greater the distance the signal has to travel, the more problems you have due to interference, cross-talk, and degradation. The faster the bus runs, the chances of these problems popping up increases. This is the major limitation of SE signaling. As you increase the bus speed, the maximum allowable cable length decreases.

To get around this problem differential signaling or High Voltage Differential was developed. This uses two wires to transmit each signal. To send a 0, zero voltage is sent on both wires, and to send a 1, a positive voltage is sent on the first wire only. The second wire contains the electrical opposite of the first wire. Once the signal is received, the device on the receiving end takes the difference between the two signals and converts it to a 0 or 1 depending whether it sees a zero or high voltage. Although this method solves the cable length problem, it adds another problem of high cost. Later on a new method called Low Voltage Differential was developed to replace the more expensive HVD.

SCSI-3

The most recent SCSI standard is SCSI-3. It differs from the old SCSI-2 spec in that it contains many more new features, technologies, and command sets. Instead of going with a single document that covered everything in SCSI-3, the decision was made to have SCSI-3 be a collection of standards that were related to each other. This would allow groups to independently work on the standards separately, and would allow popular ones to progress faster than others. Work started on this new collection of standards a year before SCSI-2 was released.

SCSI-3 covers many more technologies and standards compared to SCSI-2. Some would say, maybe too many. Since SCSI-3 really refers to so many technologies, many people get confused by the term. SCSI-3 hasn't been approved over-all, but the some elements of the standard has been in use already. It would probably take me awhile to get into the entire SCSI-3 spec, so I'll leave that as an exercise for the more curious readers out there. There's so much changing in the spec every month that any info I provide might be outdated rather quickly. However, I will get into some of the improvements made into the SCSI-3 interface, known as the SCSI-3 Parallel Interface (SPI). This interface has evolved into SPI-2, SPI-3, and SPI-4.

The original SPI included specs for the protocols used for parallel SCSI as well as Fast SCSI. Fast-20 was later added to the spec which defined a faster 20 MHz bus, increasing the transfer rate to 40 MB/s. SPI-2 added even more changes, which included Fast-40, Low Voltage Differential Signaling (LVD), multimode devices, new connectors, and more. Fast-40 again doubles the transfer rate to 80 MB/s on a wide channel. To replace the old SE and HVD signaling methods, LVD was developed and added to the spec. This method involves pretty much the same concept as HVD, except low voltages are used. This lowers cost and power consumption. LVD has pretty much replaced HVD in modern SCSI systems, and it's even required for the fastest SCSI buses. Ultra2 SCSI and Wide Ultra2 SCSI are the informal marketing terms for devices that conform to the SPI-2 standard.

The SPI-3 standards again doubled the transfer rate to 160 MB/s with Fast-80 data transfer. Lots of performance enhancements were added to this evolution of SPI, as well as removing some obsolete standards. The problem with this set of standards is that any device that uses any subset of the new features were called Ultra3 SCSI devices. That means that two devices can be both Ultra3 but still be incompatible with each other. To solve this, new marketing terms were coined to identify these new devices. The result is Ultra160 SCSI and Ultra160+ SCSI. SPI-4 is currently still in the works. It includes Fast-160 which yet again doubles the transfer rate to 320 MB/s. Despite still being in the development stage, devices are already using the new standard, Ultra320. Other than that, it's not really clear what else may be included in the new spec.

Data Transfer Modes

Well this is the section you've all been waiting for. What's with all this Ultra SCSI and Wide Ultra SCSI nonsense? These terms basically refer to the different transfer modes which determine the speed and width of the SCSI bus. The different SCSI standards have defined these transfer modes. I won't bother going into the modes defined in the SCSI-1 or SCSI-2 standards but I will mention them so that you know they exist. For convenience sake, I'll just put up a table of the different modes grouped by which SCSI standard they were defined in. The bus speed, width, and transfer speed are also given.

Transfer Modes Defined in SCSI-1
Name Bus Width (Bits) Bus Speed (MHz) Transfer Speed (MB/s)
SCSI 8 5 5

Transfer Modes Defined in SCSI-2
Name Bus Width (Bits) Bus Speed (MHz) Transfer Speed (MB/s)
Fast SCSI 8 10 10
Wide SCSI 16 5 10
Fast Wide SCSI 16 10 20

Transfer Modes Defined in SCSI-3
Name Bus Width (Bits) Bus Speed (MHz) Transfer Speed (MB/s)
Ultra SCSI 8 20 20
Wide Ultra SCSI 16 20 40
Ultra2 SCSI 8 40 40
Wide Ultra2 SCSI 16 40 80
Ultra160 SCSI 16 40 160
Ultra160+ SCSI 16 40 160
Ultra320 SCSI 16 80 320

As you can see that there are many different flavors of SCSI, and the average person will most likely be confused. Not only do these modes differ in their bus width and speed, but also in the type of connectors used, the termination method, the signaling method, the number of devices supported and the max cable length. Basically any mode that has a bus width of 8-bits uses 50-pin cables, and any mode with a bus width of 16-bits uses 68-pin cables. Also, anything after Ultra2 SCSI uses LVD for it's signaling method. The older modes use SE and HVD. In addition to the increased speed, the newest modes also include some special features defined in the SPI-3 and SPI-4 spec to improve performance and reliability. You might be wondering what's the difference between Ultra160 and Ultra160+. Well, Ultra160+ includes two more key features from the SPI-3 Ultra3 SCSI spec. Ultra160 only has 3 of the 5 features in Ultra3, while Ultra160+ has all 5. The future of SCSI is still unclear since SCSI-3 hasn't even been finalized, but I'm sure there's a lot more in store.

Compatibility Issues

With all the different types of SCSI hardware being manufactured, compatibility problems are bound to come up one way or another. Fortunately, all SCSI standards are designed to be backwards compatible. At least, that's what the designers intended. The reality is that you are never guaranteed to have any two different SCSI devices work reliably. It's best to make sure you have the same type of hardware (ie. all Ultra160 devices, etc). Mixing different types might not always work, and you'll pretty much be running at the slowest device's speed anyway. Is your old host adapter going to be compatible with that new Ultra320 hard drive you just bought? Do you have to buy a new one? Most of the modern SCSI standards are compatible with each other. The only real issue is mixing different bus widths and signaling methods. Planning is definitely a good thing when you want to build a SCSI system. You don't want to be stuck with devices that don't work with each other, especially expensive ones.

SCSI Vs. IDE/ATA

Now that you know what SCSI is and the many different standards involved in the spec, you can see that it is more than just an interface. IDE/ATA is cheap and easy to implement, but it isn't as feature packed as SCSI. Which one is better? Well, in terms of all out features and performance, SCSI definitely wins out. The transfer speed of SCSI is reaching 320 MB/s already, while IDE devices are still in the sub 100 MB/s stage. Even with ATA/100 100 MB/s is rarely seen. SCSI is also very good when it comes to multiprocessing. Operating systems that take advantage of this will see higher performance from SCSI. Also, SCSI hard drives are faster than IDE drives. I mean 10,000 rpm SCSI drives have been out for some time now. Only recently have IDE drives even come close to that speed. So if SCSI is so great, why isn't everyone using it? Well, the cost is usually what deters most people. Integrated SCSI host adapters are more expensive to implement than IDE controllers. The SCSI devices are also more expensive than their IDE counterparts. You definitely pay a premium if you want to use SCSI. If you're only have simple applications, SCSI isn't going to be that much faster than IDE/ATA. It's the more complex applications that SCSI wins out.

Also for the average individual, all the different SCSI types and configurations can be very confusing. Compatibility is also another issue. Is the host adapter you bought going to work in your system, or is that new 10,000 rpm drive going to work with your old host adapter? An IDE/ATA system is much easier to setup and put together compared to a SCSI system. You don't have to worry about termination, bus width, signaling methods, and addressing. However, SCSI can support up to 16 devices on a given chain, compared to only 2 for IDE/ATA. You have a lot more flexibility when it comes to physical installation since SCSI cables can be quite long. It's clear that SCSI is for the more performance hungry individual where money is really not an issue. Server systems that need the performance often use SCSI in conjunction with RAID. For the average user I'd recommend just sticking with IDE/ATA, and save yourself some cash. Unless of course you have more money than you know what to do with, then there's no contest.

SCSI Implementations

So exactly how do you put together a SCSI system? Well, the essential things you need are a host adapter, some SCSI devices (hard drives, CD-ROMs, etc.), and of course cables. Setting up the SCSI bus is fairly straight forward when it comes to small systems. The bus is basically arranged in a straight line. All the devices are connected to at most 2 devices. The only real concern you need to address is having proper termination. Like I said earlier, we don't want the signals to be reflected back and cause interference. Each end of the bus must have a terminator, which can be either SCSI devices that are part of the chain or actual terminators. So the order of the devices in the chain doesn't really matter. However, depending on the physical arrangement of the system and case, the order should be apparent. Although you can have up to 16 devices on a single chain, practically speaking most people can't fit that many devices in their cases. The complexity level increases if you add more devices.

Another thing you have to worry about when putting together a SCSI system is giving each device their own address. Depending on the bus width, you may be limited to only 8 devices on a given SCSI chain. Each device is usually assigned a number from 0 to 7 for narrow devices (8-bit), or 0 to 16 for wide devices (16-bit). Narrow devices won't be able to access any devices with IDs over 7, so you should keep that in mind as well. Care should be taken when mixing different bus widths on the same SCSI chain. You need to make sure that your host adapter hardware properly supports this and that you have the proper cables for everything. For the average individual, you probably shouldn't have that much trouble setting up a SCSI system, provided you have the right hardware. Larger systems will be more complex, and probably have more issues. In high end servers, RAID SCSI implementations are usually used. This combines the performance and data reliability features of RAID with the performance and features of SCSI, which is usually desired with high end machines.

Conclusion

As you can see, SCSI is not just your average interface. It's actually a very complex and advanced system level bus. Although this isn't by far the most intensive guide to SCSI, I tried to do as much justice as I could to the subject. The future still holds many possibilities for the SCSI-3 standard since it's not finished yet. I mean it even has Fibre Channel and IEEE-1394 (FireWire) in the spec, so who knows what else might pop up. If you're thinking of switching to SCSI, it really depends on your needs and type of system you want. SCSI implementations can get very expensive, so you have to decide if the performance is worth it. If the work you're doing isn't very complicated or doesn't involve large amounts of I/O activity, you probably don't need to waste money on a SCSI system. Setting it all up can also be a pain if you don't know what you're doing. Everything should be straight forward as long as you have the proper hardware. I hope you've enjoyed reading this article and maybe learned a thing or two about SCSI.

Re-Printed From SystemLogic.net