Technical question about hyper threading

Mat3

Weaksauce
Joined
Apr 2, 2007
Messages
113
Does Windows know the difference between a physical core and a virtual core when it comes to scheduling threads? If there's, let's say a dual core processor with SMT (2 physical cores, 4 virtual cores) and there's a heavy duty thread taking up most of the resources on on core, and then another heavy duty thread starts up, how would it know that the 2nd thread would be best served on the 2nd physical core, and not on the 2nd virtual core of the 1st physical core, where it would fight with the first thread for resources?

I would assume that it doesn't know, and this is one of the reasons why some games show worse performance with Nehalem processors when SMT is turned on.
 
Modern versions of Windows (XP and Vista) can tell the difference, and assign threads accordingly. I believe Win2K3, Vista, and Win2K8 have APIs for this, as well, so the apps can manage it, if coded to support it. This is what I read about Core i7's HT in an article somewhere but I can't remember where, about 2 or 3 months ago.
 
I dont think its a matter of a physical core and a HT core, its just a core that can work on two threads. If HT is enabled the split resources are dynamically shared between the logical cores. Its not like one core is real and the other is make believe.
 
Back
Top