| |
About
IDE
IDE, or more formally, IDE/ATA,
is the most common system for connecting a hard drive to a PC. In modern
systems (to which this discussion is limited), they plug directly into
the mother board through a 40 pin cable. Most mother boards offer 2 separate
IDE channels and thus 2 connectors on the board. Each connector can support
2 IDE devices, be they disk drives, CD drives, tape drives, removable
drives and so on. If a channel has 2 devices on it, one must be designated
a master and the other a slave. This is done simply by moving or removing
a jumper on the drive itself. As a result of this configuration, any system
can have 4 IDE devices connected to it. Using an external controller board
connected to the PCI
bus supporting 2 additional channels, up to 8 devices and be supported
on a PC. This is the limit, and attempting to add the other 4 devices
with an extra controller will consume more interrupts and other system
resources. This contrasts with modern SCSI
which can have up to 15 devices on a controller and occupies the same
amount of system resources regardless of the number of devices connected
up to that limit.
The
History of IDE
IDE
replaces older interfaces such as ST-506 and ESDI. Through the years,
many changes have been made to the IDE standard as defined by ANSI.
The original standard, call simply ATA called for 2 devices on the same
channel configured as master and slave. It also defined PIO
modes 0, 1 and 2 and DMA
single word modes 0, 1 and 2 and multiword mode 0. However, this standard
had problems. Often drives by different manufacturers wouldn't work if
combined on a single channel as master and slave. ATA-2 added the faster
PIO modes 3 and 4 (mode 4 being the common default PIO mode for modern
PCs), faster DMA multiword modes 1 and 2, the ability to do block
mode transfers, Logical Block Addressing or LBA,
and improved support for the "identify drive" command that allows
the system to interrogate the drive for manufacturer, model and geometry.
The terms "Fast
ATA and Fast ATA-2" are the inventions of Seagate
and Quantum. They are not really
standards and only denote drives that are compliant to all or part of
the ATA-2 standard. ATA-3, however, was a real standard that improved
reliability and defined the SMART
feature in disk drives. It was followed by the current Ultra ATA or UATA.
UATA also goes by many other names like UDMA, DMA-33/66 and ATA-33/66.
UATA isn't really a new standard, and UATA drives are still backward compatible
with ATA and ATA-2 systems. Ultra ATA is the term given to drives that
support the new DMA modes that provide up to 33 MB/s (UDAM-33) or up to
66 MB/s (UDMA-66) transfer rates with 100 MB/s just over the next hill.
Both UDMA versions support CRC
error checking that assures data integrity through the IDE cable, which
was a source of serious problems in previous standards. Note that the
UDMA-66 standard calls for an 80 conductor cable instead of the 40 conductor
cable used up to and through UDMA-33.
EIDE or Enhanced
IDE is a designation created by Western
Digital to describe its newer line of high speed drives. It really
isn't a standard at all, but just a marketing tool. However, it has taken
on common public use to refer to all high speed drives and the systems
that support them.
Bus
Mastering
By
default, IDE disk drives transfer data to and from the system using a
protocol called "Programmed Input/Output" or PIO.
This technique requires the CPU to get into the middle of things by executing
commands that shuffle the data to or from RAM and the drive. Thus, the
CPU is tied up doing the work of fetching and stuffing. Also, the time
overhead involved in putting data in the cache, reading each byte into
the CPU, sending it out to the cache again and then routing it to its
destination puts a top end to the speed of the transfers. In most desktop
systems this isn't much of a problem. The system doesn't have much to
do during these transfers anyway, so who cares. Even if a user has several
applications open at once, seldom is more than one actually doing anything,
and during disk I/O, the application will likely be idle anyhow.
Now suppose
you have an activity known as "streaming" going on which is
pulling lots of data from the drive in real time while the application
doing the streaming is simultaneously attempting to process the data as
it arrives. Wow! Now we have a problem. The CPU really does have lots
to do while data is being transferred and so getting tied up actually
DOING the transfers cuts into application processing time. In all fairness,
even at the fastest rate, a disk drive couldn't pump enough data to or
from memory fast enough to cause modern high speed CPUs to break into
a sweat. Even at this high demand level, there is time to shuffle data,
process that data, shuffle it back, service interrupts, update the screen,
send a byte to the modem, and so on.
Enter the DAW.
Now we have a whole new ball game. Not only is the digital audio application
trying to stream data and process in real time, but it needs to stream
multiple files for multi-track mixing at the same time and still supply
CPU horsepower to real time effects like reverbs and compressors. This
forces a limit on the number of tracks in the mix and the number of real
time effects that the project can sustain when attempting to perform real
time production. Under this load, even a Pentium 500 will fall short of
the goal if it has to worry with PIO along with all of this other processing.
If you want to mix more than 6 or 7 tracks using more than a few parametric
EQs and one reverb, you will need to free up some major CPU cycles! The
answer is to put the load of data I/O someplace else so the CPU can just
go to RAM and expect to find the data already there and process it. This
is the idea behind DMA
or Direct Memory Access. Using DMA, a system splits the responsibility
of data communication among several intelligent sub-systems so each can
do a specialized job very well.
Go
to Page 6 (Part 3); Back to TOC
|