SCSI - Small Computer System Interface - is one of those technologies that most people have used, quite successfully, but from a position of not quite understanding why it worked. This RTFM aims to bring a modicum of clarity to the muddy water that is SCSI.

The types
There are three generations of SCSI, imaginatively called SCSI, SCSI-2 and SCSI-3. It originated as a means of connecting multiple disk drives to a single computer system, and then with SCSI-2 the concept of a "common command set" was introduced, with the intention of providing a general interface to any type of peripheral, not just disk drives. We're now on SCSI-3, which is a far more complex spec than SCSI-2 and which goes in the opposite direction - it moves away from the idea of supporting all devices under a generic command set and toward device-specific optimisation (so there are separate bits of the spec for disks, tape drives, tape changers, RAID arrays, and so on).

Narrow and wide
In a nutshell, "narrow" SCSI uses an eight-bit bus, with a 50-pin connector, and "wide" SCSI uses a 16-bit bus and a 68-pin connector. With higher-end SCSI-2 implementations, a 32-bit bus would also be called "wide", but 32-bit SCSI has a class of its own in SCSI-3.

The "width" of the bus directly impacts the speed - if you can send 16 bits at once you'll get roughly twice the throughput of an eight-bit implementation. So Narrow SCSI-2 runs at 10Mbyte/sec, for instance, and Wide SCSI-2 at 20Mbyte/sec.

Wide and narrow SCSI can be interconnected, you just need to buy an adaptor (and make sure the host computer has ID 7 or below so the narrow devices can see it). Incidentally, you originally needed two separate cables to run 16-bit SCSI (effectively eight bits per cable) but these days it's all in a single piece of string.

Single-ended vs differential
The difference between these two is electrical: differential uses two wires to drive a signal instead of single-ended's one wire. All you need to know in practice is that differential SCSI has much greater range than single-ended, with an equivalent hike in price because the technology's more complicated.

How many devices?
Another easy one: in general, narrow (eight-bit) SCSI has a limit of eight devices, including the host computer. Wide SCSI has a limit of 16 devices. Devices are numbered from zero upwards, so narrow SCSI uses addresses 0-7 and Wide SCSI uses 0-15.

There's a slight complication here, though, namely the LUN (Logical Unit Number). It's a kind of "sub-device" for a given device - so if, for instance, you had a multi-CD tower, the unit itself would have a single SCSI ID and each drive within it would have a unique LUN. Basically, it's a way to attach multi-device units such as CD jukeboxes without eating up all of your SCSI addresses.

Devices in a SCSI bus are daisy-chained together (most devices have two SCSI outlets to allow this daisy-chaining). A SCSI bus should be "terminated" at both ends to prevent reflected signals causing interference and thus preventing the whole shebang from working. You can get "active" and "passive" terminators, the difference being that active terminators contain voltage regulators and are thus immune to voltage fluctuations on the cable (something that starts to become important if you have a particularly long bus). Some devices have internal terminators and others are "auto-terminating" - that is, they detect whether they're at the end of the bus and turn their termination circuitry on or off accordingly. One key point is that if you have internal termination in any devices, you need to remember, because if you add bits to the end of the daisy-chain and forget about the termination, odd stuff will happen.

What's LVD?
It stands for Low Voltage Differential, and it's part of the SCSI-3 standard (older SCSI implementations are often now called HVD, or High Voltage Differential, in order to distinguish them). LVD was developed to enable the use of long SCSI chains (over 10 metres) at high speeds.

If you see the term "Ultra2 SCSI", by the way, it's generally regarded as synonymous with LVD SCSI-3.

All those flavours
There are a lot of weird names given to SCSI variants. They all mean something and many of them mean the same thing. So here are a few of the best-known ones, with their speeds and synonyms.

Flavour Also known as Data bits Speed (Mbyte/sec)
Fast SCSI SCSI-2 8 10
Fast Wide SCSI SCSI-3 SPI 16 20
Ultra SCSI SCSI-3 SPI or Fast-20 8 20
Wide Ultra SCSI SCSI-3 SPI or Fast-40 16 40
Ultra-2 SCSI SCSI-3 SPI-2 8 40
Wide Ultra-2 SCSI SCSI-3 SPI-2 16 80
Ultra80 SCSI Ultra-3, SCSI-3 SPI-3, or Fast-80 8 80
Ultra160 SCSI Ultra-3, SCSI-3 SPI-3 or Fast-160 16 160
Ultra320 SCSI Ultra-3, SCSI-3 SPI-3 or Fast-320 16 320
What's iSCSI?
The SCSI protocol, aside from the physical electrical properties, is a set of commands sent by one device and responded to by another. Because SCSI chains can only be a few metres long at most, a mechanism called iSCSI has been developed to allow SCSI commands to be encapsulated in IP packets for transmission over a LAN or a WAN. The main motivation for wanting to do this is to separate the physical storage medium from the business premises - using a remote data centre as a secondary storage area, for example - whilst making it look like SCSI to the end devices.