Here's a brief overview of IDE-based drive technologies:
These are older drive technologies. Most non-SCSI hard drives and drive interfaces that you can buy today or are likely to be using are EIDE, although many of the larger drives now available are UDMA.
Bus Master DMA is a technology for increasing the speed of hard disk data transfers which requires support from the motherboard and the BIOS, and at least some support from the drive.
You can learn more at http://developer.intel.com/design/pcisets/busmastr/FAQs.htm.
Ultra-DMA has many names, but we'll just call it UDMA in here.
UDMA is a more advanced technology which provides for even faster throughput, up to 33.3 MB/s, twice that of EIDE, for much lower prices than SCSI. Many new computers come with large UDMA drives and UDMA interfaces, and it's possible to add a UDMA interface card (such as the Promise Ultra33) to an existing system to boost speed, even on older non-UDMA drives.
You can learn great details about UDMA at http://www.quantum.com/src/whitepapers/ultraata/
Note that cable length should be kept shorter for UDMA, compared to plain DMA, preferably less than 30 cm (12") maximum length.
Before we get any farther, let's clear up a misconception. That 33 MB/sec figure is the burst transfer rate, and it's not something you're going to see very often. To explain, here is a clip from udmageneric's UDMA.txt:
Burst (instantaneous) transfer rates are supposed to go from 16.6MB/s (PIO
mode 4) to 16.6MB/s (DMA mode 2) up to 33MB/s (UDMA). In his patch against
kernel 2.1.55, Kim-Hoe Pang actually checked the UDMA burst transfer rate
with a logic analiser: 60ns/word, which translates into 33MB/s.
Note that burst transfer rates only affect data transfers to/from the EIDE
drive cache (476kB for the IBM 6.4GB drive), and IMHO are not particularly
relevant for most Linux users.
The Linux kernel uses as much RAM as possible to cache hard disk data
accesses, and so if data is not in the kernel cache there is little chance
that it will be in the (much smaller) hard disk cache.
Much more relevant is the sustained transfer rate, the speed at
which data can be transferred from the drive to main memory where it
can be used. An easy way to measure the sustained transfer rate is to
use hdparm
, for instance ``hdparm Tt /dev/hda
'' to measure
the rate of the first IDE device.
Here is some data gathered after extensive testing, using the hdparm utility
(also written by Mark Lord):
PIO mode 4 transfer rates under Linux: +/- 5.2MB/s
DMA mode 2 transfer rates under Linux: +/- 7.2MB/s
UDMA mode 2 transfer rates under Linux: +/- 9.8MB/s
As you can see, UDMA is still almost twice as fast as plain EIDE and significantly faster than plain bus mastering DMA.
I don't have any hard numbers to give you, but the general consensus is that high-end SCSI can give better performance than UDMA. However if you've looked at the price tags on any hard drives lately you'll notice that UDMA drives tend to be much less expensive. The performance/price ratio favors UDMA in most cases.