On Tue, Jan 24, 2006 at 06:45:01PM +0100, Thomas Steffen wrote: > That kind of defeats the purpose, doesn't it? The idea of HT was to > increase the utilisation of core CPU groups by having two threads > ready for dispatch. If one thread stalls, the other thread could still > dispatch operations, unless... the stall affects both threads.
Stalls are not the problem. Branch prediction misses are the issue when they cause a pipeline flush. Hyperthreading helps use resources when a thread stalls waiting for something from memory. It is only when it hits a branch and guessed wrong, and has to dump the rest of the pipeline pointing down the wrong branch that things go bad. That already is a problem for the P4 with it's approx. 30 stage pipeline. > That would certainly explain the minimal performance gain of HT. On > the desktop it is still nice to have. If you have code that is very light on branches, but heavy on calculations, then HT can help a lot. Branch heavy code just generally sucks on a long pipeline cpu and HT doesn't do anything to help it. Len Sorensen -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

