Why does my Intel i7-920 display 8 cores instead of 4 cores?

20

7

When I go to the task manager I see 8 processors but I know that I have 4. Why?

alt text

Patrick Desjardins

Posted 2010-01-14T22:05:46.420

Reputation: 1 559

Answers

39

Hyperthreading.

Hyper-threading abstracts away task switching from the operating systems. Normally an operating system has to deal with scheduling processes over different CPUs as well as ensuring that each task that runs on the system has its fair share, but not too much (if something else wants it) of the CPU.

Hyper-threading is a way of taking that 2nd process of task sharing away from the operating system, at least for a little bit. The reason is that the processor can task switch much faster than the operating system can tell it to. So by presenting two logical processors when there is in fact only one, the operating system has to do only half as many task switching operations, but more CPU scheduling. But the net result is supposedly a faster machine in multi-tasking operations.

The actual benefits of this vary greatly depending on the workload that you're doing. For most people, there is no harm in leaving it on or turning it off. 4 vs 8 threads is like choosing between a ferrari or a lamborghini for home users.

However, in server scenarios, it can make a large difference. For example, hypervisors can often get a large increase in speed through the use of hyperthreading, as they have very strict CPU scheduling requirements.

However, SQL servers often do not get this increase, because it's often better to have four "large" threads than 8 "medium" sized threads.

Mark Henderson

Posted 2010-01-14T22:05:46.420

Reputation: 5 956

3

As a highly valued Super User, I suggest you revisit this answer and add more detail. The link doesn't help to explain anything on what Hyperthreading is or what it does.

– James Mertz – 2012-07-26T18:09:23.300

11

That my friend is hyper-threading.

Hyperthreading is a form of simultaneous multi-threading that takes advantage of super scalar architecture. Multiple instructions operating on separate data in parallel. They appear to the OS as two processors, thus the OS can schedule two processes at once. In addition two or more processes can use the same resources. If one process fails then the resources can be readily re-allocated. The OS must support simultaneous multi-threading (SMT).

wayoutmind

Posted 2010-01-14T22:05:46.420

Reputation:

1"Beauty" is debatable. In some cases hyperthreading destroys performance. – MDMarra – 2010-01-14T22:11:16.223

It all depends on what you're doing – prestomation – 2010-01-14T22:24:47.520

You guys happy now? :D (Wasn't trying to elicit a troll war or anything) – None – 2010-01-14T22:28:55.640

1"That, my friend, is hyper-threading in all it's beauty!" :) – None – 2010-01-14T23:36:48.913

I'll go with the beauty version. While I've heard reports of negative performance impacts in some circumstances, I've been unable to duplicate. Hyperthreading has always been faster for me. Even in it's older forms. – Brian Knoblauch – 2010-01-15T14:53:15.830

6

The i7 family is a Quad-core processor that has 8 threads. Normal quad-cores have 4 threads, and since hyper-threading is enabled, your computer recognizes those 8 threads as processors.

tcables

Posted 2010-01-14T22:05:46.420

Reputation: 324