Classic Computer Magazine Archive COMPUTE! ISSUE 134 / OCTOBER 1991 / PAGE 68

Taking a hard drive through alphabet soup. (analysing hard drive interfaces) (Special Anniversary Issue)
by Mark Minasi

Growing out of your 40-megabyte hard drive? You're in good company - plenty of us are looking to upgrade. Up above 80MD, however, there's more to worry about than how big it is.

Computer sellers refer to ESDI, SCSI, and IDE drive types. Some experts even debate the merits, fighting tooth and nail about which is better - ESDI versus SCSI. Here'e what all the fuss is about and how to choose the hard drive that's right for you.

First things first: ESDI, SCSI, and IDE are all drive interfaces. No, wait - don't turn the page yet! Give me a minute. To understand what a drive interface is, consider this: You've got a hard drive, and it's attached (inside your computer, of course) to a circuit board called a hard disk controller.

How do they talk to each other? The hard drive and controller must agree on a language - how fast they should communicate with each other, what kind of commands they can pass back and forth, what level of voltage they should use to send information, and other odds and ends. Together, that's what defines the drive interface.

Old Reliable

Currently, you've probably got a drive and controller whose interface is the most common and basic one, called ST506. Having a nice reliable standard like ST506 has served the industry well for the past few years. Because all the hardware vendors understand ST506, you can buy a hard disk from vendor X, connect it to a hard disk controller from vendor Y, and be 99-percent sure they'll work together the first time.

The ST506 interface is good because it's standard, but it's bad because it has limitations that are beginning to chafe. ST506 both limits the disk's data transfer speed and requires too much of the CPU's attention, rendering it less suitable for multitasking environments such as Windows.

ST506's maximum data transfer rate of 750,000 bytes per second (750 KBps) must have seemed plenty of room to its designers in the late 1970s.

Even now, most XTs read data from their disks at a maximum speed of 167 KBps, and most AT clones clock in at 250 KBps to 510 KBps. But there are drives available today that could zap out data at 2500 KBps, if their interfaces could handle it.

I know you're thinking, "Only power users need that kind of speed - I don't, not for the things I do." Well, consider this - your computer becomes hundreds of times slower every time it reads or writes to the hard disk. Even the slowest XT has to wait around for its hard disk.

A 16-MHz 386X's microprocessor could, in theory, benefit from a hard disk that transfers data at a speed of up to 8000 KBps. You'd see an immediate benefit from a faster hard disk interface even if you're already running flat-out at 510 KBps; essentially, it would balance your system's power better.

Adding Some ESDI Smarts

ESDI (Enhanced Small Device Interface) was designed basically as an improved ST506. It's designed to handle a maximum transfer rate of 3000 KBps. It does this partly by moving some of the electronics from the controller to the drive; it costs a bit more but makes for greater speeds than are possible with an ST506.

The other big difference between ST506 and ESDI is in the basic intelligence in the interface. Under ST506, the microprocessor can't tell the hard disk controller to go to location X on the hard disk and start reading the data that's there.

Instead, the CPU must do most of the work, telling the drive (through the controller) exactly how to move the disk's read head to the location of the data: "Move the disk head a little more... now just a little just a bit more..."

With ESDI, on the other hand, the CPU just says, "Go to location X and read the data there," and then the CPU waits for the controller to do it. It's the difference between being able to tell someone "Go to the living room" and having to say "Take one step forward, then another, and another, and another, then turn left, then..." You see ESDI on larger (300MB+) drives.

IDE: A Poor Man' ESDI

It's reasonable to ask, "Why didn't they put some of these nifty ESDI features on ST506 in the first place and save us a lot of trouble?" Mainly because those ESDI features would have cost an arm and a leg back in the late 1970s. But nowadays they're much more affordable. That's why most drive vendors are now offering a low-cost alternative to ST506 drives called IDE - Imbedded Drive Electronics (or Intelligent Drive Electronics, depending on whom you ask).

Like ESDI, IDE puts most of the controller electronics on the drive itself. The data is then pumped directly to the CPU at up to 1000 KBps - not as good as ESDI, but better than ST506.

Putting the controller and drive physically together makes IDEs easier to build, which is why IDEs are faster, cheaper, physically smaller, less power-hungry, and more reliable than corresponding ST506s.

There is, of course, one hitch. Many data recovery techniques that are available on ST506 systems can't be used on IDEs. In the words of the chief engineer of a major drive maker, IDEs are disposable. They're great drives, but if anything goes wrong, you throw them - and you data - away. I avoid them at the moment and would recommend that you do the same, but IDE manufacturers claim that they're working on models that are more fixable. When that happens, IDE will hound ST506 out of existence in short order.

SCSI Raises the Ante

While some designers were seeking greater speed (the main goal, recall, of ESDI), others were looking ahead to more sophisticated operating systems. They sought to design an interface that could serve more than just hard disks. This new interface could be used for tape drives, floppies, and optical drives of various kinds, to name but a few.

So computer manufacturers have developed another peripheral interface called Small Computer Systems Interface (which is abbreviated SCSI and pronounced scuzzy - an unfortunate acronym, if there ever was one).

Why have SCSI in addition to ESDI? It's simple: SCSI doesn't do what ESDI does. SCSI is a bus manager, not a drive manager. It lets you put up to eight different drives - optical, floppy, whatever - on a single SCSI host adapter (you don't call them controllers, for reasons that will be clear later in this article) .

That assumes, of course, that all of these drives are equipped with a SCSI interface, and it also assumes that SCSI is a solid standard. It actually isn't yet, so in reality your SCSI floppy, hard disk, and tape drives probably couldn't run off the same SCSI host adapter. Things are getting better, however, so in a year or two this scenario will be more likely to come true.

Suppose then, that you wanted to back up your hard disk to tape and you had both a hard disk and tape that ran off the same SCSI interface. Under the normal ST506, IDE, or ESDI arrangement, the microprocessor would have to do a fair amount of work. It would have to issue commands to first read the data from the hard disk, then copy it to the tape drive, read some more, and so on.

A Different Story

With a SCSI interface, however, the story's different. The CPU just says, "SCSI bus, get data X, Y, and Z from the hard disk, and copy that data over to the tape drive. Let me know when you're done."

And in the meantime, the CPU can be busy paying attention to something else, like running another program in some multitasking environment.

Under normal DOS, of course, the microprocessor will just twiddle its thumbs until the SCSI bus reports success, since DOS is a single-tasking, do-only-one thing-at-a-time operating system.

The way that the SCSI interface can support so many kinds of storage devices lies in its manner of addressing these devices.

As far as it's concerned, your hard disk isn't a hard disk - it's just a storage peripheral with storage areas called sectors numbered from 0 to some large value. The same is true for floppies, tapes, or optical devices.

Which leads to an interesting question. The hard disk doesn't see itself as a mere collection of sectors - it uses more complex addressing terminology. So who does the translation from SCSI sector addresses to physical hard disk addresses?

The answer is that every SCSI drive has a controller built right onto it, kind of like IDE. That controller talks both to the drive in whatever language the drive prefers and then to the SCSI adapter in SCSI language.

So here's the punch line: SCSI drives are really drive-and-controller combinations, and those drive-and-controller combinations can use any interface - IDE, ST506, or ESDI, although ESDI is the only one I've seen used. ESDI is used most often because of the raw speed that it offers.

No Guarantees

You can see now that SCSI, in and of itself, is no guarantee of a fast drive, although most drives chosen for SCSI are, in fact, fairly quick. SCSI really has nothing to do with speed, but rather with multitasking.

Remember that ESDI is basically just a souped-up version of ST506. Drive management is handled mainly by the CPU, and that's not a problem for single-user systems.

Buy what about a local area network server that must manage six or seven ESDI drives and multiple requests from different workstations for data on those drives? Because that's a lot of work for the CPU, it could benefit from distributed intelligence. SCSI provides that distributed intelligence.

In fact, the SCSI host adapter is a CPU all in itself. All the PC's microprocessor would have to do in the six-drive scenario is just to issue six data requests rapid-fire to the SCSI host adapter and then sit back and wait for the data to come in. (Actually, it wouldn't sit back and wait - a good multitasking system would to something else while waiting for the responses to come in.)

In general, you can count on an ST506 interface to transfer data at the rate of 250K-750K per second (suing MFM or RLL encoding), an IDE interface to transfer data at the rate of 1MB per second (using ARLL encoding), an ESDI interface to transfer data at the rate of 1MB-3MB per second (using RLL encoding), and a SCSI interface to transfer data at the rate of 1MB-3MB per second (using RLL encoding).

So what's my advice on which kind of drive you should buy today? If you're buying a large drive for personal use, go with an ESDI drive. For a LAN server or a machine that may become a LAN server, buy SCSI for a slightly more efficiently drive.