One of the most important decisions you must make when you configure a Windows NT system is
which mass storage subsystem to use. Even if you've spent only a short time in the NT universe,
you've likely heard time and time again that Small Computer System Interface (SCSI) is the best
choice for NT computers. However, enhanced versions of the Integrated Drive Electronics (IDE)
specification such as EIDE/ATA-2, ATA-3, and Ultra ATA tout new and improved features that claim to
give SCSI a run for its money. In addition, you can purchase these newer, faster IDE-based drives
for significantly less money than comparable SCSI drives. Meanwhile at the high end, countless new
SCSI specifications have arrived on the scene, promising better performance and features than
previous incarnations of SCSI. To help you separate facts from marketing hype, let's explore the
various flavors of both technologies and compare their features and shortcomings.
NT and SCSI: A Marriage Made in Redmond
Since the inception of NT, Microsoft has strongly urged system designers and end users to choose
SCSI for their NT systems to maximize performance. This recommendation appears throughout the NT
documentation and white papers, as well as in computer industry publications. Perhaps the best place
to start comparing SCSI and IDE is to examine the reasons behind this recommendation and find out
why people feel so strongly about using SCSI with NT.
Origins of SCSI
The SCSI interface, which debuted in the early 1980s, was designed to be a universal,
multipurpose I/O bus for personal computers. As you might remember, older PC hardware arrangements
used a separate controller for almost every kind of device, so a system might have a number of
different controller cards: one for the hard disk, one for a tape drive, one for a scanner, and so
forth. These other technologies typically defined specifications involving one or more dumb
peripherals attached to a controller to handle all the I/O operations. SCSI, in contrast, introduced
a specification that called for intelligent controllers and peripherals, and let one controller card
control up to seven daisy-chained devices.
The first implementation of SCSI, dubbed SCSI-1, was an unofficial, de facto adoption
of SCSI by various vendors in the mid-1980s. SCSI-1 offered an 8-bit wide data path and a 5MHz bus
clock rate, yielding asynchronous transfer rates of up to 1.5MBps and synchronous transfer rates of
up to 5MBps. (Asynchronous transmission requires a handshake, or signal, between the sending
and receiving computers for each byte transferred; synchronous transmission transfers a
series of bytes before handshaking occurs, which increases the data transfer rate.) Among SCSI-1's
benefits was the ability to process multiple, overlapped commands simultaneously. SCSI-1 drives
could overlap I/O operations with other SCSI-1 drives in the system, processing data in a
concurrent, parallel (rather than serial) fashion. Unfortunately, numerous incompatibility problems
plagued SCSI-1 products because vendor implementations of the specification differed significantly.
SCSI and More SCSI
As a result of SCSI-1's incompatibility problems, the ANSI-approved SCSI-2 standard emerged to
provide a unified SCSI implementation and assure interoperability between SCSI hardware from
different vendors. This new flavor of SCSI offered a faster 10MHz bus clock yielding a maximum
synchronous data transfer rate of 10MBps. Devices complying with the faster transfer rate were
labeled Fast SCSI-2. The specification included a 16-bit wide version of SCSI (dubbed Fast/Wide
SCSI-2) that doubled bus throughput to 20MBps and increased the maximum number of devices on the
SCSI bus from 7 to 15. Other enhancements included features such as parity checking and an improved
connector specification.
The continued popularity and success of the SCSI-2 standard begat the SCSI-3 standard, which
includes several related SCSI specifications, including the parallel Ultra SCSI standard (8-bit data
path at a 20MBps transfer rate) and the Ultra Wide SCSI standard (16-bit data path at a 40MBps
transfer rate). Luckily, the Ultra SCSI and Ultra Wide SCSI implementations use the same connector
types as SCSI-2 (Fast and Fast/Wide) and are fully backward-compatible with SCSI-2 controllers.
Table 1 summarizes the data path widths, data transfer rates, and recommended cable lengths for the
various SCSI implementations.
Power, SCSI-Style
Without a doubt, the most important feature of SCSI is its ability to perform overlapped,
multitasked I/O. NT's asynchronous I/O model, which lets NT conduct multiple I/O operations
concurrently with multiple devices, enhances SCSI's multitasking capabilities.
SCSI also provides a relatively low CPU utilization compared with other disk controller
standards, such as IDE. Most IDE disk subsystems use a Programmed I/O (PIO) method of data transfer
that requires the system CPU to handle all I/O on behalf of the drive interface. In contrast, SCSI
uses Bus Mastering direct memory access (DMA) to transfer data to system memory. Bus Mastering DMA
uses DMA controller logic built onto the SCSI host adapter (rather than the system DMA controller)
to control the bus and transfer data directly to system memory, bypassing the system CPU entirely.
For more information about the different data transfer methods that disk controllers use, see the
sidebar, "Data Transfer Methods."
SCSI also includes features that help improve performance. For example, to improve the
efficiency of bus utilization, SCSI provides features such as tagged command queuing (which lets the
SCSI host adapter handle queued commands in the most efficient order, rather than in the order the
host adapter receives them), scatter/gather (which provides multiple host addresses for data
transfer in one command packet), and disconnect/reconnect (which lets SCSI devices disconnect from
the bus when they aren't using it and reconnect when they need to transfer data).
SCSI Pitfalls
As the old saying goes, every rose has its thorn. Although SCSI-2 and SCSI-3 are
high-performance, robust standards, implementing them can be difficult. In addition to cable
termination and SCSI ID problems, mixing slow and fast devices on a bus can cause timeout and reset
errors. With reasonable planning, you can easily avoid these problems. (For more information about
SCSI termination, see the sidebar, "SCSI Termination," on the Windows NT Magazine
Web site--http://www.winntmag.com. For tips about troubleshooting SCSI problems, see Bob
Chronister's Tricks & Traps columns, or post your questions on the Windows NT Magazine
forums--http://www.winntmag.com/forums.)