Hyper threading

Status
Not open for further replies.

millertimeinoh

Distinguished
Jul 2, 2011
8
0
18,510
Hello,
I am a student i am not very familiar with computers.i was asked this question.) What is the advantage of hyper threading in a microprocessor? Also percentage of speed increase.i think its 30% from the research i have done
 
Solution


HyperThreading is Intel's trademark for simultaneous multithreading (SMT.) SMT essentially allows two threads to run on one given set of CPU core execution resources at the same time, rather than having one thread run per core. The advantage of SMT is that the second thread can be executing if the first thread does not use all of the execution resources of the core at all times. Basically this allows for the second thread to run if the first thread is stalled waiting for data, there is a branch...


HyperThreading is Intel's trademark for simultaneous multithreading (SMT.) SMT essentially allows two threads to run on one given set of CPU core execution resources at the same time, rather than having one thread run per core. The advantage of SMT is that the second thread can be executing if the first thread does not use all of the execution resources of the core at all times. Basically this allows for the second thread to run if the first thread is stalled waiting for data, there is a branch misprediction, etc. The amount of performance increase that SMT can provide varies widely with the specific CPU and code that is being executed. A short-pipeline CPU with a lot of on-chip cache running well-vectorized code will see little increase from SMT. A long-pipeline CPU with little cache running very branchy code will generally do better as the second thread can run while the first one reloads the pipeline from a branch misprediction. You can also see a performance loss with SMT as a poor OS scheduler may schedule the two running threads on one physical core and it's SMT thread in a multi-core CPU instead of scheduling them each on their own physical core. Also, cache thrashing can be an issue with SMT if thread 0 and thread 1 need to load a lot of different data in cache; this can hurt performance as well.

Note there are different methods of multithreading than SMT. Cluster multithreading is another method of hardware multithreading, which schedules two threads on a core with two sets of some execution resources and one set of other execution resources. AMD's upcoming Bulldozer uses CMT. It has one frontend (fetch, decode, schedule), two separate sets of integer execution resources and L1 caches, and then one backend (store, L2 cache) and FPU.
 
Solution
Status
Not open for further replies.