Hyper Threaded Dual Core
Hyper Threaded Dual Core
White Paper
Copyright Decipher Information Systems, 2005. All rights reserved. The information in this publication is furnished for information use only, does not constitute a commitment from Decipher Information Systems of any features or functions discussed and is subject to change without notice. Decipher Information Systems assumes no responsibility or liability for any errors or inaccuracies that may appear in this publication. Last revised: June 2006
Table of Contents
Table of Contents................................................................................................................ 3 Hyper-threaded and Dual-Core CPU Technology.............................................................. 4 Abstract ........................................................................................................................... 4 Hyper-threaded CPUs ..................................................................................................... 4 Dual-Core CPUs ............................................................................................................. 6 Licensing Implications.................................................................................................... 7 Identifying and Monitoring Hyper-threaded and Dual-Core CPUs................................ 8 Summary ....................................................................................................................... 10 Additional Reading ....................................................................................................... 10
Hyper-threaded CPUs
Hyper-threading, or Hyper-Threading Technology (HTT), is actually Intels trademark for their multi-threading technology, but has become a common name for all processors of this type. It is essentially a cut down version of dual core (discussed later). Execution units on a hyper-threaded CPU share certain elements, such as cache and Copyright 2005 Decipher Information Systems All Rights Reserved
pipelines. The operating system sees a single hyper-threaded processor as two separate logical CPUs. Threads can be scheduled to execute on any of these logical processors. The main strength of hyper-threading is that it allows for flexible scheduling of all available execution slots, which increases efficiency by keeping the execution core as busy as possible. All that is required to take advantage of this technology is symmetric multiprocessing (SMP) support in the operating system. However, since hyper-threaded possessors still share the same cache, it is possible for applications performance to actually degrade if both threads are contending for the CPU cache at the same time. Figure 1-1 shows a graphical display of the thread and pipeline relationship in a hyperthreaded CPU: Figure 1-1
The future of hyper-threading is somewhat uncertain, especially on server class machines, where dual core technology is rapidly gaining in popularity.
Dual-Core CPUs
Differing from hyper-threading, dual-core processors have two completely independent processing cores contained within the same die/socket. It is a CPU that contains two complete execution cores in one physical processor. A dual-core CPU will execute threads faster than a hyper-threaded CPU. In addition, dual-core CPUs can be hyper-threaded for even greater potential performance. In order to keep heat under control, dual core CPUs usually have much lower clock speeds. These slower clock speeds makes it essential for new applications to be programmed in such a manner to take advantage of the multiple thread paths, meaning SMP support. If an application is not SMP aware, then it is simply running on one, slower, processor just like in the past. In addition, operating systems that support what is known as thread-level parallelism (TLP) benefit from dual-core technology even if the applications installed are not programmed to take advantage of the dual cores. However, users running non-SMP aware applications may still benefit from dual-core technology. For example, the operating system would route processing threads from one application through one core, and the threads of another application through the second core. Even though dual-core processors technology has separated many of the processing components, they still share some common key elements, such as memory controller and bus. Dual-processors do not share any of these items, and are therefore faster than a single-core processor. In addition, a dual-core processor will be faster than a single-core processor, but not twice as fast, which is what one might think. Figure 1- 2 shows a graphical display of the thread and pipeline relationship in a dualcore CPU:
Figure 1- 2
--------------
------
Licensing Implications
Common licensing practice is to charge on a per-CPU basis. This was straightforward when only single-core CPUs were involved. Now the question is charge per physical CPU, or charge per CPU core? Currently, Microsoft, Intel, and AMD are of the opinion that license fees should apply to physical CPU. However, this issue is still unresolved, and it seems that the trend may be towards manufacturers charging per CPU die, or chip.
Monitoring hyper-threaded CPUs within Windows operating systems can be accomplished via PerfMon.exe. As previously mentioned, the OS recognizes a single hyper-threaded CPU as two logical processors. Therefore the Processor performance counters will show two CPU instances, as shown in Figure 1-4: Figure 1-4
This screenshot was taken from a two-CPU machine with hyper-threading support enabled. The operating system, and therefore Perfmon.exe, recognize four processors 0 through 3.Dual-core CPUs, unless hyper-threaded, will appear as a single processor instance within PerfMon.exe.
Summary
New CPU technologies, such as hyper-threading and dual-core, are becoming much more common as processor manufacturers try to keep pace with the demands for more processing power. This whitepaper discussed both hyper-threading and dual-core processors, including the basic differences between the two technologies. In addition, information on how to effectively identify what type of processor is installed in a machine or server was also provided. We hope you find this information helpful.
Additional Reading
http://msdn.microsoft.com/msdnmag/issues/05/06/HyperThreading/default.aspx http://msdn.microsoft.com/msdnmag/issues/06/09/CLRInsideOut/ http://www.ddj.com/dept/debug/184417069