What is a thread?
A thread in programming terms is the flow of control within a program, the path taken through the instructions -- a bit like the sequence of thoughts you have when working something out. It's analogous to the thread we lose when our concentration lapses. Most software is single-threaded, but multithreaded programs can make use of multiple processor chips to run two things at once.
What is Hyper-threading?
Hyper-threading is Intel's name for a feature where a single processor can simultaneously run two threads. It's been built into the Pentium 4 since the start, but until recently only enabled for some Xeon chips. With all Pentium 4s from 3GHz speeds upwards, hyper-threading is enabled -- but you can turn it off in your computer BIOS.
A modern processor is made up of many sub-units -- specialised areas that cope with mathematics, program control, data transfer, logical decisions and so on. Intel realised that most of these were mostly idle, because a single thread only uses two or three of these at any one time. Some sub-units were always used, however. The Intel designers duplicated these, so each thread was guaranteed its own essential components, and arranged for the chip to distribute the use of the rest between the threads as required.
Is it the same as having two non hyper-threaded processors?
No. It's a halfway house between a single threaded processor -- just about every common chip made since the seventies -- and two independent processors. With two processors, you are guaranteed to be able to run two threads simultaneously. With hyper-threading, you may be able to run two threads simultaneously, providing they use different parts of the chip at the same time.
Why is Intel doing this?
It makes more efficient use of the processor's silicon, and thus gives a large potential performance boost -- of the order of 25 percent -- for a small additional overhead of around five percent more transistors. Compared to other ways of improving processor performance, such as making the caches bigger, it's miles ahead
What are the downsides?
Not all software works well with hyper-threading. It can slow some software down -- including, to Intel's chagrin, most current benchmark software -- and quite a lot shows little or no improvement. Also, because Hyper-threading makes a lot more of the chip work a lot harder it increases power consumption and thus heat dissipation, stresses cache usage more, and so on.
Can I plug in a hyper-threaded chip as a replacement for my old Pentium processor on an existing motherboard?
Will I need faster memory if I use hyper-threading?
Hyper-threading does make higher demands of your memory than single threaded execution, because two threads running simultaneously can consume more memory bandwidth than one. In the figures Intel has published to date, it has been using Rambus 1066 memory -- the fastest available. No figures have been published for slower memory systems, such as DDR-RAM, but Intel says the speed-up will be more modest.
Should I buy new software?
Intel says not, but it's hard to square that with its claim of great speed improvements if you do have hyper-threading aware software. Most old software won't do that well on hyper-threaded processors, so you may wish to leave the feature turned off. Intel says that things like background virus scanning, digital media encoding and picture processing will use hyper-threading to best effect, but there are many variables that may affect this. Wait until hyper-threading systems are established and real-world experiences have begun to circulate before deciding this.
The more software that is written to make best use of hyper-threading, the better everything will run. Intel is aggressively promoting the techniques and information necessary for software writers to do this, but there will be an indeterminately long period while everyone gets on board. In particular, look for hyper-threading aware versions of traditionally flaky or hardware-sensitive software, such as device drivers and games.
What operating system support is there?
Linux 2.4 onwards has hyper-threading support. The Microsoft story is more complex. Windows 2000 and NT will regard a hyper-threaded processor as two separate chips, which may or may not be helpful -- performance may be compromised, and software licensed for single-processor systems may complain. XP Professional and Home editions do understand and support hyper-threading, although you need to re-install the operating system if you turn hyper-threading on in the BIOS after installing the operating system. If you subsequently turn hyper-threading off, you'll lose around five to six percent performance until you re-install the operating system in single-processor mode.