• Competitor rules

    Please remember that any mention of competitors, hinting at competitors or offering to provide details of competitors will result in an account suspension. The full rules can be found under the 'Terms and Rules' link in the bottom right corner of your screen. Just don't mention competitors in any way, shape or form and you'll be OK.

what affects core choice?

Associate
Joined
4 Jan 2005
Posts
394
having just sorted my new machine out over the last couple of days I have been wondering about multi-core cpu structure. What makes a certain program use a certain core of your processor while another uses a different core? I have noticed during some programs that one of the cores in my quad is used a lot more than another and not always the first core. Do the different cores do different tasks or what?

Just my random ramblings......
 
me curious as well...although I suspect it's mostly the OS allocating threads to different cores depending on the tasks at hand?
 
On a dual core CPU you have core 0 and core 1. Both are identical. Its the operating system scheduler that assigns threads to a core, not the application itself.
 
I'm curious as well, how does Windows tell the CPU which core it wants to use? What is the command in binary?

You're asking a hell of a question there.

In nutshell terms, the software on your system can be thought of as "processes". Every process has "threads" that are executing different bits process code at any one time. All threads have an associated priority with them. For example, an antivirus scan thread might have a low priority associated with it as not to bring the system to a halt. A printer warning thread will have a high priotity associated with it because it require the attention of the user. Its the job of the Operating System to prioritize these jobs and send them on the cpu for processing. On a single CPU the sheduler will send these off in order of priority. This works exactly the same on a system with 2, 4, 8 processors... as many as you want. The scheduler just has more to play with. Instead of sending 4 high priority jobs on a single cpu one after another it will just send 2 at a time on a dual processor system.

You can "force" processes to run on one particular processor but it is largely discouraged because it can hold up the scheduler.

Hope that makes sense. :confused::)
 
There are so many layers of abstraction you can choose when asking questions like the one above. At the level you're talking you'll probably want to read up about CPU-level hardware - the various CPU registers and associated microcode.

Beware, its highly technical and best left to the engineers. Trust me when I say, ignorance is bliss! :p
 
I was actually thinking about this today while multitasking, and briefly observing the different loads on different cores. Got me thinking, if you had a couple of programs running, would it be benefical to have the OS line them up for the cooler of the cores :D I mainly was thinking this because one of my cores runs at 32*C idle, as opposed to another which runs at 26*C, so quite a difference.

Im probably looking at this far too intricately but if I dont ask these silly questions... who will?! :p
 
A cooler core is not necessarily a faster core. Errors occur when the thermal range is exceeded and the actual physical integrity of the transistors break down. At that point the system is more likely to crash altogether than slow down. :)
 
Back
Top Bottom