Re: Hyperthreading vs. SMP

From: wb (dead_email_at_nospam.com)
Date: 12/13/03

  • Next message: Detlev: "T-Onlinezugang?"
    Date: Sat, 13 Dec 2003 01:19:14 GMT
    
    

    Robert M. Riches Jr wrote:
    Thanks Robert,

    . See below.

    >
    > From a hardware perspective...
    >
    > With an SMP system, you have two _physical_ procesors.
    > Usually, they are two separate physical packages, each with
    > a separate heatsink and fan(s).
    >
    > With hyperthreading (multithreading to those of us who were
    > on the design team), each physical processor is logically
    > split into multiple virtual processors. Many of the data
    > resources on the chip (register renaming and instruction
    > scheduling tables, for example) are split, one chunk of
    > resource hard-allocated to each virtual processor. While
    > the reduction in size of the split-up resources to each
    > virtual processor does slow down said virtual processor a
    > little bit, because there is more instruction-level
    > parallelism available with multiple instruction streams than
    > with a single instruction stream, you get more total
    > combined performance from the virtual processors than you
    > would from a single processor. Execution of the instruction
    > streams by the multiple virtual processors is interleaved in
    > time inside the single physical processor.

       RISC processors (at least the MIP's R10/R12k series) have
       a similar parallel instruction execution.

    >
    > At least in theory, you can have _both_ SMP and
    > hyperthreading, which gives you even more virtual
    > processors. With hyperthreading, if you have multiple
    > threads in the run queue, you can run as many threads
    > concurrently (in run state) as you have virtual processors.

      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 ?

    >
    > At least some compilers are able to produce code to make use
    > of hyperthreading by a single binary executable. So, in at
    > least some cases, you can gain speed advantage from
    > hyperthreading, even if you have only one program running.
    >
    > If you're interested in the computer architecture issues
    > surrounding hyperthreading, there are some good old
    > discussions in newsgroup comp.arch many years ago about the
    > 'barrel processor' which could switch between many threads.
    >
    > (Disclaimer: While I did oversee schematic formal
    > verification on the Pentium 4 Processor, which implements
    > hyperthreading, I'm confident all of the above information
    > is publicly available. I wouldn't give away any of my
    > former employer's trade secrets, even if I knew any.)
    >
    > Good luck.
    >
    > Robert Riches
    > spamtrap42@verizon.net
    > (Yes, that is one of my email addresses.)
    >


  • Next message: Detlev: "T-Onlinezugang?"

    Relevant Pages

    • Re: Hyperthreading vs. SMP
      ... With hyperthreading (multithreading to those of us who were ... split into multiple virtual processors. ... resources on the chip (register renaming and instruction ...
      (linux.redhat)
    • how do I know hyperthreading is enabled
      ... how do I know hyperthreading is enabled on my SMP PC if I do not have ... type "cat /proc/cpuinfo" it shows two CPUs. ... hyperthreading does not necessarily involve 2 virtual processors, ... find its way into versions of the Linux kernel." ...
      (comp.os.linux.misc)