krw wrote:
> In article <(E-Mail Removed)>,
> (E-Mail Removed) says...
> >
> > Yousuf Khan wrote:
> > > lyon_wonder wrote:
> > > I'm guessing that this will be true hardware multithreading as opposed
> > > to the "exploit the time between our various inefficiencies" type of
> > > multithreading that was Hyperthreading.
> >
> > Perhaps you'd care to explain the difference between the two?
> >
> > AFAIK, all multithreading relies on exploiting the time between our
> > various inefficiencies to improve performance...
> Can two threads be dispatched/completed simultaneously?
AFAIK, yes. The only hardware structures that cannot be used by both
threads simultaneously are the trace cache and decoder (see Tullsen's
PACT03 paper).
> Does one
> thread have to wait for the other to flush? These are two
> improvements on P4s implementation I can imagine.
I don't know the answer to that, however, I suspect only certain types
of flushes impact both threads. For instance, a TC flush would hit
both threads. However, flushing the ROB and RS should only impact one
thread, since they are statically partitioned.
Again, I'll ask what is this 'true' multithreading that Yousuf
mentions? The P4 uses simultaneous multithreading and it's just as
real as the POWER5/6, or the SoEMT used in Montecito, Niagara and the
older IBM systems (northstar or pulsar) and Tera's systems.
Multithreading fundamentally relies on exploiting the difference
between average IPC and peak IPC, i.e. making up for inefficiencies in
a design. Where's the beef?
DK