[dba-Tech] Chip terminology

Gary Kjos garykjos at gmail.com
Fri Oct 18 08:12:25 CDT 2013


*Basically Hyperthreading allows your CPU to run two processes at the same
time in each core. So you have double the logical processors.*

*From the Wikipedia article*

*http://en.wikipedia.org/wiki/Hyper-threading*

*-----------------------------------------------*

*Hyper-threading* (officially *Hyper-Threading Technology* or *HT Technology
*, abbreviated *HTT* or *HT*) is Intel's<http://en.wikipedia.org/wiki/Intel>
proprietary <http://en.wikipedia.org/wiki/Proprietary_hardware> simultaneous
multithreading (SMT)<http://en.wikipedia.org/wiki/Simultaneous_multithreading>implementation
used to improve
parallelization <http://en.wikipedia.org/wiki/Parallel_computation> of
computations (doing multiple tasks at once) performed on PC
microprocessors. It first appeared in February 2002 on
Xeon<http://en.wikipedia.org/wiki/Xeon>server
processors <http://en.wikipedia.org/wiki/Central_processing_unit> and in
November 2002 on Pentium 4 <http://en.wikipedia.org/wiki/Pentium_4> desktop
CPUs.[1] <http://en.wikipedia.org/wiki/Hyper-threading#cite_note-1> Later,
Intel included this technology in
Itanium<http://en.wikipedia.org/wiki/Itanium>,
Atom <http://en.wikipedia.org/wiki/Intel_Atom>, and Core 'i'
Series<http://en.wikipedia.org/wiki/Intel_Core>CPUs, among others.

For each processor core <http://en.wikipedia.org/wiki/Multi-core> that is
physically present, the operating
system<http://en.wikipedia.org/wiki/Operating_system>addresses two
virtual or logical cores, and shares the workload between
them when possible. The main function of hyper-threading is to decrease the
number of dependent instructions on the pipeline. It takes advantage of
superscalar <http://en.wikipedia.org/wiki/Superscalar> 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.

Hyper-threading requires not only that the operating system supports
SMT<http://en.wikipedia.org/wiki/Simultaneous_multithreading>,
but also that it be specifically optimized for
HTT,[2]<http://en.wikipedia.org/wiki/Hyper-threading#cite_note-2>and
Intel recommends disabling HTT when using operating systems that have
not been optimized for this chip feature.

Hyper-threading works by duplicating certain sections of the processor—
those that store the architectural
state<http://en.wikipedia.org/wiki/Architectural_state>—
but not duplicating the main execution resources. This allows a
hyper-threading processor to appear as the usual "physical" processor and
an extra "logical" processor to the host operating system (HTT-unaware
operating systems see two "physical" processors), allowing the operating
system to schedule two threads or processes simultaneously and
appropriately. When execution resources would not be used by the current
task in a processor without hyper-threading, and especially when the
processor is stalled, a hyper-threading equipped processor can use those
execution resources to execute another scheduled task. (The processor may
stall due to a cache miss<http://en.wikipedia.org/wiki/CPU_cache#Cache_miss>,
branch misprediction <http://en.wikipedia.org/wiki/Branch_misprediction>,
or data dependency <http://en.wikipedia.org/wiki/Data_dependency>.)

This technology is transparent to operating systems and programs. The
minimum that is required to take advantage of hyper-threading is symmetric
multiprocessing
<http://en.wikipedia.org/wiki/Symmetric_multiprocessing>(SMP) support
in the operating
system <http://en.wikipedia.org/wiki/Operating_system>, as the logical
processors appear as standard separate processors.

It is possible to optimize operating system behavior on multi-processor
hyper-threading capable systems. For example, consider an SMP system with
two physical processors that are both hyper-threaded (for a total of four
logical processors). If the operating system's thread
scheduler<http://en.wikipedia.org/wiki/Scheduling_%28computing%29>is
unaware of hyper-threading it will treat all four logical processors
the
same. If only two threads are eligible to run, it might choose to schedule
those threads on the two logical processors that happen to belong to the
same physical processor; that processor would become extremely busy while
the other would idle, leading to poorer performance than is possible with
better scheduling. This problem can be avoided by improving the scheduler
to treat logical processors differently from physical processors; in a
sense, this is a limited form of the scheduler changes that are required
for NUMA <http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access> systems.


On Fri, Oct 18, 2013 at 7:51 AM, Arthur Fuller <fuller.artful at gmail.com>wrote:

> Belarc Advisor tells me my laptop contains a 2.5 Gz Intel Core i5-3210M
> CPU. Beneath that it says Multi-core (2 total)
> Hyper-threaded (4 total)
>
> Which I take to mean that it's a dual-core chip, but I don't understand
> what the Hyper-threaded number means. Can someone clue me in?
>
> TIA,
>
> --
> Arthur
> _______________________________________________
> dba-Tech mailing list
> dba-Tech at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-tech
> Website: http://www.databaseadvisors.com
>



-- 
Gary Kjos
garykjos at gmail.com


More information about the dba-Tech mailing list