#
Upgrading & Repairing PCs Eighth Edition

#

# - 15 -

# Hard Disk Interfaces

- Interfaces Choices
- The ST-506/412 Interface
- Encoding Schemes and Problems
- The ESDI Interface
- The IDE Interface
  - IDE Origins
  - IDE Bus Versions
  - XT-Bus (8-Bit) IDE
  - MCA IDE
- Introduction to SCSI
- IDE versus SCSI
  - Performance
  - SCSI versus IDE: Advantages and Limitations
  - Recommended Aftermarket Controllers and Host Adapters
  - Recommended SCSI Host Adapters
- Disk Hardware and Software Limitations
  - Disk Interface Capacity Limitations
  - ROM BIOS Capacity Limitations
  - Operating System Capacity Limitations

#

This chapter describes the hard disk interface, from the drives to the cables and controllers that run them. You learn about the various disk interfaces you can select, and the shortcomings and strengths of each type.

## Interfaces Choices

A variety of hard disk interfaces are available today. As time has passed, the number of choices has increased, and many of the older designs are no longer viable in newer systems. You need to know about all these interfaces, from the oldest to the newest designs, because you will encounter all of them whenever upgrading or repairing systems is necessary.

The interfaces have different cabling and configuration options, and the setup and format of drives will vary as well. Special problems may arise when you are trying to install more than one drive of a particular interface type or (especially) when you are mixing drives of different interface types in one system.

This section covers the different hard disk drive interfaces, giving you all the technical information you need to deal with them in any way--troubleshooting, servicing, upgrading, and even mixing the different types.

This section also examines the standard controllers and describes how you can work with these controllers, as well as replace them with much faster units. Also discussed are the different types of drive interfaces: ST-506/412, ESDI, IDE, and SCSI. Choosing the proper interface is important, because your choice also affects your disk drive purchase and the ultimate speed of the disk subsystem.

The primary job of the hard disk controller or interface is to transmit and receive data to and from the drive. The different interface types limit how fast data can be moved from the drive to the system and offer different levels of performance. If you are putting together a system in which performance is a primary concern, you need to know how these different interfaces affect performance and what you can expect from them. Many of the statistics that appear in technical literature are not indicative of the real performance figures that you will see in practice. I will separate the myths presented by some of these over-optimistic figures from the reality of what you will actually see.

With regard to disk drives, and especially hard disk drives, the specification on which people seem to focus the most is the drive's reported average seek time, the (average) time it takes for the heads to be positioned from one track to another. Unfortunately, the importance of this specification often is overstated, especially in relation to other specifications, such as the data transfer rate.

The transfer rate of data between the drive and the system is more important than access time, because most drives spend more time reading and writing information than they do simply moving the heads around. The speed at which a program or data file is loaded or read is affected most by the data transfer rate. Specialized operations such as sorting large files, which involve a lot of random access to individual records of the file (and, therefore, many seek operations), are helped greatly by a faster-seeking disk drive, so seeking performance is important in these cases. Most normal file load and save operations, however, are affected most by the rate at which data can be read and written to and from the drive. The data transfer rate depends on both the drive and the interface.

Several types of hard disk interfaces have been used in PC systems over the years:

- ST-506/412
- IDE
- ESDI
- SCSI

Of these interfaces, only ST-506/412 and ESDI are what you could call true disk- controller-to-drive interfaces. SCSI and IDE are system-level interfaces that usually incorporate a chipset-based variation of one of the other two types of disk controller interfaces internally. For example, most SCSI and IDE drives incorporate the same basic controller circuitry used in separate ESDI controllers. The SCSI interface adds another layer of interface that attaches the controller to the system bus, whereas IDE is a direct bus- attachment interface.

In data recovery, it helps to know the disk interface you are working with, because many data-recovery problems involve drive setup and installation problems. Each interface requires a slightly different method of installation and drive configuration. If the installation or configuration is incorrect or accidentally altered by the system user, it may prevent access to data on a drive. Accordingly, anyone who wants to become proficient in data recovery must be an expert on installing and configuring various types of hard disks and controllers.

IBM's reliance on industry-standard interfaces such as those listed here was a boon for everybody in the IBM-compatible industry. These standards allow a great deal of cross-system and cross-manufacturer compatibility. The use of these industry-standard interfaces allows you to pick up a mail-order catalog, purchase a hard disk for the lowest possible price, and be assured that it will work with your system. This Plug-and-Play capability results in affordable hard disk storage and a variety of options in capacities and speed.

## The ST-506/412 Interface

The ST-506/412 interface was developed by Seagate Technologies around 1980. The interface originally appeared in the Seagate ST-506 drive, which was a 5M formatted (or 6M unformatted) drive in a full-height, 5 1/4-inch form factor. By today's standards, this drive is a tank! In 1981, Seagate introduced the ST-412 drive, which added a feature called buffered seek to the interface. This drive was a 10M formatted (12M unformatted) drive that also qualifies as a tank by today's standards. Besides the Seagate ST-412, IBM also used the Miniscribe 1012 as well the International Memories, Inc. (IMI) model 5012 drive in the XT. IMI and Miniscribe are long gone, but Seagate remains as one of the largest drive manufacturers. Since the original XT, Seagate has supplied drives for numerous systems made by many different manufacturers.

Most drive manufacturers that made hard disks for PC systems adopted the Seagate ST-506/412 standard, a situation that helped make this interface popular. One important feature is the interface's Plug-and-Play design. No custom cables or special modifications are needed for the drives, which means that virtually any ST-506/412 drive will work with any ST-506/412 controller. The only real compatibility issue with this interface is the level of BIOS support provided by the system.

When introduced to the PC industry by IBM in 1983, ROM BIOS support for this hard disk interface was provided by a BIOS chip on the controller. Contrary to what most believed, the PC and XT motherboard BIOS had no inherent hard disk support. When the AT system was introduced, IBM placed the ST-506/412 interface support in the motherboard BIOS and eliminated it from the controller. Since then, any system that is compatible with the IBM AT (which includes most systems on the market today) has an enhanced version of the same support in the motherboard BIOS as well. Because this support was somewhat limited, especially in the older BIOS versions, many disk controller manufacturers also placed additional BIOS support for their controllers directly on the controllers themselves. In some cases, you would use the controller BIOS and motherboard BIOS together; in other cases, you would disable the controller or mother-board BIOS and then use one or the other. These issues will be discussed more completely later in this chapter in the section "System Configuration."

The ST-506/412 interface does not quite make the grade in today's high-performance PC systems. This interface was designed for a 5M drive, and I have not seen any drives larger than 152M (Modified Frequency Modulation encoding) or 233M (Run-Length Limited encoding) available for this type of interface. Because the capacity, performance, and expandability of ST-506/412s are so limited, this interface is obsolete and generally unavailable in new systems. However, many older systems still use drives that have this interface.

## Encoding Schemes and Problems

As indicated in Chapter 14 in the section "Data Encoding Schemes," encoding schemes are used in communications for converting digital data bits to various tones for transmission over a telephone line. For disk drives, the digital bits are converted, or encoded, in a pattern of magnetic impulses, or flux transitions (also called flux reversals), which are written on the disk. These flux transitions are decoded later when the data is read from the disk.

A device called an endec (encoder/decoder) accomplishes the conversion to flux transitions for writing on the media and the subsequent reconversion back to digital data during read operations. The function of the endec is very similar to that of a modem (modulator/demodulator) in that digital data is converted to an analog waveform, which then is converted back to digital data. Sometimes, the endec is called a data separator, because it is designed to separate data and clocking information from the flux-transition pulse stream read from the disk.

One of the biggest problems with ST-506/412 was the fact that this endec resided on the disk controller (rather than the drive), which resulted in the possibility of corruption of the analog data signal before it reached the media. This problem became especially pronounced when the ST-506/412 controllers switched to using RLL endecs to store 50 percent more data on the drive. With the RLL encoding scheme, the actual density of magnetic flux transitions on the disk media remains the same as with MFM encoding, but the timing between the transitions must be measured much more precisely.

In RLL encoding, the intervals between flux changes are approximately the same as with MFM, but the actual timing between them is much more critical. As a result, the transition cells in which signals must be recognized are much smaller and more precisely placed than with MFM. RLL encoding places more stringent demands on the timing of the controller and drive electronics. With RLL encoding, accurately reading the timing of the flux changes is paramount. Additionally, because RLL encodes variable-length groups of bits rather than single bits, a single error in one flux transition can corrupt two to four bits of data. For these reasons, an RLL controller usually has a more sophisticated error-detection and error-correction routine than an MFM controller.

Most of the cheaper disk drives on the market did not have data-channel circuits that were designed to be precise enough to handle RLL encoding without problems. RLL encoding is also much more susceptible to noise in the read signal, and conventional oxide media coatings did not have a sufficient signal-to-noise ratio for reliable RLL encoding. This problem often was compounded by the fact that many drives of the time used stepper motor head positioning systems, which are notoriously inaccurate, that further amplified the signal-to-noise ratio problem.

At this time, manufacturers are implementing RLL-certifying drives for use with RLL endec controllers. This stamp of approval essentially means that the drive has passed tests and is designed to handle the precise timing requirements that RLL encoding requires. In some cases, the drive electronics were upgraded between a manufacturer's MFM and RLL drive versions, but the drives are essentially the same. In fact, if any improvements were made in the so-called RLL-certified drives, the same upgrades usually also were applied to the MFM version.

The bottom line is that other than improved precision, there is no real difference between an ST-506/412 drive that is sold as an MFM model and one that is sold as an RLL model. If you want to use a drive that originally was sold as an MFM model with an RLL controller, I suggest that you do so only if the drive uses a voice coil head actuator and thin-film media. Virtually any ST-506/412 drive with these qualities is more than good enough to handle RLL encoding with no problems.

Using MFM encoding, a standard ST-506/412 format specifies that the drive will contain 17 sectors per track, with each sector containing 512 bytes of data. A controller that uses an RLL endec raises the number of sectors per track to 25 or 26.

The real solution to reliability problems with RLL encoding was to place the endec directly on the drive rather than on the controller. This method reduces the susceptibility to noise and interference that can plague an ST-506/412 drive system running RLL encoding. ESDI, IDE, and SCSI drives all have the endec (and, often, the entire controller) built into the drive by default. Because the endec is attached to the drive without cables and with an extremely short electrical distance, the propensity for timing- and noise-induced errors is greatly reduced or eliminated. This situation is analogous to a local telephone call between the endec and the disk platters. This local communication makes the ESDI, IDE, and SCSI interfaces much more reliable than the older ST-506/412 interface; they share none of the reliability problems that were once associated with RLL encoding over the ST-506/412 interface. Virtually all ESDI, IDE, and SCSI drives use RLL encoding today with tremendously increased reliability over even MFM ST-506/412 drives.

> Historical Notes
> The following sections list some information on the original ST-506/412 controllers used in the PC environment. These were the controllers that IBM supplied in the XT and AT systems. At the time of introduction, these controllers set standards that--especially in the case of the AT controller--we still live with today. In fact, the entire IDE interface standard is based on the controller that IBM designed and used in the AT. All of the conventions and standards for the hard disk interfaces that we currently use started with these controllers.

> Original IBM 8-Bit Controllers

> The first ST-506/412 controller standard sold for PC systems was the hard disk controller used in the original 10M IBM XT. This controller actually was made for IBM by Xebec Corporation and also was sold under the Xebec name as the Xebec 1210 controller. The Xebec 1210 is an ST-506/412 controller that uses MFM encoding to record data on a drive. This controller's ROM, produced by IBM, contains an 8K hard disk BIOS with an internal table that had entries for four different drives. Each drive was selected by jumpers on the controller, which actually were soldered in the early IBM units. If you purchased the controller from Xebec, you received a slightly different but completely compatible ROM, and the jumpers were not soldered, so you easily could select one of the four BIOS table entries. Xebec also allowed system integrators to copy its ROM to modify the built-in drive tables for a specific drive.

> Later IBM XT systems with a 20M hard disk still used the Xebec 1210, but it had a new 4K ROM that contained different drive tables, as well as jumpers like those found on the versions also sold separately by Xebec. Xebec never sold an autoconfigure version of this controller, which would have made integrating different drives easier.

> The Xebec 1210 is one of the slowest ST-506/412 controllers ever made, supporting at best a 5:1 interleave on a stock IBM PC or IBM XT system. If you use the IBM Advanced Diagnostics program for the IBM PC or IBM XT, the low-level formatter produces a standard 6:1 interleave, which results in a paltry 85K/sec data transfer rate. By changing the interleave to 5:1, you can wring 102K/sec from this controller--still unbelievably slow by today's standards.

> Xebec also made a Model 1220 that combined a hard disk and floppy disk controller, was hardware-compatible with the 1210, and works with the IBM or standard Xebec ROM. The separate floppy controller then could be removed from the system, and you could save a slot.

> I recommend replacing this controller with an autoconfigure controller whenever you get the chance. Most other controllers also are significantly faster than the Xebec.

> Original IBM 16-Bit Controllers

> For the AT, IBM used two controllers made by Western Digital (WD): the WD1002-WA2 and the WD1003A-WA2. The WD1003 is an upgraded WD1002 with a much lower chip count. The WD1003 also was shorter than the WD1002 to fit into the IBM XT 286.

> The WD1002 is used in the IBM AT as a combination hard disk and floppy disk controller. The WD1002 and the WD1003 are standard ST-506/412 controllers that supply MFM encoding to the drive. Neither controller contains a ROM BIOS; instead, BIOS support is built into the motherboard ROM. Both controllers support a 2:1 interleave, even on a standard 6MHz IBM AT system. The IBM Advanced Diagnostics low-level formatter can put down a 2:1 interleave, but the default is 3:1. Most users of these controllers can realize a performance gain if they simply reformat to the lower interleave.

## The ESDI Interface

ESDI, or Enhanced Small Device Interface, is a specialized hard disk interface established as a standard in 1983, primarily by Maxtor Corporation. Maxtor led a consortium of drive manufacturers to adopt its proposed interface as a high-performance standard to succeed ST-506/412. ESDI later was adopted by the ANSI (American National Standards Institute) organization and published under the ANSI X3T9.2 Committee. The latest version of the ANSI ESDI document is known as X3.170a-1991. You can obtain this document, and other ANSI-standard documents, from ANSI itself or from Global Engineering Documents. These companies are listed in Appendix A.

Compared with ST-506/412, ESDI has provisions for increased reliability, such as building the endec into the drive. ESDI is a very-high-speed interface, capable of a maximum 24Mbit/sec transfer rate. Most drives running ESDI, however, are limited to a maximum 10 or 15Mbit/sec. Unfortunately, compatibility problems between different ESDI implementations combined with pressure from low-cost, high-performance IDE interface drives have served to make the ESDI interface obsolete. Few if any new systems today include ESDI drives, although ESDI became somewhat popular in high-end systems during the late 1980s.

Enhanced commands enabled some ESDI controllers to read a drive's capacity parameters directly from the drive, as well as to control defect mapping, but several manufacturers had different methods for writing this information on the drive. When you install an ESDI drive, in some cases the controller automatically reads the parameter and defect information directly from the drive. In other cases, however, you still have to enter this information manually, as with ST-506/412.

The ESDI's enhanced defect-mapping commands provide a standard way for the PC system to read a defect map from a drive, which means that the manufacturer's defect list can be written to the drive as a file. The defect-list file then can be read by the controller and low-level format software, eliminating the need for the installer to type these entries from the keyboard and enabling the format program to update the defect list with new entries if it finds new defects during the low-level format or the surface analysis.

Most ESDI implementations have drives formatted to 32 sectors per track or more (80 or more sectors per track are possible)--many more sectors per track than the standard ST-506/412 implementation of 17 to 26. The greater density results in two or more times the data-transfer rate, with a 1:1 interleave. Almost without exception, ESDI controllers support a 1:1 interleave, which allows for a transfer rate of 1M/sec or greater.

Because ESDI is much like the ST-506/412 interface, it can replace that interface without affecting software in the system. Most ESDI controllers are register-compatible with the older ST-506/412 controllers, which enables OS/2 and other non-DOS operating systems to run with few or no problems. The ROM BIOS interface to ESDI is similar to the ST-506/412 standard, and many low-level disk utilities that run on one interface will run on the other. To take advantage of ESDI defect mapping and other special features, however, use a low-level format and surface-analysis utility designed for ESDI (such as the ones usually built into the controller ROM BIOS and called by DEBUG).

During the late 1980s, most high-end systems from major manufacturers were equipped with ESDI controllers and drives. More recently, manufacturers have been equipping high-end systems with SCSI. The SCSI interface allows for much greater expandability, supports more types of devices than ESDI does, and offers equal or greater performance. I no longer recommend installing ESDI drives unless you are upgrading a system that already has an ESDI controller.

## The IDE Interface

Integrated Drive Electronics (IDE) is a generic term applied to any drive with an integrated (built-in) disk controller. The IDE interface as we know it is officially called ATA (AT Attachment), and is an ANSI standard; however, IDE can roughly apply to any disk drive with a built-in controller.

The first drives with integrated controllers were hardcards; today, a variety of drives with integrated controllers are available. In a drive with IDE, the disk controller is integrated into the drive, and this combination drive/controller assembly usually plugs into a bus connector on the motherboard or bus adapter card. Combining the drive and controller greatly simplifies installation, because there are no separate power or signal cables from the controller to the drive. Also, when the controller and the drive are assembled as a unit, the number of total components is reduced, signal paths are shorter, and the electrical connections are more noise-resistant, resulting in a more reliable design than is possible when a separate controller, connected to the drive by cables, is used.

Placing the controller (including endec) on the drive gives IDE drives an inherent reliability advantage over interfaces with separate controllers. Reliability is increased because the data encoding, from digital to analog, is performed directly on the drive in a tight noise-free environment; the timing-sensitive analog information does not have to travel along crude ribbon cables that are likely to pick up noise and insert propagation delays into the signals. The integrated configuration allows for increases in the clock rate of the encoder, as well as the storage density of the drive.

Integrating the controller and drive also frees the controller and drive engineers from having to adhere to the strict standards imposed by the earlier interface standards. Engineers can design what essentially are custom drive and controller implementations because no other controller would ever have to be connected to the drive. The resulting drive and controller combinations can offer higher performance than earlier stand-alone controller and drive setups. IDE drives sometimes are called drives with embedded controllers.

The IDE connector on motherboards in many systems is nothing more than a stripped-down bus slot. In ATA IDE installations, these connectors normally contain a 40-pin subset of the 98 pins that would be available in a standard 16-bit ISA bus slot. The pins used are only the signal pins required by a standard-type XT or AT hard disk controller. For example, because an AT-style disk controller uses only interrupt line 14, the mother-board AT IDE connector supplies only that interrupt line; no other interrupt lines are needed. The XT IDE motherboard connector supplies interrupt line 5 because that is what an XT controller would use.

> NOTE: Many people who use systems with IDE connectors on the motherboard believe that a hard disk controller is built into their motherboard, but the controller really is in the drive. I do not know of any PC systems that have hard disk controllers built into the motherboard.

When IDE drives are discussed, the ATA IDE variety usually is the only kind mentioned because it is so popular. But other forms of IDE drives exist, based on other buses. For example, several PS/2 systems came with Micro-Channel (MCA) IDE drives which plug directly into a Micro-Channel Bus slot (through an angle adapter or interposer card). An 8-bit ISA form of IDE also existed but was never very popular. Most IBM-compatible systems with the ISA or EISA Bus use AT-Bus (16-bit) IDE drives. The ATA IDE interface is by far the most popular type of drive interface available.

The primary advantage of IDE drives is cost. Because the separate controller or host adapter is eliminated and the cable connections are simplified, IDE drives cost much less than a standard controller-and-drive combination. These drives also are more reliable, because the controller is built into the drive. Therefore, the endec or data separator (the converter between the digital and analog signals on the drive) stays close to the media. Because the drive has a short analog-signal path, it is less susceptible to external noise and interference.

Another advantage is performance. IDE drives are some of the highest-performance drives available--but they also are among the lowest-performance drives. This apparent contradiction is a result of the fact that all IDE drives are different. You cannot make a blanket statement about the performance of IDE drives because each drive is unique. The high-end models, however, offer performance that is equal or superior to that of any other type of drive on the market for a single-user, single-tasking operating system.

### IDE Origins

Technically, the first IDE drives were hardcards. Companies such as the Plus Development division of Quantum took small 3 1/2-inch drives (either ST-506/412 or ESDI) and attached them directly to a standard controller. The assembly then was plugged into a bus slot as though it were a normal disk controller. Unfortunately, the mounting of a heavy, vibrating hard disk in an expansion slot with nothing but a single screw to hold it in place left a lot to be desired--not to mention the possible interference with adjacent cards due to the fact that many of these units were much thicker than a controller card alone.

Several companies got the idea that you could redesign the controller to replace the logic-board assembly on a standard hard disk and then mount it in a standard drive bay just like any other drive. Because the built-in controller in these drives still needed to plug directly into the expansion bus just like any other controller, a cable was run between the drive and one of the slots.

These connection problems were solved in different ways. Compaq was the first to incorporate a special bus adapter in its system to adapt the 98-pin AT bus edge connector on the motherboard to a smaller 40-pin header style connector that the drive would plug into. The 40-pin connectors were all that were needed, because it was known that a disk controller never would need more than 40 of the bus lines.

In 1987, IBM developed its own MCA IDE drives and connected them to the bus through a bus adapter device called an interposer card. These bus adapters (sometimes called paddle boards) needed only a few buffer chips and did not require any real circuitry because the drive-based controller was designed to plug directly into the bus. The paddle board nickname came from the fact that they resembled game paddle or joystick adapters, which do not have much circuitry on them. Another 8-bit variation of IDE appeared in 8-bit ISA systems such as the PS/2 Model 30. The XT IDE interface uses a 40-pin connector and cable that is similar to, but not compatible with, the 16-bit version.

### IDE Bus Versions

Three main types of IDE interfaces are available, with the differences based on three different bus standards:

- AT Attachment (ATA) IDE (16-bit ISA)
- XT IDE (8-bit ISA)
- MCA IDE (16-bit Micro Channel)

> NOTE: Many people are confused about 16- versus 32-bit bus connections and 16- versus 32-bit hard drive connections. A PCI connection allows for a 32-bit (and 64-bit in the future) bandwidth from the bus to the drive controller only. In an IDE (or EIDE) drive configuration, you are still getting only 16-bit bandwidth between the drive and the controller. This usually does not create a bottleneck, however, because one or two hard drives cannot supply the controller enough data to saturate even a 16-bit channel. Fast Wide SCSI-3 is the only device/controller combination that gives you 32 bits from the controller to the drive, primarily because you can hang 15 devices off a SCSI Wide chain and there is a good chance that many devices will saturate a 16-bit channel at some time.

The XT and ATA versions have standardized on 40-pin connectors and cables, but the connectors have slightly different pinouts, rendering them incompatible with one another. MCA IDE uses a completely different 72-pin connector and is designed for MCA bus systems only.

In most cases, you must use the type of IDE drive that matches your system bus. This situation means that XT IDE drives work only in XT-class 8-bit ISA slot systems, AT IDE drives work only in AT-class 16-bit ISA or EISA slot systems, and MCA IDE drives work only in Micro-Channel systems (such as the IBM PS/2 Model 50 or higher). A company called Silicon Valley offers adapter cards for XT systems that will run ATA IDE drives. Other companies, such as Arco Electronics and Sigma Data, have IDE adapters for Micro-Channel systems that allow ATA IDE drives to be used on these systems. (You can find these vendors in Appendix A.) These adapters are very useful for XT or PS/2 systems, because there is a very limited selection of XT or MCA IDE drives, whereas the selection of ATA drives is virtually unlimited.

In most modern ISA and EISA systems, you will find an ATA connector on the mother-board. If your motherboard does not have one of these connectors and you want to attach an AT IDE drive to your system, you can purchase an adapter card that changes your 98-pin slot connector to the 40-pin IDE connector. These adapter cards are nothing more than buffered cables; they are not really controllers. The controller is built into the drive. Some of the cards offer additional features, such as an on-board ROM BIOS or cache memory.

ATA IDE

CDC, Western Digital, and Compaq actually created what could be called the first ATA type IDE interface drive and were the first to establish the 40-pin IDE connector pinout. The first ATA IDE drives were 5 1/4-inch half-height CDC 40M units (I believe that they had a green activity LED) with integrated WD controllers sold in the first Compaq 386 systems in 1986. After that, Compaq helped found a company called Conner Peripherals to supply Compaq with IDE drives. Conner originally made drives only for Compaq, but later Compaq sold much of its ownership of Conner.

Eventually, the 40-pin IDE connector and drive interface method was placed before one of the ANSI standards committees which, in conjunction with drive manufacturers, ironed out some deficiencies, tied up some loose ends, and published what is known as the CAM ATA (Common Access Method AT Attachment) interface. The CAM Committee was formed in October 1988, and the first working document of the ATA interface was introduced in March 1989. Before the CAM ATA standard, many companies that followed CDC, such as Conner Peripherals, made proprietary changes to what had been done by CDC. As a result, many older ATA drives are very difficult to integrate into a dual-drive setup that has newer drives.

Some areas of the ATA standard have been left open for vendor-specific commands and functions. These vendor-specific commands and functions are the main reason why it is so difficult to low-level format IDE drives. To work properly, the formatter that you are using usually must know the specific vendor-unique commands for rewriting sector headers and remapping defects. Unfortunately, these and other specific drive commands differ from OEM to OEM, clouding the "standard" somewhat.

> NOTE: It is important to note that only the ATA IDE interface has been standardized by the industry. The XT IDE and MCA IDE never were adopted as industry-wide standards and never became very popular. These interfaces are no longer in production, and no new systems of which I am aware come with these nonstandard IDE interfaces.

The ATA Specification

The ATA specification was introduced in March 1989 as an ANSI standard. ATA-1 was finally approved in 1994, and ATA-2 (also called Enhanced IDE) was approved in 1995. ATA-3 is currently in the works. You can obtain the current version of these standards from Global Engineering Documents, which is listed in Appendix A. The ATA standards have gone a long way toward eliminating incompatibilities and problems with interfacing IDE drives to ISA and EISA systems. The ATA specifications define the signals on the 40-pin connector, the functions and timings of these signals, cable specifications, and so on. The following section lists some of the elements and functions defined by the ATA specification.

Dual-Drive Configurations

Dual-drive ATA installations can be problematic because each drive has its own controller, and both controllers must function while being connected to the same bus. There has to be a way to ensure that only one of the two controllers will respond to a command at a time.

The ATA standard provides the option of operating on the AT Bus with two drives in a daisy-chained configuration. The primary drive (drive 0) is called the master, and the secondary drive (drive 1) is the slave. You designate a drive as being master or slave by setting a jumper or switch on the drive or by using a special line in the interface called the Cable Select (CSEL) pin.

When only one drive is installed, the controller responds to all commands from the system. When two drives (and, therefore, two controllers) are installed, all commands from the system are received by both controllers. Each controller then must be set up to respond only to commands for itself. In this situation, one controller then must be designated as the master and the other as the slave. When the system sends a command for a specific drive, the controller on the other drive must remain silent while the selected controller and drive are functioning. Setting the jumper to master or slave allows discrimination between the two controllers by setting a special bit (the DRV bit) in the Drive/Head Register of a command block.

ATA I/O Connector

The ATA interface connector is a 40-pin header-type connector that should be keyed to prevent the possibility of installing it upside down. A key is provided by the removal of pin 20, and the corresponding pin on the cable connector should be plugged in to prevent a backward installation. The use of keyed connectors and cables is highly recommended, because plugging an IDE cable in backward can damage both the drive and the bus adapter circuits (although I have done it myself many times with no smoked parts yet!).

Table 15.1 shows the ATA-IDE interface connector pinout.

#### Table 15.1 ATA Connector

Signal Name | Pin | Pin | Signal Name
-RESET | 1 | 2 | GROUND
Data Bit 7 | 3 | 4 | Data Bit 8
Data Bit 6 | 5 | 6 | Data Bit 9
Data Bit 5 | 7 | 8 | Data Bit 10
Data Bit 4 | 9 | 10 | Data Bit 11
Data Bit 3 | 11 | 12 | Data Bit 12
Data Bit 2 | 13 | 14 | Data Bit 13
Data Bit 1 | 15 | 16 | Data Bit 14
Data Bit 0 | 17 | 18 | Data Bit 15
GROUND | 19 | 20 | KEY (pin missing)
DRQ 3 | 21 | 22 | GROUND
-IOW | 23 | 24 | GROUND
-IOR | 25 | 26 | GROUND
I/O CH RDY | 27 | 28 | SPSYNC:CSEL
-DACK 3 | 29 | 30 | GROUND
IRQ 14 | 31 | 32 | -IOCS16
Address Bit 1 | 33 | 34 | -PDIAG
Address Bit 0 | 35 | 36 | Address Bit 2
-CS1FX | 37 | 38 | -CS3FX
-DA/SP | 39 | 40 | GROUND
+5 Vdc (Logic) | 41 | 42 | +5 Vdc (Motor)
GROUND | 43 | 44 | -TYPE (0=ATA)

ATA I/O Cable

A 40-conductor ribbon cable is specified to carry signals between the bus adapter circuits and the drive (controller). To maximize signal integrity and to eliminate potential timing and noise problems, the cable should not be longer than 0.46 meters (18 inches).

ATA Signals

This section describes some of the most important signals in more detail. Pin 20 is used as a key pin for cable orientation and is not connected through in the interface. This pin should be missing from any ATA connectors, and the cable should have the pin-20 hole in the connector plugged off to prevent the cable from being plugged in backward.

Pin 39 carries the Drive Active/Slave Present (DASP) signal, which is a dual-purpose, time-multiplexed signal. During power-on initialization, this signal indicates whether a slave drive is present on the interface. After that, each drive asserts the signal to indicate that it is active. Early drives could not multiplex these functions and required special jumper settings to work with other drives. Standardizing this function to allow for compatible dual-drive installations is one of the features of the ATA standard.

Pin 28 carries the Cable Select or Spindle Synchronization signal (CSEL or SPSYNC), which is a dual-purpose conductor; a given installation, however, may use only one of the two functions. The CSEL function is the most widely used and is designed to control the designation of a drive as master (drive 0) or slave (drive 1) without requiring jumper settings on the drives. If a drive sees the CSEL as being grounded, the drive is a master; if CSEL is open, the drive is a slave.

You can install special cabling to ground CSEL selectively. This installation normally is accomplished through a Y-cable arrangement, with the IDE bus connector in the middle and each drive at opposite ends of the cable. One leg of the Y has the CSEL line connected through, indicating a master drive; the other leg has the CSEL line open (conductor interrupted or removed), making the drive at that end the slave.

ATA Commands

One of the best features of the ATA IDE interface is the enhanced command set. The ATA IDE interface was modeled after the WD1003 controller that IBM used in the original AT system. All ATA IDE drives must support the original WD command set (eight commands), with no exceptions, which is why IDE drives are so easy to install in systems today. All IBM-compatible systems have built-in ROM BIOS support for the WD1003, which means that essentially they support ATA IDE as well.

In addition to supporting all the WD1003 commands, the ATA specification added numerous other commands to enhance performance and capabilities. These commands are an optional part of the ATA interface, but several of them are used in most drives available today and are very important to the performance and use of ATA drives in general.

Perhaps the most important is the `Identify Drive` command. This command causes the drive to transmit a 512-byte block of data that provides all details about the drive. Through this command, any program (including the system BIOS) can find out exactly what type of drive is connected, including the drive manufacturer, model number, operating parameters, and even the serial number of the drive. Many modern BIOSes use this information to automatically receive and enter the drive's parameters into CMOS memory, eliminating the need for the user to enter these parameters manually during system configuration. This arrangement helps prevent mistakes that can later lead to data loss when the user no longer remembers what parameters he or she used during setup.

The Identify Drive data can tell you many things about your drive, including the following:

- Number of cylinders in the recommended (default) translation mode
- Number of heads in the recommended (default) translation mode
- Number of sectors per track in the recommended (default) translation mode
- Number of cylinders in the current translation mode
- Number of heads in the current translation mode
- Number of sectors per track in the current translation mode
- Manufacturer and model number
- Firmware revision
- Serial number
- Buffer type, indicating sector buffering or caching capabilities

Several public-domain programs can execute this command to the drive and report the information on-screen. I use the IDEINFO or IDEDIAG program. Phone numbers for these information services appear in Appendix A. I find these programs especially useful when I am trying to install IDE drives and need to know the correct parameters for a user- definable BIOS type. These programs get the information directly from the drive itself.

You can get a copy of IDEINFO at

http://www.dc.ee/Files/Utils/IDEINFO.ARJ

You can pick up IDEDIAG at

http://www.pcorner.com/tpc/old/24-151.html

Two other very important commands are the `Read Multiple` and `Write Multiple` commands. These commands permit multiple-sector data transfers and, when combined with block-mode Programmed I/O (PIO) capabilities in the system, can result in incredible data-transfer rates many times faster than single-sector PIO transfers.

> TIP: If you want the ultimate in IDE performance and installation ease, make sure that your mother-board BIOS and IDE adapter supports ATA-2 or EIDE. This support allows your BIOS to execute data transfers to and from the IDE drive several times faster than normal, and also makes installation and configuration easier because the BIOS will be able to detect the drive-parameter information automatically. High-speed PIO and automatic detection of the drive type are included in the latest versions of most PC BIOSes.

There are many other enhanced commands, including room for a given drive manufacturer to implement what are called vendor-unique commands. These commands often are used by a particular vendor for features unique to that vendor. Often, features such as low-level formatting and defect management are controlled by vendor-unique commands. This is why low-level format programs can be so specific to a particular manu-facturer's IDE drives and why many manufacturers make their own LLF programs available.

ATA IDE Drive Categories

ATA-IDE drives can be divided into three main categories. These categories separate the drives by function (such as translation capabilities) and design (which can affect features such as low-level formatting):

- Non-Intelligent ATA-IDE drives
- Intelligent ATA-IDE drives
- Intelligent Zoned Recording ATA-IDE drives

Non-Intelligent IDE

As I stated earlier, the ATA standard requires that the built-in controller respond exactly as though it were a Western Digital WD1003 controller. This controller responds to a command set of eight commands. Early IDE drives supported these commands and had few, if any, other options. These early drives actually were more like regular ST-506/412 or ESDI controllers bolted directly into the drive than the more intelligent drives that we consider today to be IDE. These drives were not considered to be intelligent IDE drives; an intelligent drive is supposed to have several capabilities that these early IDE drives lacked. The drives could not respond to any of the enhanced commands that were specified as (an optional) part of the ATA IDE specification, including the `Identify Drive` command. These drives also did not support sector translation, in which the physical parameters could be altered to appear as any set of logical cylinders, heads, and sectors. Enhanced commands and sector-translation support are what make an IDE drive an intelligent IDE drive, and these features were not available in the early IDE drives.

These drives could be low-level formatted in the same manner as any normal ST-506/412 or ESDI drive. They were universally low-level formatted at the factory, with factory-calculated optimum interleave (usually, 1:1) and head- and cylinder-skew factors. Also, factory defects were recorded in a special area on the drive; they no longer were written on a sticker pasted to the exterior. Unfortunately, this arrangement means that if you low-level format these drives in the field, you most likely will alter these settings (especially the skew factors) from what the factory set as optimum, as well as wipe out the factory-written defect table.

Some manufacturers released special low-level format routines that would reformat the drives while preserving these settings, but others did not make such programs available. Because they did not want you to overwrite the defect list or potentially slow the drive, most manufacturers stated that you should never low-level format their IDE drives.

This statement started a myth that the drives could somehow be damaged or rendered inoperable by such a format, which truly is not the case. One rumor was that the servo information could be overwritten, which would mean that you would have to send the drive back to the manufacturer for re-servoing. This also is not true; the servo information is protected and cannot be overwritten. The only consequence of an improper low-level format of these drives is the possible alteration of the skew factors and the potential loss of the factory defect maps.

The Disk Manager program by Ontrack is the best special-purpose format utility to use on these drives for formatting because it is aware of these types of drives and often can restore the skew factors and preserve the defect information. If you are working with a drive that already has had the defect map overwritten, Disk Manager can perform a very good surface analysis that will mark off any of these areas that it finds. Disk Manager allows you to specify the skew factors and to mark defects at the sector level so that they will not cause problems later. Other general-purpose diagnostics that work especially well with IDE drives such as this include the Microscope program by Micro 2000.

Intelligent IDE

Later IDE drives became known as intelligent IDE drives. These drives support enhanced ATA commands, such as the `Identify Drive` command, and sector-translation capabilities.

These drives can be configured in two ways: in raw physical mode or in translation mode. To configure the drive in raw physical mode, you simply enter the CMOS drive parameters during setup so that they match the true physical parameters of the drive. For example, if the drive physically has 800 cylinders, 6 heads, and 50 sectors per track, you enter these figures during setup. To configure the drive in translation mode, you simply enter any combination of cylinders, heads, and sectors that adds up to equal or less than the true number of sectors on the drive.

In the example I just used, the drive has a total of 240,000 sectors (800x6x50). All I have to do is figure out another set of parameters that adds up equal to or less than 240,000 sectors. The simplest way to do this is to cut the number of cylinders in half and double the number of heads. Thus, the new drive parameters become 400 cylinders, 12 heads, and 50 sectors per track. This method adds up to 240,000 sectors and enables the drive to work in translation mode.

When these drives are in translation mode, a low-level format cannot alter the interleave and skew factors, nor can it overwrite the factory defect-mapping information. A low-level format program can, however, perform additional defect mapping or sector sparing while in this mode.

If the drive is in true physical mode, a low-level format rewrites the sector headers and modifies the head and cylinder skewing. If performed incorrectly, the format can be repaired by a proper low-level format program that allows you to set the correct head and cylinder skew. This task can be accomplished automatically by the drive manufacturer's recommended low-level format program (if available) or by other programs, such as Disk Manager by Ontrack. When you use Disk Manager, you have to enter the skew values manually; otherwise, the program uses predetermined defaults. To obtain the correct skew values, it is best to contact the drive manufacturer's technical support department. You can calculate the skew values if the manufacturer cannot provide them.

To protect the skew factors and defect information on intelligent IDE drives, all you have to do is run them in translation mode. In translation mode, this information cannot be overwritten.

Intelligent Zoned Recording IDE

The last and most sophisticated IDE drives combine intelligence with Zoned Recording. With Zoned Recording, the drive has a variable number sectors per track in several zones across the surface of the drive. Because the PC BIOS can handle only a fixed number of sectors on all tracks, these drives always must run in translation mode. Because these drives are always in translation mode, you cannot alter the factory-set interleave and skew factors or wipe out the factory defect information.

You still can low-level format these drives, however, and use such a format to map or spare additional defective sectors that crop up during the life of the drive. To low-level format intelligent Zoned Recording drives, you need either a specific utility from the drive manufacturer or an IDE-aware program, such Disk Manager by Ontrack or Microscope by Micro 2000.

ATA-2 (Enhanced IDE)

ATA-2 is an extension of the original ATA (IDE) specification. The most important additions are performance enhancing features such as fast PIO and DMA modes. ATA-2 also features improvements in the `Identify Drive` command allowing a drive to tell the software exactly what its characteristics are; this is essential for both Plug and Play (PnP) and compatibility with future revisions of the standard.

ATA-2 is often called Enhanced IDE (or EIDE). EIDE is technically a marketing program from Western Digital. Fast-ATA and Fast-ATA-2 are similar Seagate-inspired marketing programs, which are also endorsed by Quantum. As far as the hard disk and BIOS are concerned, these are all different terms for basically the same thing.

There are four main areas where ATA-2 and EIDE have improved the original ATA/IDE interface:

- Increased maximum drive capacity
- Faster data transfer
- Secondary two-device channel
- ATAPI (ATA Program Interface)

The following section describes these improvements.

Increased Drive Capacity

ATA-2/EIDE allows for increased drive capacity over the original ATA/IDE specification. This is done through an Enhanced BIOS, which makes it possible to use hard disks exceeding the 504M barrier. The origin of this limit is the disk geometry (cylinders, heads, sectors) supported by the combination of an IDE drive and the BIOS' software interface. Both IDE and the BIOS are capable of supporting huge disks, but their combined limitations conspire to restrict the useful capacity to 504M.

An Enhanced BIOS circumvents this by using a different geometry when talking to the drive than when talking to the software. What happens in between is called translation. For example, if your drive has 2,000 cylinders and 16 heads, a translating BIOS will make programs think that the drive has 1,000 cylinders and 32 heads.

You can usually tell if your BIOS is enhanced by the ability to specify more than 1,024 cylinders in the BIOS setup, although this is not conclusive. If you see drive-related settings like `LBA`, `ECHS`, or even `Large`, these are tell-tale signs of a BIOS with translation support. Most BIOSes with a date of 1994 or later are enhanced. If your system currently does not have an Enhanced BIOS, you may be able to get an upgrade.

There are roughly three ways today's BIOSes can handle translation: Standard CHS addressing, Extended CHS addressing, and LBA (Logical Block Addressing). They are summarized in the following table:

BIOS Mode | Operating System to BIOS | BIOS to Drive Ports
Standard CHS | Logical CHS Parameters | Logical CHS Parameters
Extended CHS | Translated CHS Parameters | Logical CHS Parameters
LBA | Translated CHS Parameters | LBA Parameters

In Standard CHS, there is only one possible translation step internal to the drive. The drive's actual, physical geometry is completely invisible from the outside with all zoned recorded ATA drives today. The Cylinders, Heads, and Sectors printed on the label for use in the BIOS setup are purely logical geometry, and do not represent the actual physical parameters. Standard CHS addressing is limited to 16 heads and 1,024 cylinders, which gives the us a limit of 504M.

This is often called "Normal" in the BIOS setup, and causes the BIOS to behave like an old-fashioned one without translation. Use this setting if your drive has fewer than 1,024 cylinders or if you want to use the drive with a non-DOS operating system that doesn't understand translation.

In Extended CHS, a translated logical geometry is used to communicate between the drive and the BIOS, while a different translated geometry is used to communicate between the BIOS and everything else. In other words, there are normally two translation steps. The drive still translates internally, but has logical parameters that exceed the 1,024 cylinder limitation of the standard BIOS. In this case, the drive's cylinder count is usually divided by 2, and the head count is multiplied by 2 to get the translated values from those actually stored in the CMOS Setup. This type of setting breaks the 504/528M barrier.

This is often called "Large" or "ECHS" in the BIOS setup, and tells the BIOS to use Extended CHS translation. It uses a different geometry (cylinders/heads/sectors) when talking to the drive than when talking to the BIOS. This type of translation should be used with drives that have more than 1,024 cylinders but that do not support LBA. Note that the geometry entered in your BIOS setup is the logical geometry, not the translated one.

LBA is a means of linearly addressing sector's addresses, beginning at Cylinder 0, Head 0, Sector 1 as LBA 0, and proceeding on to the last physical sector on the drive. This is new in ATA-2, but has always been the one and only addressing mode in SCSI.

With LBA, each sector on the drive is numbered starting from 0. The number is a 28-bit binary number internally, which translates to a sector number of from 0 to 268,435,456. Because each sector represents 512 bytes, this results in a maximum drive capacity of exactly 128G, or 137 billion bytes. Unfortunately, the operating system still needs to see a translated CHS, so the BIOS determines how many sectors there are, and comes up with Translated CHS to match. The BIOS CHS limits are 1,024 cylinders, 256 heads, and 63 sectors per track, which limits total drive capacity to just under 8G.

In other words, this breaks the 528M barrier in essentially the same way as Extended CHS does. Because it is somewhat simpler to use a single linear number to address a sector on the hard disk compared to a CHS type address, this is the preferred method if the drive supports LBA.

> CAUTION: A word of warning with these BIOS translation settings: If you switch between Standard CHS, Extended CHS, or LBA, the BIOS may change the (translated) geometry. The same thing may happen if you transfer a disk that has been formatted on an old, non-LBA computer to a new one that uses LBA. This will cause the logical CHS geometry seen by the operating system to change, and will cause the date to appear in the wrong locations from where it actually is! This can cause you to lose access to your data if you are not careful. I always recommend recording the CMOS Setup screens associated with the hard disk configuration so that you can properly match the setup of a drive to the original settings.

Faster Data Transfer

ATA-2/EIDE defines several high-performance modes for transferring data to and from the drive. These faster modes are the main part of the new specifications and were the main reason they were initially developed. Most of the faster drives on the market today will support either PIO transfer Mode 3 or Mode 4, which results in a very fast transfer. The following section discusses these modes.

The PIO mode determines how fast data is transferred to and from the drive. In the slowest possible mode--PIO mode 0--the data cycle time cannot exceed 600 nanoseconds (ns). In a single cycle, 16 bits are transferred in or out of the drive making the theoretical transfer rate of PIO Mode 0 (600ns cycle time) 3.3M/sec. Most of the high-performance ATA-2 (EIDE) drives today support PIO Mode 4, which offers a 16.6M/sec transfer rate.

The following table shows the PIO modes, with their respective transfer rates:

PIO Mode | Cycle Time (ns) | Transfer Rate (M/sec) | Specification
0 | 600 | 3.3 | ATA
1 | 383 | 5.2 | ATA
2 | 240 | 8.3 | ATA
3 | 180 | 11.1 | ATA-2
4 | 120 | 16.6 | ATA-2

To run in Mode 3 or 4 requires that the IDE port on the system be a local bus port. This means that it must operate through either a VL-Bus or PCI bus connection. Some newer motherboards with ATA-2/EIDE support have dual IDE connectors on the motherboard, with only the primary connector running through the system's PCI local bus. The secondary connector usually runs through the ISA bus, and therefore supports up to Mode 2 operation only. Make sure you get clarification of this before you purchase that new motherboard!

When interrogated with an `Identify Drive` command, a hard disk returns, among other things, information about the PIO and DMA modes it is capable of using. Most enhanced BIOSes will automatically set the correct mode to match the capabilities of the drive. If you set a mode faster than the drive can handle, data corruption will result.

ATA-2 drives also perform Block Mode PIO, which means that they use the `Read/Write Multiple` commands that greatly reduce the number of interrupts sent to host processor. This lowers the overhead, and the resulting transfers are even faster.

DMA Transfer Modes

Although it is not used by most operating system or BIOS software, ATA-2 drives also support Direct Memory Access transfers. DMA means that the data is transferred directly between drive and memory without using the CPU as an intermediary, as opposed to PIO.

There are two distinct types of direct memory access: DMA and busmastering DMA. Ordinary DMA relies on the DMA controller on the system's mainboard to perform the complex task of arbitration, grabbing the system bus and transferring the data. In the case of busmastering DMA, all this is done by logic on the interface card itself. Of course, this adds considerably to the complexity and the price of a busmastering interface.

Unfortunately, the DMA controller on ISA systems is ancient and slow, and out of the question for use with a modern hard disk. Today, proper software support for DMA is still rare.

ATAPI (ATA Packet Interface)

ATAPI is a standard designed for devices such as CD-ROMs and tape drives that plug into an ordinary ATA (IDE) connector. The principal advantage of ATAPI hardware is that it's cheap and works on your current adapter. For CD-ROMs, it has a somewhat lower CPU usage compared to proprietary adapters, but there's no performance gain otherwise. For tape drives, ATAPI has potential for superior performance and reliability compared to the popular "floppy" tape devices.

While ATAPI CD-ROMs use the hard disk interface, this does not mean that they look like an ordinary hard disk; to the contrary, from a software point of view they are a completely different kind of animal. They actually most closely resemble a SCSI device.

> CAUTION: Intelligent caching controllers that are not ATAPI-aware will not work with these devices. This means that, at present, you cannot boot from an ATAPI CD-ROM and you still must load a driver to use it under DOS or Windows. Windows 95/NT has native ATAPI support, and the first ATAPI-aware BIOS that will even allow booting from an ATAPI CD-ROM are now available.

IDE Drive Configuration

IDE drives can be both simple and troublesome to configure. Single-drive installations usually are very simple, with few if any special jumper settings to worry about. Multiple-drive configurations, however, can be a problem. Jumpers have to be set on both drives; the names, locations, and even functions of these jumpers can vary from drive to drive.

Because the CAM ATA IDE specification was ironed out only after many companies were already making and selling drives, many older IDE drives have problems in dual-drive installations, especially when the drives are from different manufacturers. In some cases, two particular drives may not function together at all. Fortunately, most of the newer drives follow the CAM ATA specification, which clears up this problem. Drives that follow the specification have no problems in dual-drive installations.

Cable Configuration

The cable connection to IDE drives usually is very simple. There is a single 40-pin cable that normally has three pin-header style connectors on it. One of the connectors plugs into the IDE interface connector; the other two plug into the primary and secondary drives. The cable normally runs from the IDE connector to both drives in a daisy-chain arrangement. On one end, this cable plugs into the IDE interface connector, which is located on the motherboard in many systems but also may be located on an IDE interface adapter card. The cable then connects to the secondary (D) and primary (C) drives in succession, with the primary drive usually (but not always) being at the end of the cable opposite the IDE interface connector.

There are no terminating resistors to set with IDE drives; instead, a distributed termination circuit is built into all IDE drives. The last drive on the cable need not be the primary drive, so you actually may find the primary or secondary drive at either connector. Jumpers on the drives themselves normally control whether a drive responds as primary or secondary.

> CAUTION: You may see a different arrangement of cable connections in some IDE installations. In some installations, the middle connector is plugged into the motherboard, and the primary and secondary drives are at opposite ends of the cable in a Y arrangement. If you see this arrangement, be careful; in some of these Y-cable installations, the cable, rather than jumpers on the drives, actually controls which drive is primary and which is secondary.

Controlling master/slave selection via the cable rather than jumpers on the drive is performed via a special signal on the IDE interface called CSEL, which is on pin 28 of the interface. If the CSEL line is connected through from the drive to the IDE interface connector, the drive automatically is designated as primary. If the CSEL line is open between a drive and the IDE interface connector, that drive automatically is designated as secondary.

In the Y-cable approach, the IDE interface connector is in the middle of the cable, and a separate length of cable goes to each drive. Study this type of cable closely. If one of the ends of the Y has line 28 open (usually a hole in the cable through that wire), only the secondary drive can be plugged into that connector. HP Vectra PC systems use exactly this type of IDE cable arrangement. This type of setup eliminates the need to set jumpers on the IDE drives to configure them for primary or secondary operation, but the setup can be troublesome if you do not know about it.

IDE Drive Jumper Settings

Configuring IDE drives can be simple, as is the case with most single-drive installations, or troublesome, especially where it comes to mixing two drives from different manufacturers on a single cable. Most IDE drives come in three configurations:

- Single-drive (master)
- Master (dual-drive)
- Slave (dual-drive)

Because each IDE drive has its own controller, you must specifically tell one drive to be the master and the other to be the slave. There's no functional difference between the two, except that the drive that's specified as the slave will assert the DASP signal after a system reset that informs the master that a slave drive is present in the system. The master drive then pays attention to the Drive Select line, which it otherwise ignores. Telling a drive that it's the slave also usually causes it to delay its spinup for several seconds to allow the master to get going and thus to lessen the load on the system's power supply.

Until the ATA IDE specification, no common implementation for drive configuration was in use. Some drive companies even used different master/slave methods for different models of drives. Because of these incompatibilities, some drives work together only in a specific master/slave or slave/master order. This situation affects mostly older IDE drives that were introduced before the ATA specification.

Most drives that fully follow the ATA specification now need only one jumper (Master/Slave) for configuration. A few also need a Slave Present jumper as well. Table 15.2 shows the jumper settings required by most ATA IDE drives.

#### Table 15.2 Jumper Settings for Most ATA IDE-Compatible Drives

Jumper Name | Single-Drive | Dual-Drive Master | Dual-Drive Slave
Master (M/S) | On | On | Off
Slave Present (SP) | Off | On | Off

The Master jumper indicates that the drive is a master or a slave. Some drives also require a Slave Present jumper, which is used only in a dual-drive setup and then installed only on the master drive, which is somewhat confusing. This jumper tells the master that a slave drive is attached. With many ATA IDE drives, the Master jumper is optional and may be left off. Installing this jumper doesn't hurt in these cases and may eliminate confusion, so I recommend that you install the jumpers listed here.

Conner Peripherals Drives

Because they were introduced before the ATA IDE specification was formalized, Conner Peripherals drives often are different in configuration from many other-brand drives. When you mix and match IDE hard drives from different manufacturers, the drives are not always fully compatible. Table 15.3 shows the jumper settings that are correct for most Conner IDE drive installations.

#### Table 15.3 Jumper Settings for Conner Peripherals IDE Drives

Jumper Name | Single Drive | Dual-Drive Master | Dual-Drive Slave
Master or Slave (C/D) | On | On | Off
Drive Slave Present (DSP) | Off | On | Off
Host Slave Present (HSP) | Off | Off | On
Drive Active (ACT) | On | On | Off

The C/D jumper is used to determine whether the drive is a master (drive C) or a slave (drive D). The drive is configured as master when this jumper is on. The DSP jumper indicates that a slave drive is present. The HSP jumper causes the drive to send the Slave Present signal to the master drive. The ACT jumper enables the master drive to signal when it is active.

Some Conner drives are not set up to support the industry-standard CAM ATA interface by default. The problems show up when you attempt to connect another manufacturer's drive to some Conner drives in either a master or slave role. Fortunately, you can correct many of these situations by changing the configuration of the drive.

You can make this change in two ways. One way is to use a special program to semi-permanently change the mode of the drive. A special file available on the Conner BBS, called FEATURE.COM, contains a program that displays the current ISA/ATACAM setting and allows the setting to be changed. The change actually is stored in a feature byte in the firmware of the drive, and after this byte is changed, most other manufacturers' drives will work with the Conner drives. The program also can be used to reset the feature byte to its original configuration, which is best when you are connecting to other Conner drives.

The second method for changing this configuration is available on some Conner drives. These drives also have a special jumper called ATA/ISA. This jumper almost always should be installed in the ATA position to provide compatibility with the ATA standard. If you are using only Conner drives, you can leave this jumper in ISA mode if you want. Some Conner drives have a separate jumper (E1) that can delay startup of the drive to minimize the load on the power supply. This jumper should be enabled on any drive that is configured as a slave. Most other drives automatically delay startup of the slave drive for a few seconds.

Most Conner drives also have a special 12-pin connector that is used to drive an optional LED (pin 1, LED +5v; and pin 2, ground), as well as to connect to special factory equipment for low-level formatting and configuration. A company called TCE (see Appendix A) sells a device called The Conner, which connects to this port and permits full factory-level initialization, formatting, and testing of Conner drives. I consider this piece of gear to be essential to anybody who services or supports a large number of Conner Peripherals drives. Notice that Compaq uses Conner drives in most of its systems.

For more information on any specific Conner drive, you can use the company's FAXBack system (see the vendor list in Appendix A) at (800) 4CONNER. Through this system, you can get drive information and jumper settings that are specific to Conner drives.

### XT-Bus (8-Bit) IDE

Many systems with XT ISA bus architecture used XT IDE hard drives. The IDE interface in these systems usually is built into the motherboard. The IBM PS/2 Model 25, 25-286, 30, and 30-286 systems used an 8-bit XT IDE interface. These 8-bit XT IDE drives are difficult to find; few manufacturers other than IBM, Western Digital, and Seagate made them; none of these drives were available in capacities beyond 40M.

Because the ATA IDE interface is a 16-bit design, it could not be used in 8-bit (XT type) systems, so some of the drive manufacturers standardized on an XT-Bus (8-bit) IDE interface for XT class systems. These drives were never very popular, and were usually only available in capacities from 20M to 40M. Table 15.4 shows the industry standard 8-bit IDE connector pinout.

#### Table 15.4 XT-Bus IDE Connector

Signal Name | Pin | Pin | Signal Name
-RESET | 1 | 2 | GROUND
Data Bit 7 | 3 | 4 | GROUND
Data Bit 6 | 5 | 6 | GROUND
Data Bit 5 | 7 | 8 | GROUND
Data Bit 4 | 9 | 10 | GROUND
Data Bit 3 | 11 | 12 | GROUND
Data Bit 2 | 13 | 14 | GROUND
Data Bit 1 | 15 | 16 | GROUND
Data Bit 0 | 17 | 18 | GROUND
GROUND | 19 | 20 | KEY (pin missing)
AEN | 21 | 22 | GROUND
-IOW | 23 | 24 | GROUND
-IOR | 25 | 26 | GROUND
-DACK 3 | 27 | 28 | GROUND
DRQ 3 | 29 | 30 | GROUND
IRQ 5 | 31 | 32 | GROUND
Address Bit 1 | 33 | 34 | GROUND
Address Bit 0 | 35 | 36 | GROUND
-CS1FX | 37 | 38 | GROUND
-Drive Active | 39 | 40 | GROUND

Notice that IBM used a custom version of the XT-Bus IDE interface in the PS/2 Model 25 and Model 30 systems. The pinout for the custom IBM XT-Bus IDE connector is shown in Table 15.5.

#### Table 15.5 IBM Unique XT-Bus (PS/2 Model 25 and 30) IDE Connector

Signal Name | Pin | Pin | Signal Name
-RESET | 1 | 2 | -Disk Installed
Data Bit 0 | 3 | 4 | GROUND
Data Bit 1 | 5 | 6 | GROUND
Data Bit 2 | 7 | 8 | GROUND
Data Bit 3 | 9 | 10 | GROUND
Data Bit 4 | 11 | 12 | GROUND
Data Bit 5 | 13 | 14 | GROUND
Data Bit 6 | 15 | 16 | GROUND
Data Bit 7 | 17 | 18 | GROUND
-IOR | 19 | 20 | GROUND
-IOW | 21 | 22 | GROUND
-CS1FX | 23 | 24 | GROUND
Address Bit 0 | 25 | 26 | GROUND
Address Bit 1 | 27 | 28 | GROUND
Address Bit 2 | 29 | 30 | +5v DC
RESERVED | 31 | 32 | +5 Vdc
-DACK 3 | 33 | 34 | GROUND
DRQ 3 | 35 | 36 | GROUND
IRQ 5 | 37 | 38 | GROUND
I/O CH RDY | 39 | 40 | +12 Vdc
Spare | 41 | 42 | +12 Vdc
Spare | 39 | 44 | +12 Vdc

The newer PS/1, PS/Valuepoint, and PS/2 systems with 16-bit ISA architecture use ATA IDE drives. Because nearly all hard disk manufacturers make a multitude of drives with the ATA IDE interface, these systems are easy to upgrade or repair. ATA IDE drives are available in capacities up to and beyond 1G.

### MCA IDE

The IBM PS/2 Models 50 and higher come with Micro-Channel Architecture (MCA) bus slots. Although most of these systems now use SCSI drives, for some time IBM used a type of MCA IDE drive in these systems. MCA IDE is a form of IDE interface, but it is designed for the MCA bus and is not compatible with the more industry-standard ATA IDE interface. Few companies other than IBM and Western Digital make replacement MCA IDE drives for these systems. I recommend replacing these drives with ATA IDE drives, using adapters from Arco Electronics or Sigma Data, or switching to SCSI drives instead. The IBM MCA IDE drives are expensive for the limited capacity that they offer.

The pinout of the MCA IDE connector is shown in Table 15.6.

#### Table 15.6 MCA IDE Connector

Signal Name | Pin | Pin | Signal Name
-CD SETUP | A1 | B1 | Address Bit 15
Address Bit 13 | A2 | B2 | Address Bit 14
GROUND | A3 | B3 | GROUND
Address Bit 11 | A4 | B4 | OSC (14.3 MHz)
Address Bit 10 | A5 | B5 | GROUND
Address Bit 9 | A6 | B6 | Address Bit 12
+5 Vdc | A7 | B7 | -CMD
Address Bit 8 | A8 | B8 | -CD SFDBK
Address Bit 7 | A9 | B9 | GROUND
Address Bit 6 | A10 | B10 | Data Bit 1
+5 Vdc | A11 | B11 | Data Bit 3
Address Bit 5 | A12 | B12 | Data Bit 4
Address Bit 4 | A13 | B13 | GROUND
Address Bit 3 | A14 | B14 | CHRESET
+5 Vdc | A15 | B15 | Data Bit 8
Address Bit 2 | A16 | B16 | Data Bit 9
Address Bit 1 | A17 | B17 | GROUND
Address Bit 0 | A18 | B18 | Data Bit 12
+12 Vdc | A19 | B19 | Data Bit 14
-ADL | A20 | B20 | Data Bit 15
-PREEMPT | A21 | B21 | GROUND
-BURST | A22 | B22 | Data Bit 0
+5 Vdc | A23 | B23 | Data Bit 2
ARB 0 | A24 | B24 | Data Bit 5
ARB 1 | A25 | B25 | GROUND
ARB 2 | A26 | B26 | Data Bit 6
+12 Vdc | A27 | B27 | Data Bit 7
ARB 3 | A28 | B28 | Data Bit 10
+ARB/-GRANT | A29 | B29 | GROUND
-TC | A30 | B30 | Data Bit 11
+5 Vdc | A31 | B31 | Data Bit 13
-S0 | A32 | B32 | -SBHE
-S1 | A33 | B33 | GROUND
+M/-IO | A34 | B34 | -CD DS 16
GROUND | A35 | B35 | -IRQ 14
CD CHRDY | A36 | B36 | GROUND

## Introduction to SCSI

SCSI (pronounced "scuzzy") stands for Small Computer System Interface. This interface has its roots in SASI, the Shugart Associates System Interface. SCSI is not a disk interface, but a systems-level interface. SCSI is not a type of controller, but a bus that supports as many as eight devices. One of these devices, the host adapter, functions as the gateway between the SCSI bus and the PC system bus. The SCSI bus itself does not talk directly with devices such as hard disks; instead, it talks to the controller that is built into the drive.

A single SCSI bus can support as many as eight physical units, usually called SCSI IDs. One of these units is the adapter card in your PC; the other seven can be other peripherals. You could have hard disks, tape drives, CD-ROM drives, a graphics scanner, or other devices (up to seven total) attached to a single SCSI host adapter. Most systems support up to four host adapters, each with seven devices, for a total 28 devices! Some of the newer SCSI implementations allow for 15 devices on each bus.

When you purchase a SCSI hard disk, you usually are purchasing the drive, controller, and SCSI adapter in one circuit. This type of drive usually is called an embedded SCSI drive; the SCSI interface is built into the drive. Most SCSI hard drives actually are IDE drives with SCSI bus adapter circuits added. You do not need to know what type of controller is inside the SCSI drive, because your system cannot talk directly to the controller as though it were plugged into the system bus, like a standard controller. Instead, communications go through the SCSI host adapter installed in the system bus. You can access the drive only with the SCSI protocols.

Apple originally rallied around SCSI as being an inexpensive way out of the bind in which it put itself with the Macintosh. When the engineers at Apple realized the problem in making the Macintosh a closed system (with no slots), they decided that the easiest way to gain expandability was to build a SCSI port into the system, which is how external peripherals can be added to the slotless Macs. Because PC systems always have been expandable, the push toward SCSI has not been as urgent. With eight bus slots supporting different devices and controllers in IBM and IBM-compatible systems, it seemed as though SCSI was not needed.

SCSI now is becoming popular in the IBM-based computer world because of the great expandability that it offers and the number of devices that are available with built-in SCSI. One block that stalled acceptance of SCSI in the PC marketplace was the lack of a real standard; the SCSI standard was designed primarily by a committee. No single manufacturer has led the way, at least in the IBM arena; each company has its own interpretation of how SCSI should be implemented, particularly at the host-adapter level.

SCSI is a standard, in much the same way that RS-232 is a standard. The SCSI standard (like the RS-232 standard), however, defines only the hardware connections, not the driver specifications required to communicate with the devices. Software ties the SCSI subsystem into your PC, but unfortunately, most of the driver programs work only for a specific device and a specific host adapter. For example, a graphics scanner comes with its own SCSI host adapter to connect to the system; a CD-ROM drive comes with another (different) SCSI host adapter and driver software that works only with that SCSI adapter. On a system with those two SCSI adapters, you would need a third SCSI host adapter to run SCSI hard disk drives, because the host adapters supplied by the scanner and CD-ROM companies do not include a built-in, self-booting BIOS that supports hard disk drives.

SCSI has become something of a mess in the IBM world because of the lack of a host-adapter standard, a software interface standard, and standard ROM BIOS support for hard disk drives attached to the SCSI bus. Fortunately, some simple recommendations can keep you from living this compatibility nightmare!

In the beginning, SCSI lacked the capability to run hard disks off the SCSI bus. To boot from these drives and use a variety of operating systems was a problem that resulted from the lack of an interface standard. The standard IBM XT and AT ROM BIOS software was designed to talk to ST-506/412 hard disk controllers. The software easily was modified to work with ESDI because ESDI controllers are similar to ST-506/412 controllers at the register level. (This similarity at the register level enabled manufacturers to easily design self-booting, ROM-BIOS-supported ESDI drives.) The same can be said of IDE, which completely emulates the WD1003 ST-506/412 controller interface and works perfectly with the existing BIOS as well. SCSI is so different from these other standard disk interfaces that a new set of ROM BIOS routines are necessary to support the system so that it can self-boot. The newer IBM PS/2 systems that come with SCSI drives have this support built into the motherboard BIOS or as an extension BIOS on the SCSI host adapter.

Companies such as Adaptec and Future Domain have produced SCSI cards with built-in ROM BIOS support for several years, but these BIOS routines were limited to running the drives only under DOS. The BIOS would not run in the AT-protected mode, and other operating systems included drivers for only the standard ST-506/412 and ESDI controllers. Thus, running SCSI was impossible under many non-DOS operating systems. This situation has changed significantly, however; IBM now supports many third-party SCSI host adapters in OS/2, especially those from Adaptec and Future Domain. For compatibility reasons, I usually recommend using SCSI adapters from these two companies, or any other adapters that are fully hardware-compatible with the Adapted and Future Domain adapters.

Because of the lead taken by Apple in developing systems software (operating systems and ROM) support for SCSI, peripherals connect to Apple systems in fairly standard ways. Until recently, this kind of standard-setting leadership was lacking for SCSI in the IBM world. This situation changed on March 20, 1990, when IBM introduced several "standard" SCSI adapters and peripherals for the IBM PS/2 systems, with complete ROM BIOS and full operating-system support.

IBM has standardized on SCSI for nearly all its high-end systems. In these systems, a SCSI host adapter card is in one of the slots, or the system has a SCSI host adapter built into the motherboard. This arrangement is similar in appearance to the IDE interface, because a single cable runs from the motherboard to the SCSI drive, but SCSI supports as many as seven devices (some of which may not be hard disks), whereas IDE supports only four devices (two per controller), which must be either a hard disk, IDE-type CD-ROM drive, or a tape drive, or the new IDE Zip drive. PS/2 systems with SCSI drives are easy to upgrade, because virtually any third-party SCSI drive will plug in and function.

The example set by IBM is causing other manufacturers to supply systems with either SCSI host adapters or SCSI interfaces integrated into the motherboards. As SCSI becomes more and more popular in the PC world, SCSI peripheral integration will be easier due to better operating-system and device-driver support.

ANSI SCSI Standards

The SCSI standard defines the physical and electrical parameters of a parallel I/O bus used to connect computers and peripheral devices in daisy-chain fashion. The standard supports devices such as disk drives, tape drives, and CD-ROM drives. The original SCSI standard (ANSI X3.131-1986) was approved in 1986, SCSI-2 was approved in January 1994, and a new revision called SCSI-3 is being developed.

The SCSI interface is defined as a standard by ANSI. The X3 Task Group operates as an ASC (Accredited Standards Committee) under ANSI to develop Information Processing System standards. X3T9 is the I/O Interfaces group, and X3T9.2 specifically is in charge of low-level interfaces such as SCSI and ATA-IDE (among others). The original SCSI-1 standard was published by the X3T9 ANSI group in 1986, and is officially published by ANSI as X3.131-1986.

One problem with the original SCSI-1 document was that many of the commands and features were optional, and there was little or no guarantee that a particular peripheral would support the expected commands. This problem caused the industry as a whole to define a set of 18 basic SCSI commands called the Common Command Set (CCS), which would become the minimum set of commands supported by all peripherals. CCS became the basis for what is now the SCSI-2 specification.

In addition to formal support for CCS, SCSI-2 provided additional definitions for commands to access CD-ROM drives (and their sound capabilities), tape drives, removable drives, optical drives, and several other peripherals. In addition, an optional higher speed called Fast SCSI-2 and a 16-bit version called Wide SCSI-2 were defined. Another feature of SCSI-2 is command queuing, which enables a device to accept multiple commands and execute them in the order that the device deems to be most efficient. This feature is most beneficial when you are using a multitasking operating system that could be sending several requests on the SCSI bus at the same time.

The X3T9 group approved the SCSI-2 standard as X3.131-1990 in August 1990, but the document was recalled in December 1990 for changes before final ANSI publication. Final approval for the SCSI-2 document was finally made in January 1994, although it has changed little from the original 1990 release. The SCSI-2 document is now called ANSI X3.131-1994. The official document is available from Global Engineering Documents or the ANSI committee, which are listed in Appendix A. You can also download working drafts of these documents from the NCR SCSI BBS, found in the vendor list under "NCR Microelectronics."

Most companies indicate that their host adapters follow both the ANSI X3.131-1986 (SCSI-1) as well as the x3.131-1994 (SCSI-2) standards. Note that because virtually all parts of SCSI-1 are supported in SCSI-2, virtually any SCSI-1 device is also considered SCSI-2 by default. Many manufacturers advertise that their devices are SCSI-2, but this does not mean that they support any of the additional optional features that were incorporated in the SCSI-2 revision.

For example, an optional part of the SCSI-2 specification includes a fast synchronous mode that doubles the standard synchronous transfer rate from 5M/sec to 10M/sec. This Fast SCSI transfer mode can be combined with 16-bit Wide SCSI for transfer rates of up to 20M/sec. There was an optional 32-bit version defined in SCSI-2, but component manufacturers have shunned this as too expensive. In essence, 32-bit SCSI was a stillborn specification. Most SCSI implementations are 8-bit standard SCSI or Fast/Wide SCSI. Even devices which support none of the Fast or Wide modes can still be considered SCSI-2.

The SCSI-3 standard is still being defined and is still a long way off from being approved. However, portions of this specification, although not final, are being sold in products today. One of these developments is the new Fast-20 mode, which is also called Ultra-SCSI. This essentially is quad-speed SCSI, and will run 20M/sec on an 8-bit standard SCSI bus, and 40M/sec on Wide (16-bit) SCSI.

Table 15.7 shows the maximum transfer rates for the SCSI bus at various speeds and widths, as well as the cable type required for the specific transfer widths.

#### Table 15.7 SCSI Data-Transfer Rates

Bus Width | Standard SCSI | Fast SCSI | Fast-20 (Ultra) SCSI | Cable Type
8-bit | 5M/sec | 10M/sec | 20M/sec | A (50-pin)
16-bit (Wide) | 10M/sec | 20M/sec | 40M/sec | P (68-pin)

> NOTE: The A cable is the standard 50-pin SCSI cable, whereas the P cable is a 68-pin cable designed for 16-bit. Maximum cable length is 6m (about 20 feet) for standard speed SCSI, and only 3m (about 10 feet) for Fast or Fast-20 (Ultra) SCSI. Pinouts for these cable connections are listed in this chapter in Tables 15.13 through 15.21.

So-called SCSI-1 adapters have no problems with SCSI-2 peripherals. In fact, as was stated earlier, virtually any SCSI-1 device can also legitimately be called SCSI-2 (or even SCSI-3). You can't take advantage of Fast, Fast-20, or Wide transfer capabilities, but the extra commands defined in SCSI-2 can be sent by means of a SCSI-1 controller. In other words, nothing is different between SCSI-1 and SCSI-2 compliant hardware. For example, I am running a Seagate Barracuda 4G Fast SCSI-2 drive with my standard IBM SCSI-1 host adapter, and it runs fine. Most adapters are similar in that they actually are SCSI-2 compatible, even if they advertise only SCSI-1 support.

Because the SCSI-2 standard was not actually approved before January 1994, any devices that claimed to be SCSI-2 before that time were not officially in compliance with the standard. This is really not a problem, however, because the SCSI-2 document had not changed appreciably since it was nearly approved in 1990. The same thing is currently happening with advertisers listing devices as "SCSI-3." The SCSI-3 specification is not yet approved, although certain areas are being worked out.

SCSI Hard Disk Evolution and Construction

SCSI is not a disk interface, but a bus that supports SCSI bus interface adapters connected to disk and other device controllers. The first SCSI drives for PCs simply were standard ST-506/412 or ESDI drives with a separate SCSI bus interface adapter (sometimes called a bridge controller) that converted the ST-506/412 or ESDI interfaces to SCSI. This interface originally was in the form of a secondary logic board, and the entire assembly often was mounted in an external case.

The next step was to build the SCSI bus interface "converter" board directly into the drive's own logic board. Today, we call these drives embedded SCSI drives, because the SCSI interface is built in.

At that point, there was no need to conform to the absolute specifications of ST-506/412 or ESDI on the internal disk interface, because the only other device that the interface ever would have to talk to was built in as well. Thus, the disk-interface and controller-chipset manufacturers began to develop more customized chipsets that were based on the ST-506/412 or ESDI chipsets already available but offered more features and higher performance. Today, if you look at a typical SCSI drive, you often can identify the chip or chipset that serves as the disk controller on the drive as being exactly the same kind that would be used on an ST-506/412 or ESDI controller or as some evolutionary customized variation thereof.

Consider some examples. An ATA IDE drive must fully emulate the system-level disk-controller interface introduced with the Western Digital WD1003 controller series that IBM used in the AT. These drives must act as though they have a built-in ST-506/412 or ESDI controller; in fact, they actually do. Most of these built-in controllers have more capabilities than the original WD1003 series (usually in the form of additional commands), but they must at least respond to all the original commands that were used with the WD1003.

If you follow the hard drive market, you usually will see that drive manufacturers offer most of their newer drives in both ATA-IDE and SCSI versions. In other words, if a manufacturer makes a particular 500M IDE drive, you invariably will see that the company also makes a SCSI model with the same capacity and specifications, which uses the same HDA (Head Disk Assembly) and even looks the same as the IDE version. If you study these virtually identical drives, the only major difference you will find is the additional chip on the logic board of the SCSI version, called a SCSI Bus Adapter Chip (SBIC).

Figures 15.1 and 15.2 show the logic-block diagrams of the WD-AP4200 (a 200M ATA-IDE drive) and WD-SP4200 (a 200M SCSI drive), respectively. These drives use the same HDA; they differ only in their logic boards, and even the logic boards are the same except for the addition of an SBIC on the SCSI drive's logic board.

Notice that even the circuit designs of these two drives are almost identical. Both drives use an LSI (Large Scale Integrated circuit) chip called the WD42C22 Disk Controller and Buffer manager chip. In the ATA drive, this chip is connected through a DMA control chip directly to the AT bus. In the SCSI version, a WD33C93 SCSI bus interface controller chip is added to interface the disk-controller logic to the SCSI bus. In fact, the logic diagrams of these two drives differ only in the fact that the SCSI version has a complete subset of the ATA drive, with the SCSI bus interface controller logic added. This essentially is a very condensed version of the separate drive and bridge controller setups that were used in the early days of PC SCSI!

FIG. 15.1 WD-AP4200 200M ATA-IDE drive logic-board block diagram.

FIG. 15.2 WD-SP4200 200M SCSI drive logic-board block diagram.

To top off this example, study the following logic diagram for the WD 1006V-MM1, which is an ST-506/412 controller (see Figure 15.3).

You can clearly see that the main LSI chip on board is the same WD42C22 disk controller chip used in the IDE and SCSI drives. Here is what the technical reference literature says about that chip:

FIG. 15.3 Western Digital WD1006V-MM1 ST-506/412 Disk Controller block diagram.

> The WD42C22 integrates a high-performance, low-cost Winchester controller's architecture. The WD42C22 integrates the central elements of a Winchester controller subsystem such as the host interface, buffer manager, disk formatter/ controller, encoder/decoder, CRC/ECC (Cyclic Redundancy Check/Error Correc-tion Code) generator/checker, and drive interface into a single 84-pin PQFP (Plastic Quad Flat Pack) device.

The virtually identical design of ATA-IDE and SCSI drives is not unique to Western Digital. Most drive manufacturers design their ATA-IDE and SCSI drives the same way, often using these very same WD chips as well as disk controller and SCSI bus interface chips from other manufacturers. You now should be able to understand that most SCSI drives simply are "regular" ATA-IDE drives with SCSI bus logic added. This fact will come up again later in this chapter in the section "SCSI versus IDE," which discusses performance and other issues differentiating these interfaces.

For another example, I have several IBM 320M and 400M embedded SCSI-2 hard disks; each of these drives has on-board a WD-10C00 Programmable Disk Controller in the form of a 68-pin PLCC (Plastic Leaded Chip Carrier) chip. The technical literature states:

> This chip supports ST412, ESDI, SMD, and Optical interfaces. It has 27Mbit/sec maximum transfer rate and an internal, fully programmable 48- or 32-bit ECC, 16-bit CRC-CCITT or external user defined ECC polynomial, fully programmable sector sizes, and 1.25 micron low power CMOS design.

In addition, these particular embedded SCSI drives include the 33C93 SCSI Bus Interface Controller chip, which also is used in the other SCSI drive that I mentioned. Again, there is a distinctly separate disk controller, and the SCSI interface is added on.

So again, most embedded SCSI drives have a built-in disk controller (usually based on previous ST-506/412 or ESDI designs) and additional logic to interface that controller to the SCSI bus (a built-in bridge controller, if you like). Now think about this from a performance standpoint. If virtually all SCSI drives really are ATA-IDE drives with a SCSI Bus Interface Controller chip added, what conclusions can you draw?

First, no drive can perform sustained data transfers faster than the data can actually be read from the disk platters. In other words, the HDA limits performance to whatever it is capable of achieving. Drives can transmit data in short bursts at very high speeds, because they often have built-in cache or read-ahead buffers that store data. Many of the newer high-performance SCSI and ATA-IDE drives have 1M or more of cache memory on-board! No matter how big or intelligent the cache is, however, sustained data transfer still will be limited by the HDA.

Data from the HDA must pass through the disk controller circuits, which, as you have seen, are virtually identical between similar SCSI and ATA-IDE drives. In the ATA-IDE drive, this data then is presented directly to the system bus. In the SCSI drive, however, the data must pass through a SCSI Bus Interface adapter on the drive, travel through the SCSI bus itself, and then pass through another SCSI Bus Interface controller in the SCSI host adapter card in your system. The longer route that a SCSI transfer must take makes this type of transfer slower than the much more direct ATA-IDE transfer.

The conventional wisdom has been that SCSI always is much faster than IDE; unfortunately, this wisdom usually is wrong! This incorrect conclusion was derived by looking at the raw SCSI and ISA bus performance capabilities. An 8-bit Fast SCSI-2 bus can transfer data at 10M/sec, whereas the 16-bit ISA bus used directly by IDE drives can transfer data at rates ranging from 2M to 8M/sec. Based on these raw transfer rates, SCSI seems to be faster, but the raw transfer rate of the bus is not the limiting factor. Instead, the actual HDA and disk-controller circuitry place the limits on performance. Another point to remember is that unless you are using a PCI, VL-Bus, EISA, or 32-bit MCA SCSI adapter, the SCSI data-transfer speeds will be limited by the host bus performance as well as by the drive performance.

However, modern operating systems are multitasking, and SCSI devices (with all their additional controller circuitry) function independent of each other, unlike IDE. Therefore, data can be read and written to any of the SCSI devices simultaneously. This allows for smoother multitasking and increased overall data throughput. The most advanced operating systems like Windows NT even allow drive striping. A strip drive set is two or more drives that appear to the user as one drive. Data is split between the drives equally, again increasing overall throughput.

For more on stripe sets in Windows NT, search for

http://www.microsoft.com/kb/articles/q113/9/33.htm

Single-Ended or Differential SCSI

"Normal" SCSI also is called single-ended SCSI. For each signal that needs to be sent across the bus, a wire exists to carry it. With differential SCSI, for each signal that needs to be sent across the bus, a pair of wires exists to carry it. The first in this pair carries the same type of signal that the single-ended SCSI carries. The second in this pair, however, carries the logical inversion of the signal. The receiving device takes the difference of the pair (hence the name differential), which makes it less susceptible to noise and allows for greater cable length. Because of this, differential SCSI can be used with cable lengths up to 25m, whereas single-ended SCSI is good only for 6m with standard asynchronous or synchronous transfers or for only 3m for Fast SCSI.

You cannot mix single-ended and differential devices on a single SCSI bus; the result would be catastrophic. (That is to say, you probably will see smoke!) Notice that the cables and connectors are the same, so it's entirely possible to make this mistake. This usually is not a problem, however, because very few differential SCSI implementations exist. Especially with SCSI in the PC environment, single-ended is about all you will ever see. If, however, you to come upon a peripheral that you believe might be differential, there are a few ways to tell. One way is to look for a special symbol on the unit; the industry has adopted different universal symbols for single-ended and differential SCSI. Figure 15.4 shows these symbols.

FIG. 15.4 Single-ended and differential SCSI universal symbols.

If you do not see such symbols, you can tell whether you have a differential device by using an ohmmeter to check the resistance between pins 21 and 22 on the device connector. On a single-ended system, the pins should be tied together and also tied to the ground. On a differential device, the pins should be open or have significant resistance between them. Again, this generally should not be a problem, because virtually all devices used in the PC environment are single-ended.

SCSI-1 and SCSI-2

The SCSI-2 specification essentially is an improved version of SCSI-1 with some parts of the specification tightened and with several new features and options added. Normally, SCSI-1 and SCSI-2 devices are compatible, but SCSI-1 devices ignore the additional features in SCSI-2.

Some of the changes in SCSI-2 are very minor. For example, SCSI-1 allowed SCSI Bus parity to be optional, whereas parity must be implemented in SCSI-2. Another requirement is that initiator devices, such as host adapters, provide terminator power to the interface; most devices already did so.

SCSI-2 also has several optional features:

- Fast SCSI
- Wide SCSI
- Command queuing
- High-density cable connectors
- Improved Active (Alternative 2) termination

These features are not required; they are optional under the SCSI-2 specification. If you connect a standard SCSI host adapter to a Fast SCSI drive, for example, the interface will work, but only at standard SCSI speeds.

SCSI-3

SCSI-3 is a term used to describe a set of standards currently being developed. Simply put, it is the next generation of documents a product conforms to. See the section "New Commands" later in this chapter.

Fast and Fast-Wide SCSI

Fast SCSI refers to high-speed synchronous transfer capability. Fast SCSI achieves a 10M/sec transfer rate on the standard 8-bit SCSI cabling. When combined with a 16-bit Wide SCSI interface, this configuration results in data-transfer rates of 20M/sec (called Fast/Wide).

Fast-20 (Ultra) SCSI

Fast-20 or Ultra SCSI refers to high-speed synchronous transfer capability that is twice as fast as Fast-SCSI. This has been introduced in the Draft (unfinished) SCSI-3 specification and has already been adopted by the marketplace, especially for high-speed hard disks. Ultra SCSI achieves a 20M/sec transfer rate on the standard 8-bit SCSI cabling. When combined with a 16-bit Wide SCSI interface, this configuration results in data-transfer rates of 40M/sec (called Ultra/Wide).

Fast-40 SCSI

Fast-40 SCSI is a future revision of SCSI-3 (mentioned earlier in the chapter) capable of achieving a 40M/sec transfer rate.

Wide SCSI

Wide SCSI allows for parallel data transfer at a bus width of 16 bits. The wider connection requires a new cable design. The standard 50-conductor 8-bit cable is called the A cable. SCSI-2 originally defined a special 68-conductor B cable that was supposed to be used in conjunction with the A cable for wide transfers, but the industry ignored this specification in favor of a newer 68-conductor P cable that was introduced as part of the SCSI-3 specification. The P cable superseded the A and B cable combination because the P cable can be used alone (without the A cable) for 16-bit Wide SCSI.

A 32-bit Wide SCSI version was originally defined on paper as a part of the SCSI-2 specification, but has not found popularity and probably never will in the PC environment. Theoretically, 32-bit SCSI implementations would require two cables: a 68-conductor P cable and a 68-conductor Q cable.

Fiber Channel SCSI

Fiber Channel SCSI is a specification for a serial interface using a fiber channel physical and protocol characteristic, with a SCSI command set. It can achieve 100M/sec over either fiber or coaxial cable.

Termination

The single-ended SCSI bus depends on very tight termination tolerances to function reliably. Unfortunately, the original 132-ohm passive termination defined in the SCSI-1 document was not designed for use at the higher synchronous speeds now possible. These passive terminators can cause signal reflections resulting in errors when transfer rates increase or when more devices are added to the bus. SCSI-2 defines an active (voltage-regulated) terminator that lowers termination impedance to 110 ohms and improves system integrity.

Command Queuing

In SCSI-1, an initiator device, such as a host adapter, was limited to sending one command per device. In SCSI-2, the host adapter can send as many as 256 commands to a single device, which will store and process those commands internally before responding on the SCSI bus. The target device even can resequence the commands to allow for the most efficient execution or performance possible. This feature is especially useful in multitasking environments, such as OS/2 and Windows NT, that can take advantage of this feature.

New Commands

SCSI-2 took the Common Command Set that was being used throughout the industry and made it an official part of the standard. The CCS was designed mainly for disk drives and did not include specific commands designed for other types of devices. In SCSI-2, many of the old commands are reworked, and several new commands have been added. New command sets have been added for CD-ROMs, optical drives, scanners, communications devices, and media changers (jukeboxes).

SCSI-3

Even though the SCSI-2 specification has only recently been approved (although it has remained stable for some time), the SCSI-3 specification is already being developed. SCSI-3 will have everything that SCSI-2 has and definitely will add new commands, features, and implementations. For example, SCSI-3 will provide support for up to 32 devices on the bus instead of only eight.

One of the most exciting things about SCSI-3 is the proposed Serial SCSI, a scheme that may use only a six-conductor cable and that will be able to transfer data at up to 100M/sec! The switch to serial instead of parallel is designed to control the delay, noise, and termination problems that have plagued SCSI-2, as well as to simplify the cable connection. Serial SCSI will be capable of transferring more data over six wires than 32-bit Fast Wide SCSI-2 can over 128 wires! The intention is that Serial SCSI be implemented on the motherboard of future systems, giving them incredible expansion and performance capabilities.

Although Serial SCSI may not make the older host adapters and cables obsolete overnight, it does make future cabling possibilities even more of a puzzle. Serial SCSI offers the possibility of longer cable lengths, less electromagnetic interference, and easier connections on laptops, notebooks, and docking stations. Expect SCSI-3 to offer almost pain-free installations with automatic PnP SCSI ID setup and termination schemes.

In any practical sense, SCSI-3 is still some ways away from being approved. Because the standard exists in draft documents before being officially approved, if the portions of the standard become stable, we may very well see products claiming SCSI-3 compatibility well before the standard truly exists. Because SCSI-3 actually incorporates all of what is in SCSI-2, technically anybody can call any SCSI-1 or SCSI-2 device a SCSI-3 device as well. Beware of product hype along these lines. Some of the new SCSI-3 features will likely be incompatible with previous SCSI implementations, and may take a while to appear on the market.

SCSI Cables and Connectors

The SCSI standards are very specific when it comes to cables and connectors. The most common connectors specified in this standard are the 50-position unshielded pin header connector for internal SCSI connections and the 50-position shielded Centronics latch-style connectors for external connections. The shielded Centronics style connector also is called Alternative 2 in the official specification. Passive or Active termination (Active is preferred) is specified for both single-ended and differential buses. The 50-conductor bus configuration is defined in the SCSI-2 standard as the A-cabled.

The SCSI-2 revision added a high-density, 50-position, D-shell connector option for the A-cable connectors. This connector now is called Alternative 1. The Alternative 2 Centronics latch-style connector remains unchanged from SCSI-1. A 68-conductor B-cable specification was added to the SCSI-2 standard to provide for 16- and 32-bit data transfers; the connector, however, had to be used in parallel with an A cable. The industry did not widely accept the B cable option, which has been dropped from the SCSI-3 standard.

To replace the ill-fated B cable, a new 68-conductor P cable was developed as part of the SCSI-3 specification. Shielded and unshielded high-density D-shell connectors are specified for both the A cable and P cable. The shielded high-density connectors use a squeeze-to-release latch rather than the wire latch used on the Centronics-style connectors. Active termination for single-ended buses is specified, providing a high level of signal integrity.

SCSI Cable and Connector Pinouts

The following section details the pinouts of the various SCSI cables and connectors. There are two electrically different versions of SCSI, single-ended and differential. These two versions are electrically incompatible, and must not be interconnected or damage will result. Fortunately, there are very few differential SCSI applications available in the PC industry, so you will rarely (if ever) encounter it. Within each electrical type (single-ended or differential), there are basically three SCSI cable types:

- A Cable (Standard SCSI)
- P Cable (16- and 32-bit Wide SCSI)
- Q Cable (32-bit Wide SCSI)

The A cable is used in most SCSI-1 and SCSI-2 installations, and is the most common cable you will encounter. SCSI-2 Wide (16-bit) applications use a P cable instead, which completely replaces the A cable. You can intermix standard and Wide SCSI devices on a single SCSI bus by interconnecting A and P cables with special adapters. 32-bit wide SCSI-3 applications use both the P and Q cables in parallel to each 32-bit device. Today there are virtually no PC applications for 32-bit Wide SCSI-3, and because of the two- cable requirement, it is not likely to catch on.

The A cables can have Pin Header (Internal) type connectors or External Shielded connectors, each with a different pinout. The P and Q cables feature the same connector pinout on either Internal or External cable connections.

Single-Ended SCSI Cables and Connectors

The single-ended electrical interface is the most popular type for PC systems. Tables 15.8 and 15.9 show all the possible single-ended cable and connector pinouts. The A cable is available in both internal unshielded as well as external shielded configurations. A hyphen preceding a signal name indicates the signal is Active Low. The RESERVED lines have continuity from one end of the SCSI bus to the other. In an A cable bus, the RESERVED lines should be left open in SCSI devices (but may be connected to ground), and are connected to ground in the bus terminator assemblies. In the P and Q cables, the RESERVED lines are left open in SCSI devices as well as in the bus terminator assemblies.

#### Table 15.8 A Cable (Single-Ended) Internal Unshielded Header Connector

Signal Name | Pin | Pin | Signal Name
GROUND | 1 | 2 | -DB(0)
GROUND | 3 | 4 | -DB(1)
GROUND | 5 | 6 | -DB(2)
GROUND | 7 | 8 | -DB(3)
GROUND | 9 | 10 | -DB(4)
GROUND | 11 | 12 | -DB(5)
GROUND | 13 | 14 | -DB(6)
GROUND | 15 | 16 | -DB(7)
GROUND | 17 | 18 | -DB(Parity)
GROUND | 19 | 20 | GROUND
GROUND | 21 | 22 | GROUND
RESERVED | 23 | 24 | RESERVED
Open | 25 | 26 | TERMPWR
RESERVED | 27 | 28 | RESERVED
GROUND | 29 | 30 | GROUND
GROUND | 31 | 32 | -ATN
GROUND | 33 | 34 | GROUND
GROUND | 35 | 36 | -BSY
GROUND | 37 | 38 | -ACK
GROUND | 39 | 40 | -RST
GROUND | 41 | 42 | -MSG
GROUND | 43 | 44 | -SEL
GROUND | 45 | 46 | -C/D
GROUND | 47 | 48 | -REQ
GROUND | 49 | 50 | -I/O

#### Table 15.9 A-Cable (Single-Ended) External Shielded Connector

Signal Name | Pin | Pin | Signal Name
GROUND | 1 | 26 | -DB(0)
GROUND | 2 | 27 | -DB(1)
GROUND | 3 | 28 | -DB(2)
GROUND | 4 | 29 | -DB(3)
GROUND | 5 | 30 | -DB(4)
GROUND | 6 | 31 | -DB(5)
GROUND | 7 | 32 | -DB(6)
GROUND | 8 | 33 | -DB(7)
GROUND | 9 | 34 | -DB(Parity)
GROUND | 10 | 35 | GROUND
GROUND | 11 | 36 | GROUND
RESERVED | 12 | 37 | RESERVED
Open | 13 | 38 | TERMPWR
RESERVED | 14 | 39 | RESERVED
GROUND | 15 | 40 | GROUND
GROUND | 16 | 41 | -ATN
GROUND | 17 | 42 | GROUND
GROUND | 18 | 43 | -BSY
GROUND | 19 | 44 | -ACK
GROUND | 20 | 45 | -RST
GROUND | 21 | 46 | -MSG
GROUND | 22 | 47 | -SEL
GROUND | 23 | 48 | -C/D
GROUND | 24 | 49 | -REQ
GROUND | 25 | 50 | -I/O

IBM has standardized on the SCSI interface for virtually all PS/2 systems introduced since 1990. These systems use a Micro-Channel SCSI adapter or have the SCSI Host Adapter built into the motherboard. In either case, IBM's SCSI interface uses a special 60-pin mini-Centronics type external shielded connector that is unique in the industry. A special IBM cable is required to adapt this connector to the standard 50-pin Centronics style connector used on most external SCSI devices. The pinout of the IBM 60-pin mini-Centronics style External Shielded connector is shown Table 15.10. Notice that although the pin arrangement is unique, the pin number to signal designations correspond with the standard unshielded internal pin header type of SCSI connector.

#### Table 15.10 IBM PS/2 SCSI External Shielded 60-Pin Connector

Signal Name | Pin | Pin | Signal Name
GROUND | 1 | 60 | Not Connected
-DB(0) | 2 | 59 | Not Connected
GROUND | 3 | 58 | Not Connected
-DB(1) | 4 | 57 | Not Connected
GROUND | 5 | 56 | Not Connected
-DB(2) | 6 | 55 | Not Connected
GROUND | 7 | 54 | Not Connected
-DB(3) | 8 | 53 | Not Connected
GROUND | 9 | 52 | Not Connected
-DB(4) | 10 | 51 | GROUND
GROUND | 11 | 50 | -I/O
-DB(5) | 12 | 49 | GROUND
GROUND | 13 | 48 | -REQ
-DB(6) | 14 | 47 | GROUND
GROUND | 15 | 46 | -C/D
-DB(7) | 16 | 45 | GROUND
GROUND | 17 | 44 | -SEL
-DB(Parity) | 18 | 43 | GROUND
GROUND | 19 | 42 | -MSG
GROUND | 20 | 41 | GROUND
GROUND | 21 | 40 | -RST
GROUND | 22 | 39 | GROUND
RESERVED | 23 | 38 | -ACK
RESERVED | 24 | 37 | GROUND
Open | 25 | 36 | -BSY
TERMPWR | 26 | 35 | GROUND
RESERVED | 27 | 34 | GROUND
RESERVED | 28 | 33 | GROUND
GROUND | 29 | 32 | -ATN
GROUND | 30 | 31 | GROUND

The P cable (single-ended) and connectors are used in 16-bit wide SCSI-2 applications (see Table 15.11 for the pinout).

#### Table 15.11 P Cable (Single-Ended) Internal or External Shielded Connector

Signal Name | Pin | Pin | Signal Name
GROUND | 1 | 35 | -DB(12)
GROUND | 2 | 36 | -DB(13)
GROUND | 3 | 37 | -DB(14)
GROUND | 4 | 38 | -DB(15)
GROUND | 5 | 39 | -DB(Parity 1)
GROUND | 6 | 40 | -DB(0)
GROUND | 7 | 41 | -DB(1)
GROUND | 8 | 42 | -DB(2)
GROUND | 9 | 43 | -DB(3)
GROUND | 10 | 44 | -DB(4)
GROUND | 11 | 45 | -DB(5)
GROUND | 12 | 46 | -DB(6)
GROUND | 13 | 47 | -DB(7)
GROUND | 14 | 48 | -DB(Parity 0)
GROUND | 15 | 49 | GROUND
GROUND | 16 | 50 | GROUND
TERMPWR | 17 | 51 | TERMPWR
TERMPWR | 18 | 52 | TERMPWR
RESERVED | 19 | 53 | RESERVED
GROUND | 20 | 54 | GROUND
GROUND | 21 | 55 | -ATN
GROUND | 22 | 56 | GROUND
GROUND | 23 | 57 | -BSY
GROUND | 24 | 58 | -ACK
GROUND | 25 | 59 | -RST
GROUND | 26 | 60 | -MSG
GROUND | 27 | 61 | -SEL
GROUND | 28 | 62 | -C/D
GROUND | 29 | 63 | -REQ
GROUND | 30 | 64 | -I/O
GROUND | 31 | 65 | -DB(8)
GROUND | 32 | 66 | -DB(9)
GROUND | 33 | 67 | -DB(10)
GROUND | 34 | 68 | -DB(11)

The Q Cable (single-ended) and connector is defined only for 32-bit SCSI implementations, which also require a P cable as well (see Table 15.12 for the pinout). 32-bit SCSI applications are rare to virtually nonexistent.

#### Table 15.12 Q Cable (Single-Ended) Internal or External Shielded Connector

Signal Name | Pin | Pin | Signal Name
GROUND | 1 | 35 | -DB(28)
GROUND | 2 | 36 | -DB(29)
GROUND | 3 | 37 | -DB(30)
GROUND | 4 | 38 | -DB(31)
GROUND | 5 | 39 | -DB(Parity 3)
GROUND | 6 | 40 | -DB(16)
GROUND | 7 | 41 | -DB(17)
GROUND | 8 | 42 | -DB(18)
GROUND | 9 | 43 | -DB(19)
GROUND | 10 | 44 | -DB(20)
GROUND | 11 | 45 | -DB(21)
GROUND | 12 | 46 | -DB(22)
GROUND | 13 | 47 | -DB(23)
GROUND | 14 | 48 | -DB(Parity 2)
GROUND | 15 | 49 | GROUND
GROUND | 16 | 50 | GROUND
TERMPWRQ | 17 | 51 | TERMPWRQ
TERMPWRQ | 18 | 52 | TERMPWRQ
RESERVED | 19 | 53 | RESERVED
GROUND | 20 | 54 | GROUND
GROUND | 21 | 55 | TERMINATED
GROUND | 22 | 56 | GROUND
GROUND | 23 | 57 | TERMINATED
GROUND | 24 | 58 | -ACKQ
GROUND | 25 | 59 | TERMINATED
GROUND | 26 | 60 | TERMINATED
GROUND | 27 | 61 | TERMINATED
GROUND | 28 | 62 | TERMINATED
GROUND | 29 | 63 | -REQQ
GROUND | 30 | 64 | TERMINATED
GROUND | 31 | 65 | -DB(24)
GROUND | 32 | 66 | -DB(25)
GROUND | 33 | 67 | -DB(26)
GROUND | 34 | 68 | -DB(27)

Differential SCSI Signals

Differential SCSI is not normally used in a PC environment, but is very popular with minicomputer installations due to the very long bus lengths that are allowed. Although not popular in PC systems, the interface connector specifications are show here for reference.

The A cable (differential) connector is available in both internal unshielded form as well as an external shielded form. Table 15.13 shows the pinout for the Internal cable, while Table 15.14 shows the pinout for the External cable.

#### Table 15.13 A Cable (Differential) Internal Unshielded Header Connector

Signal Name | Pin | Pin | Signal Name
-RESET | 1 | 2 | -Disk Installed
GROUND | 1 | 2 | GROUND
+DB(0) | 3 | 4 | -DB(0)
+DB(1) | 5 | 6 | -DB(1)
+DB(2) | 7 | 8 | -DB(2)
+DB(3) | 9 | 10 | -DB(3)
+DB(4) | 11 | 12 | -DB(4)
+DB(5) | 13 | 14 | -DB(5)
+DB(6) | 15 | 16 | -DB(6)
+DB(7) | 17 | 18 | -DB(7)
+DB(Parity) | 19 | 20 | -DP(Parity)
DIFFSENS | 21 | 22 | GROUND
RESERVED | 23 | 24 | RESERVED
TERMPWR | 25 | 26 | TERMPWR
RESERVED | 27 | 28 | RESERVED
+ATN | 29 | 30 | -ATN
GROUND | 31 | 32 | GROUND
+BSY | 33 | 34 | -BSY
+ACK | 35 | 36 | -ACK
+RST | 37 | 38 | -RST
+MSG | 39 | 40 | -MSG
+SEL | 41 | 42 | -SEL
+C/D | 43 | 44 | -C/D
+REQ | 45 | 46 | -REQ
+I/O | 47 | 48 | -I/O
GROUND | 49 | 50 | GROUND

#### Table 15.14 A Cable (Differential) External Shielded Connector

Signal Name | Pin | Pin | Signal Name
GROUND | 1 | 26 | GROUND
+DB(0) | 2 | 27 | -DB(0)
+DB(1) | 3 | 28 | -DB(1)
+DB(2) | 4 | 29 | -DB(2)
+DB(3) | 5 | 30 | -DB(3)
+DB(4) | 6 | 31 | -DB(4)
+DB(5) | 7 | 32 | -DB(5)
+DB(6) | 8 | 33 | -DB(6)
+DB(7) | 9 | 34 | -DB(7)
+DB(Parity) | 10 | 35 | -DP(Parity)
DIFFSENS | 11 | 36 | GROUND
RESERVED | 12 | 37 | RESERVED
TERMPWR | 13 | 38 | TERMPWR
RESERVED | 14 | 39 | RESERVED
+ATN | 15 | 40 | -ATN
GROUND | 16 | 41 | GROUND
+BSY | 17 | 42 | -BSY
+ACK | 18 | 43 | -ACK
+RST | 18 | 44 | -RST
+MSG | 20 | 45 | -MSG
+SEL | 21 | 46 | -SEL
+C/D | 22 | 47 | -C/D
+REQ | 23 | 48 | -REQ
+I/O | 24 | 49 | -I/O
GROUND | 25 | 50 | GROUND

The P cable (differential) and connector is used for 16-bit wide SCSI connections. Table 15.15 has the pinouts for the P cable (differential).

#### Table 15.15 P Cable (Differential) Internal or External Shielded Connector

Signal Name | Pin | Pin | Signal Name
+DB(12) | 1 | 35 | -DB(12)
+DB(13) | 2 | 36 | -DB(13)
+DB(14) | 3 | 37 | -DB(14)
+DB(15) | 4 | 38 | -DB(15)
+DB(Parity 1) | 5 | 39 | -DB(Parity 1)
GROUND | 6 | 40 | GROUND
+DB(0) | 7 | 41 | -DB(0)
+DB(1) | 8 | 42 | -DB(1)
+DB(2) | 9 | 43 | -DB(2)
+DB(3) | 10 | 44 | -DP(3)
+DB(4) | 11 | 45 | -DB(4)
+DB(5) | 12 | 46 | -DB(5)
+DB(6) | 13 | 47 | -DB(6)
+DB(7) | 14 | 48 | -DB(7)
+DB(Parity 0) | 15 | 49 | -DB(Parity 0)
DIFFSENS | 16 | 50 | GROUND
TERMPWR | 17 | 51 | TERMPWR
TERMPWR | 18 | 52 | TERMPWR
RESERVED | 19 | 53 | RESERVED
+ATN | 20 | 54 | -ATN
GROUND | 21 | 55 | GROUND
+BSY | 22 | 56 | -BSY
+ACK | 23 | 57 | -ACK
+RST | 24 | 58 | -RST
+MSG | 25 | 59 | -MSG
+SEL | 26 | 60 | -SEL
+C/D | 27 | 61 | -C/D
+REQ | 28 | 62 | -REQ
+I/O | 29 | 63 | -I/O
GROUND | 30 | 64 | GROUND
+DB(8) | 31 | 65 | -DB(8)
+DB(9) | 32 | 66 | -DB(9)
+DB(10) | 33 | 67 | -DB(10)
+DB(11) | 34 | 68 | -DB(11)

The Q cable (differential) and connector is used only with the proposed 32-bit wide SCSI implementations (which have not been implemented by the marketplace as of yet), and in that case would also require a 16-bit wide P cable. Table 15.16 shows the Q cable (differential) pinout.

#### Table 15.16 Q Cable (Differential) Internal or External Shielded Connector

Signal Name | Pin | Pin | Signal Name
-RESET | 1 | 2 | -Disk Installed
+DB(28) | 1 | 35 | -DB(28)
+DB(29) | 2 | 36 | -DB(29)
+DB(30) | 3 | 37 | -DB(30)
+DB(31) | 4 | 38 | -DB(31)
+DB(Parity 3) | 5 | 39 | -DB(Parity 3)
GROUND | 6 | 40 | GROUND
+DB(16) | 7 | 41 | -DB(16)
+DB(17) | 8 | 42 | -DB(17)
+DB(18) | 9 | 43 | -DB(18)
+DB(19) | 10 | 44 | -DP(19)
+DB(20) | 11 | 45 | -DB(20)
+DB(21) | 12 | 46 | -DB(21)
+DB(22) | 13 | 47 | -DB(22)
+DB(23) | 14 | 48 | -DB(23)
+DB(Parity 2) | 15 | 49 | -DB(Parity 2)
DIFFSENS | 16 | 50 | GROUND
TERMPWRQ | 17 | 51 | TERMPWRQ
TERMPWRQ | 18 | 52 | TERMPWRQ
RESERVED | 19 | 53 | RESERVED
TERMINATED | 20 | 54 | TERMINATED
GROUND | 21 | 55 | GROUND
TERMINATED | 22 | 56 | TERMINATED
+ACKQ | 23 | 57 | -ACKQ
TERMINATED | 24 | 58 | TERMINATED
TERMINATED | 25 | 59 | TERMINATED
TERMINATED | 26 | 60 | TERMINATED
TERMINATED | 27 | 61 | TERMINATED
+REQQ | 28 | 62 | -REQQ
TERMINATED | 29 | 63 | TERMINATED
GROUND | 30 | 64 | GROUND
+DB(24) | 31 | 65 | -DB(24)
+DB(25) | 32 | 66 | -DB(25)
+DB(26) | 33 | 67 | -DB(26)
+DB(27) | 34 | 68 | -DB(27)

Termination

All buses need to be electrically terminated at each end; the SCSI bus is no exception. Improper termination still is one of the most common problems in SCSI installations. Three types of terminators typically are available for the SCSI bus:

- Passive
- Active (also called Alternative 2)
- Forced Perfect Termination (FPT): FPT-3, FPT-18, and FPT-27

Typical passive terminators (a network of resistors) allow signal fluctuations in relation to the terminator power signal on the bus. Usually, passive terminating resistors suffice over short distances, such as 2 or 3 feet, but for longer distances, active termination is a real advantage. Active termination is required with Fast SCSI.

An active terminator actually has one or more voltage regulators to produce the termination voltage, rather than resistor voltage dividers. This arrangement helps ensure that the SCSI signals always are terminated to the correct voltage level. Active terminators will usually have some sort of LED indicating the termination activity. The SCSI-2 specification recommends active termination on both ends of the bus and requires active termination whenever Fast or Wide SCSI devices are used. Most high-performance host adapters have an "auto-termination" feature so if it is the end of a chain, it will terminate itself.

A variation on active termination is available: Forced Perfect Termination. Forced Perfect Termination is an even better form of active termination, in which diode clamps are added to eliminate signal overshoot and undershoot. The trick is that instead of clamping to +5 and Ground, these terminators clamp to the output of two regulated voltages. This arrangement enables the clamping diodes to eliminate signal overshoot and undershoot, especially at higher signaling speeds and over longer distances.

FPT terminators are available in several versions. FPT-3 and FPT-18 versions are available for 8-bit standard SCSI, while the FPT-27 is available for 16-bit (Wide) SCSI. The FPT-3 version forces perfect the three most highly active SCSI signals on the 8-bit SCSI bus, while the FPT-18 forces perfect all the SCSI signals on the 8-bit bus except grounds. FPT-27 also forces perfect all of the 16-bit Wide SCSI signals except grounds.

> NOTE: Several companies make high-quality terminators for the SCSI bus, including Aeronics and the Data Mate division of Methode. Both of these companies make a variety of terminators, but Aeronics is well-noted for some unique FPT versions that are especially suited to problem configurations that require longer cable runs or higher signal integrity. One of the best investments that you can make in any SCSI installation is in high-quality cables and terminators.

SCSI Drive Configuration

SCSI drives are not too difficult to configure, especially compared with IDE drives. The SCSI standard controls the way that the drives must be set up. You need to set two or three items when you configure an SCSI drive:

- SCSI ID setting (0-7)
- Terminating resistors

The SCSI ID setting is very simple. Up to eight SCSI devices can be used on a single SCSI bus, and each device must have a unique SCSI ID address. The host adapter takes one address, so the rest are free for up to seven SCSI peripherals. Most SCSI host adapters are factory-set to ID 7, which is the highest-priority ID. All other devices must have unique IDs that do not conflict with one another. Some host adapters boot only from a hard disk set to a specific ID. In my system, for example, the IBM SCSI host adapter requires the boot drive to be set to ID 6. Newer IBM host adapters and systems enable you to boot from a hard disk at any SCSI ID. Older Adaptec host adapters required the boot hard disk to be ID 0; newer ones can boot from any ID.

Setting the ID usually involves changing jumpers on the drive itself. If the drive is installed in an external chassis, the chassis may have an ID selector switch that is accessible at the rear. This selector makes ID selection a simple matter of pressing a button or rotating a wheel until the desired ID number appears. If no external selector is present, you must open the external device chassis and set the ID via the jumpers on the drive.

Three jumpers are required to set the SCSI ID; the particular ID selected actually is derived from the binary representation of the jumpers themselves. For example, setting all three ID jumpers off results in a binary number of 000b, which translates to an ID of 0. A binary setting of 001b equals ID 1, 010b equals 2, 011b equals 3, and so on. (Notice that as I list these values, I append a lowercase b to indicate binary numbers.)

Unfortunately, the jumpers can appear either forward or backward on the drive, depending on how the manufacturer set them up. To keep things simple, I have recorded all the different ID jumper settings in the following tables. Table 15.17 shows the settings for drives that order the jumpers with the Most Significant Bit (MSB) to the left; Table 15.18 shows the settings for drives that have the jumpers ordered so that the MSB is to the right.

#### Table 15.17 SCSI ID Jumper Settings with the Most Significant Bit to the Left

SCSI | ID | Jumper | Settings
0 | 0 | 0 | 0
1 | 0 | 0 | 1
2 | 0 | 1 | 0
3 | 0 | 1 | 1
4 | 1 | 0 | 0
5 | 1 | 0 | 1
6 | 1 | 1 | 0
7 | 1 | 1 | 1

1 = Jumper On, 0 = Jumper Off

#### Table 15.18 SCSI ID Jumper Settings with the Most Significant Bit to the Right

SCSI | ID | Jumper | Settings
0 | 0 | 0 | 0
1 | 1 | 0 | 0
2 | 0 | 1 | 0
3 | 1 | 1 | 0
4 | 0 | 0 | 1
5 | 1 | 0 | 1
6 | 0 | 1 | 1
7 | 1 | 1 | 1

1 = Jumper On, 0 = Jumper Off

SCSI termination is very simple. Termination is required at both ends of the bus; there are no exceptions. If the host adapter is at one end of the bus, it must have termination enabled. If the host adapter is in the middle of the bus, and if both internal and external bus links are present, the host adapter must have its termination disabled, and the devices at each end of the bus must have terminators installed. Several types of terminators are available, differing both in quality and in appearance. Active terminators are the minimum recommended, and Forced Perfect Terminators (FPT) are considered the best available. For more information on the different types, see the previous section on terminators.

The rules are simple: Use the best terminators possible, and make sure that only the ends of the SCSI bus are terminated. The majority of problems that I see with SCSI installations are the result of improper termination. Some devices have built-in termination resistors that are enabled or disabled through a jumper or by being physically removed. Other devices do not have built-in terminating resistors; these devices instead rely on external terminator modules for termination.

When installing an external SCSI device, you will usually find the device in a storage enclosure with both input and output SCSI connectors, so that you can use the device in a daisy chain. If the enclosure is at the end of the SCSI bus, an external terminator module most likely will have to be plugged into the second (outgoing) SCSI port to provide proper termination at that end of the bus (see Figure 15.5).

FIG. 15.5 External SCSI device terminator.

External terminator modules are available in a variety of connector configurations, including pass-through designs, which are needed if only one port is available. Pass-through terminators also are commonly used in internal installations in which the device does not have built-in terminating resistors. Many hard drives use pass-through terminators for internal installations to save space on the logic-board assembly (see Figure 15.6).

The pass-through models are required when a device is at the end of the bus and only one SCSI connector is available.

FIG. 15.6 Internal pin-header connector pass-through SCSI terminator.

> TIP: Remember to stick with high-quality active or Forced Perfect terminators at each end of the bus, and you will eliminate most common termination problems.

Other configuration items on a SCSI drive can be set via jumpers. Following are several of the most common additional settings that you will find:

- Start on Command (delayed start)
- SCSI Parity
- Terminator Power
- Synchronous Negotiation

These configuration items are described in the following sections.

Start On Command (Delayed Start)

If you have multiple drives installed in a system, it is wise to set them up so that all the drives do not start to spin immediately when the system is powered on. A hard disk drive can consume three or four times more power during the first few seconds after power-on than during normal operation. The motor requires this additional power to get the platters spinning quickly. If several drives are drawing all this power at the same time, the power supply may be overloaded, which can cause the system to hang or to have intermittent startup problems.

Nearly all SCSI drives provide a way to delay drive spinning so that this problem does not occur. When most SCSI host adapters initialize the SCSI bus, they send out a command called `Start Unit` to each of the ID addresses in succession. By setting a jumper on the hard disk, you can prevent the disk from spinning until it receives the `Start Unit` command from the host adapter. Because the host adapter sends this command to all the ID addresses in succession, from the highest-priority address (ID 7) to the lowest (ID 0), the higher-priority drives can be made to start first, with each lower-priority drive spinning up sequentially. Because some host adapters do not send the `Start Unit` command, some drives may simply delay spinup for a fixed number of seconds rather than wait for a command that never will arrive.

If drives are installed in external chassis with separate power supplies, you need not implement the delayed-start function. This function is best applied to internal drives that must be run from the same power supply that runs the system. For internal installations, I recommend setting Start on Command (delayed start) even if you have only one SCSI drive; this setting will ease the load on the power supply by spinning the drive up after the rest of the system has full power. This method is especially good for portable systems and other systems in which the power supply is limited.

SCSI Parity

SCSI Parity is a limited form of error checking that helps ensure that all data transfers are reliable. Virtually all host adapters support SCSI parity checking, so this option should be enabled on every device. The only reason why it exists as an option is that some older host adapters do not work with SCSI parity, so the parity must be turned off.

Terminator Power

The terminators at each end of the SCSI bus require power from at least one device on the bus. In most cases, the host adapter supplies this terminator power; in some cases, however, it does not. For example, parallel-port SCSI host adapters typically do not supply terminator power. It is not a problem if more than one device supplies terminator power because each source is diode-protected. For simplicity's sake, many will configure all devices to supply terminator power. If no device supplies terminator power, the bus will not be terminated correctly and will not function properly.

SCSI Synchronous Negotiation

The SCSI bus can run in two modes: asynchronous (the default) and synchronous. The bus actually switches modes during transfers through a protocol called synchronous negotiation. Before data is transferred across the SCSI bus, the sending device (called the initiator) and the receiving device (called the target) negotiate how the transfer will take place. If both devices support synchronous transfers, they will discover this fact through the negotiation, and the transfer will take place at the faster synchronous rate.

Unfortunately, some older devices do not respond to a request for synchronous transfer and can actually be disabled when such a request is made. For this reason, both host adapters and devices that support synchronous negotiation often have a jumper that can be used to disable this negotiation so that it can work with older devices. By default, all devices today should support synchronous negotiation, and this function should be enabled.

Plug and Play (PnP) SCSI

Plug and Play SCSI was originally released in April 1994. This specification allows SCSI device manufacturers to build PnP peripherals that will automatically configure when used with a PnP operating system. This will allow you to easily connect or reconfigure external peripherals, such as hard disk drives, backup tapes, and CD-ROMs.

To connect SCSI peripherals to the host PC, the specification requires a PnP SCSI host adapter such as PnP ISA or PCI. PnP add-in cards enable a PnP operating system to automatically configure software device drivers and system resources for the host bus interface.

The PnP SCSI specification version 1.0 includes these technical highlights:

- A single cable-connector configuration
- Automatic termination of the SCSI bus
- SCAM (SCSI Configured AutoMatically) automatic ID assignment
- Full backward compatibility of PnP SCSI devices with the installed base of SCSI systems.

This should go a long way in making SCSI easier to use for the normal user.

Each SCSI peripheral that you add to your SCSI bus (other than hard disk drives) requires an external driver to make the device work. Hard disks are the exception; driver support for them normally is provided as part of the SCSI host adapter BIOS. These external drivers are specific not only to a particular device, but also to the host adapter.

Recently, two types of standard host adapter interface drivers have become popular, greatly reducing this problem. By having a standard host adapter driver to write to, peripheral makers can more quickly create new drivers that support their devices and then talk to the universal host adapter driver. This arrangement eliminates dependence on one particular type of host adapter. These primary or universal drivers link the host adapter and the operating system.

The Advanced SCSI Programming Interface (ASPI) currently is the most popular universal driver, with most peripheral makers writing their drivers to talk to ASPI. The A in ASPI used to stand for Adaptec, the company that introduced it, but other SCSI device vendors have licensed the right to use ASPI with their products. DOS does not support ASPI directly, but it does when the ASPI driver is loaded. Windows 95, Windows NT, and OS/2 2.1 and later versions provide automatic ASPI support for several SCSI host adapters.

Future Domain and NCR have created another interface driver called the Common Access Method (CAM). CAM is an ANSI-approved protocol that enables a single driver to control several host adapters. In addition to ASPI, OS/2 2.1 and later versions currently offer support for CAM. Future Domain also provides a CAM-to-ASPI converter in the utilities that go with its host adapters.

SCSI Configuration Tips

When you are installing a chain of devices on a single SCSI bus, the installation can get complicated very quickly. Here are some tips for getting your setup to function quickly and efficiently:

- Start by adding one device at a time. Rather than plug numerous peripherals into a single SCSI card and then try to configure them at the same time, start by installing the host adapter and a single hard disk. Then you can continue installing devices one at a time, checking to make sure that everything works before moving on.
- Keep good documentation. When you add a SCSI peripheral, write down the SCSI ID address as well as any other switch and jumper settings, such as SCSI Parity, Terminator Power, and Delayed and/or Remote Start. For the host adapter, record the BIOS addresses, Interrupt, DMA channel, and I/O Port addresses used by the adapter, as well as any other jumper or configuration settings (such as termination) that might be important to know later.
- Use proper termination. Each end of the bus must be terminated, preferably with active or Forced Perfect (FPT) terminators. If you are using any Fast SCSI-2 device, you must use active terminators rather than the cheaper passive types. Even with standard (slow) SCSI devices, active termination is highly recommended. If you have only internal or external devices on the bus, the host adapter and last device on the chain should be terminated. If you have external and internal devices on the chain, you generally will terminate the first and last of these devices but not the SCSI host adapter itself (which is in the middle of the bus).
- Use high-quality shielded SCSI cables. Make sure that your cable connectors match your devices. Use high-quality shielded cables, and observe the SCSI bus-length limitations. Use cables designed for SCSI use and, if possible, stick to the same brand of cable throughout a single SCSI bus. Different brands of cables have different impedance values; this situation sometimes causes problems, especially in long or high-speed SCSI implementations.

Following these simple tips will help minimize problems and leave you with a trouble-free SCSI installation.

## IDE versus SCSI

When you compare the performance and capabilities of IDE and SCSI interfaced drives, you need to consider several factors. These two types of drives are the most popular drives used in PC systems today, and a single manufacturer may make identical drives in both interfaces. Deciding which drive type is best for your system is a difficult decision that depends on many factors.

In most cases, you will find that an IDE drive outperforms an equivalent SCSI drive at a given task or benchmark, and that IDE drives usually cost less than SCSI drives, thus offering better value. In some cases, however, SCSI drives have significant performance and value advantages over IDE drives.

### Performance

ATA IDE drives currently are used in most PC configurations on the market today, because the cost of an IDE-drive implementation is low and the performance capabilities are high. In comparing any given IDE and SCSI drive for performance, you have to look at the capabilities of the HDAs that are involved.

To minimize the variables in this type of comparison, it is easiest to compare IDE and SCSI drives from the same manufacturer that also use the identical HDA. You will find that in most cases, a drive manufacturer makes a given drive available in both IDE and SCSI forms. For example, Seagate makes the ST-3600A (ATA-IDE) and ST-3600N (Fast SCSI-2) drives, both of which use identical HDAs and which differ only in the logic board. The IDE version has a logic board with a built-in disk controller and a direct AT Bus interface. The SCSI version has the same built-in disk controller and bus interface circuits, and also an SBIC chip. The SBIC chip is a SCSI adapter that places the drive on the SCSI bus. What you will find, in essence, is that virtually all SCSI drives actually are IDE drives with the SBIC chip added.

The HDAs in these example drives are capable of transferring data at a sustained rate of 2.38M to 4M/sec. Because the SCSI version always has the additional overhead of the SCSI bus to go through, in almost all cases the directly attached IDE version performs faster.

### SCSI versus IDE: Advantages and Limitations

IDE drives have much less command overhead for a given sector transfer than do SCSI drives. In addition to the drive-to-controller command overhead that both IDE and SCSI must perform, a SCSI transfer involves negotiating for the SCSI bus; selecting the target drive; requesting data; terminating the transfer over the bus; and finally converting the logical data addresses to the required cylinder, head, and sector addresses. This arrangement gives IDE an advantage in sequential transfers handled by a single-tasking operating system. In a multitasking system that can take advantage of the extra intelligence of the SCSI bus, SCSI can have the performance advantage.

SCSI drives offer significant architectural advantages over IDE and other drives. Because each SCSI drive has its own embedded disk controller that can function independently from the system CPU, the computer can issue simultaneous commands to every drive in the system. Each drive can store these commands in a queue and then perform the commands simultaneously with other drives in the system. The data could be fully buffered on the drive and transferred at high speeds over the shared SCSI bus when a time slot was available.

Although IDE drives also have their own controllers, they do not operate simultaneously, and command queuing is not supported. In effect, the dual controllers in a dual-drive IDE installation work one at a time so as not to step on each other.

Although SCSI drives require an additional-cost host adapter card, more and more PCs require tape-backup, CD-ROM, or optical-drive support and thus must still be configured with a SCSI host bus adapter. This means that the incremental cost of supporting SCSI drives is virtually nil, because the SCSI host bus adapter is shared with other devices, such as tape and optical drives. In addition, all major operating systems today include software support for a wide range of SCSI devices.

What are the limitations of IDE?

- IDE does not support overlapped, multitasked I/O.
- IDE does not support command queuing.
- IDE does not support bus mastering.

As you can see, SCSI has some advantages over IDE, especially where expansion is concerned, and also with regard to support for multitasking operating systems. Unfortunately, it also costs more to implement.

### Recommended Aftermarket Controllers and Host Adapters

Many companies manufacture disk controllers for IBM and IBM-compatible systems. Many newer systems include IDE drives, which have built-in controllers and offer a high level of performance at a low cost. Other systems are using SCSI drives because of the inherent flexibility of the SCSI bus in supporting many drives and other peripherals.

I recommend IDE drives for most standard installations because the connections are simple and the drives are inexpensive for the power. For higher-end systems, or for systems in which upgradability and flexibility are most important, I recommend SCSI drives.

### Recommended SCSI Host Adapters

For SCSI host adapters, I normally recommend Adaptec. Their adapters work well and come with the necessary formatting and operating software. Windows 95, Windows NT, and OS/2 have built-in support for Adaptec SCSI adapters. This support is a consideration in many cases, because it frees you from having to deal with additional drivers.

Standard or Fast SCSI is adequately supported by the ISA bus, but if you are going to install a Fast-Wide SCSI bus, or especially an Ultra-Wide bus, then you should consider some form of local bus SCSI adapter, normally PCI. This is because the ISA bus supports a maximum transfer speed of about 8M/sec, while a Fast-Wide SCSI bus runs up to 20M/sec, and an Ultra-Wide SCSI bus runs up to a blazing 40M/sec! In most cases, a local bus SCSI adapter would be a PCI bus version, which is supported in most current PC systems.

One example of a popular SCSI adapter for the PCI bus is the Adaptec AHA-2940AU (see Figure 15.7) and 2940UW. The 2940AU is an Ultra-SCSI adapter and the 2940UW is Ultra-Wide. These adapters are most notable for their ease of installation and use. Virtually all functions on the card can be configured and set through software. No more digging through manuals or looking for Interrupt, DMA, I/O Port, and other jumper settings--everything is controlled by software and saved in a flash memory module on the card. Following are some of the features of this card:

- Complete configuration utility built into the adapter's ROM
- Software-configurable IRQ, ROM addresses, DMA, I/O Port addresses, SCSI Parity, SCSI ID, and other settings
- Software-selectable termination (no resistors to pull out!)
- Enhanced BIOS support for up to eight 7.88G drives
- No drivers required for more than two hard disks
- Drive spinup on a per-drive basis available
- Boots from any SCSI ID

FIG. 15.7 An Adaptec AHA-2940AU SCSI host adapter.

More recently, Adaptec has released full PnP versions of their SCSI adapters. These adapters will be automatically configured in any PC that supports the PnP specification, or they can be configured manually through supplied software in non-PnP systems. The PnP SCSI adapters are highly recommended because they can be configured without opening up the PC! All functions are set by software, and there are no jumpers or switches to attend to. Most peripheral manufacturers write drivers for Adaptec's cards first, so you will not have many compatibility or driver-support problems with any Adaptec card.

## Disk Hardware and Software Limitations

By studying the capabilities of the different disk interfaces as well as the ROM BIOS and operating systems, it is possible to determine the limits on disk storage. The following section details the limits under the different interfaces and operating systems.

### Disk Interface Capacity Limitations

Different disk interfaces have different limitations on the theoretical maximum drive capacities that they may support. These limitations are due to variations in the way that each interface operates at the hardware level. It is important to note that even though a particular interface may permit access to a given amount of disk real estate, the BIOS and DOS usually are much more limiting and end up being the true limits for system disk capacity.

ST-506/412, ESDI, and IDE

To determine the capacity limits for the ST-506/412, ESDI, or IDE interface, you first need to determine the limits on the maximum number of cylinders, heads, and sectors per track. To do so, look at the size of the registers that hold this data in the controller. All these interfaces have the same controller register specifications, so the capacity limits calculated here apply to all of them. As you will see, the interface capacity limits are quite high. The drive parameter limits are as follows:

> Cylinders (16 bits) = 65,536

> Heads (4 bits) = 16

> Sectors (8 bits) = 256

This calculates to a maximum theoretical drive size of:

> 65,536 cylinders x 16 heads x 256 sectors x 512 bytes = 137,438,953,472 bytes (128G)

Unfortunately, the maximum capacity--128G--is limited by the BIOS. There are two different BIOS types with regards to disk size limitations. The standard BIOS built into most systems is limited to 1,024 cylinders, 16 heads, and 63 sectors per track. If the BIOS is an enhanced version, it will be limited to 1,024 cylinders, 256 heads, and 63 sectors per track. Combining the BIOS and interface limits results in the following maximum capacities (assuming 512-byte sectors):

> Limit with Standard BIOS: 1,024 cylinders x 16 heads x 63 sectors = 528,482,304 bytes (504M)

> Limit with Enhanced BIOS: 1,024 cylinders x 256 heads x 63 sectors = 8,455,716,864 bytes (7.88G)

If you do not have enhanced BIOS support on your motherboard, you could add an IDE bus adapter that has an on-board enhanced BIOS. To get around such BIOS problems, some IDE drive implementations greater than 528 million bytes split the drive to act as two physical units. In this case, the drive would appear on the IDE bus connector as being both master and slave, and could be used only as two 504M maximum-size drives.

ATA-2 has defined LBA support for EIDE. This is a Logical Block Address mode where each sector on the drive is numbered from 0 to x. The limitations are that x is a 28-bit number that has a maximum value of 268,435,456. Using 512-byte sectors, this brings the maximum drive capacity to 137,438,953,472. That is coincidentally the same as the IDE internal limit has always been. The LBA is translated by the ATA-2/EIDE enhanced BIOS to the extended Cylinder, Head, and Sector (CHS) parameters which allow a maximum of 1,024 cylinders, 256 heads, and 63 sectors, respectively.

SCSI

According to the SCSI specification, drives are not addressed by cylinders, heads, and sectors but instead by what is called a Logical Block Address (LBA). This is a sector number in which all the sectors on the drive are numbered sequentially from start to finish. The LBA is specified by a 32-bit number and with 512-byte sectors, results in the following limitation:

> 4,294,967,296 LBAs (sectors) x 512 bytes = 2,199,023,255,552 bytes (2,048G or 2T)

As you can see, SCSI drive capacity limits are extremely high. However, because the SCSI drive must appear to the BIOS as being a given number of cylinders, heads, and sectors per track, the BIOS limits SCSI capacity. Virtually all SCSI adapters have an enhanced BIOS that supports a maximum drive capacity as follows (assuming 512-byte sectors):

> SCSI with Enhanced BIOS: 1,024 cylinders x 256 heads x 63 sectors = 8,455,716,864 bytes (7.88G)

> TIP: If you do not have enhanced BIOS support in your SCSI adapter or motherboard, in some cases you can load an external driver for your adapter to provide this support.

Most systems support up to four SCSI host adapters, each with up to seven hard disk drives, for a total 28 physically installed drives.

### ROM BIOS Capacity Limitations

In addition to the capacity limit of 504M, the standard ROM BIOS is limited to supporting only two hard disk drives. The enhanced BIOS is limited to 128 drives maximum. Most SCSI and IDE adapters get around the two-drive standard BIOS limits by incorporating an enhanced BIOS on board that takes over the disk interface. Some of the newer adapter on-board BIOS versions support booting from CD-ROM drives as well.

### Operating System Capacity Limitations

IBM and Microsoft officially say that DOS 5 and later versions will support up to eight physical hard disks. IBM says that OS/2 1.30.1 and later versions (including 2.x) support up to 24 physical hard disks, and because OS/2 includes DOS, that implies that DOS under OS/2 would support 24 physical drives as well. OS/2 HPFS (High Performance File System) also supports a maximum partition size of 8G and a maximum single-file size of 2G, whereas DOS and OS/2 FAT partitions have a maximum size of 2G and a maximum single-file size of 2G. As you have seen, BIOS limitations currently limit the maximum physical hard disk size to about 7.88G (or about 8.46 million bytes).

© Copyright, Macmillan Computer Publishing. All rights reserved.