If I just reinstall windows over an existing installation, are all the programs and setting retained ? Or should I do an upgrade ? I am going to be replacing my processor and mobo with something that has HyperThreading enabled, and windows will need a different HAL for multiprocessor systems .... Or can I change HAL within windows ?
Since your replacing a mobo and CPU I'd suggest a complete format and then reinstall. Windows has a tendency to not like motherboard changes without a format. Of course you could just try and install over your exisitng copy and see what happens.
It is certainly possible to change from the uniprocessor HAL to the multiprocessor version without reinstalling windows (in Win2K at least). When I first installed Win2K on my P4 system, it defaulted to the uniprocessor version for some reason - I guess you may encounter this too. To get windows to use the multiprocessor HAL, just go to device manager and expand the Computer item at the very top of the list. Select ACPI uniprocessor PC (assuming it is indeed using the incorrect driver) and go to properties. Select the driver tab and click update driver. Once windows has restarted you should have two CPU usage graphs in task manager. Having said all that, you may still need to reinstall Windows because of the new motherboard, although it may be possible to simply stick the new motherboard in and then install the relevant chipset drivers over the top of the old ones. I have done this on a few occasions in the past and although it usually works fine, windows can sometimes throw a mental about it. Give it a go first and see what happens: It may work perfectly, in which case you saved yourself a reinstall.