Disk Interfaces for the High End PC Tech Journal - v7 n2 p76 February 1989 by Peter G. Aitken --------------------------------------------------------------------------- A 25-MHz, 80386-based system without the right peripheral interface is just a fast machine spinning its wheels. Two hard-disk interfaces, ESDI and SCSI, keep pace with today's high-end machines. You can get ahead of yourself more quickly in computing than most any field. No sooner do you upgrade one component in your system--just to keep stride with the industry--when another appears miserably slow by comparison. So it goes. When the IBM PC/XT was introduced in 1983, its 10MB 100-millisecond hard disk was a marvel of technology, with unheard-of storage capacity and speed. The hard disk connected to the PC's 8-bit bus (which ran at a "blazing" 4.77 MHz) via the popular ST-506 hard-disk interface developed by Al Shugart of Seagate Technologies. Technology has progressed such that ST-506 no longer keeps pace with high-end systems. Two interface standards have supplanted ST-506: the enhanced small device interface (ESDI) and the small computer systems interface (SCSI). Both are considerably faster, and each has characteristics that recommend it for certain configurations. During its tenure, ST-506 was more than adequate for the job. In fact, the ST-506/disk combination transferred data much faster than the computer could process them. This forced hardware designers to reduce the hard disk's data-transfer rate by formatting it with an interleave factor of 6, thereby synchronizing the transfer rate with the host system's processing speed. The effective transfer rate was approximately 85KB per second (KB/s). Computer hardware engineers simply have a penchant for making things go faster. They soon produced faster (and larger) hard disks, with typical access times of 40 ms, and faster computers--the PC/AT came out of the gate in 1984 running its 16-bit bus at 6, then 8 MHz. Yet, the ST-506 interface was still up to the task, achieving data-transfer rates of about 165 KB/s in an AT, roughly double that in an XT. Enter the 80386 in 1986 and, not long after, a rush of 20- and 25-MHz computers, with hard-disk access times in the teens of milliseconds. Now an ST-506 interface creates a serious data flow bottleneck because its maximum data-transfer rate is significantly slower than the throughput capacities of the disk and the computer. Some manufacturers enhance ST-506 performance with faster transfer speeds and run length limited (RLL) data encoding to increase data density on the disk. Nevertheless, inherent ST-506 limitations (primarily its slow transfer rate) make enhancing its performance impossible for today's high-end systems. Not surprisingly, 1986 also saw the establishment of ESDI and SCSI. Together, they have almost completely displaced ST-506 as the interface of choice for network file servers and other high-performance applications. Most high-end PC systems are available with ESDI controllers as standard equipment, and many vendors offer both ESDI and SCSI hard-disk systems as upgrade units. These two interfaces are superior to ST-506 primarily in their high transfer rates--about an order of magnitude faster. The maximum data-transfer rate of a hard-disk system is limited by the rate that data pass the read head, which is a function of two factors: rotation speed and recording density. All 5.25-inch hard disks rotate at 60 revolutions per second. ST-506 disks use 512 bytes per sector and 17 sectors per track. The result is a best-case transfer rate of (60*512*17*8) or 4,177,920 bits per second. Higher rates can be obtained by increasing either the sectors per track or the sector size. However, ST-506 is further limited because it is designed to transmit data at 5 megabits per second. With transmission rates of 10 megabits per second and higher, ESDI and SCSI can exploit higher recording densities. The ESDI specification describes the electrical and physical interface between a disk controller and an external-storage device, as shown in figure 1. ESDI covers neither the communications between controller and host system nor the details of recording data on the external device. In contrast, SCSI defines a system bus for data transfer between a host system and several external devices, each with its own controller (see figure 2). Besides the electrical and physical characteristics of this bus, the SCSI specification defines a set of commands through which devices on the bus communicate with each other. Like ESDI, SCSI leaves open the details on both ends of the connection--how host software communicates with the SCSI adapter and how the individual controllers implement the commands they read from the bus. CONTROLLING WITH ESDI The ESDI specification merges three narrower specifications: the enhanced small disk (magnetic) interface, the enhanced small tape interface, and the enhanced small disk (optical) interface. As an ANSI draft standard, it is circulating for comment before final approval. ESDI interfaces the computer's bus to a specific hardware device, which can include magnetic tape, optical hard disks, printers, and host-communications adapters, as well as magnetic hard disks (considered here). Controller circuitry is located on the host adapter, which is either on a circuit board plugged into an expansion slot or incorporated onto the system board. One controller board controls as many as seven disk drives. Physical connections between controller and drives consist of two cables that carry data and control signals. A 20-conductor data cable is connected radially, a separate cable going to each drive; a 34-conductor control cable is daisy-chained from drive to drive. Maximum cable length is 3 meters. Data are transmitted serially over two pairs of differential signal lines, one pair for each direction. The controller exchanges control and status information with the disk in two ways. In the first, the controller activates the appropriate dedicated control lines: 15 in the control cable (10 sending requests from controller to drive, 5 from drive to controller), plus 5 in the data cable (1 from controller to disk, 4 from disk to controller). In the second, the controller sends command words via the serial command data line in the control cable. Some commands request status from the disk, which is transmitted serially back to the controller on the configuration/status data line. All commands and responses are 16 bits, plus 1 parity bit. Only 11 commands are available, two of which request a response from the disk (see table 1). Host software never directly issues these commands nor sees responses. Actual data are transmitted serially between controller and drive at the rate of the read/write clock (currently specified as 10 MHz). Assuming an average 10 bits per data byte (allowing for error correction and address data), this produces an effective transfer rate of about 1MB per second (MB/s). The controller specifies the location of data to be read or written by physical address consisting of cylinder number, head number, and sector number. As shown in table 2, the number of bits and signal lines available to specify the various components of the address allows a maximum theoretical capacity of one terabyte (1TB--that is, 240 bytes, or 1 million megabytes). The limitations of the host system, however, can impose different limits on the device. For example, DOS and OS/2 require a sector size of 512 bytes, cutting the maximum capacity by a factor of eight, to "only" 137GB. The focus of ESDI is quite narrow. It leaves many details on both sides of the controller-disk interface undefined, most importantly, the software interface between host and controller. Implementors can choose different command structures, so that two ESDI controllers are incompatible at the software level. The device drivers, whether in ROM BIOS or in RAM, must adapt different devices to an operating system. For example, the host command structure for the ESDI controller in the IBM PS/2 Model 70 (for both 60MB and 120MB disks) specifies disk locations in terms of 32-bit logical sector numbers, rather than cylinder, head, and sector. The host-controller interface can restructure the drive into logical dimensions that differ from the physical ones. More specifically, the 120MB disk on the PS/2 Model 70-121 has 920 cylinders, 8 heads, and 32 sectors per track. DOS, however, reports the disk as having 115 cylinders, 64 heads, and 32 sectors per track. Each logical cylinder, therefore, contains exactly 220 bytes (1MB), making it easier to specify partition sizes in cylinders when partitioning the disk with FDISK. On the other side of the controller, the ESDI specification does not mandate the actual recording methodology, redundancy for error recovery, or format of sector address marks. Within the controller itself, the standard makes no requirement for buffering or error correction. An original equipment manufacturer (OEM) can provide a design for these aspects of the disk subsystem. Thus, the range of possible implementations of an ESDI disk subsystem is quite broad, with a corresponding spread of performance. SCSI CONNECTIONS The SCSI specification, defined by ANSI standard X3.131-1986, grew out of the earlier SASI (Shugart Associates System Interface) developed in 1979 to connect 8-inch Winchester disk drives to microcomputers. It since has been enhanced to control tape drives, printers, coprocessors, and optical disks. SCSI is not a device interface, but rather specifies the physical and electrical characteristics of a bus for interconnecting several peripherals, a set of commands for controlling them, and a protocol for arbitrating contention and controlling communications among them. The bus is a 50-conductor cable that daisy-chains as many as eight devices. The maximum length between devices is 6 meters if the cable is wired with single-ended signal pairs (one wire of each pair grounded) or 25 meters with differential signal pairs (complementary signals on the wires of a pair). The current SCSI standard specifies an 8-bit data width within this bus; the proposed SCSI II specification expands this to 32 bits (see the accompanying sidebar, "SCSI II is Due"). Each device on the bus is an initiator that makes requests of other devices (for example, a host computer), a target that carries out the request (for example, a disk drive), or both (for example, a coprocessor that responds to the CPU and requests services from disk or memory subsystems). An initiator connects to the bus through a SCSI host adapter, which, like a device controller, is either plugged into an expansion slot or built onto the host system board. Each target device consists of a SCSI peripheral adapter, a device controller, and as many as eight peripherals. One SCSI bus thus connects a single host to as many as 56 peripherals. Only two devices can communicate over the SCSI bus at one time. An initiator must wait for the bus to be free before taking control; if several initiators request the bus simultaneously, the one with the highest priority gets it (priorities are fixed at installation time). A higher-priority device cannot preempt the bus; the priorities matter only in arbitrating multiple requests when the bus is free. In systems with only one initiator, the host interface can be configured without this arbitration logic. Once the initiator controls the bus, it establishes communications with a target device by means of hardware handshake lines, then gives the target control. Thereafter, the target controls the transfer of all data on the bus: it requests the commands from the initiator, indicates when it is ready to send or receive data or send status information, and frees the bus at the completion of the command. In a system with bus arbitration enabled, the target can release the bus before the completion of the command (for example, during a disk seek), then request the bus, as if it were an initiator, when the time-consuming operation ends. The default data-transfer protocol on the SCSI bus is asynchronous, in which the target and initiator exchange a request/acknowledge handshake for each byte of data transferred. In this mode, the transfer rate is about 1 MB/s. Manufacturers can configure devices to support a synchronous protocol that sends data bytes at fixed intervals without handshaking; this method achieves a rate of 3 to 4 MB/s. A large portion of the SCSI standard describes the command set that the initiator uses to request services from the target. Table 3 lists the commands for read/write disk drives. For each type of device, the commands divide into four types: mandatory, extended, optional, and vendor-unique. All SCSI implementations must support mandatory commands. The extended command set supports devices of higher capacity and enables self-configuring software drivers dynamically to determine the characteristics of extended-mode devices. Optional commands add functionality but are not required for conformance to SCSI. The standard does not specify vendor-unique commands, but manufacturers can define them as appropriate. The data space of a SCSI device is organized logically as a linear array of blocks. Data-transfer commands specify a logical block number and the number of blocks to transfer. The mandatory set of commands allows 21 bits for the block address (about 2 million blocks) and 8 bits for the block count; the extended set uses a 32-bit block address and 16 bits for the block count. The maximum length of a block is 16MB in the mandatory set and 4GB in the extended, yielding theoretical maximum capacities on the order of 1012 and 1018 bytes, respectively. The realities of host software on one end and peripheral construction on the other limit actual capacities. APPLES AND TENNIS BALLS Comparing SCSI with ESDI is like comparing apples with tennis balls. SCSI is not a hard-disk controller, but rather a bus, with a command set, that connects a computer to the actual hard-disk controller located on the peripheral, which could--theoretically--be an ESDI controller. The two standards were designed for quite different purposes. When selecting a high-performance, hard-disk system, your choice will be between ESDI and SCSI. Hardware specifications, such as data-transfer speed, are only part of the comparison. The choice of interface affects system design in many other ways. The maximum data transfer rate of an interface is the fastest rate the interface transfers data between the computer and the hard disk under ideal conditions--that is, when neither the computer nor the hard disk slows the system down. In this measure, ESDI and SCSI are, for all practical purposes, equivalent. Current implementations of both operate at 10 MHz, or 10 million bits per second (Mbps), which, at 8 bits per byte, translates to 1.25 MB/s. Not all of these bytes are user data, however (some are error correction code and address marks), so these speeds trans- late into a maximum data-transfer rate of just less than 1 MB/s. Accessing a hard disk involves more than the data transfer itself. The interface must translate commands from the operating system or application program into signals that control the hard-disk hardware. With ESDI, this is a one-step process performed by controller circuitry on the host adapter. SCSI, on the other hand, requires two steps. First, the host adapter converts the operating system commands to SCSI bus commands. Then, the circuitry on the hard disk converts the SCSI bus commands to hard-disk control signals. This SCSI processing overhead gives ESDI the edge in raw transfer rate; thus, other factors being equal, ESDI takes slightly less time to read or write a given disk file. SCSI, however, offers its own benefits. Two advantages result from its configuration, which places separate controller circuitry directly on each hard disk (or other peripheral). For one, the developer can select the best controller design for each drive, rather than relying on a generic central controller that might not match exactly the characteristics of different drives. For another, the data lines between controller and drive are less subject to noise because they are so short. A more fundamental SCSI advantage is that, for a high-level subsystem, it has a fair amount of stand-alone intelligence. The command structure permits fairly complex transfers between SCSI devices on the same bus, once started, to proceed without the host intervening further. Thus, a hard disk can be backing up to tape while the computer goes about other business; or transfer requests can be given some priority other than arrival time, so that a lengthy transfer could be interrupted to perform a shorter one. Another SCSI advantage is that it connects as many as seven targets to a single SCSI host adapter. The daisy-chain configuration makes cabling relatively simple. Theoretically, any SCSI device can connect to a SCSI port; this includes hard disks, tape drives, CD-ROM players, scanners, and write-once-read-many (WORM) drives. Devoting one precious expansion slot (are there ever enough?) to a SCSI host adapter is an exceptionally effective way to maximize the unit's expansion capabilities. If you are a real peripheral hog, you can put as many as four SCSI host adapters in one system unit. Although the ESDI specification allows for devices other than hard disks, and for connecting as many as seven devices to one controller, all current PC implementations are limited to two hard disks (for no particular reason). On the surface, SCSI seems to be the hard-disk interface of choice for all systems except single-user configurations in which every iota of hard-disk speed is more important than expandability. This conclusion is justified if based solely on the idealized specifications and abilities of each interface. Developers and integrators know, however, that a functional system is not constructed out of idealized specifications. The realities are what is commercially available, how much it costs, which system software it works with, and so on. In the real world, an intelligent choice of hard-disk interface is more than simply choosing between ESDI and SCSI on the basis of design; other factors are involved. To digress momentarily, the ST-506 interface is relatively simple and has been around for many years. Standards have evolved, so when you purchase an ST-506, you know exactly what you are getting. One manufacturer's ST-506 controller will work with a variety of hard disks--witness the many Adaptec, Western Digital, and Xebec controllers that run CDC, Miniscribe, Rodime, and Seagate disks in millions of XTs and ATs. With the new interfaces, however, a vendor must design an ESDI or SCSI drive integrally with its interface. An ESDI or SCSI hard-disk system consists not only of the host adapter and the hard disk; software drivers are also essential components. The sheer complexity of ESDI and SCSI makes it tricky for all of this hardware and software to work together smoothly. The software drivers must work smoothly with the operating environment. A mass-storage system that works perfectly well with 3Com might not work with Banyan because software drivers are not available. For OS/2, BIOS drivers burned into on-board ROM are useless; a disk system needs protected-mode drivers implemented either in IBM's ABIOS firmware or entirely in software. Besides the potential problems with systems software, the question of compatibility with applications arises, especially disk utilities. No problem should arise where these utilities limit disk access to methods officially sanctioned by the operating system or at least the BIOS; however, programs behave differently. A benchmark that times track-to-track access could produce unexpected results if it steps by logical tracks and if the logical track does not correspond to a physical track. (In the 120MB ESDI disk of the PS/2 Model 70-121, when the software driver steps by one track, the read/ write heads move across eight physical tracks, understating this aspect of the disk's performance by a factor of 8.) MORE TRADE-OFFS Various factors give the cost advantage to ESDI. To be specific, three fundamental aspects of the SCSI design combine to increase its cost over a comparable ESDI installation. One factor was listed above as a SCSI advantage: the SCSI intelligence. In the digital world, more intelligence means more logic elements, and more logic elements mean more chips, more printed circuits, and so on, all of which add to the cost of a system. The second factor is a direct result of SCSI being an independent bus rather than a device-specific interface. This means that each computer-peripheral link contains two separate interfaces, one between the computer's bus and the SCSI bus, and one between the SCSI bus and the peripheral controller. The third factor has to do with internal versus external mounting of peripherals. ESDI hard disks are, almost without exception, mounted inside the system unit where they share its case and power supply. SCSI hard disks can be mounted internally, but external mounting is necessary to take advantage of the interchangeability of SCSI peripherals (which is, after all, one of its selling points). An external peripheral must have its own case and power supply; this adds to the cost. Planning ahead can impact overall cost effectiveness. For a two-disk network file server that will be locked in a closet for the next five years, ESDI interface disks may indeed save money. If, on the other hand, you are designing networked workstations for a growing firm, spending a little more on SCSI now can save money down the road when your client adds scanners and optical drives to each station. PROMISES, PROMISES In evaluating either interface, deal with the reality of available hardware and software and not just with the promise of potential capabilities. Fully documented ANSI standards exist for both; however (and this is particularly true for SCSI), the standards are very flexible. Different implementations can exist, all of which adhere to published standards, but none of which is completely compatible with the others. One of SCSI's strongest selling points is the ability to plug any SCSI peripheral into a SCSI host adapter and be off and running. Thus, not only can you attach as many as seven target devices to a single SCSI port on your PC, but also, theoretically, you can move a SCSI hard disk and its data between computers--and not just from PC to PC, but from PC to Macintosh, PC to VAX, and so on. This connection between computers, although true in theory, is not necessarily so in practice, for two reasons. First, SCSI buses come in two different flavors--single-ended and differential. Second, the command set is so loosely defined that any manufacturer can radically redefine it by implementing a set of unique commands. You cannot assume that a SCSI peripheral from one vendor will function on a SCSI host adapter from another vendor. If you are planning to hang a lot of different peripherals on your SCSI port, look for a vendor that supplies not only the host adapter, but all the peripherals you need as well. Purchasing all components from one vendor minimizes incompatibilities. Price, in this situation, becomes a secondary consideration. If you do mix hardware from different vendors, be sure to test for compatibility. Speed improvements are imminent for both interfaces. SCSI chip sets with double and quadruple the transfer rate of current hardware are currently in the prototype stage, as are ESDI controllers that operate at 15 MHz and 24 MHz instead of the current 10 MHz. Which is better, ESDI or SCSI? A definitive answer is impossible. A look at what the industry is doing is no help either--it is a mixed bag. Some manufacturers supply only one type or the other, but most supply both, indicating that the market has shown no marked preference for one or the other. Selecting a high-performance, hard-disk interface is not as simple as deciding between ESDI or SCSI. Developers must determine which specific mass-storage implementation will work best in an individual operating environment, including the hardware, the network, the operating system, plans for future expansion, and so on. No simple task, but then, progress and simplicity seldom go hand-in-hand. --------------------------------------------------------------------------- SCSI II IS DUE An ANSI committee is currently working on the final draft of the standard for SCSI II, known officially as X3T9.2/86-109. ANSI intends for this new standard to remain hardware- and software-compatible with the cur- rent SCSI standard (SCSI I), while at the same time offering dramatic improvements in speed and capabilities. One indication of the magnitude of changes suggested to the current standard is the sheer size of the draft document--more than 500 pages, compared with 212 for SCSI I. In SCSI II, major hardware changes are made in the bus width and maximum data-transfer speed. SCSI II remains compatible with SCSI I's 8-bit data path, but also offers 16- and 32-bit data paths. Maximum data- transfer rate is increased to more than 10MB per second, up from 3MB to 4MB per second, the maximum currently possible. Another important addition is command queuing, which permits multiple commands to be sent at one time to a single SCSI bus target. This saves time because a device can parse a second command while the previous one is executing. The new standard also contains a SCSI command set specifically for CD-ROMs. These devices have been difficult to program because, unlike disk drives, they do not have a consistent data block size. Other improvements include enhanced automatic configuration capabilities and improvements in the copy commands (which in SCSI I sometimes operate improperly when copying between devices with different block sizes). Many SCSI features that are now specific to particular implementations will become part of the SCSI II stan- dard. Once the new standard is approved and implemented, the industry will enjoy not only much better performance but, perhaps more importantly, a much higher degree of compatibility among manufacturers. If the present timetable is observed, final approval could come as early as the summer of 1989. --Peter G. Aitken --------------------------------------------------------------------------- Peter G. Aitken, Ph.D., is an assistant professor in the physiology department at the Duke University Medical Center in Durham, North Carolina, where he uses IBM PCs extensively in his research. As a freelance consultant and programmer, he has written and marketed laboratory software. ===========================================================================