Slashdot Mirror


What is Ultra DMA?

DAQ42 asks: "Okay, so I've been reading these illusive and cryptic things about ATA hard drives and Ultra DMA settings. There are all these wonderful charts and diagrams everywhere that show the different DMA modes and what they mean as far as seek time and transfer rates but what do they mean to me, the guy who wants to make his hard drive that is set to DMA mode 2 (33.3MB/sec) and set it to DMA mode 3 (66.6 MB/sec). These fun little things make my head go foop. I've seen plenty of stuff about writing or editting your own device drivers for Linux but what about for those of us using fun gimpy stuff like Macs or PC's or other evil toys of destruction."

11 of 35 comments (clear)

  1. Windows & Macs? Oh my. by Anonymous Coward · · Score: 5
    To utilize the higher Ultra DMA speeds of your drive you need two things.

    First, and most importantly you need an IDE controller that supports UDMA66. Your 486 won't have this onboard. You'll need to get a new controller card. If you have a newer Pentium clas machine, then you may already have it onboard.

    The second thing you need is the right driver. You need to get the latest UDMA66 capable driver for you IDE controller.

    Have fun, and after your all done... Betcha can't tell the difference.

  2. "Ultra 160 no better than Ultra 80"...? by Wakko+Warner · · Score: 4
    Sure, maybe a single drive... but if you've got 5 or 6 of those 15K RPM Seagate bastards on a single chain, you'll easily max out Ultra 80, but you'll still have a little headroom on an Ultra 160 chain. Sure, no drive can actually do 160MB/second ALONE, but a bunch of them sure can.

    - A.P.

    --
    Forget Napster. Why not really break the law?

    --
    "Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
  3. Re:Pretty standard... by keepper · · Score: 4

    IDE RAID performance is GREATLY improved by having all drives sit in their own channel.

    Also, if you were looking for best perfomance, and reliability, Raid 10 is the way to go. For a small array, raid 5 is not much of a performance boost over a single drive. ( parity calcs )

    Also, those 3ware raid cards rule under FreeBSD, and are not too expensive.. :) ( ~$250 4 channel )
  4. Re:DMA by ScottG · · Score: 5

    A good write up about using hdparm to improve hd performance and the risks involved can be found here:

    http://www.oreillynet.com/pub/a/linux/2000/06/29/h dparm.html

    ...including some discussion of what those DMA modes are and their merits.

    --
    Hey, who else could go for some flapjacks right now?
  5. Be careful with hdparm by dead_penguin · · Score: 4

    hdparm can be a great little utility for speeding up your system-- if used carefully! Before doing *anything* with it (other than simple benchmarking), make sure you have backups of all your data. Putting a drive/controller combination into a mode they don't support can completely mess up your system. Believe me, I've done it twice already, and even with backups it's still a huge pain in the ass to reinstall.

    --

    It's only software!
  6. DMA and other options by z4ce · · Score: 5

    Can all be changed with hdparm. I use
    hdparm -W1 -m16 -u1 -c1 -k1 -d1 /dev/hda
    on start up.
    That is...
    -W1 enable the write caching feature
    -m16 allow 16 blocks per i/o interrupt

    -u1 IRQ unmasking.. HUGE proformance increase. If you notice everything seems to stop when your doing a lot of I/O be sure to turn this on!

    -k1 keep settings.

    -d1 enable DMA

    From my simple benchmarks/experience these seem to be fastest settings for my IBM DeskStar 14gb HD. Your mileage may vary.

    Ian

  7. Clarification by levendis · · Score: 5

    Technically, DMA just means Direct Memory Access, and just about any peripheral that uses large amounts of data (SCSI card, network cards, etc) is using DMA these days (hopefully). DMA is just a way of moving data from the card to the host computer's memory with little CPU intervention, i.e. instead of copying data bit-by-bit from your IDE controller, the driver just says "copy block 1152 into memory location 853E4210" and the hardware takes care of the actual data movement.
    So the UltraDMA stuff you are asking about is more accurately called UltraATA. ITs basically an extension of the ancient AT disk interface spec to encompass new features like DMA, auto-detection, higher raw data rates, removable media, etc. (I think UltraATA even supports some SCSI-like features such as disconnect)

    ----

    --
    ---- I made the Kessel Run in under 11 parsecs.
  8. DMA by green+pizza · · Score: 5

    DMA is direct memory access, that is, an operation that will bypass the CPU for better performance.

    To enable DMA for a hard drive:
    hdparm -d1 /dev/hda

    To disable DMA for a hard drive:
    hdparm -d0 /dev/hda

    To enable Ultra-DMA/66:
    hdparm -X66 /dev/hda

    To measure the transfer rate of a hard drive:
    hdparm -Tt /dev/hda

    To see what options are enabled for a hard drive:
    hdparm /dev/hda

    To see many details about your drive:
    hdparm -i /dev/hda

    I have an onboard ATA/33 IDE controller and a hard drive that supports ATA/66, so obviously I cannot use ATA/66. But by using stock ATA/33 and turning DMA on, I was able to get about a 30% boost in performance when tested by hdparm. I only know the basics and a lot of is still cloudy and/or seems to be voodoo magic. Could someone please explain this better for me as well? Also, should the above commands be entersted into an RC startup script?

  9. Pretty standard... by krismon · · Score: 5

    It's getting to be pretty standard, UDMA, which is fancy for faster Direct Memory Access. You would need the hardware for it... most new machines have UDMA/66 built in, some older ones have UDMA/33, and the newest of the new have UDMA/100, these are the speeds that the controller will (theoretically) transfer data at. You'll also need Hard drives that support the protocols... it should also be noted that things are backward compatible... you can run a UDMA/100 capable drive on a 66 controller, but it will run at 66. and you can run a udma/66 drive on a 100 controller but it will run at 66 (will always run at the slower speed, doh!).

    If you have an older machine... There are add-on PCI IDE controller cards that support UDMA 66 or 100, they are pretty reasonable at under $50 (100) and some cheaper 66 versions can be had for under $25.

    I have setup a FreeBSD fileserver with 4 60GB maxtor udma/100 drives and a promise udma/100 controller running vinum(freebsd version of lvm) with a raid 5, pretty easy to do, but not the fastest thing in the world.

    Windows: I don't believe DMA is enabled by default on windows(both for Hard drives & CD/DVD), but there is a setting in the device manager of the control panel.

    Linux: hdparm, man hdparm.

    Mac: I believe the G4's have UDMA/66 built in.

    Also note that the cable is different... you can't use the old IDE cable to run in UDMA mode. most controllers come with (80 pin?) cables. And jumper settings on the drives alone don't determine master/slave, The cable will determine this also.. they will be labeled master & slave as well as be color coded(on good cables).

    That's about all I know. ;)

  10. Use Google... by gus+goose · · Score: 5

    Whu get thousands of answers from others when you could have used Google?

    --
    .. if only.
  11. A few comments and questions about the DMA world.. by Zeio · · Score: 5

    I have noticed in the recent past that there has been a lot of marketing whoring with regards to Ultra DMA and its various speeds.

    I am most disappointed with IDE in general from a performance standpoint. I go through hardware all the time because of the nature of my job, and two things stick out as the sore thumb in bad system performance. The first is the availability of huge quantities of memory, the second being the hard drive.

    As far as controllers go in the this area of performance, I tend not to care for anything that is not Intel or Promise, not that I have a fetish for Intel goods. I've yet to try any striping/parity striping controllers yet either. My observation of IDE thus far, regardless of bus 'speed' is somewhat negative. High CPU usage, bad multi-thrashability (e.g., hitting the disk with nasty requests in multiple ways all at once). I feel the hard disk holding me up, especially in Windows. I have found the following registry keys for Windows 2000 to enable DMA66+ operations, FYI:

    From this site...

    To activate the ATA/66 (UDMA/66) setting, you need to run Regedit (or Regedt32) and go to:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Contro l\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\000 0

    If using Regedt32 uncheck "Read Only Mode" in the Options menu. Note that the "0000" key above might show as "0001", "0002" or "0003" on your machine, depending on your particular hardware settings. Select the key appropriate to your case. Right-click to create a new DWORD [REG_DWORD] Value, call it "EnableUDMA66" (no quotes), and type 1 in the Decimal box to enable ATA/66 (UDMA/66) support. To disable it, change the Decimal value to 0, or delete the "EnableUDMA66" Value altogether. Reboot when done.

    A MUST: To properly enable the UDMA/66 setting, you need to have your ATA/66 (or ATA/100) capable drive(s) hooked up to a different IDE channel than the one your older (E)IDE (even if UDMA/33 capable) drive(s) are connected to!

    Another site has directions for NT 4.0 Sp5+ here.

    Another useful site is here, BMDRIVERS.

    Here and there you will see reports about reduced CPU usage. This is laughable. One place indicates that mass transfers were taking 90% CPU and with the new and improved drivers, a "mere 56%". Meanwhile all my SCSI drives never elevate the CPU at all.

    Another alternative to using all these tweaks and hacks is to just download the Intel drivers (if you have an Intel chipset which you should for PCs, save the glorious Athlon).

    I have noticed various anomalies with these drivers.

    Sorry for giving so much attention to Windows, these operating systems tend to need the most attention. As far as unix goes, the hdparm suggestions I have seen so far seem correct, thanks for the input.

    The SCSI paradigm is greatly suffering from the same pomp with festering numbers. My experience has been that Ultra 160 drives perform no better than Ultra 80. Open Magazine did a whole battery of benchmarks to illustrate its uselessness (unable to locate link).

    I personally look for fast rotational speed, good platter density and fewer platters and a fast media rate, and lastly seek times.

    IDE and its Ultra friends are great for huge drives to dump crap onto, and even mirror. Keep the OS and the swap file on a SCSI drive, and you can use your CPU for something else.

    --
    Legalize the constitution. Think for yourself question authority.