Freigeben über


Are your IDE drives slower than they used to be?

This weekend during an unexpected burst of energy, I tackled the problem of my IDE drive which seemed to have gotten slower recently. A little detective work lead me to the difference between PIO and DMA mode. (Which I previously hadn't paid any attention to. Why not? Windows takes care of all this hardware stuff, right?)

If you have sufficiently current hardware, DMA mode should be much faster than PIO mode. As I understand it (and I'm not a hardware geek) PIO mode sends the data through the motherboard first, and makes the CPU do more work.

To see if this might be the problem, in the Device Manager, expand "IDE ATA/ATAPI controllers".  Right click on "Primary IDE Channel", then go to the "Advanced Settings" tab. In my case, the "Current Transfer Mode" was "PIO", not the expected "Ultra DMA Mode 5".

Why does this happen? Check out the knowledge base article: https://support.microsoft.com/?kbid=817472 In a nutshell, Windows sets the mode back to PIO mode if it sees enough CRC errors.

One web page suggested uninstalling the Primary IDE Channel, then rebooting. When the system reboots, Windows automatically detects the IDE Channel and installs it anew. Trying this, I was pleasantly to see that it worked. My Primary IDE Channel was happily back in Ultra DMA Mode 5, and my system was much zippier.

Another good read on this subject: https://www.michna.com/kb/WxDMA.htm

Comments

  • Anonymous
    October 18, 2004
    The comment has been removed
  • Anonymous
    October 19, 2004
    This is a hangover from the old 6Mhz AT bus design where DMA cycles were slower than the equivalent REP INSW x86 instruction. The fastest way to get data moving on the AT bus was memory mapping a card as a 16 bit card and using REP MOVSW (IIRC this took 5 rather than 6 bus cycles for the IO equivalent) and worked quite nicely. One problem was the SBHE signal (which decided if an access was 8 or 16 bit) was only supposed to work on 128K byte boundaries (it was designed for DRAM cards), you could get decodes to work on less than that (typically 16K or 32K) but to do so meant you violated the worst case timing if you looked at the circuit diagrams in the AT tech reference.

    The 80/40 cable bit reminds me that during a beta (of either XP or Win2K I can't remember for sure) you could install quite happily on a 40 way cable but come the first reboot the whole thing went badly wrong if you had UltraDMA drive as windows tried to go into UltraDMA mode on the first reboot, ugly and not obvious as the hardware worked fine with Win98.
  • Anonymous
    October 20, 2004
    Here is a tip about video card acceleration. Yesterday I noticed my ati 9600 card (Matt, check this too since you have 9500 card) smartgart reports agp acceleration as 'off' in displayer properties->settings->advanced. My motherboard is ecs k7s5a and it uses SIS chip instead of via chip. I normally install via4in1 because I mostly use via chip in the past. Finally I had this figured out and went to sis.com.tw and downloaded latest sis agp driver 117e. It worked right away and windows report 4x agp now because my mobo doesn't support 8x.