Best of the Newsgroups: hyperthreading
What is this stuff?
Main Index
From: John-Paul Stewart <jpstewart@binaryfoundry.ca>
Subject: Re: Hyperthreading; was Re: New to Linux. I'm not impressed :(
References: <V2Qhe.3756$Bg4.3613@fe10.lga> <aaRhe.23804$w15.14445@tornado.tampabay.rr.com> <slrnd8i7uq.das.rob@one.localnet> <g8lol2-q4h.ln1@news.it.uc3m.es>
Message-ID: <v42d6d.vmq.ln@mail.binaryfoundry.ca>
Date: Tue, 17 May 2005 11:20:49 -0400
Peter T. Breuer wrote:
> Robert M. Riches Jr. <spamtrap42@verizon.net> wrote:
>
>>On 2005-05-15, WiseOldMan <duz2600@yahoo.com> wrote:
>>
>>>Hyperthread is dual channel. two programs can step through the cpu, for
>>>every clock pulse, instead of one. It is almost like having a dual cpu
>>>mainboard.
>
>
>>Well, not actually. It's a whole lot more complicated.
>
>
> No it's not.
Agreed. I'd say Hyperthreading is a lot simpler than having two CPUs.
>>Roughly, it's a similar concept to the barrel processor,
>>where the physical CPU time-slices between two threads,
>
>
> No it doesn't.
Agreed. There is certainly no time slicing happening with Hyperthreading.
>>giving the illusion of two CPUs (thus the terminology of two
>
>
> No, not so. There are two ALUs. There are two of several things. There
> are only one of some things.
That's been true since the original Pentium era (IIRC), and is certainly
not new with Hyperthreading. Hyperthreading allows the dual ALUs to be
more fully utilized, though.
In cases where one instruction depends on the result of the previous
instruction, you cannot run those two instructions in parallel on the
two ALUs. So on older chips, the second ALU would just be stalled for
that cycle (or cycles). Hyperthreading makes the second ALU available
to a *different* thread in that case.
(That's just one example of when a stall would occur. Hypthreading
allows fuller use of processor resources in a lot of other situations, too.)
Anyway, there's a 15-page article from Intel about Hyperthreading online
starting at:
http://www.intel.com/technology/itj/2002/volume06issue01/art01_hyper/p01_abstract.htm
It's fairly easy to understand (at least, I *think* I understand it) for
those who want to know more about Hyperthreading.
Add your comments