The Evolution of ESDI

Enhanced small device interface keeps pace with today's fast hard disk drives

Author: Roger C. Alford
Source: BYTE, Jun 1990 Page 297+
HTMLized by Louis Ohland. Table conversion and style by Tomáš Slavotínek.

In the late 1970s, Al Shugart of Seagate Technology (then Shugart Technology) developed the ST506 hard disk interface. In the spring of 1980, Seagate introduced the 5-megabyte ST506 drive that became the namesake for the interface. Several years later, Seagate introduced its 10-MB ST412 with essentially the same interface.

The ST412's interface, however, included one additional feature that the ST506 lacked buffered seeks. Most ST506 controllers and drives today support the buffered seek option; they're commonly called ST506/412 devices.

The ST506 featured modified frequency modulation (MFM) data encoding and could transfer data to and from the hard disk drive at 5 megabits per second. With an eager and widening market at hand, the disk drive industry evolved rapidly. Soon hard disks could handle 10-Mbps transfers, and several disk drive, tape drive, and controller manufacturers saw the need for a faster interface. They agreed that an enhanced, electrically compatible version of the de facto standard ST506 interface made sense.

An ad hoc consortium formed, and the first working document for the new interface the enhanced small disk interface appeared in May 1983. The enhanced small tape interface followed, and in October of that year, the group decided to merge the two interfaces into a single document, ESDI (enhanced small device interface). The interface touted a 10-Mbps transfer rate, which is double that of the ST506.

By 1985, optical disks were coming on strong, and a draft of the ESDI specification that supported them appeared in March of that year. As industry acceptance of ESDI continued to grow, it emerged as a potential American National Standard. In January 1986, an ESDI steering committee formed, and the Accredited Standards Committee X3T9.3 working group held its first meeting in July of that year.

ESDI continued to find favor with manufacturers of high-performance hard disk drives but didn't do as well in the tape industry. In May 1987, ESDI proponents agreed to drop tape support from the proposed standard.

Early this year, ANSI finally adopted ESDI officially as ANSI X3.170-1990. Figure 1 shows a time line for the development of ESDI.

Figure 1: ESDI Development Time Line
Seven years in the making, ESDI's ANSI certification finally came this year.

Two Standards: ESDI and SCSI

As ESDI developed and became a standard, so did another interface designed to support high-speed disk drives and other peripherals ANSI's X3T9.2 committee directed the standardization of SCSI. It became an official standard in 1986 as ANSI X3.131-1986. A second generation specification, SCSI-2, is now nearing completion.

SCSI often competes with ESDI for control of high-performance hard disk drives in today's fast PCs. As I take a closer look at ESDI, I'll point out some of the key comparisons between the two interfaces and try to clarify their applications. (For a detailed look at SCSI, see Under the Hood in the February and March BYTE.)

ESDI now finds wide acceptance in the PC marketplace. Manufacturers including IBM, Compaq, and Dell use ESDI hard disk drive subsystems in their high-performance machines. With Apple computers, of course, it's a different story. Apple chose to make a SCSI connection standard equipment on the Macintosh.

How ESDI Works

ESDI is a device-level interface. It connects directly to the hard disk drive and controls basic operations, such as seek and head select. SCSI, in contrast, is a system-level interface, or bus, that can connect to any of a wide variety of devices simultaneously (including hard disk drives, scanners, optical disks, printers, and tape drives) and can communicate with them by means of highlevel commands. A SCSI hard disk drive needs intelligent SCSI electronics and a device-level connection for controlling the disk. The latter could, in theory, be an ESDI connection or something similar. Electrically and mechanically, ESDI looks just like the ST506 interface. A common 34-conductor control cable connects in daisy-chain fashion to all drives controlled by a single controller. Each drive has its own 20-conductor data cable. Even the popular four-pin power connector found on all standard PC floppy and hard disk drives is defined as part of the ESDI standard.

While most of the ESDI signals are single-ended open-collector TTL (a single wire referenced to a common ground), the clock and data signals are differential (a complementary pair of wires, where only the voltage difference between the wires is significant). That design maintains integrity even at very fast data transfer rates. ESDI permits cable lengths of up to 3 meters (a little over 9 feet).

Interface Signals

Table 1 shows the ESDI signal definitions for the 34-conductor and 20-conductor cables. I've included the ST506 signal definitions for comparison. ESDI hard disk and optical disk connections work in slightly different ways; I'll focus on hard disk applications.

34-Conductor Control Cable, ESDI

Head select 2(3)21
Head select 2(2)43
Write gate65
Config/status data87
Transfer acknowledged109
Head select 2(0)1413
Sector/address mark found1615
Head select 2(1)1817
Transfer request2423
Drive select 2(0)2625
Drive select 2(1)2827
Drive select 2(2)3029
Read gate3231
Command data3433

34-Conductor Control Cable, ST506

Head select 243
Write gate65
Seek complete87
Track 0109
Write fault1211
Head select 01413
(looped to pin 7 of data connector on disk)1615
Head select 11817
Drive select 12625
Drive select 22827
Drive select 33029
Drive select 43231
Direction in3433

20-Conductor Data Cable, ESDI

Drive selected1N/A
Sector/address mark found2N/A
Command complete3N/A
Address mark enable45
+Write dock76
-Write clock89
+Read/reference clock10N/A
-Read/reference clock1112
+Write data13N/A
-Write data1415
+Read data1716
-Read data1819

20-Conductor Data Cable, ST506

Drive selected12
(to pin 16 of control connector on disk)N/A78
+Write data1312
-Write data1415
+Read data1716
-Read data1819,20
Table 1: Signal Definitions For ESDI And ST506
ESDI and ST506 use the same connectors. However, ESDI's high-level command orientation differs markedly from that of the older ST506 interface (N/A=not applicable).Head and drive selection bits appear in parentheses.
Signal directions: → from controller to disk; ← from disk to controller.

An ESDI controller can accommodate as many as seven drives, although ESDI controllers used in PCs typically support just two. Three drive-select signals determine the active drive, in a binary fashion. When all three drive-select signals are unasserted (low), no drive is selected.

Four head-select signals pick one of up to 16 heads on the active drive. What if your drive has more than 16 heads? That's handled by means of the Select Head Group command. When the drive reaches its operating speed, it sends a ready signal to the controller. It also sends the index signal, the rising edge of which indicates the beginning of each track. The index signal, which pulses once per revolution of the platters, also appears on the data cable.

The function of the sector/address mark found signal varies depending on whether the disk incorporates hard sectoring or soft sectoring. With hard sectoring, drive electronics determine a fixed number of sectors per track. The drive pulses the sector/address mark found line at the start of each sector. You don't find many hard-sectored disks these days I can't think of any offhand but, nevertheless, ESDI supports them.

With soft sectoring, the disk's operating software determines the number of sectors per track. Address marks codes placed on the platter before the sector data delineate sectors. When the drive detects a mark, it pulses sector/address mark found.

Finally, the read gate signal enables the selected read/write head for a read operation, and write gate sets up a write operation.

On the data cable, the drive-selected signal tells the controller that there is indeed one, and only one, drive at the specified drive-select address. And the address mark enable signal tells a softsectored drive to write an address mark at the current position of the selected read/write head. Utility programs can use this signal, valid only when write gate is asserted, to change the number of sectors per track.

Moving the Data

Figure 2: NRZ Encoding Of A Serial Bit Stream
To distinguish bits in NRZ data, you need a separate source of clock information.

Four differential (or balanced) signals affect data transfer between the controller and the hard disk: write data, read data, write clock, and read/reference clock. Data transfer requires both clock and data signals. The clock signal indicates when the data signal is valid. Typically, the rising edge of each clock cycle indicates the start of a new data bit in a serial data stream. In its purest form, data and clock are physically separate signals; this scheme is called NRZ (nonreturn-to-zero) encoding. Figure 2 illustrates NRZ encoding of a serial bit stream.

Figure 3: MFM Encoding Of A Serial Bit Stream
MFM encoding (like RLL encoding) merges data and clock information into a single, combined signal.

But to store data on a hard disk platter, you've got to combine the data and clock signals. Encoding methods that can do that include FM, MFM, and run length limited (RLL). Figure 3 illustrates MFM encoding. If there's a transition at the center of a bit cell, the bit is a binary one; otherwise, it's a zero. Transitions also occur at the beginning of each zerobit cell that is preceded by another zerobit cell.

It's reasonably straightforward to encode these various formats when writing to the disk but a lot harder to decode them when reading the disk. A special circuit called a data separator does the job. It incorporates a phase-locked loop circuit to synchronize with and lock onto the clock as it's recovered from the encoded signal. For reliable data and clock separation, the encoded signal has to be free of electrical noise.

The basic ST506 interface transfers data between the controller and the hard disk drive in MFM format at 5 Mbps. For several years now, ST506 controllers and drives have also been available that use RLL encoding instead of MFM. That buys a 50 percent increase in the data transfer rate to 7.5 Mbps and also boosts storage capacity by 50 percent. RLL encoding is more complex than MFM and requires a more advanced data separator. Nevertheless, most new drives use it.

Since the ST506 controller transfers encoded information to and from the drive, the data separator has to reside on the controller. The developers of ESDI realized that encoded data sent over long cables might not transfer reliably at 10 Mbps. So ESDI transfers NRZ data between the controller and the hard disk drive and uses separate, balanced data and clock signals. The hard disk drive itself has to encode the data before storing it on its platters, and it must also incorporate a data separator to decode the data.

This approach makes the drives attached to an ESDI controller more complex and more costly than ones used in an ST506 subsystem. And each drive needs its own data separator; there's no way to share a single, controller-resident separator. But the benefits outweigh the drawbacks. The scheme ensures superior data integrity, and the encoding scheme no longer depends on the controller. An ESDI hard disk drive can use one of several flavors of RLL encoding, or even MFM encoding. (I don't know of any ESDI drives that use MFM, but it's possible.) It's even possible to mix encoding methods within a multidrive ESDI subsystem.

Decoded data shows up on the data cable as the read data signal. The read/reference clock signal, which the hard disk drive generates, controls the timing of both read and write operations. When read gate is active, read/reference clock acts as the read clock, carrying the clock signal that the data separator extracts from the stored clock/data information. When there's no read in progress, the hard disk drive generates a reference clock signal on the read/reference clock line.

The controller uses the write data signal to present NRZ data to the hard disk drive. The write clock signal derived from the hard disk drive 's reference clock provides the timing clock for the write data signal. Note that the hard disk drive controls both the read and write data transfer rates it must, since it has control over its own data encoding scheme.

The Serial Command Mode

Five signals on the control cable and one on the data cable communicate commands and status information between the controller and the drive: config/status data, transfer acknowledged, attention, transfer request, command data, and command complete. The controller sends 17-bit command-plus-parity words to the controller serially. It places each bit on the command data line, asserts the transfer request handshake signal to the hard disk drive, and awaits the transfer acknowledged return handshake signal from the hard disk drive. Configuration and status information returns to the controller in a similar fashion.

Two other signals figure importantly in ESDI's serial command mode: attention and command complete. The hard disk drive asserts attention when it wants the controller to request its standard status. That's generally a response to a fault condition on the hard disk. Writing to the hard disk can't occur while attention is asserted.

Command complete is the only serial mode signal on the data cable. The hard disk drive generates it. When unasserted, it tells the controller that the drive can't respond to the interface typically, because the drive is trying to recover from an error or is performing another internal function.

Commanding the Drive

ESDI defines 12 commands for use with hard disk drives, as shown in table 2. Just five are mandatory. The high-order 4 bits of the 16-bit command word determine the command type; the low-order 12 bits can contain supplemental command information. The commands also include a trailing parity bit.

(bits 15-12)
Command Definition Command
(bits 11-8)
(bits 7-0)
(bits 11-0)
0000 (0)SeekNoNoYes
0001 (1)RecalibrateNoNoNo
0010 (2)Request StatusYesYesNo
0011 (3)Request ConfigurationYesYesNo
0100 (4)Select Head Group*NoNoYes
0101 (5)ControlYesNoNo
0110 (6)Data Strobe Offset*YesNoNo
0111 (7)Track Offset*YesNoNo
1000 (8)Initiate Diagnostics*NoNoYes
1001 (9)Set Bytes per Sector*NoNoYes
1010 (10)Set High Order Value*YesNoYes
1011 (11)ReservedNoNoNo
1100 (12)ReservedNoNoNo
1101 (13)ReservedNoNoNo
1110 (14)Set Configuration*YesYesNo
1111 (15)ReservedNoNoNo
Table 2: ESDI Serial-Mode Commands
The 16-bit command word includes a 4-bit command identifier (bits 15-12),
and it can also include modifier, subscript, and parameter values (bits 11-0).
* optional commands

Seek causes the drive to seek to the cylinder specified by the low-order 12 bits of the command word. Recalibrate sends the heads to cylinder zero and restores the drive's data strobe offset and track offset values to zero. Request Status solicits 16 bits of standard or vendor specific status information, based on the command modifier bits.

Request Configuration can solicit the drive's transfer rate, number of heads, number of cylinders, hard/soft sectoring information, and much more. The Control command resets certain functions (including the interface attention after a fault), and it can also optionally implement spindle on/off control commands. (I suppose this would be helpful if you're using an ESDI drive in a laptop.)

Optional Commands

Select Head Group supports drives with more than 16 heads. A 4-bit value selects one of 16 head groups, each of which contains 16 heads. Data Strobe Offset and Track Offset address specific regions of the disk; data recovery utilities can use these commands. Initiate Diagnostics tells the hard disk drive to run its internal diagnostics, if any.

Set Bytes per Sector works with hard-sectored disks; it can adjust the number of bytes stored in each sector. Set Configuration has several applications. It can, for example, set varying transfer rates for different cylinders of the disk, on hard disk drives that support zone recording. It can also support hard disk drives that change angular velocity (rotational speed) at different cylinder ranges to maintain a relatively constant linear velocity.

Putting ESDI to Work

ESDI has capacity to spare. A single ESDI hard disk drive can hold a terabyte of data. Even if you stick to the 512-byte sectors that DOS and OS/2 prefer, the limit is a healthy 137 gigabytes. And, of course, it's fast. Most ESDI drives today transfer at 10 Mbps, but 15-Mbps drives have started to appear. And the theoretical limit, 24 Mbps, leaves plenty of room for further performance improvements.

ESDI expects a 1-to-1 interleave; it would make little sense to operate such a high-performance interface any other way. While some recent ST506 interface implementations can now also operate at a 1-to-1 interleave on high-performance PCs, the data transfer rate of these interfaces still restricts the overall performance potential of the hard disk drive subsystem.

If you're familiar with the ST506 interface, you'll find connecting an ESDI hard disk drive to its controller virtually identical. The controller will have a 34-pin header connector for the control cable, and the hard disk drive will have a 34-contact card-edge connector to mate with the ribbon cable. Similarly, the controller will have a 20-pin header connector for each hard disk drive it supports (typically two), into which you will plug the 20-conductor data cable. And the hard disk drive will have a 20-contact card edge connector that also mates with the 20-conductor cable. Both card-edge connector on the ESDI hard disk drive must have a key slot, per the ESDI standard, and any good drive cables should incorporate the key to keep the cables from being connected to the drive incorrectly. The ESDI drive will also accept the standard four-pin PC power connector.

Standard ST506/MFM hard disk drives are formatted for 17 sectors per track. The higher density and higher data transfer rate of ST506/RLL hard disk drives require the number of sectors per track to increase to 26. With most current ESDI hard disk drives in the PC marketplace operating at 10 Mbps, these drives are typically formatted for 32 to 35 sectors per track; most use 34 or 35.

The Software Environment

How compatible is ESDI with your software? That depends. If you inhabit the DOS world exclusively, all ESDI controllers for PCs will work acceptably. Some have their own BIOS-level driver. Others take great pains to emulate the ST506 interface found on IBM's original AT system. That means the interface can work with the hard disk driver that is already resident in the system's ROM BIOS.

If you want to use an ESDI subsystem under OS/2 or Xenix, things aren't quite so automatic. A WD 1003-compatible controller should work acceptably, but controllers with their own driver could have a problem. If you buy IBM's ESDI hard disk drive subsystem, you can rest assured it will work with IBM's OS/2. Similarly, Dell's ESDI subsystem will work with that company's version of OS/2. When in doubt, verify compatibility with the distributor or manufacturer of the ESDI controller before buying.

You'll also want to make sure that your ESDI controller will operate properly with the drive you select. There have been cases of drive/controller incompatibilities. Although the recent standardization of the ESDI connection has alleviated much of the concern, some ESDI hard disk drives implement special, optional functions; these require matching controllers. To avoid potential mix-and-match incompatibility problems, you can purchase an ESDI hard disk drive subsystem, including the controller and cables.


While SCSI's parallel bus implementation differs from ESDI's serial transfer approach, both interfaces support highspeed data transfers and require the hard disk drive to incorporate some intelligence. SCSI requires more intelligence, however, and entails more overhead. For this reason, ESDI subsystems often outperform similar SCSI subsystems in overall effective data transfer rate.

SCSI, however, holds an ace. A SCSI drive can accept a command, disconnect from the bus while processing it, and then reconnect to the host controller. That way, multiple SCSI drives can process commands or transfer data concurrently. Network controllers and multiuser systems that can apply this feature will undoubtedly embrace SCSI.

ESDI will continue to grow in popularity, probably at least into the mid-1990s. SCSI will also gain ground. As software standards develop that permit more-uniform use of SCSI controllers with a wide variety of peripherals (e.g., hard disk drives, optical disks, and scanners), it seems likely that SCSI will eventually become the dominant high-performance hard disk drive interface in the PC world. But for now, ESDI thrives. With practically unlimited capacity, plenty of room for performance gains, and an ANSI seal of approval, ESDI and fast PCs will march together for years to come.

Roger C. Alford is a computer design engineer and a freelance writer.

Content created and/or collected by:
Louis F. Ohland, Peter H. Wendt, David L. Beem, William R. Walsh, Tatsuo Sunagawa, Tomáš Slavotínek, Jim Shorney, Tim N. Clarke, Kevin Bowling, and many others.

Ardent Tool of Capitalism is maintained by Tomáš Slavotínek.
Last update: 08 May 2024 - Changelog | About | Legal & Contact