With the increase in performance of hard disks over the last few years, the use of programmed I/O modes became a hindrance to performance. As a
result, focus was placed on the use of direct memory access (DMA) modes. In particular,
bus mastering DMA on the PCI bus became mainstream due to its efficiency advantages. If
you have not yet, you should read the description of the various
DMA modes and how bus mastering DMA works; this will help you understand this page
much better.
Of course, hard disks get faster and faster, and the maximum speed of multiword DMA
mode 2, 16.7 MB/s, quickly became insufficient for the fastest drives. However, the
engineers who went to work to speed up the interface discovered that this was no simple
task. The IDE/ATA interface, and the flat ribbon cable it used, were designed for slow
data transfer--about 5 MB/s. Increasing the speed of the interface (by reducing the cycle
time) caused all sorts of signaling problems related to interference. So instead of making
the interface run faster, a different approach had to be taken: improving the efficiency
of the interface itself. The result was the creation of a new type of DMA transfer modes,
which were called Ultra DMA modes.
The key technological advance introduced to IDE/ATA in Ultra DMA was double
transition clocking. Before Ultra DMA, one transfer of data occurred on each clock
cycle, triggered by the rising edge of the interface clock (or "strobe"). With
Ultra DMA, data is transferred on both the rising and falling edges of the clock. Double
transition clocking, along with some other minor changes made to the signaling technique
to improve efficiency, allowed the data throughput of the interface to be doubled for any
given clock speed.
In order to improve the integrity of this now faster interface, Ultra DMA also
introduced the use of cyclical redundancy checking or CRC on the
interface. The device sending data uses the CRC algorithm to calculate redundant
information from each block of data sent over the interface. This "CRC code" is
sent along with the data. On the other end of the interface, the recipient of the data
does the same CRC calculation and compares its result to the code the sender delivered. If
there is a mismatch, this means data was corrupted somehow and the block of data is
resent. (CRC is similar in concept and operation to the way error
checking is done on the system memory.) If errors occur frequently, the system may
determine that there are hardware issues and thus drop down to a slower Ultra DMA mode, or
even disable Ultra DMA operation.
The first implementation of Ultra DMA was specified in the ATA/ATAPI-4 standard and
included three Ultra DMA modes, providing up to 33 MB/s of throughput. Several newer,
faster Ultra DMA modes were added in subsequent years. This table shows all of the current
Ultra DMA modes, along with their cycle times and maximum transfer rates:
Ultra DMA
Mode |
Cycle Time
(nanoseconds) |
Maximum Transfer
Rate (MB/s) |
Defining Standard |
Mode 0 |
240 |
16.7 |
ATA/ATAPI-4 |
Mode 1 |
160 |
25.0 |
ATA/ATAPI-4 |
Mode 2 |
120 |
33.3 |
ATA/ATAPI-4 |
Mode 3 |
90 |
44.4 |
ATA/ATAPI-5 |
Mode 4 |
60 |
66.7 |
ATA/ATAPI-5 |
Mode 5 |
40 |
100.0 |
ATA/ATAPI-6? |
The cycle time shows the speed of the interface clock; the clock's frequency is the
reciprocal of this number. The maximum transfer rate is four times the reciprocal of the cycle
time--double transition clocking means each cycle has two transfers, and each transfer
moves two bytes (16 bits). Only modes 2, 4 and 5 have ever been used in drives; I'm not
sure why they even bothered with mode 0, perhaps for compatibility. Ultra DMA mode 5 is
the latest, and is implemented in all currently-shipping drives. It is anticipated that it
will be included in the forthcoming ATA/ATAPI-6 standard.
Note: In common parlance,
drives that use Ultra DMA are often called "Ultra ATA/xx" where "xx"
is the speed of the interface. So, few people really talk about current drives being
"Ultra DMA mode 5", they say they are "Ultra
ATA/100".
Double transition clocking is what allows Ultra DMA mode 2 to have a maximum transfer
rate of 33.3 MB/s despite having a clock cycle time identical to "regular DMA" multiword mode 2, which has half that maximum.
Now, you may be asking yourself: if they had to go to double transition clocking to get to
to 33.3 MB/s, how did they get to 66 MB/s, and then 100 MB/s? Well, they did in fact speed
up the interface after all.
But the use of double transition clocking let them do it
while staying at half the speed they would have needed. Without double transition
clocking, Ultra DMA mode 5 would have required a cycle time of 20 nanoseconds instead of
40, making implementation much more difficult.
Even with the advantage of double transition clocking, going above 33 MB/s finally
exceeded the capabilities of the old 40-conductor standard IDE
cable. To use Ultra DMA modes over 2, a special, 80-conductor IDE cable is required.
This cable uses the same 40 pins as the old cables, but adds 40 ground lines between the
original 40 signals to separate those lines from each other and prevent interference and
data corruption. I discuss the 80-conductor in much more detail
here. (The 80-conductor cable was actually specified in ATA/ATAPI-4 along with the
first Ultra DMA modes, but it was "optional" for modes 0, 1 and 2.)
Today, all modern systems that use IDE/ATA drives should be using one of the Ultra DMA
modes. There are several specific requirements for running Ultra DMA:
- Hard Disk Support: The hard disk itself must support Ultra DMA. In
addition, the appropriate Ultra DMA mode must be enabled on the drive.
- Controller Support: A controller capable of Ultra DMA transfers must be
used. This can be either the interface controller built into the motherboard, or an add-in
IDE/ATA interface card.
- Operating System Support: The BIOS and/or operating system must support
Ultra DMA transfers, and the hard disk must be set to operate in Ultra DMA in the
operating system.
80-Conductor Cable: For Ultra DMA modes over 2, an
80-conductor cable must be used. If an 80-conductor cable is not detected by the system,
66 MB/s or 100 MB/s operation will be disabled. See the
discussion of the 80-conductor cable for more.
On new systems there are few issues with running Ultra DMA, because the hardware is all
new and designed to run in Ultra DMA mode. With older systems, things are a bit more
complex. In theory, new drives should be backwards compatible with older
controllers, and putting an Ultra DMA drive on an older PC should cause it to
automatically run in a slower mode, such as PIO mode 4. Unfortunately, certain
motherboards don't function well when an Ultra DMA drive is connected, and this may result
in lockups or errors. A BIOS upgrade from the motherboard manufacturer is a good idea, if
you are able to do this. Otherwise, you may need to use a special Ultra DMA software
utility (available from the drive manufacturer) to tell the hard disk not to try to
run in Ultra DMA mode. The same utility can be used to enable Ultra DMA mode on a drive
that is set not to use it. You should use the utility specific to whatever make of drive
you have.
I discuss more issues and considerations for implementing Ultra DMA in the section on configuration.
Next: 16-Bit and 32-Bit Access