At first glance, the combination of HyperThreading and Turbo Mode on the Core i7 processor looks like a winner. One ups the chip's multi-threading ante to frankly ludicrous levels, the other gives a helping hand to clunky old apps that haven't been coded to take advantage of modern multi-core CPUs.
It's thoroughly ironic, therefore, to find that both appear to have something of a falling out with Windows Vista's thread management routines. Before we go any further, we should highlight that these issues are still under investigation, so watch this space.
Anyhow, during our Core i7 testing, we noticed some extremely odd behaviour in Task Manager. When running a single-threaded application, our 64-bit build of Vista was constantly shunting it from one core to another. The same is true when running two separate single-threaded applications at the same time. Vista continually juggles the threads among the available cores.
Big deal? Actually, it is. The problem with regard to HyperThreading is that Vista cannot tell the difference between a real physical core and a virtual core created by HyperThreading. Hence, as far as Vista is concerned, a system running the quad-core Core i7 looks like it has eight 'logicalCPUs', each of them equal.
10 per cent performance hit
As the two threads dance among the available logical CPUs, occasionally they both land on the same physical core. That's not what you want for maximum performance. HyperThreading may be a handy feature, but you will still get more performance when running two software threads on two separate cores than one dual-threaded core.
In our initial testing, it appears this occasional overlap of threads on the same core hits performance to the tune of approximately 10 per cent compared with running the same load with HyperThreading disabled. Not a massive hit, but definitely a bit of a bummer.
The way Turbo Mode and Vista's thread management interact is even more of a conundrum. With all the thread shunting going on, it's awfully difficult to track whether Turbo Mode is overclocking individual cores as Intel claims it does. Core i7 is a new architecture, so many of the observational software tools we use do not support it.
Similarly, we're not sure we fully trust the ones that do, such as CPU-Z, just yet. Along with the question marks surrounding HyperThreading and Vista's thread management, we're working with Intel to get to the bottom of exactly how Turbo Mode really behaves.





Your comments (1) Click to add a new comment
mikeblas
June 28th
1. This is simply false. It goes into some of the details of how Windows decides which core (or processor) should run which thread. Contrary to the claim in your post, the scheduler in Windows has been HT-aware since Windows Server 2003 and Windows XP. The scheduler factors in pending I/O, core efficacy, cache architecture, and the blocked worklist before deciding what to do.
You can get a copy of "Windwows Internals" to learn more about the Windows scheduler. It's a great read.
With some more research and investigation, I'm sure you'll figure out a model that explains the behavior you're observing.
Before that point, impugning the scheduler implementation in Vista with zero presented evidence of your own, available documentation to the contrary, and incomplete research of your own seems to do nothing more than confuse your readers and dilute your credibility.
Alert a moderator
Tell us what you think
You need to Log in or register to post comments