In starting a new job, I was given a Hyper-Threaded machine with Windows XP, and the OS was not utilizing the hyper-threaded aspect of the PC. I just knew that was wrong! So in searching the web I found the top article after a google search which gave information on how to enable hyper-threading on XP. That link is at the bottom of this blog. The document was not a user friendly document and I was documenting this for other co-workers to update their machines. Because of that I decided to publish what I wrote up.

What is hyper-threading?

 Hyper-Threading is basically a sofware solution, in the OS, but an internal hardware solution on the chip, which creates two logical processors on one physical processor. If the chip was designed for hyper-threading, it will allow for the CPU to work on more items in a multhi-threaded environment. For more info check out Hyper-Threading Explained.

Do I have Hyper-Threading Currently?

Check out the Task Manager Performance page (right click on the task bar and choose Task Manager, then open the performance tab). If you don’t see two running cpu boxes, then either your box does not have hyper-threading, or it is not enabled.

Enable Hyper-Threading

To enable HyperThreading do these steps.

  1. Set a System Restore Point for safety.
  2. Find the file Protected System Operating file boot.ini at the very top level of the C:\ drive and make a copy of it. You may have to uncheck Hide protected operating system files in the options of Window’s Explorer, to see the file in Explorer’s list.

  3. Update your copy of Windows via the Windows Update Site. (May have to reboot and recheck until all updates are completed. If you don’t have service pack 1 you may not find the files needed).
  4. Search for these two files, using Windows Find Tool in the windows directory on the hard-drive. Take the latest version of the file found:
    1. ntkrnlmp.exe
    2. halmacpi.dll
  5. Copy the two files to the System32 folder found in the Windows (or WINNT) folder.
  6. Change boot.ini system property to be writable.
  7. Edit the Boot.ini file and remove the option /NoExecute=OptIn.
  8. Where you removed the NoExecute add these options and do not add a newline to the line:
    /kernel=ntkrnlmp.exe /hal=halmacpi.dll
  9. Save boot.ini and restart. Upon restarting it will discover the new logical processesor as a new device and immediately request a restart. Do the restart.

At this point you should see two logical processors after the second restart. If you don’t check your bios during boot-up time. Some bio’ses have the hyper-threading option turned off.

If you system has problems, go back to the original boot.ini file and restart.

This article is based off of Enable Hyperthreading after upgrading motherboard