Re: Hyperthreading vs. SMP
From: Robert M. Riches Jr (spamtrap42_at_verizon.net)
Date: Sat, 13 Dec 2003 05:07:54 GMT
In article <email@example.com>, Anne & Lynn Wheeler wrote:
> wb <firstname.lastname@example.org> writes:
>> How is memory contention (cache coherence) maintained
>> with these hyperthreading machines ? Does it require an
>> external memory agent ? In a SMP or NUMA, a memory
>> controller (MIP's called it an agent ) ensured that memory
>> integrity was kept. Can each virtual process instance be
>> making memory updates ?
> hyperthreading just uses more than one instruction stream, typically
> in an already superscaler processor ... sharing the same cache.
> the superscaler processor has multiple instructions in flight already
> ... one of the purposes of superscaler is to compensate for cache
> misses ... other instructions can proceed in parallel when one
> instruction is stalled because of cache miss. The superscaler
> processor may also have speculative execution when conditional
> branches are encounterd .... i.e. assume that the direction of the
> branch is to go one way ... and if it turns out not to ... back-out
> all the instructions executed on the wrong path.
> ... (much more excellent explanation and references snipped) ...
Well said, except for one minor point of terminology. At
least in my 17 year experience in microprocessor design,
superscaler basically meant having multiple parallel
execution units, so that multiple instructions could be sent
to execution in the same clock cycle--lowering the best-case
CPI below unity. It is out-of-order execution (or "dynamic
execution" per Pentium Pro marketing literature) that allows
instructions to proceed when an earlier instruction is
stalled by a cache miss.
It is possible (but not too very common) to have either
superscaler or out-of-order without the other. The Intel
960KA/KB/MC/XA had a _very_ limited form of out-of-order to
allow execution past slow loads from memory. (Expired?) US
patent #4,891,753 (with my name on it) is for that
mechanism. The Intel 960CA and 960MM/MX were superscalar
without (any additional) significant out-of-order features.
(Yes, that is one of my email addresses.)