Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: HyperThreading Revisited

Author: Jeremiah Penery

Date: 21:15:16 11/09/02

Go up one level in this thread


On November 09, 2002 at 22:43:03, Robert Hyatt wrote:

>On November 09, 2002 at 07:21:49, Jeremiah Penery wrote:
>
>>On November 08, 2002 at 23:59:25, Robert Hyatt wrote:
>>
>>>The rename registers are a different issue.  They exist within a "logical cpu"
>>>for optimizing the super-scalar instruction scheduling done by the hardware.
>>>SMT looks like two distinct cpus, with two distinct _everything_ internal...
>>>ie two eax registers, one for each thread, two ebx, ecx, edx, esp, flags,
>>>esi, edi, epb, program counters, etc.  IE it _really_ looks like two cpus,
>>>it just isn't twice as fast as the "pipelines" are really shared internally
>>>between the two logical cpus, so that only one of those "logical cpus" is
>>>running at any particular instant.
>>
>>The actual microarchitectural (ebx, ecx, etc.) registers are _shared_ resources.
>
>I don't understand what that means.  IE two threads can not possibly use
>the same eax register and do anything useful.  If you mean that the eax
>"pointer" (which gets renamed each time it is set to a new value) points to
>a different rename register in the processor core, that is effectively saying
>the _same_ thing as each "logical cpu" has its own set of registers.  The two
>_must_ be distinct.

Yes, but there are not actually two physical sets of registers.  There is only
the single set, which is the same size as that of the non-HyperThreaded P4.
You're right conceptually, I just wanted to point out the technical difference.

>> However, the processor has two Register Allocation Tables (RATs), each of which
>>handles the mapping of architectural registers to a shared pool of 128 GPRs and
>>128 FPRs (which are basically the rename registers).  Every instruction issued
>>gets a unique rename register destination anyway, always.
>
>OK... that is how I thought it worked, which is the same as saying that each
>logical cpu has its own "eax" register, since each has a unique rename table
>and no entry in one table can possibly match an entry in the other table.

Right, it's just technical terminology, I just wanted to make sure it was being
used correctly. :)



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.