Logical processor Vs Cores Vs Threads.

I am trying to understand CPU architecture deeply like cores, logical processors and vcpus. For Cores I understood that in main physical unit the separate operation unit called core and it works as single CPU (correct me if I am wrong). Then what is difference between cores and logical processor ?

form online articles I read number of logical processors is equal to number of total threads, But as far as i know threads are subset of processes so but what thread means if it comes to hardware perspective ? Can anyone explain this !! My laptop has i3 processor with 2 cores..how OS calculated 4 logical processors based on number of threads.

June 30th, 2015 10:49am

A motherboard has sockets, sockets accept CPUs.

A CPU as a number of cores.  A core offers a number of execution threads that processes actually run on.

A physical core can support multiple virtual cores through its multiple processing threads and a hypervisor feature called CPU time slicing.

In your case you have hyperthreading on, so your two cores appear as 4 logical processors instead of 2 to the operating system. However, this is not an automatic doubling of capacity nor processing power. Just an opportunity for more processing threads.

Free Windows Admin Tool Kit Click here and download it now
June 30th, 2015 11:09am

Thanks Brian for clearing this. 

So whenever we enable hyperthreading or VT, it will show 2*number of cores as logical processors ?

June 30th, 2015 3:20pm

No, hyperthreading is different from VT. VT enables the hardware virtualization capability of a CPU. That is required to run type-1 hypervisors like Hyper-V or ESXi.  There is special Virtualization Technology (hence, VT) on some CPUs that allow type-1 hypervisors better access to the hardware, allowing many hypervisor functions to be performed directly to the hardware. Type-2 hypervisors like VMware Workstation run as a service or application on top of an operating system and pass all hardware requests to its underlying operating system. They do not exploit, nor require, the capabilities of VT.

Hyperthreading is a 'trick' used by the chip vendors to create an extra execution 'thread' on a single core.  As Brian said, it does not double the capabilities of the core because it is actually sharing a lot of individual components that can only perform one function at a time.  But, it can do things like instruction setup.  So while the core is executing an instruction that it already set up, the hyperthread can be setting up another instruction.  But there is only a single place on the core that can execute the instruction, so it has to wait for the currently executing instruction to complete.  You will hear a wide range of how much performance benefit you can potentially see from hyperthreading, but it is generally well south of 25%.  And some applications do not run very well at all if they are run in a hyperthreaded environment.  Therefore, you will sometimes find recommendation to disable hyperthreading, but you still have VT enabled.

Hyperthreading will show double the logical processors.  VT does not change the number of logical proce

Free Windows Admin Tool Kit Click here and download it now
June 30th, 2015 4:07pm

The unfortunate thing is that when hyperthreading is enabled, most OSes present it to folks that they have double the logical execution threads, where in reality they don't.

That is what really creates the confusion.

There was a time when hyperthreading had a significant positive impact and we turned it on all of the time.  These days with multi-core processors its utility is no longer significant.

(Tim has been giving some excellent technical descriptions today)

June 30th, 2015 4:37pm

Thanks Brian and Tim for explaining this.
Free Windows Admin Tool Kit Click here and download it now
July 1st, 2015 1:42am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics