Site hosted by Angelfire.com: Build your free website today!

Hard Disk Interface

 

This section takes a brief look at some general interface issues. Some of these are basically independent of the specific interface used; others are in fact defining criteria that can be used to differentiate between interfaces.


System Bus Interface

Every hard disk interface communicates with the PC over one of the system's I/O buses. This usually means the PCI, VLB or ISA bus. Logically, the hard disk interface is one device on the system I/O bus, which is connected to the memory, processor and other parts of the system.

The choice of bus type has a great impact on the features and performance of the interface. Higher-performance interfaces, including the faster transfer modes of both IDE/ATA and SCSI, require an interface over a local bus, which means either PCI or VLB. The ISA bus is too antiquated for high-speed transfers, and is still found only on much older machines. The speed of the system bus is also important. The standard speed for the PCI bus on Pentium-class systems is either 25, 30 or 33 MHz. The faster the bus, the faster the interface (simplistically speaking).

Most older machines use a dedicated hard disk interface card that goes into a system bus slot and then connects to the drives internally. Most newer machines that use PCI, have the ports for two IDE/ATA channels built into the motherboard itself. In practical terms, there is no real difference except for the cost savings associated with not needing to put a separate hard disk interface card into the PC when it is built into the motherboard.

Interface Performance

Obviously, the interface's job is to allow for the expedient transfer of data. For this reason, the speed of the interface, its performance, is probably the most frequently examined aspect of an interface's overall quality. The primary indicator of interface performance is the external data transfer rate


Command Overhead

All interface communication is done through command and data transfer; the host (the PC, through the interface controller) sends commands over the interface to the disk, and the disk sends data over the interface back to the host. Some interfaces are simpler to use than others and therefore require less command "talk" over the interface. This can lead to improved responsiveness in simple setups, such as when there is only one disk on the interface. The amount of time that the interface, its controller, and the hard disk, require for processing commands is referred to as command overhead.


Device Type Support and Software Compatibility

Not all interfaces support the same devices. Depending on what devices and models you are trying to use, one interface may make much more sense than another. Fortunately, the market has evolved so that there are really only two main interfaces used today: IDE/ATA and its variants, and SCSI and its variants. The fact that there are only two standards in common use means that each of them supports a large number and variety of devices. In addition, this makes it easier for software support to be made universal, and this is no longer much of an issue when using these mainstream interfaces.

IDE/ATA tends in general to support a larger number of hard disks and CD-ROM devices, especially economy models. SCSI tends to have better support for high-end devices and also more device types. This means that the casual home user is more likely to be interested in IDE/ATA, while SCSI is usually the choice for businesses and performance hounds.


Multiple Devices and Expandability

Some interfaces are limited in terms of the number of devices they can support. This can limit the expandability of the interface, and reduce your options if you decide to add more devices to your system. This is not generally an issue for most users but can be for those that want to use a number of devices.

 

Obsolete and Less Common Hard Disk Interfaces

By far, the two most popular interfaces for hard disks (and many other devices) are IDE/ATA and SCSI. This section describes the obsolete standards that preceded these, and also makes brief mention of other less common hard disk interfaces.


ST-506 / ST-412 Interface

The original hard disk interface used on the original XT was developed by Seagate Technologies. It was used on their first drives and became the first standard for use in PCs. The name ST-506/ST-412 comes from the first two model numbers of hard disks made by Seagate. In common parlance, this older interface is sometimes called "MFM" or "RLL", so you may hear someone refer to a drive using this interface as an "RLL drive" for example. These actually refer to the encoding method used for storing data on the disk. Both encoding methods were used on these early drives. (In fact, RLL is used on some IDE and SCSI drives also, making it a poor name for referring to drives of one particular interface.)

The ST-506/ST-412 interface differs from the IDE/ATA and SCSI standards in one very important respect: the hard disks were "dumb", meaning there was no built in logic board as in newer drives. All of the smarts resided in the controller card that plugged into the PC. This caused a host of problems relating to compatibility, data integrity and speed, because the raw data from the read/write heads was traveling over a cable between the controller and the drive. This interface also required a lot more work on the part of the user, because while a newer drive ships with an integrated controller card built into the drive that is optimized for that drive, these older ones didn't have this, and therefore the person setting up the drive had to program the interleave ratios and other factors into the drive to achieve maximum performance.

By today's standards, this interface and the drives that use it are small in capacity (although sometimes enormous in physical size), slow, cumbersome, error-prone and completely obsolete. You will never see ST-506/ST-412 used in a new system. You can recognize this interface in older systems by the use of two ribbon cables (instead of the single cable used by IDE/ATA and SCSI). One of the cables is 20 pins wide and carries data, and the other is 34 pins and carries control signals.


Enhanced Small Device Interface (ESDI)

The first attempt at improving the original ST-506/ST-412 hard disk interface was Enhanced Small Device Interface or ESDI, which was developed in the mid 80s and was eventually codified as an ANSI standard. ESDI improved on ST-506/ST-412 by moving some drive controller functions to the hard disk from the controller card, increasing the data throughput rate and making other performance enhancements.

ESDI was an improvement over the older ST-506/ST-412 interface, but became obsolete itself very quickly due primarily to competition from IDE/ATA, which by comparison was simpler, cheaper and offered higher performance. It is no longer in newer systems.


Parallel Port Interface

Originally designed only for printers, the parallel port has turned out to be an amazingly flexible and universal interface for attaching a host of different devices to a variety of PCs. While rather slow, the parallel port has the advantages of being (mostly) standard, and present on virtually every PC. For this reason, it is often used for attaching external devices such as hard disks, CD-ROM drives and tape drives, especially for PCs that lack other expansion alternatives such as notebooks.

 

IDE/ATA Standards and Feature Sets

There are many different standards that are associated with IDE/ATA, which leads to a great deal of confusion as people try to make sense of them and figure out what is compatible with what. This problem is compounded by the fact that the manufacturers of hard drives can't seem to get along and agree on a single naming convention for their implementations and enhancements of the "real" ATA standards. The result is a confusing mish-mash of standards, some of which are real and others of which are just fancy-sounding marketing programs.

New standards are usually created to define new, higher-speed transfer modes, and other improvements to performance, reliability or compatibility. Most of these start off as informal standards; some are eventually codified into "official" ANSI standards. It can take several years for ANSI to approve and issue a formal standard.


IDE/ATA

The original, base specification for the family of interfaces described in this section is called both IDE and ATA. The name IDE is the more popular of the two, even though it is misleading since it stands for integrated drive electronics which refers to putting the logic board with the hard disk much more than it has anything to do with the interface. The more correct name is ATA or AT Attachment, which defines the standard interface as attached to an AT-style machine (which is the generic way of describing every PC since the old 8-bit XT). The IDE/ATA interface is 16 bits wide, just as the original IBM AT's data and I/O buses were. This size persists to this day, even in the higher-performance enhancements defined in ATA-2.

The ATA specification has been defined as an ANSI standard. A major reason for defining ATA as a formal standard was to eliminate some of the incompatibility problems that plagued early IDE/ATA drives. This particularly showed up when drives made by different manufacturers were placed as master and slave on the same IDE/ATA channel--often they would not work.

The original IDE/ATA standard defines the following features and transfer modes:

"Plain" ATA does not include support for enhancements such as ATAPI support for non-hard-disk IDE/ATA devices, block mode transfers, or logical block addressing.


ATA-2

While the original ATA standard served the early hard disks well, it was not suited to support the growing performance needs of a newer breed of hard disks. These disks required faster transfer rates and support for enhanced features.

The ATA-2 specification was defined and eventually approved through the establishment of an ANSI standard. It defines the following improvements over the base ATA standard (with which it is backward compatible):

ATA-2 is a "real" standard, because it is approved by ANSI, an independent standards body, and is therefore something tangible that you can refer to, and that cannot be easily changed. Unfortunately, few drives are marketed under the standard "ATA-2" but rather as "Fast ATA", "Fast ATA-2", or "Enhanced IDE", which are all marketing terms and not real standards. They all are based in one way or another on ATA-2, but differ in terms of what is supported and how.


Fast ATA and Fast ATA-2

Fast ATA and Fast ATA-2 are the marketing terms used by peripheral manufacturers Seagate and Quantum to refer to different portions of the (real) ATA-2 specification. I believe that these may be the most confusing of all of the strange terminology used regarding the IDE/ATA interface families, despite the protestations from these two companies that Western Digital's EIDE "standard" is confusing. It is, but so are these two, because their names make it sound like Fast ATA-2 is related to ATA-2, and Fast ATA is related to regular ATA. This is not so, as both really build on ATA-2. Also, the two are virtually the same.

For all intents and purposes, Fast ATA-2 is identical to ATA-2; see its description for a list of its improvements over regular ATA. Fast ATA is also the same, except that it does not support the highest transfer modes; it includes PIO mode 3, but not 4; and multiword DMA mode 1, but not 2.

Quantum and Seagate will claim that their standards are meant to define "only" faster transfer rates, but this is really not the case. Quantum for example claims in their criticism of the Enhanced IDE (EIDE) standard that LBA (which is part of EIDE) is a "BIOS and device driver function" and therefore doesn't belong in a hard disk standard, but then later in the same article make specific mention of their drives supporting LBA. EIDE is confusing but really, all of these marketing "standards" are misleading and really need to be cleaned up once and for all and a single, true standard agreed upon and established. I'm not holding my breath.


ATA-3

The ATA-3 standard is a minor revision of ATA-2. It defines the following improvements compared to ATA-2 (with which it is backward compatible):

The manufacturers of hard disks are generally avoiding the use of the term ATA-3 even though they are adding its component features (such as SMART) to their drives. In a way this is probably for the best, since the interfacing naming business is confusing enough as it is. ATA-3 is basically ignored for the simple reason that it doesn't define any new high-performance transfer modes, which are of primary interest to both manufacturers and buyers.

Note: ATA-3 is not the same as Ultra ATA, which is called by a host of names including the similar-sounding "ATA-33". Some people assume that since Ultra ATA is the next faster ATA version after ATA-2 that it is called ATA-3, but this is not so


Ultra ATA / Ultra DMA / ATA-33 / DMA-33

The newest ATA-related standard is Ultra ATA, which also goes by several other names including Ultra DMA, ATA-33, and DMA-33. It is also sometimes called ATA-3, which it is not. Ultra ATA is not a formal standard but rather a term that refers to the use of the higher-speed DMA-33 transfer mode (multiword DMA mode 3), running at 33.3 MB/s. Special error detection and correction logic (CRC) is used to support the use of this high-speed mode over a standard IDE/ATA ribbon cable (which has not changed since transfer rates were below 5 MB/s and can now be a problem in terms of corruption when used at very high speeds). Ultra ATA maintains backward compatibility with the older standards upon which it is based (ATA-2 and ATA). If you use an Ultra ATA hard disk in a system that does not support Ultra ATA, it will still work, just at the slower speeds that system can handle.

Drives that support Ultra ATA allow the use of the high-speed DMA-33 transfer mode, but are otherwise the same as other ATA-2/EIDE drives. Ultra ATA requires both a hard disk and a system BIOS/chipset that support the Ultra ATA protocol.


ATA Packet Interface (ATAPI)

Originally, the IDE/ATA interface was designed to work only with hard disks. CD-ROMs and tape drives used either proprietary interfaces (often implemented on sound cards) or the floppy disk interface (which is slow and cumbersome). A few years ago it became apparent that there would be enormous advantages to using the standard IDE/ATA interface to support devices other than hard disks, due to its high performance, relative simplicity, and universality.

However, because of how the ATA command structure works, it wasn't possible to simply put non-hard-disk devices on the IDE channel and expect it to work. Therefore, a special protocol was developed called the ATA Packet Interface or ATAPI. The ATAPI standard is used for devices like CD-ROM and tape drives. It enables them to plug into the standard IDE cable used by IDE/ATA hard disks, and be configured as master or slave, etc. just like a hard disk would be.

Note: When you see a CD-ROM or other non-hard-disk peripheral advertised as being an "IDE device" or working with IDE, it is really using the ATAPI protocol.

Internally, however, the ATAPI protocol is not identical to the standard ATA (ATA-2, etc.) command set used by hard disks. A special ATAPI driver is used to communicate with these devices. This driver must be loaded into memory before the device can be accessed (some operating systems like Windows 95 support ATAPI internally and in essence, load their own drivers for the interface). The name "packet interface" comes from the fact that commands to ATAPI devices are sent in groups called packets; ATAPI in general is a much more complex interface than regular ATA. The actual transfers over the channel use regular PIO or DMA modes, just like hard disks, although support for the various modes differs much more widely by device than it does for hard disks.

For the mostpart, ATAPI devices will coexist with IDE/ATA devices and from the user's perspective, they behave as if they are regular IDE/ATA hard disks on the channel. Newer BIOSes will even allow booting from ATAPI CD-ROM drives.


Enhanced IDE (EIDE)

Enhanced IDE, also called EIDE, is the term that Western Digital uses to describe its advanced drives that incorporate the performance improvements defined in ATA-2, along with several other refined protocols. EIDE has become a widely-accepted term in the industry, which would be great if not for the fact that it is used to stand for so many things, some of them completely different. For this reason, the term has been criticized--not least by Western Digital's competitors--for being confusing and vague.

Some of this criticism is valid. EIDE is a marketing term and not a real standard. One problem with it is that since it is Western Digital's, they can change it as they see fit, and they have. For example, at one time EIDE only included PIO modes up to mode 3, while now it includes mode 4 as well. Another problem is the wide scope of the standard.

Western Digital describes its Enhanced IDE program as including the following improvements over ATA:

Most of the criticism of EIDE is that its scope is too wide, and that it encompasses support that is really a function of the BIOS. For example, support for dual IDE/ATA host adapters, meaning a secondary IDE/ATA channel, has nothing to do with the interface or the hard disk itself. And ATAPI is a standard that is defined for use with CD-ROMs and other non-hard-disk devices, which again requires BIOS and driver support and has nothing to do with the hard disk. This is why other hard disk manufacturers have not only not included these as part of their standards (Fast ATA, Fast ATA-2), they have made a point of saying that they have omitted them intentionally because they feel they don't belong.

On the other hand, EIDE is criticized for specifying LBA support as part of its standard, which is really part of ATA-2. Seagate and Quantum, which use Fast ATA and Fast ATA-2 instead of EIDE for their marketing programs, also support LBA despite claiming that this support doesn't belong as part of an ATA standard. So it is all rather muddy.

I believe that Western Digital was trying to define an encompassing standard that would specify changes not just in terms of how hard disks worked but also the BIOS and other parts of the system. A laudable goal, but they may have bitten off a bit more than they could chew. One problem is that the term "EIDE" is now put on so many different things that it is hard to understand what it really means. For example, an "EIDE" hard disk may support LBA, but it won't work unless the BIOS also supports it. Some hard disk controllers now call themselves "EIDE" controllers, but that doesn't necessarily mean that they support all the provisions of EIDE. You have to break down their claims into the individual features they support in order to do a proper evaluation.

Finally, there is the matter of "enhanced IDE" vs. "enhanced BIOS". This one can really be confusing. Because of the fact that both of these phrases use the word "enhanced", and because EIDE defines BIOS support standards, many people have come to think of the terms as interchangeable when they really are not. This has lead to claims that you need an enhanced IDE interface to support disks over 504 MB, when you don't--you just need an enhanced BIOS, as described here. The fact that some companies advertise add-in cards with enhanced BIOSes as "enhanced IDE cards" makes this whole problem worse.


Making Sense of IDE/ATA Standards and Compatibility

OK, so where does the collection of different "standards" leave you? Even though there are a number of standards and the terminology is quite confusing at times, in practice the situation isn't all that bad. One way to make sense of ATA, ATA-2, Fast ATA, EIDE etc. is simple: don't use them. Break them down into their components and find out what the drive supports that way. This means figuring out if the drive will support multiword DMA mode 2 by looking at specifications or asking a reputable dealer, instead of looking for an EIDE sticker and making assumptions. It's always preferable to get the facts.

If you don't want to deal with the details, you can use some simple rules of thumb. First of all, virtually all newer drives support the features that are defined under ATA-2, whether they are marketed as being Fast ATA-2 or EIDE. These drives are interchangeable with one another and will work together and in any system that has an enhanced BIOS (for support of disks over 504 MB). Second, the Fast ATA-2 standard doesn't mention support for ATAPI, but this is more due to marketing games. Fast ATA-2 drives will work just fine used with ATAPI devices.

In virtually every case, the newer standards are fully backward compatible with the older ones. This means that ATA-2 drives will normally work fine with older ATA drives, and motherboards that support ATA-2 will support the older technology as well. There can be issues in configuring two drives on the same channel when one is older than the other, but these matters have more to do with manufacturers that have not strictly adhered to the IDE/ATA standards, especially with much older hard disks.

If you are looking at newer drives, one of the few distinguishing characteristics from an interface standpoint is whether or not Ultra ATA is supported, so you will want to find out about that. Remember that you need support from the motherboard (actually the chipset) in order to take advantage of Ultra ATA.


Summary of IDE/ATA Standards

The table below provides a quick summary of the different IDE/ATA interface variants and what they support:

Interface Standard

Standard Type

PIO Modes

DMA Modes

Special Features or Enhancements Introduced Relative to IDE/ATA

IDE / ATA

ANSI

0, 1, 2

Single word 0, 1, 2; multiword 0

--

ATA-2

ANSI

0, 1, 2, 3, 4

Single word 0, 1, 2; multiword 0, 1, 2

Block transfers, logical block addressing, Improved identify drive command

Fast ATA

Marketing

0, 1, 2, 3

Single word 0, 1, 2; multiword 0, 1

As for ATA-2

Fast ATA-2

Marketing

0, 1, 2, 3, 4

Single word 0, 1, 2; multiword 0, 1, 2

As for ATA-2

ATA-3

Unofficial

0, 1, 2, 3, 4

Single word 0, 1, 2; multiword 0, 1, 2

As for ATA-2, plus improved reliability, SMART

Ultra ATA

Unofficial

0, 1, 2, 3, 4

Single word 0, 1, 2; multiword 0, 1, 2, 3 (DMA-33)

As for ATA-3

ATAPI

ANSI

0, 1, 2, 3, 4

Single word 0, 1, 2; multiword 0, 1, 2

Support for non-hard-disk devices

EIDE

Marketing

0, 1, 2, 3, 4

Single word 0, 1, 2; multiword 0, 1, 2

As for ATA-2, plus ATAPI and dual host adapters


IDE/ATA Transfer Modes and Protocols

Since performance is of utmost concern when using a hard disk, the different transfer modes and protocols that a drive (and interface) supports are very important. IDE/ATA class hard disks use these transfer modes to control how information is moved across the IDE/ATA channel, and the mode used has a great impact on performance, especially via the external data transfer rate. Since the IDE/ATA interface is in essence a communication channel, support for a given transfer mode or protocol requires support from the devices on both ends of the channel. This means that both the hard disk and the system chipset/BIOS must support the mode.

The two most commonly used transfer protocols are PIO modes and DMA modes. These are described in detail below, along with some other factors that control how data is transferred across the IDE/ATA interface.


Programmed I/O (PIO) Modes

The more conventional, standard protocol used for transferring data over the IDE/ATA interface is called programmed I/O or PIO. There are five different rates, each one defining a different maximum transfer rate; these are called PIO modes. This table shows the different modes, along with which IDE/ATA standard defines support for them (meaning not which standard initially introduced support for the mode, but more "if a drive supports this standard, it should support this corresponding mode):

PIO Mode

Maximum Transfer Rate (MB/s)

Standard

Mode 0

3.3

All

Mode 1

5.2

All

Mode 2

8.3

All

Mode 3

11.1

ATA-2, Fast ATA, Fast ATA-2, ATA-3, ATAPI, Ultra ATA, EIDE

Mode 4

16.6

ATA-2, Fast ATA-2, ATA-3, ATAPI?, Ultra ATA, EIDE

Obviously, faster modes are better, because they mean a higher theoretical burst transfer rate over the interface. This transfer rate represents the external data transfer rate for the drive. Remember that this is the speed of the interface and not necessarily the speed of the drive itself, which is almost always slower (and should be). As you can see, the fastest modes require a drive that supports the ATA-2 standard or one of its variants. PIO mode 3 and mode 4 also require the use of either the PCI or VESA local buses; the ISA bus simply does not have the capacity to handle transfer rates of over 10 MB/s.

Even on a system that has BIOS support for modes 3 and 4, and using a drive that has support for modes 3 and 4, there can occasionally be problems due to the very high speed at which these modes run. This can sometimes be affected by the length of the IDE cable, which has never been updated since the early days of IDE/ATA and strains to handle the faster transfer rates of the more advanced modes. Also, some drives just don't implement the faster modes properly and therefore must be set to lower modes to perform reliably. Fortunately, this is mainly limited to older and lower-quality drives, and not modern ones.

As discussed in detail here, each IDE channel supports the use of two devices, designated as master and slave. Some systems allow the use of master and slave devices running at different PIO modes on the same channel; this is called independent device timing and is a function of the system chipset and BIOS. When this feature is not supported, both devices may be limited to the slower of the two devices' maximum PIO mode.

Programmed I/O is performed by the system CPU; the system processor is responsible for executing the instructions that transfer the data to and from the drive. This means that using PIO is ideally suited for lower-performance applications and single tasking. It would not be as well-suited to heavy-duty multitasking because of this reliance on the system processor; even though the better modes are fast, they take the attention of the processor and trying to run many devices would bog it down and not let it perform other tasks.

PIO modes do not require any special drivers under normal circumstances; support for them is built into the system BIOS. They are the simplest way to use IDE/ATA devices, and have traditionally been the default way that most drives are used. PIO is slowly becoming less popular, in favor of high-speed DMA modes, as performance requirements increase and DMA mode support becomes more consistent and prevalent. In fact, the newest high-speed interface standard, Ultra ATA defines only a new DMA mode and not a PIO one. Before Ultra ATA, the highest-speed PIO and DMA modes both maxed out at 16.6 MB/s. Ultra ATA's 33 MB/s DMA-33 mode doubles the previous maximum and may sound the death knell for PIO, at least among those concerned with performance.


Direct Memory Access (DMA) Modes and IDE Bus Mastering

Direct memory access or DMA is the generic term used to refer to a transfer protocol where a peripheral device transfers information directly to or from memory, without the system processor being required to perform the transaction. DMA has been used on the PC for years, traditionally over the ISA bus for devices like sound cards, using DMA channels which are a standard system resource. The floppy disk interface also uses conventional DMA. DMA is discussed in full detail here.

Most newer hard disks support the use of DMA modes over the IDE/ATA interface, which means that the built-in controller on the hard disk can do transfers to memory without the system processor's involvement. This is in direct contrast to the more conventional use of PIO modes, which require the CPU to do the work. However, this is a different type of DMA than that used on the ISA bus.

The standard ISA bus DMA channels are an old design dating back to the early days of the PC. They use the DMA controller built into the system chipset, to perform third-party DMA transfers, where the "third party" is the controller, working with the memory and the device. This sort of DMA is not used by modern hard disks for performance reasons.

Modern IDE/ATA hard disks use "first party" DMA transfers, where the peripheral device itself does the work of transferring data to and from memory. This is also called bus mastering. Bus mastering allows the hard disk and memory to work without relying on the old DMA controller built into the system, or needing any support from the CPU. It requires the use of the PCI bus (older buses like MCA also supported bus mastering but are no longer in common use).

There are several different DMA modes that are used to define transfer rates when DMA is used for transfers over the IDE/ATA interface:

DMA Mode

Maximum Transfer Rate (MB/s)

Standard

Single word 0

2.1

All

Single word 1

4.2

All

Single word 2

8.3

All

Multiword 0

4.2

All

Multiword 1

13.3

ATA-2, Fast ATA, Fast ATA-2, ATA-3, Ultra ATA, EIDE

Multiword 2

16.6

ATA-2, Fast ATA-2, ATA-3, Ultra ATA, EIDE

Multiword 3 (DMA-33)

33.3

Ultra ATA

The single word DMA modes are basically obsolete and are no longer used. Most modern drives that are configured to use DMA modes, use multiword mode 2, or if Ultra ATA is supported by the disk and BIOS/chipset, multiword mode 3.

Several years ago, DMA modes were basically not used at all for IDE/ATA hard disks. Over the last few years the use of DMA modes instead of PIO modes has been gaining greatly in popularity. This has been spurred on by the universal adoption of the PCI bus and its support for bus mastering, along with Intel's Triton family of chipsets that supports PCI bus mastering for the IDE channel. The advent of Ultra ATA is likely to continue and magnify this trend as disks get faster, because Ultra ATA's DMA-33 mode offers double the theoretical peak transfer speed of the fastest PIO mode (mode 4).

The use of PCI IDE bus mastering is (sometimes) a great idea and can under some circumstances lead to a substantial improvement in performance. There are, however, many caveats that need to be taken into account before trying it. Bus mastering for hard disks is still relatively new and there are often problems getting it to work properly because it requires support from the hard disk, operating system and chipset/BIOS, and also special drivers.

While the idea of having transfers take place independent of the processor is a great one, the average person is unlikely to notice much of a performance improvement because of how the operating system works, and how the average person uses the PC. Unless you are using an Ultra ATA system and a hard disk that really can take advantage of the DMA-33 transfer rate, you may not see much improvement in going to DMA over using PIO mode 4, and you will likely have more compatibility issues setting it up. Hopefully the problems will diminish as the use of DMA modes becomes more widespread but right now problems abound, and I do not recommend bothering with these drivers for most people unless they really know what they are doing. Problems arise especially with non-standard hardware, older drives, ATAPI CD-ROMs, dual drives on a channel etc.; refer to this section in the Troubleshooting Expert for more specifics.

Note: All of the newest IDE/ATA drives support the Ultra ATA 33 MB/s transfer mode. These drives will generally work just fine in older systems that don't support Ultra ATA; they just run as if they were an older drive, in either DMA multiword mode 2, or PIO mode 4.

16-Bit and 32-Bit Access

One of the options on some chipsets and BIOSes is so-called 32 bit access or 32 bit transfers. In fact, the IDE/ATA interface always does transfers 16 bits at a time, reflecting its name ("AT attachment"--the original AT used a 16-bit data bus and a 16-bit ISA I/O bus). For this reason, the name "32 bit" access or transfer is somewhat of a misnomer.

Since modern PCs use 32-bit I/O buses such as the PCI and VESA local buses, doing 16-bit transfers is a waste of bandwidth. Enabling 32-bit access in the BIOS (if available) causes the PCI hard disk interface controller to bundle together two 16-bit chunks of data from the drive into a 32-bit group, which is then transmitted to the processor or memory. This results in a small performance increase.

Note: It should be noted that this has nothing to do at all with the very similar sounding "32-bit disk access" and "32-bit file access" that are options within Windows 3.x. These have more to do with how Windows and its drivers function than anything to do with the hard disk itself.


Block Mode

Some BIOSes offer an option called "block mode". Block mode is a performance enhancement that allows the grouping of multiple read or write commands over the IDE/ATA interface so that they can be handled on a single interrupt.

Interrupts are used to signal when data is ready to be transferred from the hard disk; each one, well, interrupts other work being done by the processor. Newer drives, when used with a supporting BIOS allow you to transfer as many as 16 or 32 sectors with a single interrupt. Since the processor is being interrupted much less frequently, performance is much improved, and more data is moving around with less command overhead, which is much more efficient than transferring data one sector at a time.

Note: Some systems can have trouble running disks in block mode, even if they are supposed to allow it. You may have better luck with the drive or system if it is disabled.

 

IDE/ATA Configuration and Cabling

Generally speaking, IDE/ATA devices are relatively easy to install and configure, especially if you are only using one, or maybe two. However--you knew it was coming--the matter gets more complicated when many devices are to be used, when older drives are being configured, when mixing hard disks and ATAPI devices like CD-ROMs, or when using advanced transfer protocols like IDE bus mastering.

This section discusses issues relating to how IDE/ATA devices are set up and configured. Choosing a better configuration can result in significant performance improvements for the system, something that many people don't realize.


IDE Channels and Resource Usage

The data pathway over which information flows in the IDE/ATA interface is called a channel. Each IDE channel is capable of controlling up to two IDE/ATA devices (including ATAPI devices if they are supported by the BIOS). Despite Western Digital going so far as to define dual IDE channels as part of its enhanced IDE "standard", there has never really been anything barring the use of more than one IDE channel in a PC. It just wasn't regularly done. Before the popularity of ATAPI CD-ROMs, and plentiful and cheap hard disk storage, the vast majority of PCs used one or two hard disks on a single IDE channel, and that was more than enough for most people.

In fact, it is theoretically possible to configure and use as many as four different IDE/ATA interface channels on a modern PC. There is nothing inherently different in concept between these channels, although there can be a difference in terms of how they are implemented. In theory, they are independent system devices, each using their own set of system resources. If configured correctly (so they don't try to use the same resources and therefore conflict), each IDE channel can behave basically independently.

This table shows the names of the four standard IDE channels, and the resources used by each:

Channel

IRQ Used

I/O Addresses Used

Popularity and Support

Primary

14

1F0-1F7h and 3F6-3F7h

Used by all PCs using IDE/ATA

Secondary

15 (10)

170-177h and 376-377h

Common, built-in on most newer PCs

Tertiary

11 (12)

1E8-1EFh and 3EE-3EFh

Used uncommonly, can have software support problems

Quaternary

10 or 11

168-16Fh and 36E-36Fh

Very rarely used, can have software support problems

As you can see, each IDE channel requires both an interrupt request (IRQ) line and two ranges of I/O addresses. The first two IDE channels are pretty much standard among all newer PCs, as are the resources that they use. IRQs 14 and 15 are generally reserved on most systems for use by the primary and secondary IDE channels, and most newer PCI motherboards have support for both of these channels built into the chipset and BIOS, so there are two IDE connectors on the motherboard, one for the primary channel and one for the secondary. Most operating systems and other software "know" about these two channels, and software problems or resource conflicts with them are rare. With the exception of SCSI host adapters, it is hard to even find an expansion card that will use IRQ 14. (SCSI host adapters can replace IDE entirely in a PC so having them be able to use IRQ 14 can make some sense.)

The tertiary and quaternary channels are far less frequently used, and software issues with them are far more frequent. There are also resource issues to be addressed; the IRQs used by the third and fourth channels can also be "claimed" by other peripherals such as sound cards, network cards and even PS/2 style mice; see this section on system configuration. The I/O addresses they use can conflict with network cards, COM ports, and other devices.

While most newer systems have the primary and secondary IDE controllers built into the motherboard, they don't all implement both channels identically. The better systems include full transfer mode support and bus mastering for both the primary and secondary channels, but some systems--especially older ones--wimped out and in order to save a few bucks, included support for the faster PIO modes (3 and 4) only on the primary channel, meaning that the secondary channel will only run at the lower PIO modes (0, 1 and 2). The idea was that the primary channel would be used by the main hard disks (fast) and the secondary channel by extra, older hard disks and ATAPI devices (slow). Really, having full support on both channels is a much smarter idea, and that is the current trend.

Using the tertiary and quaternary channels requires that additional controllers be added to the two built into the motherboard (or provided by the existing controller or controllers). The most common way that a tertiary channel is introduced into a PC is through the use of a sound card. Most SoundBlaster and compatible sound cards include an IDE controller that can be configured to implement an IDE channel. There are two reasons for this: first, sound cards are commonly sold in "multimedia kits" that include ATAPI CD-ROMs, and so this provides a place for them to be attached. Second, the first CD-ROMs were attached to proprietary (non-IDE) ports on early sound cards, so the trend has continued for historical reasons. See here for more on CD-ROM interfacing issues.

The use of a sound-card-based IDE channel can be a perfectly acceptable way to connect an IDE/ATA or ATAPI device to the system, but there are some cautions here. If the sound card is attached to the ISA bus (which most are), then the IDE controller is also on the ISA bus. This means that the use of faster PIO modes or IDE bus mastering is out, because of the low bandwidth of the ISA bus.

You can also buy expansion IDE cards (often called EIDE cards). These can also usually be set to act as tertiary or quaternary IDE controllers, allowing the use of more than four IDE/ATA devices.

Software support for the tertiary and quaternary IDE channels is not nearly as consistent as it is for the primary and secondary channels. For example, Windows NT 4.0 will not recognize an IDE device attached to the tertiary IDE channel. Most BIOSes also only have space to set up four IDE/ATA/ATAPI devices. This means that using a tertiary IDE requires some sort of driver or add-in BIOS support.

For most people, using the primary and secondary IDE channels is enough. If you have five devices and one is a CD-ROM drive, putting the CD-ROM on the tertiary channel and running it with a CD-ROM driver will work fine for most uses. If you have enough devices that you really need a quaternary channel, you should probably consider "consolidating" your hard disks into one larger one (for performance reasons if nothing else), or moving to SCSI.

Note: The I/O address range for the slave device on the primary IDE channel actually overlaps with the standard address range for the floppy disk controller. This is in fact not a conflict since this overlap is well known and accounted for.

The IDE Cable

Each IDE channel uses one IDE cable, which is a rather simple affair. IDE uses a flat ribbon cable, normally gray in color, with a (usually red) stripe running down the edge. The cable usually has three identical female connectors on it: one is intended for the IDE controller (or motherboard header for PCs with built in PCI IDE) and the other two for the master and optional slave devices on the interface. The stripe is used to line up pin 1 on the controller (or motherboard) with pin 1 on the devices being connected.

Some cheapskate PC makers that ship PCs with only one IDE device save a few pennies by using an interface cable that has only two connectors, which means you can't use two IDE devices on it, unless you replace the cable with one that has three connectors. Fortunately this is easy to do, and the cables are cheap and readily available at most any store that sells computer supplies and parts (this is also a great component to buy cheap at a computer show).

While in general there is not much to connecting IDE/ATA/ATAPI devices physically, there are still some special cases and issues that sometimes come into play. An important one is that the cable design--flat ribbon cable with no shielding from electromagnetic interference--can occasionally lead to problems in some PCs. This cable design was created many years ago and was fine for the creeping transfer rates of less than 3 MB/s that were used in early IDE, but the faster PIO and DMA transfer modes can really strain against the limitations of this sort of cable.

The longer the cable, the more the chance of data corruption due to interference on the cable, and therefore, it is often recommended that the cable be kept as short as possible. The official maximum length is 18 inches, but if you suspect problems with your hard disk you may find that a shorter cable will eliminate them. Sometimes moving where the disks are physically installed will help also.

As for installation itself, the IDE cable could certainly be much better designed. Generally, the cables are not keyed, which means there is the risk of inserting the cable backwards--the red stripe on the cable should be used to align pin 1 of the IDE/ATA device with pin 1 of the controller's connector port. Also, the cable has no latching mechanism, so it is not very securely attached to the hard disk or the motherboard. If you work inside the box and apply any pressure on the cable, it can easily come loose (sometimes only partially) which will lead to device failure. Fortunately, neither backwards insertion or a partially loose cable usually cause any permanent damage--your hard disk just won't work.

When using a master and a slave device on the same channel, either device can be attached to either of the two connectors on the cable. There is a "tradition" of sorts of putting the master device at the end of the cable and the slave in the middle, but this is not really necessary.

Finally, there is one variant on the standard IDE cable that is worth mentioning. Some systems are set up to use the Cable Select line to tell which hard disk to be the master device and which to be the slave, in a dual-drive configuration. This system uses a special cable, often distinguishable by the fact that it has three connectors but the middle one is attached to the motherboard (or controller card), while normally the motherboard gets a connector at the end of the cable. This cable is specially modified and is not interchangeable with a regular IDE cable.


Single, Master and Slave Drives and Jumpering

Each IDE channel can support either one or two devices. IDE devices of course each contain their own integrated controllers, and so in order to maintain order on the channel, it is necessary to have some way of differentiating between the two devices. This is done by giving each device a designation as either master or slave, and then having the controller address commands and data to either one or the other. The drive that is the target of the command responds to it, and the other one remains silent.

Note that despite the hierarchical-sounding names of "master" and "slave", the master drive does not have any special status compared to the slave one; they are really equals in most respects. The slave drive doesn't rely on the master drive or anything like that, despite the names. The only practical difference is that the PC will assign drive letters to the master drive before the slave drive, so that if you have a master and slave on the primary IDE channel and each has only one regular, primary partition, the master will be "C:" and the slave "D:". This means that the master drive (on the primary channel) is the one that is booted, and not the slave.

Devices are designated as master or slave using jumpers, small connectors that fit over pairs of pins to program the drive through hardware. Each manufacturer uses a different combination of jumpers (usually named differently) for specifying whether its drive is master or slave on the channel. Some disks put this information right on the top label of the drive itself, while many do not; it sometimes takes some hunting around to find where the jumper pins are on the drive even once you know how the jumpers are supposed to go. Jumpering information is always available in the manual of the hard disk, or by checking the manufacturer's web site and searching for the model number.

ATAPI CD-ROMs are jumpered in exactly the same way, and they have the advantage of having their jumpers much more universally labeled than their hard disk counterparts. Most CD-ROMs have three jumper blocks at the back, labeled "MA" (master), "SL" (slave) or "CS" (cable select).

If you are using two drives on a channel, it is important to ensure that they are jumpered correctly. Making both drives the master, or both the slave will likely result in a very confused system. Note that it makes no difference which connector on the IDE cable is used in a standard IDE setup, because it is the jumpers that control master and slave, not the cable. (This does not apply when cable select is being used.)

As long as one is jumpered as master and the other as slave, any two IDE/ATA/ATAPI devices should work together on a single channel. Unfortunately, some older hard disks will fail to work properly when they are placed on a channel with another manufacturer's disk. This can be extremely frustrating, and there usually is no solution, other than separating them onto different channels. Sometimes brand X won't work as a slave when brand Y is the master, but X will work as a master when Y is the slave. This compatibility problem is a result of non-adherence to the ATA standards, many years ago, and as time goes on and more of these older drives fall out of the market this becomes less and less of a concern. Any hard disk bought in the last three years should work just fine with any other of the same vintage or newer.

When using only a single drive on a channel, there are some considerations to be aware of. Some hard disks have only a jumper for master or slave; when the drive is being used solo on a channel it should be set to master. Other manufacturers actually have three settings for their drives: master, slave, and single. The last setting is intended for use when the drive is alone on the channel. This type of disk should be set to single, and not master, when being used alone.

Officially, a single device on an IDE channel should not be jumpered as a slave. In practice, this will often work despite being formally "illegal". Many (most?) IDE CD-ROMs come jumpered by default as slave, because they are often made slaves to a hard disk's master on the primary IDE channel and so this saves setup time. However, for performance reasons they are sometimes put on the secondary channel, and often the system assemblers don't bother to change the jumpers. It will work, but I don't recommend it; if nothing more, it's confusing to find a slave with no master when you or someone else goes back into the box a year or two later to upgrade.

For performance reasons, it is better to avoid putting ATAPI CD-ROMs on the same channel as a hard disk. Since they generally run at lower PIO modes than hard disks, systems that do not support independent device timing will drop the transfer mode of the hard disk down to match the maximum that the CD-ROM can handle, hurting potential performance. If you are going to share a channel between a hard disk and an ATAPI device, it is generally a good idea to make the hard disk the master. In some situations there can be problems slaving a hard disk to a CD-ROM; it will usually work but it is non-standard, and since there is no advantage to making the CD-ROM the master, the configuration is best avoided.

There are many more performance considerations to take into account when deciding how to jumper your IDE devices, if you are using several different ones on more than one channel. Since only one of the master and slave can use any channel at a time, there are sometimes advantages to using more than one IDE channel even if not strictly necessary based on the number of devices you are trying to support. There are also issues with using a drive that has support for a high transfer rate mode like PIO mode 4, with older devices that don't support these faster modes. See this section for details on selecting an IDE configuration.


Independent Master/Slave Device Timing

The ability of an IDE channel to operate a master and slave device using different PIO modes is called independent device timing. This is an option supported by some chipsets and not supported by others. This is a very useful feature if for example, you upgrade your PC and get a new, high-speed drive, but want to continue to be able to use the older one on the same channel with the new one.

If your system does not support independent device timing, and you use a newer hard disk that supports PIO mode 4 on the same channel as an older hard disk that operates only at PIO mode 0, the system will knock down the PIO mode to 0 for both drives. This will hamper the performance of the newer hard disk. The lack of independent device timing on many systems is one reason why placing ATAPI devices like CD-ROMs on the same channel as a fast hard disk is usually not recommended.

It should be pointed out here that we are talking here about the interface or external transfer speed of these devices. In many cases the sustained transfer rate of the disk is much lower than the maximum interface speed, so the extra "potential" throughput of the interface isn't being used anyway. If on your channel you have one disk that can run at PIO mode 4 and the other only at PIO mode 3, there will probably be no noticeable difference if they both run at mode 3 due to a lack of independent device timing, because most hard disks can't stream data from the disk to the interface fast enough for PIO mode 3 to be a bottleneck. If your PIO mode 4 drive is running at mode 0, of course, this is quite another matter.

Note: It is not possible to use PIO modes to control one device on a channel and DMA modes or bus mastering to control the other one.

Configuration Using Cable Select

An alternative to the standard master/slave jumpering system used in the vast majority of PCs is the use of the cable select system. As the name implies, with this system the cable--or more correctly, which connector on the cable the device is attached to--determines which device is master and which is slave. The intention is to save the user from having to change jumpers when changing a hard disk from master or slave.

To use cable select, you must set both hard disks to the "cable select" (CS) setting, usually using a jumper. Then, you use a special cable; normally it has three connectors with the middle one intended for the motherboard (or hard disk controller). The other two connectors are modified so that one of them will tell the drive to which it is connected to be the master and the other will tell its drive to be the slave. The drives can be switched by changing which connector on the cable they use. The concept is actually very similar to the way that the floppy disk interface cable works, which is in fact the standard way that floppies are configured in most PCs.

There are several problems with the cable select system for IDE. The biggest one is that it is non-standard; very few PCs out there use cable select. This can make it confusing when you try to upgrade your PC, because most people are used to the jumpers on the disks controlling master and slave, not the cable. Second, the cable is much harder to find since it is rarely used. Finally, you lose flexibility in the physical layout of the inside of the case. The IDE cable is relatively short and being forced to put the master and slave at specific locations on the cable means that you restrict where they can be placed in the case. Cable select is intended to save the hassle of changing jumpers, but it can actually force the much bigger hassle of physically relocating the drive in the case.

Virtually all hard disks ship from the manufacturer jumpered as master or single drives, and most CD-ROMs ship as slaves. Given this, you are going to have to put the hard disk into cable select mode through a jumper before you start anyway. Cable select is an interesting idea, but it has never caught on and I don't think it is likely that it will, primarily because of inertia.


Performance Factors and Tradeoffs in Configuring for Multiple Devices

Configuring a single IDE/ATA or ATAPI device is basically very simple. You pretty much just need to jumper it and then connect it with an IDE cable, and you are usually done. Setting up more than one device is really not much more complicated. Except for some special cases, you just jumper pairs as master and slave and use both the primary and secondary channels to get support for up to four devices. You can also add a tertiary or quaternary channel to get support for up to six or even eight devices, although these pose slightly more complications than the first two channels, due to software support issues.

While setting up multiple devices isn't complicated, there are real performance reasons why it makes sense to put some thought into how you decide to allocate different drives to different IDE channels, and which to make master and which slave. The following are some of the issues that you should take into account to maximize the performance of your IDE/ATA/ATAPI setup:

The section below uses these factors to recommend specific configurations for different combinations of IDE/ATA and ATAPI devices.

 

Recommended IDE Device Configurations

Based on the IDE configuration performance factors outlined in this section, I have identified what I think are sensible configuration options for setting up IDE channels for different hard disk and CD-ROM combinations. I cannot list every possible configuration, and I certainly am not going to bother with the ones that obviously make no sense. There are some setups that aren't on my list that may make sense in some situations or for some people, but I think the guidelines here will make sense for most people.

The table below shows, for the most commonly used mixtures of hard disks and CD-ROMs, configuration alternatives that I believe maximize performance, or balance performance with resource usage. I have made the following assumptions in making my recommendations:

These are my recommendations for the more common mixtures of up to four hard disks and/or CD-ROM drives:

Hard Disks

CD-ROMs

Option

Primary Channel

Secondary Channel

Tertiary Channel

1

0

--

Hard disk

--

--

2

0

A

First hard disk

Second hard disk

--

B

First and second hard disks

--

--

3

0

A

First hard disk

Second and third hard disks

--

B

First hard disk

Second hard disk

Third hard disk

4

0

A

First and second hard disks

Third and fourth hard disks

--

B

First hard disk

Second and third hard disks

Fourth hard disk

1

1

A

Hard disk

CD-ROM

--

B

Hard disk and CD-ROM

--

--

2

1

A

First hard disk

Second hard disk

CD-ROM

B

First and second hard disks

CD-ROM

--

C

First hard disk

Second hard disk and CD-ROM

--

3

1

A

First hard disk

Second and third hard disks

CD-ROM

B

First hard disk

Second hard disk

Third hard disk and CD-ROM

C

First and second hard disks

Third hard disk and CD-ROM

--

1

2

A

Hard disk

First and second CD-ROMs

--

B

Hard disk

First CD-ROM

Second CD-ROM

2

2

A

First hard disk

Second hard disk

First and second CD-ROMs

B

First and second hard disks

First and second CD-ROMs

--

I have listed two or three options for most cases, and assigned each a letter. This is because some configurations can be better than others depending on the specific nature of the devices:

 

SCSI Standards

There are many different flavors of SCSI, which run at different bit widths and speeds. Unlike the world of IDE/ATA, where there are many different competing standards that in many cases are just competing marketing terms put forth by manufacturers, SCSI standards are relatively, well, standard. It has taken some time for the SCSI standards to "settle down" and become widely adopted. In its early days, the lack of widely-accepted standards probably hindered the acceptance of SCSI in the PC marketplace.

SCSI standards are defined by ANSI, and define characteristics and capabilities of the interface. Particular SCSI implementations are normally referred to by the transfer protocol (width and speed) they use, and not by a SCSI standard. In fact, the two main standards, SCSI-1 and SCSI-2, are basically compatible.

One problem with these standards is that it is hard in many cases to draw the line between them. There are features that seem to be part of SCSI-2 that are really SCSI-3, for example. As always, the best policy is to make absolutely sure that you know what you are getting, when you go to purchase.


SCSI-1

The original SCSI standard was approved by ANSI in 1986 as standard X3.131-1986. It defines the basics of the first SCSI buses, including cable length, signaling characteristics, commands and transfer modes.

Original SCSI was far more limited than its successor, SCSI-2. It defined only the most basic 8-bit narrow bus, and 5 MB/s transfer rate. It also had difficulties in terms of gaining universal acceptance due to the fact that many manufacturers implemented different subsets of its features. It was replaced gradually by SCSI-2.

Devices that adhere to the SCSI-1 standard can in most cases be used with host adapters and other devices that use the higher transfer rates of the more advanced SCSI-2 protocols, but they will still function at their original slow speed.


SCSI-2

The advanced SCSI-2 specification was approved by ANSI in 1990. It is an extensive enhancement of the original standard, and defines support for many of the more advanced SCSI features that are in wide use today.

SCSI-2 defines the following significant new features as enhancements to the original SCSI-1 specification:

It is important to note that one of the major design criteria in the creation of SCSI-2 was backward compatibility with SCSI-1. SCSI-2 devices will in most cases work with older SCSI-1 devices on a bus, however this is not always done, because the older devices have no ability to support the SCSI-2 enhancements and faster transfer protocols.


SCSI-3

SCSI-3 is kind of confusing. It seems that there are a number of different possible features that are vying for inclusion in this standard, which is still not formalized. Some of these conflict with each other or represent totally different approaches to how SCSI is to be implemented or used. SCSI-3 also seems to include all of what SCSI-2 included, so there sometimes appears to be significant overlap.

The following are the features commonly referred to as being part of SCSI-3:

 

SCSI Protocols and Transfer Modes

This section talks about the different flavors of SCSI. There are many different types of SCSI in use; these are based on various combinations of different bus widths and speeds used to implement the SCSI bus. These are given names that represent how they are used. The protocols use different cabling and/or have different throughput rates.

Single-Ended and Differential SCSI

SCSI is a high-speed bus capable of supporting multiple devices, including devices connected to the outside of the PC. Due to the high speed, and the external cabling in particular, there is always concern about signal integrity on the bus. The longer the cables are, the more problems there potentially can be with signal degradation or interference. The faster the bus runs, the more difficult it is to keep the signals clean.

SCSI has therefore defined two different electrical signaling systems:

The various transfer rate protocols are defined for potential use in each of these electrical flavors. So you can have single-ended Fast Wide SCSI, or differential Fast Wide SCSI. (This doesn't necessarily mean that all of the different protocols are readily available in both single-ended and differential). Overall, differential SCSI is used far less and is much more expensive. It is not often encountered in the PC world.

Warning: Single-ended and differential SCSI are incompatible at the electrical level. You should not mix single-ended and differential SCSI devices on the same bus or actual physical damage could result. To compound the matter, the cables used for single-ended and differential SCSI look the same. Make sure you know what you have before putting together your SCSI bus. Converters between single-ended and differential SCSI are available.


SCSI Bus Width (Narrow and Wide)

There are two commonly used SCSI bus widths: narrow and wide. Narrow SCSI uses a data pathway that is 8 bits wide. Wide SCSI uses a data pathway 16 bits wide. Narrow SCSI is "conventional" and is what the original forms of SCSI used. Wide SCSI is newer and allows for doubling of bus bandwidth, at a higher cost. It also requires either additional or newer cabling. Wide SCSI also allows the use of 16 devices on the SCSI bus, as opposed to only 8 for regular "narrow" SCSI.

Regarding terminology, the narrow SCSI bus is considered the "regular" or default type, so it is not usually mentioned in the name of the protocol. Wide SCSI has the name "wide" inserted in the protocol name. So for example, "Fast SCSI" implies a narrow bus, while "Fast Wide SCSI" of course is wide.

It is possible to mix narrow and wide SCSI on the same bus, but there are problems that must be overcome to do so. These typically revolve around cabling, which is different for narrow and wide SCSI, and also with termination. Adapters are generally required to convert between the narrow and wide cables.

Note: A "very wide" form of SCSI that is actually 32 bits wide was defined as part of the SCSI-2 standard but has not been popularly implemented and is not generally encountered in the PC world.


SCSI Bus Speed (Regular, Fast and Ultra)

There are three different bus speeds used in SCSI today:

Faster bus speeds of course offer more performance. They are also usually more expensive and generally have more stringent cable length restrictions and termination requirements. Remember that these transfer rates are theoretical rates for the interface. No individual device will generate enough sustained data to saturate a 20 MB/s interface, and the numbers ignore command overhead and other subtleties that always lower the maximum effective throughput. However, since SCSI can support many devices, the high-speed interfaces can be useful in multitasking environments where many devices can be talking to each other simultaneously.

SCSI Protocol Map

The table below shows how the two main protocol characteristics (width and speed) map into the different protocol names for SCSI that are commonly used. The transfer rates for each are also shown:

Interface Standard

Narrow

Wide

Protocol

Transfer Rate (MB/s)

Protocol

Transfer Rate (MB/s)

Regular

"Regular" SCSI

5

Wide SCSI

10

Fast

Fast SCSI

10

Fast-Wide SCSI

20

Ultra

Ultra SCSI

20

Ultra-Wide SCSI

40

Note: Serial SCSI does not fit into this framework at all, since it abandons the parallel wires approach entirely, in favor of a serial scheme.


"Regular" SCSI

A device referred to just as SCSI generally refers to the original, 5 MB/s, 8-bit SCSI, also sometimes called SCSI-1 in reference to the original SCSI standard. Sometimes a device is just called "SCSI" in reference to the fact that uses one of the types of SCSI, referring to the entire family of interfaces; a Wide SCSI-2 device is a SCSI device after all. This is sometimes seen in comparisons between SCSI and other interfaces, much the way a new IDE/ATA hard disk may be called "IDE" even though it is really Fast ATA-2 or another IDE/ATA standard.


Wide SCSI

Wide SCSI refers to devices that use a 5 MHz SCSI bus speed on a 16-bit wide bus. It is also sometimes called Wide SCSI-2. The maximum transfer rate is 10 MB/s, and up to 16 devices are supported per bus.


Fast SCSI

Fast SCSI refers to the use of a 10 MHz SCSI bus speed on an 8-bit bus. It is also sometimes called Fast SCSI-2. The maximum transfer rate is 10 MB/s.


Fast Wide SCSI

Fast Wide SCSI combines the features of Wide SCSI and Fast SCSI, so it uses 10 MHz SCSI bus speed on a 16-bit wide bus. This doubles the maximum transfer rate to 20 MB/s. This protocol is sometimes called Fast Wide SCSI-2. Up to 16 devices are supported per bus.


Ultra SCSI

Ultra SCSI devices use a 20 MHz SCSI bus speed on an 8-bit bus, for a maximum transfer rate of 20 MB/s. Ultra SCSI is sometimes called Fast-20 SCSI or Ultra SCSI-3, in reference to the interface's speed and the standard that defines it, respectively.


Ultra Wide SCSI

The highest-performance standard SCSI (using parallel data wires, as opposed to Serial SCSI), Ultra Wide SCSI devices combine a 20 MHz SCSI bus speed and a wide 16-bit bus, for a maximum transfer rate of up to 40 MB/s. Ultra Wide SCSI is sometimes called Fast-20 Wide SCSI or Ultra Wide SCSI-3, in reference to the interface's speed and the standard that defines it, respectively. Up to 16 devices are supported on the bus.


Serial SCSI / FireWire

All of the "conventional" types of SCSI that have been used since the interface was created, have been forms of what is called parallel SCSI. This term refers to the fact that the data is transmitted 8 or 16 bits at a time, in parallel. A new type of SCSI, called Serial SCSI, takes a different approach to the SCSI bus by transmitting just one bit at a time. The distinction between parallel and serial here is very similar to the difference between the serial and parallel ports at the back of your PC, which you probably use for your mouse and printer or other devices.

On the surface, going from 8 or 16 bits of data being transmitted at a time to one, might seem like a bit step backwards. The bandwidth of a bus is directly proportional to its width; why reduce it by a factor of 16? The answer is the other factor that controls bus performance: speed.

As technology improves, our appetite for bandwidth continues to increase, and the desire to increase bus speeds has led us from regular to Fast to Ultra SCSI. The problem is that each time the bus is made faster, it gets more difficult to manage the complex signaling on the parallel SCSI bus, and to ensure that there is no data corruption on the cable due to interference or signal degradation. This is why the maximum cable length for single-ended SCSI decreases by half each time the speed doubles.

The 20 MHz of Ultra SCSI is close to the top end of what is achievable using the old style bus. Serial SCSI, which also goes by the nickname Firewire, trades in the width of the original SCSI bus in favor of dramatic increases in speed. Since only a single data line must be managed, it is possible to increase its speed from the 20 MHz maximum of Ultra SCSI, to 400 MHz or even higher. Ultimately speeds of over 1 GHz will be possible; even if you divide this by 16 you get 64 MB/s, which is much higher than Ultra SCSI's 40 MB/s.

Furthermore, the serial connection is much simpler than the large, cumbersome SCSI connections of old. Instead of a 68-wire cable, Firewire uses a 6-wire cable. The serious concerns about termination and signal delay are also addressed. Serial SCSI devices promise to have even more widespread support than older SCSI did. In addition to the PC platform, it will be supported by Apple, and perhaps more interestingly, by non-computer hardware as well. In fact, one of the first types of Firewire devices were digital video cameras, using Firewire to connect to the PC.

Firewire has been formalized as IEEE standard 1394. A trade association has been formed to further the advancement of the standard.


SCSI Protocol Compatibility

SCSI has been designed to be backward compatible. SCSI-2 host adapters are supposed to be able to work with older SCSI-1 hard disks, and SCSI-2 hard disks are supposed to work on SCSI-1 host adapters, for example. Of course, it isn't always this simple. The sheer number of different flavors of SCSI makes it impossible to guarantee that any particular combination of devices will work.

Here are some rules of thumb that you should keep in mind:

 

Summary of SCSI Transfer Modes and Protocols

The table below provides a quick summary of the different SCSI interface protocols and their main characteristics:

Interface Protocol

Defining Standard

Bus Speed (MHz)

Bus Width (bits)

Transfer Rate (MB/s)

Cabling

Maximum Single-Ended Cable Length (m)

Number of Devices Per Bus

"Regular" SCSI

SCSI-1

5

8

4.77

"A" or "P"

6

8

Wide SCSI

SCSI-2

5

16

9.54

"A"+"B" or "P" (or SCA-2)

6

16

Fast SCSI

SCSI-2

10

8

9.54

"A" or "P"

3

8

Fast Wide SCSI

SCSI-2

10

16

19.07

"A"+"B" or "P" (or SCA-2)

3

16

Ultra SCSI

SCSI-3

20

8

19.07

"A" or "P"

1.5

8

Ultra Wide SCSI

SCSI-3

20

16

38.15

"A"+"B" or "P" (or SCA-2)

1.5

16

Serial SCSI (Firewire)

SCSI-3

100 to 400+

1

12 to 50+ !?

6-pin Firewire Cable?

!?

!?

Note: You may be somewhat confused by the bandwidth numbers I have listed in the table above. For example, shouldn't the transfer rate of standard SCSI be 8/8*5=5 MB/sec? This is how most people and even companies write it, but this is not technically correct, because of the old problem of different definitions of what "M" stands for. The "M" in "MHz" is 1,000,000 (10^6), but the "M" in "MB/s" is 1,048,576 (2^20). So the transfer rate is more properly stated as 8/8*5*1,000,000/1,048,576=4.77 MBytes/second.

Note: The number of devices (8 or 16) includes the host adapter.

 

SCSI Host Adapters

Most IDE/ATA hard disks are controlled today by an integrated IDE controller that is built into the chipset on the motherboard. SCSI hard disks (and other devices) are for the mostpart not controlled by built-in motherboard SCSI controllers (although some are and this is growing in popularity). Most systems require the addition of a SCSI host adapter card in order to use the SCSI interface.

The SCSI host adapter, also sometimes called a SCSI controller or even just a SCSI card is, logically, a SCSI device like any other. Its job is to act as the gateway between the SCSI bus and the internal PC's I/O bus. It sends and responds to commands and transfers data to and from devices on the bus and inside the computer itself.

Since SCSI is a very "intelligent" interface--meaning it has a lot of capabilities and the devices on it are able to interact in advanced ways--many SCSI host adapters have evolved rather exceptional capabilities, and can act in many ways to improve performance. In many ways, the host adapter is the key to good SCSI implementation in the PC, since no matter how advanced the peripherals are that you attach to the bus, everything goes through the host adapter. This section takes a brief look at these devices.

Motherboard support for SCSI is actually on the rise, as SCSI becomes more "mainstream". It is still not common to find it in most motherboards because it increases cost, and most people still are not using SCSI. If selecting a motherboard-based SCSI implementation, it is critical to pay specific attention to what sorts of SCSI the motherboard will support. While most of the built-in SCSI controllers can be disabled, having to buy a SCSI host adapter six months after you buy a SCSI-capable motherboard because the motherboard-based controller doesn't do what you need it to, is just a waste of time and money.


Adapter Types and PC Bus Connections

There are many different types of SCSI host adapters on the market. They vary in cost and capabilities dramatically. Many lower-end devices are designed specifically are designed to keep costs down to allow easy, inexpensive access to SCSI devices like Zip drives, while higher-end devices provide more capabilities and performance for users who require a full-featured implementation.

SCSI host adapters are available for all of the common PC I/O buses, including ISA, VLB and PCI. You of course want to get one that matches what you have in your system. As is the case with most interfaces that have a significant impact on performance, an ISA-based card is generally a bad idea since this will greatly limit the performance of the bus. You cannot use something like Ultra SCSI through an ISA-bus-based host adapter, because ISA cannot handle more than about 8 MB/s of data transfer. (Or rather, you can use it, but you won't get the performance benefits.) You need to use a local bus connection.

Most newer host adapters that run on the PCI local bus, support the use of bus mastering. This can be a very important feature, as it allows for more efficient transfer of data from the host adapter to the system memory.


Protocol Support

There are many different SCSI protocols. The host adapter must be able to support all of the protocols that you want to use on the bus. So if you want to use Ultra Wide SCSI hard disks, your host adapter must be capable of both Ultra bus speeds and Wide bus width. Otherwise, you may be able to use the Ultra Wide disk, but only in a lower-performance mode.

If you are only using say, narrow Fast SCSI, you don't need a host adapter capable of driving Ultra Wide SCSI devices. Remember though, that if you purchase a cheaper, less capable host adapter, you will be limiting your expansion capabilities should you later decide that you do want to use Ultra Wide SCSI. Whether the more capable host adapter is worth the extra money depends on your situation and the chances that you will want or need to upgrade in the future.


Single-Ended vs. Differential Support

There are two different electrical signaling methods used for SCSI: single-ended and differential. The two are not compatible (except possibly through the use of special adapters) and so you must purchase a SCSI host adapter that matches the type of the devices you want to use. This will in most cases be single-ended, since that is much more common than differential.


Connectors

SCSI is a bus that supports both internal and external devices. Most adapters should have an internal connector for connecting to devices inside the PC, and an external connector for devices on the outside. The type of connector used depends on the protocol that the card supports.


Caching

Many higher-end SCSI controllers have built-in caches. The idea behind a cache is to use higher-speed memory to hold recently retrieved results, to save time if the results are needed again in the near future.

Caching that is done by the SCSI controller adds an additional caching level that exists, logically, in front of the cache (buffer) that resides within the SCSI hard disk itself (or other component). When data is requested from a device on the SCSI bus, the host adapter can see if it is already in the cache and if so, return the results much more quickly, and save transaction bandwidth on the SCSI bus as well. This of course improves performance over a system that does not have this type of cache.


RAID Support

SCSI is very commonly used in servers, where both performance and reliability are critical. For this reason, it is common to find support for hardware-implemented RAID built into SCSI host adapters. This is usually an advanced feature that is not found on all SCSI cards, and the amount of support and which modes are supported depends on the particular card. Of course, the more you pay, the more you get (in general).


Drivers and Compatibility Issues

It's important to ensure that your operating system will support whatever host adapter you decide to use. Selecting a quality card from a well-known company is key to success in many cases. You want to make sure that the card comes with configuration software and drivers that will support whatever operating system and applications you are using.

There are, in rare cases, problems with compatibility between older devices and cards, due to some loose interpretations of the SCSI standards. This has been pretty much cleaned up with the newer devices, however.

Warning: One thing that is important to know is that different SCSI host adapters may use different addressing or translating methods to access data on hard disks to which they are connected. This means that switching host adapters can render the contents of the hard disk inaccessible. In many cases the disk must be reformatted after the new host adapter is installed.

Manual vs. Automatic Configuration

Older and cheaper cards require the use of hardware jumpers for configuration jobs like setting the SCSI ID, enabling or disabling termination, etc. Newer and better cards allow the use of software routines for these features, which can save a lot of time and hassle. Some even automate many of the configuration tasks.


Resource Usage

SCSI host adapters require several different system resources, depending on the system bus that the host adapter is designed for, and the method it is using for transferring data over the system bus.

The following resource types are typically used:

Many newer SCSI host adapters support the Plug and Play initiative. Note that this is different than so-called Plug and Play SCSI, which is similar in concept but is applied to dynamically allocating SCSI device IDs on the SCSI bus, not PC system resources.


SCSI Configuration and Cabling

There are several more considerations that must be taken into account when setting up a SCSI bus than when configuring a typical simple IDE/ATA channel. SCSI devices, especially the more advanced ones running at high bus speeds, are more sensitive to marginal setups that use low-quality cabling, and can cause errors or other problems if the bus is not put together correctly. SCSI also offers more flexibility--for example, the use of both internal and external devices--but this means more work to set the bus up.

Once you have a functioning SCSI setup, you are rewarded with both high performance and also easy modification to the bus, such as adding new devices to it. This section examines SCSI setup and configuration issues.


SCSI Bus Topology

The SCSI bus uses a, well, bus topology. This means that every device is daisy-chained linearly in a long line. This is identical to how a thin Ethernet (10base2) network is set up (the cables and signals aren't the same of course, I am referring to how the devices are logically linked together in a line). This is sometimes called a SCSI chain.

When setting up a SCSI bus, it is imperative that each device be in a straight line. This means that each device (including the host adapter) is connected to either one or two other devices, and never more than that. The two devices at the end of the bus must be terminated, either internally or externally. The bus should never be connected in a loop, star or other formation.

For a two-device bus, the topology looks like this:

For a four-device bus, it is as follows:

It does not matter which device is located where on the chain, and any of the devices can be either internal or external, but the terminators must be at the ends. Obviously having the internal devices at one end of the bus, and the external devices at the other end, with the host adapter in the middle, is going to be the setup that makes the most sense for those that are using both internal and external drives. If the host adapter is placed in the middle of the chain, it must have its termination disabled, otherwise the devices past it on the chain will not function.


External and Internal Devices

Unlike IDE/ATA, which only supports internal devices due to its extremely limited cable length, SCSI supports both internal and external devices, even on the same bus. In fact, many early SCSI devices were external. Apple Computer was one of the first companies to use SCSI in a big way, and since early Apples had no expansion slots, all of their SCSI devices were external.

Logically, there is no difference between an external and an internal SCSI device. Physically of course, they are installed differently, and the cabling used is different as well. Most well-designed SCSI host adapters include connectors on the card on the inside of the PC for internal drives, and a cable connector on the outside of the card (where the metal piece slides into the case at the back) to allow for connection to external drives.

The particular configuration and whether or not internal and external drives are used, has an impact on how the SCSI bus is terminated.


Number of Devices

One of SCSI's strengths is its support for large numbers of devices on the bus, and the fact that different "conversations" between devices can be taking place simultaneously. SCSI supports real "multitasking" on the bus.

Narrow (8-bit) SCSI supports up to 8 devices on a single bus, while Wide (16-bit) SCSI supports up to 16. The host adapter is itself a SCSI device, so in practical terms this means that narrow (regular) SCSI allows 7 devices other than the host adapter, and Wide SCSI supports 15.


SCSI Bus Termination

You can do an experiment (either physically or mentally) to illustrate why termination is required on a bus. Hold one end of a piece of rope about six feet long and have someone else hold the other end. Stretch the string so it is reasonably taut, and then snap down on one end sharply. You will form a wave that travels down the string. When it reaches the end of the string it will "reflect" off the end and travel back again toward you, and then reflect again. It will go back and forth across the string, decreasing in amplitude each time until it eventually dies out.

Electrical signals travel across wires in much the same way as physical waves travel across a string. When they reach the end of the wire, they will reflect and travel back across the wire. The problem is that if this is allowed to happen, the reflected signals will interfere with the "real" data on the bus and cause signal loss and data corruption. To ensure that this does not happen, each end of the SCSI bus is terminated. Special components are used that "catch" any signals that make it to the end of the bus and prevent them from reflecting.

There are three kinds of termination used on SCSI buses. They differ in the electrical circuitry that is used to terminate the bus. Better forms of termination make for more reliable SCSI chains; the better the termination, the fewer problems (all else being equal) with the bus:

Terminators must be at the very ends of the bus, after all of the actual devices on the chain. This includes any devices that may be powered off or temporarily disconnected. Therefore, there are always exactly two terminators. Many devices contain internal terminators that can be used if the device is at one of the ends of the SCSI bus. This is common in host adapters, which are usually at one end of the bus, if you are using only external devices, or only internal ones. If you are using both internal and external devices, the host adapter is going to typically be in the middle of the chain between them, and its internal termination should be disabled.

Termination is a rather simple affair when all of the devices on the SCSI bus are the same width: either narrow (regular, 8 bit) or wide (16 bit) SCSI. Narrow SCSI normally uses a 50-pin cable and wide SCSI a 68 pin cable. When you mix narrow and wide SCSI on the same bus, you must be more careful about termination. Normally this mixing is done using adapters or special cables that only extend the extra width to the devices that are using the wide portion of the bus. However, the extra signals on the wide part of the bus must also be terminated properly. Problems can result with wide devices when these extra signals are not terminated and they are left "dangling".

Many devices that are compatible with Plug and Play SCSI can be set to automatically enable or disable termination based on their dynamic position on the SCSI bus. In addition, systems using the Single Connector Attachment system have a different termination arrangement because the connection system is different. SCA drives do not have termination on them.


SCSI Cables and Connectors

There are many different types of cables used for various SCSI protocols and configurations, which is part of why SCSI can sometimes be confusing.

First things first: differential and single-ended SCSI use cables that appear identical, but are electrically different. Each one has (theoretically) each of the cable types below, so it is important to make sure that you are using the correct kind. Single-ended is by far more prevalent.

The following are the cables commonly used in SCSI configurations:

To make matters more confusing, the standard "A" cable has different connector styles at the ends of the cables, depending on whether the device is an internal or external one. The "P" cable uses the same connectors for both internal and external connections.

The type of cable is dictated by the width of the SCSI bus; the length of the cable is dictated by the speed of the bus. Faster SCSI buses have more problems with signal corruption over longer distances and hence are restricted to shorter cables when using single-ended SCSI. Differential SCSI allows longer lengths regardless of speed.

This table summarizes the cable type and maximum lengths for each of the common protocols:

Interface Protocol

Cable Type

Maximum Single-Ended Cable Length (meters)

Maximum Differential Cable Length (meters)

"Regular" SCSI

"A" or "P"

6

25

Wide SCSI

"A"+"B" or "P"

6

25

Fast SCSI

"A" or "P"

3

25

Fast Wide SCSI

"A"+"B" or "P"

3

25

Ultra SCSI

"A" or "P"

1.5

25

Ultra Wide SCSI

"A"+"B" or "P"

1.5

25

Serial SCSI (Firewire)

Firewire Cable?

!?

--

In addition to the more common cabling systems, high-end drives (typically Ultra Wide SCSI) can also be set up to use the Single Connector Attachment system. This is a special connection system which replaces the power cable, data cable and even the normal ways that drive device IDs are assigned. SCA is designed for use in high-end servers.


SCSI Device IDs

Each SCSI device is addressed on the bus via a specific number. For narrow SCSI (which allows up to 8 total devices), these are numbered 0 through 7; for wide SCSI the numbering is 0 through 15.

The priority that a device has on the SCSI bus is based on its ID number. For the first 8 IDs, higher numbers have higher priority, so 7 is the highest and 0 the lowest. For Wide SCSI, the additional IDs from 8 to 15 again have the highest number as the highest priority, but the entire sequence is lower priority than the numbers from 0 to 7. So the overall priority sequence is 7, 6, 5, 4, 3, 2, 1 , 0, 15, 14, 13, 12, 11, 10, 9, 8.

Since devices are addressed specifically by other devices, the ID setting on the bus doesn't matter a great deal on low-traffic buses--all that is essential is that no two devices be set to the same ID, or obviously great confusion will ensue. In high-traffic settings, you will typically want to set the slower devices (scanners, tape drives) to the higher-priority IDs, to ensure that they are not crowded off the bus by the faster devices like hard disks.

Another consideration is that if you have any devices that absolutely cannot tolerate delays in receiving their stream of data--such as a CD recording drive or a video encoder--they should be given top priority on the bus. Many people also like to make the host adapter the highest-priority device on the bus, which is why host adapters will often default to a SCSI ID of 7.

It should be noted that some older host adapters can be finicky about device IDs. Some will only boot a hard disk if it is set to device ID 0. This is inflexible and has been basically done away with in newer hardware.

The method of actually configuring the ID depends on the specific piece of hardware. Many devices use hardware switches or even a rotary dial to set the device ID, on the back of the device enclosure. More sophisticated devices use software utilities--this is most common with the more modern SCSI host adapters.

Finally, the use of Plug and Play SCSI allows for automatic assignment of device IDs on the bus, to eliminate devices trying to use the same IDs simultaneously. Single Connector Attachment systems work using a similar concept; a special single connector is employed to provide power and data to each hard disk, as well as to allow the controller to set each drive's device ID.


Single Connector Attachment (SCA)

High-end workstations and servers now employ advanced technology to allow multiple hard disks to be used together to increase performance and improve reliability. This is typically done through the use of RAID, and in many cases the hard disk subsystem is designed to allow hot swapping, which means that failed hard disks can be removed from the disk array and replaced with new ones without powering down the system. These high-end machines usually have anywhere from two to dozens of SCSI drives in them.

Conventional attachment protocols, with separate power and data cables, do not work well in this environment. A special system called Single Connector Attachment or SCA was therefore developed for servers and other high-end systems. SCA replaces the conventional cabling scheme with a backplane system that uses a single, 80-pin connector. This connector replaces the standard 68-pin Wide SCSI cable, as well as the standard 4-wire D-shaped power connector. It also includes additional signals to allow for device ID setting of the individual drives. This special single connector is what allows hot swapping of drives from the system; the hard disk normally attaches to the connector in a way similar to how a removable car stereo fits into its metal bracket with contacts at the back.

SCA drives encountered today are normally dubbed SCA-2. SCA-2 is an improved version of the original SCA connector (of course now called SCA-1). The major difference between the two is that the SCA-2 connector is specially designed so that two ground pins (two of the 80 pins on the connector) are always first to be connected when attaching a drive, and are always last to be disconnected when removing a drive. This ensures that the drive remains grounded through the entire attachment or removal process, improving reliability


BIOS Issues

SCSI hard disks do not suffer from most of the BIOS "barrier" issues that plague IDE/ATA hard disks, because they do not have to deal with the severe restrictions that result from the incompatible IDE and BIOS geometry specification limits. SCSI by its nature uses logical block addressing (LBA) to address devices, and is only subject to the 7.88 GB barrier that is a result of how the PC's Int 13h BIOS disk access routines work.

Some older host adapters did have problems that made them unable to access hard disks over 1 GB in size, or some other arbitrary limits. Newer host adapters should not have these limitations. Of course, if you are using the FAT file system, you are still restricted to 2 GB per partition, since this is a file system issue, not a hardware or BIOS one.

SCSI Software Interface Protocols (ASPI and CAM)

In order for a device to be used on the SCSI bus, it is necessary for it to have a driver that interfaces it to the bus. (The exception is hard disks, which are normally usable directly by the host adapter, since it is designed for that purpose). The problem with this is making sure the drivers are available for all the devices you want to use and that they work properly. A further problem is making sure that operating systems and applications can work with all of the drivers that are written for various devices.

To help make the situation with drivers more standardized, Adaptec--the biggest name in SCSI host adapters--developed the Advanced (originally Adaptec) SCSI Programming Interface, or ASPI. This driver acts as an abstraction layer that hides the details of the host adapter from the operating system or application and makes device support more universal.

Most of the popular operating systems can make use of ASPI. DOS requires an ASPI driver to be loaded, while the protected mode operating systems such as Windows 95 and Windows NT have native support for ASPI. One problem with using SCSI under DOS or Windows 3.x is that the lack of protected-mode drivers means yet another real-mode drive that uses up precious conventional memory.

An alternative interface protocol is called Common Access Method or CAM. It does basically the same job as ASPI, but in a different way. CAM is in some ways more complicated than ASPI and is not as widely used.


Plug and Play SCSI (SCAM)

Each SCSI device is required to have a unique device ID in order to be addressed over the shared SCSI bus. This has usually involved setting jumpers or switches on devices like hard disks, and either physical or software setup for host adapters. A recent initiative in the SCSI world seeks to automate the assignment of device IDs, to allow the SCSI bus to dynamically shift and reallocate IDs when a new device is added to the bus. This is called Plug and Play SCSI or alternatively, SCSI Configured AutoMatically (SCAM). (Yuck, what a contrived acronym.)

This idea is similar in concept to "regular" Plug and Play in the overall PC system, but remember that this plug and play is used to assign SCSI device IDs, not system resources. In fact, many modern SCSI host adapters also support system plug and play over the PCI bus to allow dynamic setting of system resources. This is a different matter altogether.

Another initiative in the arena of plug and play SCSI is the automation (or simplification) of termination, to make terminating the bus less complicated, or at least more tolerant.


Physical Installation Issues

Internal SCSI hard disks generally have more issues relating to installation location and cooling than IDE/ATA hard disks do. This has nothing to do with the interface itself per se; it's simply due to the fact that SCSI hard disks tend to be more advanced, with faster spin rates, and so they produce more heat. Some of the newer ones actually require active cooling (fans) to keep them at a reasonable operating temperature.


Using SCSI With IDE/ATA

There are now many PC systems in common use that combine SCSI drives or devices with IDE/ATA ones. This is easier to do now that it has been in the past, but still takes more work than using only one or the other by itself. For the mostpart you end up having to do double the work since you have to configure two different interfaces.

The primary problem for those using SCSI with IDE in the same system seems to be getting a SCSI hard disk to boot instead of an IDE one. Generally speaking, since every PC has native IDE support, the BIOS will usually try to boot the IDE device if it finds one. The only way to get around this, basically, is to have a BIOS that supports booting from SCSI instead of IDE in a system that has both. There are some BIOSes that support this, via the boot sequence BIOS setting. Most do not. If there are only SCSI devices in the system, this restriction does not apply, and booting from SCSI is usually supported without a problem.

 


IDE/ATA vs. SCSI: Interface Comparison

Since the market has come to be dominated by the two interface standards, IDE/ATA and SCSI, the question of "which is better" has been bandied about endlessly on the Internet and in other places as well. The simple answer is that neither is better than the other, absolutely. Why? Because if one were clearly superior to the other in every way, the superior one would have taken over the market completely and forced the other one out. The fact that both are in common use (and have been for many years) proves that both have valid reasons for being on the market. Contrast this to the older ST-506/412 interface, for example, which was obsoleted by IDE/ATA since it had no advantages to cause it to persist, and disappeared very quickly.

Whether IDE/ATA or SCSI is better depends on what your needs are, and how much you are willing to spend. In this section I attempt to put the issue in perspective by looking at various performance and quality aspects of the interface and seeing how IDE/ATA and SCSI stack up at each. Of course this will be colored somewhat by my own experience and biases (the entire web site is--that's just life). However, I am attempting here to be as objective as possible in contrasting the two interfaces, and trying to be comprehensive in looking at all of the aspects that are relevant to making a decision.

A primary deciding factor in the SCSI vs. IDE/ATA question is the number of devices you plan to use (or use in the future) in your system. In many respects, IDE/ATA is superior if you are using only one, two or three devices such as hard disks or CD-ROMs. If you are using many devices, say over four, then SCSI is superior to IDE/ATA in several different respects.


Cut To The Chase

I still think it is best to read all of the other sections in this area and look at how IDE/ATA and SCSI compare in various respects. However, I realize that (as usual) I have made this large by blabbing too much and perhaps some people are looking for a quick answer. Just recognize that a short answer is rarely as good as a long one.

Overall, the SCSI interface is technologically superior to the IDE/ATA interface. It supports more devices, allows for better multitasking, more expansion, use of more high-end devices, more types of devices, and more performance-enhancing features. IDE/ATA is intended primarily for PCs that are not using a lot of peripherals, or for those that are cost conscious.

For the average person who is using their PC for light office work, games, internet use, etc., I still recommend IDE/ATA. The reasons are simple: cost and simplicity. Virtually all PCs today ship with IDE/ATA hard disks standard, and if you are using a small number of devices--say one hard disk and one CD-ROM drive, IDE/ATA is more than adequate performance-wise for the typical office or home user. As long as the machine is reasonably modern and the PC is set up properly, IDE/ATA will work without much difficulty, and there is no need to special-order or customize the machine, since it is really the "standard". The cost of a simple IDE/ATA setup is far less than an equivalent SCSI bus.

For the user who is performance-conscious, who will be doing real multitasking, using many devices at once, doing heavy development work, supporting multiple users at once on the machine, or who otherwise wants the best and is not afraid if it costs a few hundred dollars more, SCSI is the obvious choice. SCSI offers the most flexibility, the most choice of peripherals, and the best performance in a multitasking or multi-user environment.

So if you are looking to set up a low-end or middling system, I would say SCSI is out of the question. The simple reason is that for the additional cost of going to SCSI, you could probably improve overall performance more by buying a faster processor, more system RAM, or a faster hard disk. For a high-end system, SCSI has definite advantages and is preferred.

Also bear in mind that there are some peripherals that generally are only available on SCSI, or that have significant enough advantages on SCSI that if you want to use this type of device, SCSI is pretty much a must. Scanners and CD-R drives come immediately to mind. Once you make the decision to go with SCSI, the cost of going to SCSI for your hard disks is reduced because you've already made the commitment for the host adapter, which is the large up-front cost of SCSI.

The final, real bottom line is: if you want it cheap and simple with good performance, use IDE/ATA. If you want maximum performance and flexibility and have the money to pay for it, use SCSI.


Cost

In terms of cost, the IDE/ATA interface is superior to the SCSI interface in virtually every way. (The only exception would be if you needed to use, say, 10 devices, in which case SCSI might be cheaper because this would require a special solution to do in IDE/ATA. I am assuming that nobody would use IDE/ATA for this many drives anyway.)

Here are four reasons why SCSI is more expensive than IDE/ATA:

For those for whom cost is an important consideration, IDE/ATA will win over SCSI virtually every time. For low-end systems, the extra funds required to go to SCSI will usually be better spent upgrading core parts of the system such as the processor or system RAM.


Performance

Comparing the performance of the SCSI and IDE/ATA interfaces is not an easy task. While those who favor SCSI are quick to say that it is "higher performance" than IDE/ATA, this is not true all of the time. There are many different considerations and performance factors that interact when considering the performance equation, because performance is so dependent on system setup and on what is being done with the PC. I will try to look at some of these factors and how they influence system performance for both interfaces:

Overall, SCSI is a higher-performance interface. For very simplistic applications, like a single hard disk and a single CD-ROM drive, IDE/ATA has a marginal advantage. For complex applications, SCSI has a significant advantage.


Configuration and Ease of Use

Much like the performance issue, the winner here depends on how many devices you want to use. Both IDE/ATA and SCSI have had a rather spotty history in terms of their ease of setup and configuration, and both are much better today than they have been in the past. Overall, I would say that IDE/ATA is easier to set up, especially if you are using a reasonably new machine and only a few devices. Its support is built into the BIOS, and there are fewer issues to deal with: no different cable types, no bus to terminate, fewer issues with software drivers, and fewer ways in general that you can get yourself into trouble.

This advantage for IDE/ATA drops off quickly if you want to get maximum performance while using more than two or three devices. You then have to worry about where they are being placed on the channel, finding IRQs and other resources for multiple channels, etc. This can be done without too much difficulty, but there are many different things to take into consideration. In contrast, once SCSI is set up, you can put 7 devices on the bus (or 15 for wide SCSI) with very little effort, although you do have to watch the termination as you expand the bus.

SCSI has a significant advantage over IDE/ATA in terms of hard disk addressing issues. While IDE/ATA hard disks are subject to a host of capacity barriers due to conflicts between the IDE/ATA geometry specifications and the BIOS Int 13h routines, SCSI is not.


Expandability and Number of Devices

SCSI beats IDE/ATA hands down here. A regular SCSI bus can support 7 devices and a wide SCSI bus 15. IDE/ATA can supposedly support 8 devices if you use all four IDE/ATA channels that are theoretically defined, but this is extremely rarely done because there are system resource and software support issues.


Device Type Support

SCSI beats IDE/ATA clearly in this regard. IDE/ATA supports hard disks and ATAPI devices such as CD-ROM drives and some tape drives. SCSI supports these and many more devices including scanners and CD recordable drives.


Device Availability and Selection

While there are many more types of devices available for the SCSI platform, there are generally more choices of any given type of device for IDE/ATA. While IDE/ATA supports basically hard disks and CD-ROM drives, there are many more different brands and types of hard disks and CD-ROMs around for IDE than for SCSI.


Software / Operating System Compatibility

While much less of a problem today, SCSI has traditionally been not as well supported as IDE/ATA, due simply to the fact that it was less common. DOS and Windows 3.x do not provide native SCSI support (but do support SCSI through the use of drivers). Windows 95 and Windows NT do support SCSI directly, as do the various UNIX implementations.


System Resource Usage

Generally speaking, SCSI is superior to IDE/ATA in this regard. If you are only using a single IDE/ATA channel, the two are basically a wash in terms of resource usage. However, once you go to a dual IDE channel situation you will generally use more resources than SCSI uses. If you were ever to set up a four-channel IDE implementation you would be using significantly more resources than if you had just set up a SCSI bus.

There are in fact some people who set up SCSI specifically to get around the system resource constraints for which the PC is "famous", and which using multiple IDE/ATA channels exacerbates.

There is one system resource issue involved in using SCSI under DOS or Windows 3.x, however, that doesn't apply to Windows 95 or Windows NT. Both of the older operating systems generally require a driver in order to use SCSI, which can take up a decent-sized chunk of conventional or upper memory. The IDE interface does not normally have this requirement. This is only an issue for some systems, of course.

 

Summary of IDE/ATA and SCSI Comparisons

The following table summarizes the comparison of SCSI and IDE/ATA. See the individual sections for a more thorough explanation of the summary conclusions below:

Interface Factor

IDE/ATA

SCSI

Cost

Low

Moderate to high

Performance

High for single devices or single tasking, moderate to low for multiple devices or multitasking

High in most situations

Configuration and Ease of Use

High for small number of devices, low for large number of devices

Moderate to high for both small and large numbers of devices

Expansion and Number of Devices

Moderate to low

High

Device Type Support

Moderate to low

High

Device Availability and Selection

High

Moderate

Software / Operating System Compatibility

High

Moderate to high

System Resource Usage

Moderate to poor

Moderate to good

Support for non-PC Platforms

Poor, but growing

Good