Some days ago, while reading a tech-related forum, I stumble into a little flame-war about the usefulness of (or lack of) Intel's hyperthreading technology and on why AMD decided to not implement it into its latest processor design, aka Bulldozer. Intel's fans stated that hyperthreading give a quite big performance boost for very small die area, while AMD's ones praised the (alleged) superiority of AMD dual-core module approach.

To tell the truth, this situation surprise me: while I'm familiar with flame-wars, I can not see the point here. While different, Intel's Hyperthreading and AMD dual-core module design both start form the consideration that, due to low code ILP and memory latency, a complex CPU core is often underutilized. So, both try to:

  • increase processor execution units utilization
  • share as much silicon as possible between different threads / execution states
  • increase aggregate (multi-threaded) performance, even at the cost of slightly worse single-thread latency and performance.

Keep reading and you will discover that hyperthreading and dual-core module are essentially two different approaches for the same thing: increase aggregate system performance.