Tuesday, December 22, 2009

PIO Mode slows your computer to a crawl

I’ve come across several computers in the past few months that have experienced an inexplicable slow down in performance. They were all single-core Pentium M machines running Windows XP. The owners complained that recently the machines had been running extremely slowly. Simple multimedia tasks like watching Youtube videos or browsing the internet while on a Skype Video call were too much for the computer to handle, causing choppy video and sound.

At first I checked all the usual candidates such as startup programs, antivirus, etc. Optimizing these settings did nothing. And it seemed like the hard drive was extremely slow. Processor usage was also always spiking near 100%. My initial conclusion was that these multimedia programs had become too resource-intensive for the older processors to handle.

These were some additional symptoms that I noticed:

  • Windows XP took 2-3 minutes just to get to the login screen
  • The hard drive light blinked slowly, like there was a delay in loading data
  • Every computer operation seemed to take an inordinate amount of CPU usage, and multiple tasks slowed to a crawl.
  • DVD’s played very choppily, with continual breaks in the sound

I then remembered about an obscure setting that could be causing the problems. The hard drive had reverted to a slow transfer mode known as PIO (Programmed Input/Output) from the default DMA mode (Direct Memory Access). Essentially, in PIO mode, the CPU has to process any data accessed from the hard drive instead of the data directly transferring to system memory. (See the image below).

Image8 This explained why simple tasks required so much processor usage. Also, in streaming videos, because the processor had to both process the downloading data as well as process the video, it was simply overloaded.

The reason that the hard drive or optical reverts to this mode is rather obscure. According to Microsoft:

After the Windows IDE/ATAPI Port driver (Atapi.sys) receives a cumulative total of six time-out or cyclical redundancy check (CRC) errors, the driver reduces the communications speed (the transfer mode) from the highest Direct Memory Access (DMA) mode to lower DMA modes in steps. If the driver continues to receive time-out or CRC errors, the driver eventually reduces the transfer mode to the slowest mode (PIO mode).

Windows automatically reduces performance if it detects errors which arise when the computer resumes from Sleep mode.

Anyway, the fix is quite simple: Go to Device Manager, locate IDE ATA/ATAPI controllers, and right-click on each IDE channel (primary and/or secondary). Under the Advanced Settings tab of each channel, check if any of the connected devices show PIO as the “Current Transfer Mode” (see image below). If so, go to the Driver tab and choose uninstall. Then check the secondary IDE channel in a similar fashion.Image9 When you restart the computer, the IDE channels should be restored to full speed DMA mode (confirm this in Device Manager). Test your videos and general computer performance. You’ll be pleasantly surprised!

This fix brought new life to computers that I had assumed as obsolete.

If this tip helps you solve a problem, please leave a comment! Enjoy!

No comments:

Post a Comment