| DMA Transfers Everyone
knows that Programmed I/O (or PIO) transfers are slower and
take up a lot more processor time than Direct Memory Access
(or DMA) transfers. Just to recap, the fastest PIO transfer mode can
only transfer data at a rate of 16.6MB/s. That's nothing compared to
the 100MB/s that the latest DMA standard supports.
In addition, PIO transfers require the processor's attention. DMA
transfers, on the other hand, use the motherboard's chipset instead
to handle the transactions. So, the processor is freed up to do
something more important than just shuffling mail (which is more or
less what shifting data to and from your IDE devices really is).
You will probably be asking yourself now why I'm even writing a
Windows 2000 tip on this matter. After all, you have already read
through the BIOS
Optimization Guide and implemented the recommendations stated in
that guide. In most cases, I would say that you are right because
Windows 2000 does a great job of enabling DMA transfers for drives
that support them. Unfortunately, sometimes Windows 2000 fails to
detect the drive's DMA transfer capability and enables PIO mode
instead.
The loss of burst transfer rate is one thing. After all, not all
IDE devices can even transfer data at more than 16.6MB/s. For
example, my own 50X ASUS CD-ROM transfers data at a maximum rate of
7.5MB/s. So, in those cases, the loss of burst transfer rate won't
matter much. More important is the fact that PIO transfer modes are
very CPU-intensive. They tie up the processor which could be doing
something more important.
So, how do you make sure Windows 2000 is running all your IDE
devices using DMA transfer modes? Here's how you do it :-
- Go to System Properties by right-clicking on My
Computer or via the Control Panel.
- Select the Hardware tab and you will see the screen
below :-

- Look at the Device Manager section and click on the Device
Manager button.

- This brings up the Device Manager screen.

- Open up the IDE ATA/ATAPI controllers device branch. Then you will
see a list of all the IDE controllers and channels in your system.
Below is an example of what the screen would look like in a
system with an Intel 440BX chipset.

- Now, select any one of the IDE channels, right click and
choose Properties. Or just double click on the IDE
channel. In this example, we will check the Primary IDE
Channel.

- You should then see the screen below :-

- Now, select the Advanced Settings tab to get the screen
below. Ah hah! As you can see, for some reason, Windows 2000
failed to auto-detect DMA transfers for my Ricoh CD-RW drive.
This goes to show that, as advanced as it is, Windows 2000 is
still not infallible.

- To enable DMA mode for the device, just click on list of
options for Transfer Mode and select DMA if available.

- Click OK and reboot. Your IDE device should now be
using DMA transfers. Check the IDE channel's properties page
again and you should see this screen :-

Notes
- If there's an option, you should enable DMA transfers in your
BIOS for this tip to work.
- Do not manually set any PIO mode for your IDE devices
in the BIOS. If your BIOS configures your IDE drive to use the
PIO mode you have set, then Windows 2000 may not detect the
drive's DMA transfer capability properly and use the PIO
transfer mode instead.
- If you have an IDE drive that supports only PIO transfer
modes, setting the Transfer Mode to use DMA if
available won't miraculously enable your drive to use DMA
transfers... unfortunately.
Comments?
If you have a comment or question about this tip, please post
them here.
Thanks for your time and I hope this tip has helped you some! :)
Adrian Wong
Adrian's Rojak Pot
http://www.rojakpot.com/
http://www.adriansrojakpot.com/
|