Hyper Threading Vs. Dual Core Processing
Every modern operating system is able to execute several programs at a time, dynamically sharing the load among all the available logical processors (multi-tasking). If possible, the OS will distribute the workload on a much deeper level, based on threads (multi-threading, if applicable). Multi-tasking enables modern computing as we know it, letting the user run several applications and a large number of system services without any noticeable performance impact. Multi-threading, however, permits a performance boost that will be higher than any of the clock speed increases we've observed since AMD and Intel started to face off against each other.
These dual core chips have been hyped for quite a while, and for good reason - they should in fact be regarded as the most substantial advance in processor development for many years, whether you favor AMD or Intel. A system equipped with one of these two-headed beasts will be capable of providing performance very close to what a real dual processor system can accomplish.
Intel tried to anticipate the value of having two fully featured processors in a chip, with the introduction of Hyper Threading (HT) in 2002. The clock speed race was the simple reason for HT Technology being introduced to the Pentium 4 architecture. A blazing 3.06 GHz had already been reached, and Intel's execution pipeline had already grown to a longish 20 stages. In contrast, the AMD Athlon XP worked with 10/15 stages (ALU/FPU) while the Pentium III had to go through 10 stages (12 for Tualatin and Pentium M models). AMD's Athlon 64 processors also featured a 12-stage pipeline.
On the one hand, a deeply pipelined CPU is able to take care of multiple actions within a processing cycle. This is favorable when command extensions such as SSE2 and SSE3 apply. On the other hand, each and every operation will cause the CPU to go through most of these stages, which can easily end up wasting valuable clock cycles. To compensate in part, Intel implemented logic that can provide a higher average utilization of the Pentium 4 pipeline - which has grown to 31 stages with the current Prescott architecture, by the way - by pretending that there are two logical processing units.
While a Hyper Threading processor will never be able to get close to dual processor performance, it does manage to alleviate the effects of running an application that requires enough CPU time to effectively stall the whole system (leading to the annoying "this application is not responding" message). If you have happened to work on a dual processor system or on a system with Hyper Threading enabled, you may have noticed that there is a steady responsiveness - that's basically what Hyper Threading allows. There are some applications that speed up with HT, while some others can even slow down; on average, however, using the processor doesn't feel that different than a conventional CPU.
Intel is proud of Hyper Threading, considering it an important intermediate step on the journey from single core to multicore chips. The firm believes that HT Technology actually paved the way for applications to be thread-based, as this allows for significant performance benefits on HT capable machines. In fact, Intel did a lot to bring forward thread-optimized programming. AMD, on the other side, has always said that Hyper Threading would remain a temporary feature and basically would not be required in the future, which is why no AMD processor provides that feature.
As always, the answer lies somewhere in the middle. While it is true that a gamer usually does not run multiple applications at a time - in order to leave all the processing power to its "precious" - professionals may likely be dealing with several concurrent programs, giving Hyper Threading some room to do its thing. In addition to that, virtually everyone runs an anti-virus client and/or firewall software today. As long as the number of background services or the level of their activity does not exceed a certain threshold, any single or non-HT processor will easily be able to cope without the user taking any notice. But the more activities a system performs at a time, the more desirable Hyper Threading will be. The same observation applies to the new dual cores, which brings us back to the subject of this article.