Pentium 805D has an interesting surprise

Ben Scott dragonhawk at gmail.com
Wed Apr 25 13:56:35 EDT 2007


On 4/25/07, Thomas Charron <twaffle at gmail.com> wrote:
> Yes, this is exactly why I say the differences from a software
> perspective are debatable.

  In the sense of what you have to program to make use of it, yes.
Either way, you have to worry about shared memory concurrency,
locking, re-entrance, all that stuff.  But the performance
characteristics are quite different.

  Dual core and quad core is just SMP (symmetric multi-processor)
implemented in a single IC package.  It used to be this was done at
the motherboard level -- two sockets, two IC packages, and special SMP
chipsets.  Dual core just fits everything into a single IC package,
and makes the SMP chipset standard.  A single dual-core processor is
"exactly" the same thing as a conventional dual processor system.

  (I put "exactly" in quotes because there are some differences.  For
example, I understand some cache sharing is possible on some chips.
But it's really really really close to classic x86 SMP.)

  HyperThreading(TM) is Intel's trademark for SMT (simultaneous
multi-threading).  SMT gives you multiple register files, but re-uses
all the other core logic.  Intel was so interested in SMT on the
Pentium 4 because the P4 has a really looong instruction processing
pipeline.  Keeping that pipeline full of operations was critical to
obtaining good performance on that chip.  By keeping multiple
execution states "hot" in the core, that was more likely to happen.
Ultimately, though, it could still only do one thing at a time.

  Assuming you have good parallelism in your workload (either one
multi-threading app, or multiple separate apps), SMP should "always"
yield much better performance vs SMT.  Dual core has two of
everything; SMT has only one of almost everything.  In particular,
since SMT only has one set of caches, anything that hits the CPU
caches hard can really suffer under SMT.

  Under a workload with with little to no multi-threading, SMT vs SMP
vs just-a-processor is kind of moot; only one running thread really
matters.  Popular wisdom is that most single-user workloads still
correspond to that model.

  Now that Intel has hit a serious wall with clock speed and
diminishing returns, they have decreed multi-core will be the way of
the future (in other news, the sky is blue).  Supposedly, programmers
everywhere are supposed to be changing their programming models to be
more parallel, to take advantage of mutli-core designs, so all those
single-user workloads will benefit from having 42 cores under the
hood.  It remains to be seen if that will actually happen.

-- Ben


More information about the gnhlug-discuss mailing list