With hyperthreading, Intel Corp. offers the cost-effective performance of multithreaded execution without the infrastructure costs of multiprocessor systems. At the same time, by opening formerly internal hardware to use by applications, Intel invites developers to write code specifically for Intel hardware—reducing the value of being merely “X86-compatible” at the likely expense of Advanced Micro Devices Inc.
Most software treats the central processor as single-threaded: a simple assembly line that translates an instruction, retrieves data, performs the operation, returns results and goes to the next instruction. Within a Pentium- or Athlon-class CPU, however, one section fetches an instruction while another section translates the instruction previously fetched. Other on-chip hardware concurrently completes the instructions translated before. These optimizations take place without the assistance (or even the knowledge) of application code.
More-aggressive concurrent processing, as in multiway servers or workstations, requires additional support from chip sets, operating systems and application writers. Even parallelism within one Pentium processor can be hampered if a software developer ignores tricky interactions among CPU subsystems.
Hyperthreading exposes more of the resources of the processor core to direct manipulation by software, yielding some of the gains of a second separate CPU at price points that may expand this market down to midrange desktop systems—and therefore encouraging many more application developers to learn the multithreaded way of thinking.