Hyperthreading?

Molondo

Platinum Member
Sep 6, 2005
2,529
1
0
Can someone Sum up the idea of hyperthreading? im looking around, i can't find basic info on it.
Questions like, Why is the performance increased?
 

Molondo

Platinum Member
Sep 6, 2005
2,529
1
0
Ah i was there already but thanks. Anyways, which proccessors have the Hyperthreading technology?
 

3chordcharlie

Diamond Member
Mar 30, 2004
9,859
1
81
Some pentium 4 processors use hyperthreading. For the most part, any single-core 800fsb P4 has hyperthreading, as did the original 3.06ghz northwood P4.

Hyperthreading is half 'performance enhancement' and half 'much needed fix'. It lets the P4 pretend to be two processors, so it can work on two threads at the same time; with the long pipeline of the P4 causing long waits for one instruction to actually finish (and therefore delaying instructions that depend on the result), bing able to run other threads efficiently in the interim is a huge advantage.

Depending on the program or programs involved, hyperthreading provides anywhere from 'absolutely no benefit' up to some very impressive performance gains. It's definitely one of the main reasons that intel returned to performance dominance with the northwood, until the release of the Athlon 64.
 

jiffylube1024

Diamond Member
Feb 17, 2002
7,430
0
71
Originally posted by: Molondo
Ah i was there already but thanks. Anyways, which proccessors have the Hyperthreading technology?

All single core Pentium 4's whose name ends in C or E. It was added on the Pentium 4 3.06 Ghz and remained for the subsequent 2.4C, 2.6C, 2.8C, 3.0C and 3.0 and 3.2 Ghz chips.

All of the "E" series (Prescott) P4's have them also.

The dual core Pentium-D does not have HT, but the dual-core Xeons based on the Pentium-D series does have HT (so it has 4 virtual cores, 2 actual cores).

HT is an excellent technology for single core CPU's and was a huge boon for the P4 back in the day, but it's basically a pseudo dual-core technology; true dual core is a much better solution.
 

Future Shock

Senior member
Aug 28, 2005
968
0
0
The way, way, way simple response is hyperthreading is an emulation of dual-CPUs (or dual-core CPUs) done by a single-core processor. An Instruction Pointer is the register and pre-fetch logic that keeps track of where an application is in it's code. On single-core CPUs without HT, there is only one IP. If an application disables interrupts, then only the next bit of code that it's IP is pointing to can run. If an application in that state has a wait condition, or a loop, and never relinquishes the IP, then it hangs (temporarily or worse!) the system - you can see that quite a bit on a single CPU system.

HT tries to allievate that. It accomplishes this by having two Instruction Pointers (and some other bit obviously) that make it appear that it can handle two code threads instead of one. It actually DOESN'T have all the other core CPU bits, like a full extra set of registers, math units, etc. But it does try to overlap those two IP code streams by utilizing CPU sections that are not being used. Critically, if the code of one IP is looping or waiting, the OTHER IP still can utilize the system and execute...thus, systems with HT are less likely to enter wait or hung conditions, which usually amounts to a smoother user experience - and a little more efficient use of CPU resources in some applications or multiple applications

However, in today's world of cheap dual-core chips, HT has been eclipsed. Dual-core chips not only have two IPs - they have two whole processors. This means that the two streams of code no longer have to share registers, math units, etc. They are actually a dual-CPU system, but on one microprocessor. The user experience can be extremely smooth. and they can add even further performance to some applications, and especially multiple applications.

Hope that helps...

Future Shock