IBM®
Skip to main content
    Country/region [select]      Terms of use
 
 
    
     Home      Products      Services & solutions      Support & downloads      My account     
Standards and specs: The Small Computer System Interface (SCSI) standard
skip to main content

developerWorks  >  Power Architecture technology  >

Standards and specs: The Small Computer System Interface (SCSI) standard

Why the SCSI specification matters even if you don't have any SCSI devices

developerWorks
Document options

Document options requiring JavaScript are not displayed


Rate this page

Help us improve this content


Level: Introductory

Peter Seebach (developerworks@seebs.plethora.net), Freelance author, Plethora.net

24 May 2005

SCSI has a reputation as one of the oldest and most widely respected standards in computing, but it also has a reputation for poor price and performance and amazing quirkiness. This month's Standards and specs looks at the history of the legendary SCSI specification.

The Small Computer System Interface (or SCSI) standard is about 20 years old and is still in use, although it has evolved and changed a great deal since its humble beginnings as a proposal by Shugart Associates to standardize device interfaces.

The SCSI standard is a parallel interface standard that traditionally handled up to 160 MBps in data transmission and allowed users to connect several devices to a single port (making it not just an interface, but also an I/O bus).

The SCSI standard is most often used for disk devices, but such devices as CD-ROM drives, tape drives, and scanners are also used with it. In fact, there is no particular reason to limit the scope: any device could use SCSI. However, the disk interface part of the standard is the highest profile, probably because it is the most mature part of the standard.

Alan Shugart: Moving and shaking

Alan Shugart, founder of Shugart Associates and Seagate, gets most of the credit for being the visionary who realized the world needed a standard like this one. The initial protocol was called the "Shugart Associates Systems Interface," or SASI. It had a fairly limited set of protocol commands, and performance peaked out at 1.5 MBps (which sounds pretty weak, but for 1979 this was incredible).

In 1981, Shugart Associates was in conversation with other vendors (like NCR) about interface standardization. By 1982, ANSI had a technical committee working on the new standard, although they had redesignated it to its current name, SCSI.

The official standard was released in 1986, and the Mac Plus was one of the first machines to actually ship with SCSI. Apple continued using SCSI as a primary drive interface in its systems for a very long time -- the first IDE-based desktop Macintosh systems would not be seen for a decade or so.



Back to top


The evolving SCSI

Some flavors of SCSI

The following are varieties of SCSI:

  • SCSI-1 uses an 8-bit bus and supports data rates of 5 MBps.
  • SCSI-2 adds optional 16-bit support, data rates of up to 20MBps, and new connectors (including the widely known 50-pin D-sub connector).
  • Wide SCSI uses a wider cable (68 pins) to support 16-bit transfers.
  • Fast SCSI uses an 8-bit bus, but doubles the clock rate to support data rates of 10 MBps.
  • Fast Wide SCSI uses a 16-bit bus and supports data rates of 20 MBps.
  • Ultra SCSI uses an 8-bit bus and supports data rates of 20 MBps.
  • Ultra Wide SCSI uses a 16-bit bus and supports data rates of 40 MBps.
  • SCSI-3 is a collection of related standards, including the Ultra, Ultra2, and faster standards.
  • Ultra2 SCSI uses an 8-bit bus and supports data rates of 40 MBps.
  • Wide Ultra2 SCSI uses a 16-bit bus and supports data rates of 80 MBps.
  • Ultra3 SCSI uses a 16-bit bus and supports data rates of 160 MBps.
  • Ultra320 uses a 16-bit bus and supports data rates of 320 MBps. It requires a new data-transfer mode with an 80 MHz free-running clock to eliminate ISI problems with the clock signal.
  • Ultra640 is the same as the 320 except it supports data rates of 640 MBps and its clock is 160 MHz.

The following section looks at a bit of the interface standard's history.

SCSI-1: A good beginning

The SCSI-1 specification nominally supported 5 MBps transfer rates; in reality, the Mac Plus couldn't come close to this, but it was still faster than the pre-SCSI Mac ever managed to be.

Early SCSI systems did all sorts of things no one would expect to see today. For instance, the AT&T 3b2 had an SCSI controller which was connected to a disk controller -- and that disk controller could control more than one disk. Modern SCSI drives generally have an on-board controller for each drive; it has been this way for a long time. The support for logical unit numbers (LUNs, a unique identifier used on an SCSI bus to distinguish between devices that share the same bus) was crucial in keeping costs reasonable when the controller hardware was large and expensive. It became much less significant later. (That's not to say it's not still in use today; more on this later.)

SCSI's design as, essentially, a peer-to-peer network allowed all sorts of creativity. A computer lab I saw in 1989 had seven computers hooked up to a single hard drive. Even more recent devices use similar techniques. An SCSI-based sampler might well have its own SCSI ID, allowing it to share its internal disk with a music workstation.

SCSI-2: Bringing standardization to a point

At this early stage, though, what SCSI needed was better performance (and a standardized command set). It got it with SCSI-2. The SCSI-2 standard (originating in 1985, before the ink was dry on the SCSI-1 standard and it was formally approved) was released in 1990, then retracted for a few changes and re-released in 1994. There are still some references to the 1990 standard, but there aren't all that many changes -- it seems the committee just wanted to get a few points nailed down. SCSI-2 provided for fast SCSI (10 MHz) and for wide SCSI (16 bits per transfer instead of 8). In fact, with fast and wide SCSI, you could (in theory) move 20 MBps. Performance was a big improvement, but it might not have been the biggest alteration.

SCSI-2 also standardized device command sets. The SCSI-1 standard was weak in this area, resulting in an explosion of custom drivers for a given disk. The Macintosh showed long-term effects of this problem -- the Mac assumed that each disk would have its own drivers stored on the disk; it simply would not attempt to drive a disk for which it did not have specific drivers.

The result of this chaos was a market in third-party disk drivers and utilities. The same thing happened with CD-ROM drives -- a CD-ROM drive not on Apple's list simply wouldn't do anything until drivers had been loaded. SCSI-2 fixed the underlying problem, but Apple didn't really address the software implications until Mac OS X.

Still, since the SCSI-2 standard came out, SCSI devices have no reason to be incompatible. Real incompatibilities are now very rare.

SCSI-2 also dramatically improved the available choices in cabling and signaling, as well as adding support for command queuing. Command queuing is one of the features which has continued to keep SCSI subsystems as a good option for workstations and servers, allowing a drive to respond to multiple commands in the most efficient order rather than in the order in which they were received. On a busy system, the performance difference can be quite impressive.

SCSI-3: Widening the reach

The SCSI-3 standard started in 1993, once again before SCSI-2 had finished being approved. SCSI-3, rather than being a single unified standard, is a family of standards which work together. It is possible to comply with the SCSI-3 command set while not using any of the suggested electrical interfaces. This has been used heavily to provide a command protocol for devices that use some other bus to transport SCSI packets back and forth.

Today, the SCSI protocol is very heavily used in ATAPI and USB devices, not just for devices with actual SCSI cables. While USB and FireWire have eaten away a lot of the market for SCSI scanners, vast numbers of high-end SCSI scanners and similar devices still exist and are still in quite active use. Similarly, while many see SCSI as an industrial server feature, serious power users continue to use SCSI disks for high-performance systems. The performance advantage is quite noticeable under heavy loads.



Back to top


Technical quirks

The technical quirks of early SCSI are famous. The early SCSI standard depended heavily on resistor packs placed strategically on an SCSI cable (in theory, at both ends). Devices simply assumed the signaling was correct and shoved the bits around. "Bad termination" could mean nearly anything and could have unpredictable effects, ranging from data loss to poor performance. Drives might be detected at a strange or implausible data rate, occasionally timeout on commands, or just plain hand back garbage.

A couple of typical quotes from a fortune cookie database set the tone for what it was like to deal with early SCSI:

Getting a SCSI chain working is perfectly simple if you remember that there must be exactly three terminations: one on one end of the cable, one on the far end, and the goat, terminated over the SCSI chain with a silver-handled knife whilst burning black candles. -- Anthony DeBoer
SCSI is NOT magic. There are fundamental technical reasons why it is necessary to sacrifice a young goat to your SCSI chain now and then. -- John Woods

This is, of course, an exaggeration. I don't know why these guys were fixated on goats -- a chicken will do just fine. On a more serious note, the amount of work that goes into this is not inconsiderable. On one of my Sun® 3/80 systems, I could run a hard drive with no termination in one drive bay or with inline termination (between the drive and the board!) in the other. I still have somewhere six different 25- to 50-pin SCSI cables of which exactly one allowed me to use my SCSI tape drive and external SCSI disk at the same time on an old Amiga.

Modern SCSI is dramatically more stable. Low-voltage differential (LVD) cabling and cards which can perform "automatic" termination solve a great number of problems. Nonetheless, I still have a drawer full of "passive" and "active" terminators, inline terminators, and SCSI cables (each of which I think is particularly lucky -- it never hurts to have a charm).

SCSI termination problems are often cited as a reason to prefer other protocols, such as ATA/IDE, but in practice, mention of these problems mostly only comes up when an SCSI chain is doing something (such as connecting seven devices) which ATA can't even dream of doing.



Back to top


SCSI over other wires

Using the SCSI specification to describe messages which are then transmitted atop other protocols -- such as the USB mass storage specification, the ATAPI specification, or even FireWire -- shows something important about standardization: The world really did need a specification for some of the common tasks of disk access. The decision in SCSI-3 to provide multiple distinct components of the standard made it possible for people working on other standards to incorporate useful bits of the SCSI design. This is the essence of standardization in its finest example: Not only do people use the SCSI standard to make SCSI devices, but they also use it to make other standards more compatible with each other!

The ATAPI specification is essentially a way to send SCSI packets over an ATA bus, providing an SCSI interface to devices, most often CD drives or tape drives. Some operating systems just provide an SCSI interface to these devices, and others provide it as an emulation layer. The ATAPI/SCSI emulation layer is particularly crucial to such things as programs that wish to talk to a CD or DVD burner.

Not everything that uses the IDE bus talks SCSI. Most ATA disks use the somewhat simpler (and less flexible) ATA specification instead. At least one vendor has produced an IDE tape drive using an entirely custom protocol -- annoyingly, the vendor has advertised it as "ATAPI" even though it isn't. Still, most vendors have played nice and ATAPI has offered a single stable interface to a broad variety of devices.

The SCSI protocol is used for USB mass storage devices, too. This has had the effect of resurrecting the LUNs (which have otherwise been fading into obscurity). I have a card reader which reads a reasonably broad subset of the currently available varieties of flash memory. It has four slots (allowing it to read something like eight varieties of memory) which show up as four SCSI LUNs over a standard USB mass storage driver. This is an excellent example of what SCSI LUNs were supposed to be used for, and it's nice to notice that they're still being used.

Another good example of using the SCSI protocol is iSCSI, which uses TCP/IP transport to move SCSI commands around. Once again, the SCSI protocol is being used because it gives a good, standardized way to interact with devices, especially disks. Some vendors aren't so hot on this idea -- SCSI's design isn't a perfect match for the performance characteristics of TCP/IP, but it is a good illustration of the way in which protocol and electronic specifications can be separated.



Back to top


Non-disk SCSI devices

Time and time again, people forget that SCSI was ever used for anything but disk drives, but one of the strengths of SCSI was its comparatively high speed. Until USB 2.0 and FireWire came on the scene, nothing else (except maybe fiber channel which the consumer market reasonably chose to disregard) was even close. This speed led to using SCSI in scanners since they tend to ship a lot of data around. Given that a scan of even a single 35mm slide could easily run to 16-plus megabytes of data, the ability to move that data quickly matters.

Furthermore, the SCSI protocol does a lot of the low-level work for such a device. A vendor using SCSI didn't necessarily need to reinvent the entire communications protocol. (Many scanners used an additional driver layer called TWAIN which provided a consistent interface to scanner capabilities.)

Musical hardware has a disproportionate tendency to support SCSI. This might have something to do with the popularity of Macintosh hardware among musicians since SCSI was more widely available than say, parallel ports. The SCSI performance was another important consideration since moving a 30-second CD-quality sample over a serial port line is just plain painful.

Finally, remember that the computer itself is just another SCSI device. While convention dictates that the computer be at SCSI ID 7, some systems allow this to be overridden. Multiple systems sharing a single disk can be risky or confusing -- but when disks were expensive, this scheme could be worth it.

Multiple systems sharing a disk but only reading from it is another possible use. Some of the larger Xerox printers had support for sharing a disk with a workstation; this could deliver huge print jobs to them quickly and reliably.



Back to top


Cost, performance, and reliability

The cost of SCSI disks reflects both economies of scale and the economic reality -- server hardware can cost as much as it wants to. Not that long ago, there were disks where the IDE and SCSI versions of the same disk were the same hardware with a different controller card bolted on. The SCSI one might well cost more -- and might come with a better warranty -- but this is no longer the case.

For comparable amounts of money today, you can get a 73 GB SCSI disk or a 250 GB IDE disk. SCSI disks have rigidly stuck to a progression based on 4.5 GB disks; 9 GB disks led to 18, 36, and 73 GB disks. (Expect some rounding error.) Costs are generally higher than typical consumers are willing to pay, and an SCSI controller can easily cost five times what an IDE controller would. On the other hand, IDE controllers tend to be 33 MHz, 32-bit PCI devices, while SCSI controllers are often designed to work in 66 MHz, 64-bit slots.

The fundamental issue here is obviously not the performance of a single disk; disks don't generally provide 320 MBps of bandwidth. However, server systems might well have a half-dozen disks or more striped together into giant, fast RAID systems. This makes "IDE RAID controllers" seem sort of like a joke.

In short, SCSI users today are generally paying a premium for performance. While IDE has improved dramatically from the days of CPU-intensive polling, it's still really not trying to compete with the bandwidth or features of SCSI. SCSI disks take command queuing for granted, and toggling support for this feature makes a noticeable difference. SCSI systems are designed to support six or more disks, all pushing data as fast as they can; IDE controllers are limited to two disks per "channel" and generally don't put as much work into bus arbitration.



Back to top


Summary, looking forward

The irony of the SCSI acronym has become fairly pronounced, as even Apple and Sun have stopped using it except on high-end servers. An interface originally intended to make hobbyist computers and personal desktops more affordable has ended up being most used on server systems and high-end workstations -- "small" computers are not the ones using this systems interface today.

The SCSI specification though, deserves a lot of credit for bringing stability to the peripheral market. SCSI introduced the concepts and technology that make many devices, even some using other busses, compatible and efficient. The SCSI standard is still usable a full 25 years after the first development work on it; very few computer standards can make that claim. This reflects not only the technical merit of the standard, but the obvious benefit to everyone involved of having a unified standard for device communications.

The SCSI protocol will probably be with us for a long time. The hardware specification seems to be holding its own just fine in the high-end, high-performance hardware arena, and some users (myself certainly among them) will continue building machines with SCSI disks to get noticeably better performance under load.

You can still use SCSI on a desktop, and if you've got a lot of disk activity going, it's probably worth it. If you want something bigger, maybe a mainframe or even just a high-reliability server, SCSI is still your best choice.



Resources



About the author

Peter Seebach

Peter Seebach has a fine collection of ancient SCSI drives which he believes probably still have a few files he can't find. He will eventually look through them all.




Rate this page


Please take a moment to complete this form to help us better serve you.



YesNoDon't know
 


 


12345
Not
useful
Extremely
useful
 


Back to top



    About IBMPrivacyContact