Windows – Why is the dual-core CPU recognized as a quad-core one

cpuhyper-threadingmulti-coreUbuntuwindows 7

My processor is an Intel Core i3-380m. As you can see, it's 2 cores and 4 threads.

Although, both Ubuntu 11.04 and Windows 7 seem to think it's a quad-core CPU:

enter image description here

enter image description here

Why is this? Is it because there are 2 threads per core, dividing the CPU in 4 processing units?

Best Answer

As mentioned you have a dual-core system, with 2 threads per core.

This is marketed by Intel as hyperthreading and has been done in various ways over the years by various different manufacturers.

To explain it in its simplest form each CPU core consists of a "core" and various architecture around that core that keeps state and process information for each thread. A single threaded core has the architecture to keep 1 thread worth of state information held at a time, a hyperthreaded core keeps two distinct sets of state information, allowing two separate processes to run at once as long as they require different parts of the core (which is reasonably likely to happen as the core consists of multiple units of multiple different types of processing unit).

To simplify how the CPU is seen to the system each hyperthread is seen as a separate CPU, so a dual core, 2 thread per-core processor appears as a quad core processor.

It is also possible for the operating system to use Core-parking (a feature in newer Intel processors) allows the operating system to suspend one half of a hyperthreaded core so that when the extra processing ability of hyperthreading is not needed then the single thread performance is increased as the core is no longer sharing it's cache across 2 threads and can now fully devote the on-core cache to a single thread.

Related Question