Print 71 comment(s) - last by heulenwolf.. on May 19 at 1:40 PM

Improved hardware and software compatibility one of the top three goals of Windows 7 development

Microsoft is working hard to make things better for the launch of Windows 7 following the lukewarm reception to Windows Vista. Vista was plagued with early hardware and software incompatibility issues that were one of the main reasons enterprise customers refused to migrate from XP.

Microsoft says that among the improvements in Windows 7 is better support for Hyper-Threading according to Microsoft's Bill Veghte. Veghte says that Microsoft has been working closely with Intel to beef up Windows 7’s support for Hyper-Threading. Hyper-Threading it a technique used by Intel to allow processing tasks to be divided among multiple cores on a processor.

Veghte said at the Microsoft TechEd conference, "The work that we've done in Windows 7 in the scheduler and the core of the system to take full advantage of those capabilities, ultimately we think we can deliver a great and better experience for you. We need to make sure the ecosystem is really, really ready."

Veghte is keen to get people to understand that Windows 7 won’t suffer from the same early problems Vista had that prevented the operating system from making headway in enterprise environments. He says that Windows 7 is "very, very close" to achieving full compatibility with virtually all hardware and software makers.

Microsoft currently expects to finish Windows 7 by mid-August and offer a final version to consumers and businesses by the holiday shopping season. That is a key target for Microsoft as a better operating system could woo consumers to buy new computers for the holidays. Better computer sales is certainly something that both Microsoft and computer makers need. Microsoft has admitted that Windows sales are down 16% in the most recent fiscal quarter.

Comments     Threshold

This article is over a month old, voting and posting comments is disabled

RE: Really HT?
By TomZ on 5/15/2009 12:54:21 PM , Rating: 5
For example, the OS might want to schedule busy threads on different physical cores rather than putting them on two virtual cores within a single HT physical core. By scheduling them on different cores they will run faster than if they are sharing the same core.

RE: Really HT?
By michael2k on 5/15/09, Rating: -1
RE: Really HT?
By leexgx on 5/15/2009 1:50:23 PM , Rating: 5
from windows XP (maybe SP1 and above i think) the OS is aware of HT, scheduler should work well but can ome times put work onto an HT thread when it should be on an real core thats free, i guess with windows 7 thay makeing that work better

RE: Really HT?
By leexgx on 5/15/2009 1:51:57 PM , Rating: 2
ome = some

RE: Really HT?
By micksh on 5/15/2009 2:33:10 PM , Rating: 5
Except the point of HT is that the OS can't tell the difference between a virtual core and a physical core.

No, that's not the point. The OS can tell the difference because Intel provides API for it.

So MS can use it to schedule load more efficiently.

RE: Really HT?
By foolsgambit11 on 5/15/2009 2:34:22 PM , Rating: 5
The OS knows what processor is in the computer. The OS knows (or at least can know) whether HyperThreading is enabled or not. And the OS knows how the CPUs are numbered when hyperthreading is turned on versus off. So it is a trivial problem to determine which cores are virtual and which are physical.

As an example, without HT, a dual core processor may be exposed as CPU0 and CPU1, but with HT enabled, CPU0 may be exposed to the OS as CPU0 and CPU1, while the old CPU1 becomes CPU2 and CPU3. Since this will be a consistent and regular identification process, the OS can be programmed to know which physical cores become which logical cores, and adjust each CPU's workload accordingly.

RE: Really HT?
By jonmcc33 on 5/15/2009 3:50:46 PM , Rating: 2
HyperThreading is enabled in the hardware, not the software. I remember many people stating that my Pentium 4 2.8C wouldn't support HyperThreading in Windows 2000 Pro...but it did. Windows 2000 Pro saw two separate processors and I was able to assign affinity to either.

RE: Really HT?
By Alexstarfire on 5/16/2009 3:05:52 AM , Rating: 3
That's like saying you can just use any video card and get 100% optimization in every program. Just because the hardware supports it doesn't mean the software is going to use it well. This is one of the reasons why programs didn't see a jump in performance when moving from one to two cores, back when dual-core was new. OS and hardware sees two cores, but the program itself is still using just the one like it always had. it's the same principle except more complicated since it's not an actual core.

RE: Really HT?
By jonmcc33 on 5/16/09, Rating: 0
RE: Really HT?
By Feckless Plaintiff on 5/16/2009 11:41:58 AM , Rating: 3
Windows 2000 is notorious for being a hyperthreading-unaware OS. In many cases, with multi-threaded applications, significant performance degradation has been observed with hyper-threading enabled under this OS. So it's generally strongly advised that hyper-threading be disabled on Windows 2000 machines.

Multi-core is of course different, and as Windows 2000 was designed for multi-CPU machines, it handles multi-core machines just fine. This is very different from treating a virtual CPU as a real CPU and thus incurring unnecessary performance penalties at times.

RE: Really HT?
By BikeDude on 5/18/2009 3:34:02 AM , Rating: 2
FWIW, you are correct.

Some interesting tidbits can be picked up on various MSFT blogs.

"Since the scheduler doesn't realize the connection between the virtual CPUs, it can end up doing a worse job than if you had never enabled hyperthreading to begin with." (concerning NT4/2000)

RE: Really HT?
By jonmcc33 on 5/18/2009 7:53:30 AM , Rating: 2
There's a difference between a CPU and a GPU. Not sure why you would even bother to mention one as they are drastically different.

Look, I don't care what you say. It was Windows 2000 and media encoding improved when Hyperthreading was enabled. There's nothing you can say or do to change what happened and really...Windows 2000 is a bit old to be debating over. I was just making a valid point.

RE: Really HT?
By ilkhan on 5/16/2009 3:04:00 PM , Rating: 3
Theres no physical cores vs logical cores, they're all logical cores.
But win7 will know which 2 logical cores are the same physical core, and thus can schedule threads for different physical cores. Or in power save mode perhaps schedule on the same physical core, leaving the other cores in deep sleep until needed.

RE: Really HT?
By foolsgambit11 on 5/16/2009 6:39:03 PM , Rating: 2
I agree that to the unknowing reader, there is a high likelihood of confusion from my post. I didn't mean to imply that physical cores and logical cores were exclusive sets.

I didn't think about using a full physical core in power saving mode. That's a really good idea.

RE: Really HT?
By kaoken on 5/16/2009 7:46:54 PM , Rating: 2
You are contradicting yourself sir.

RE: Really HT?
By MrPoletski on 5/16/2009 7:08:59 AM , Rating: 2
not to mention that there may be two separate threads acting on the same data space, hence your caching will line up nicely if you run them on the same physical but opposing logical cores.

RE: Really HT?
By mindless1 on 5/16/2009 1:53:39 PM , Rating: 2
You cannot have two separate threads using the same data space, each depends on the freshness of data that isn't concurrently being altered.

RE: Really HT?
By pcfxer on 5/16/2009 2:49:12 PM , Rating: 2
Actually you can have two threads running WITHIN the same data space, in fact, that is the DEFINITION of multi-THREADING. A process forks off a thread or, threads, and each thread exists within the same process space.

Multi-PROCESSING is different, because each PROCESS gets its own memory space, but each process that is forked takes a copy of the memory space of the parent process and runs with it. Secondly, your argument is nullified by the fact that the article has nothing to do with IPC and simply refers to the logic that the kernel's schedule may use when hyper-threading is enabled.

This entire argument should have been ended when the Intel API for hyper threading was posted, but I suppose everyone else doesn't understand the barrier between software and hardware.

And no, SOFTWARE doesn't give a DAM about what the hardware is. Tell me this if it does, why can't I assign data to my hard drive when I request for space in memory (malloc())?

RE: Really HT?
By MrPoletski on 5/17/2009 7:14:46 AM , Rating: 1
Hmm... because your OS knows damn well there is far too much virtual mammory on your hard disk already?;)

"Death Is Very Likely The Single Best Invention Of Life" -- Steve Jobs
Related Articles

Copyright 2016 DailyTech LLC. - RSS Feed | Advertise | About Us | Ethics | FAQ | Terms, Conditions & Privacy Information | Kristopher Kubicki