Hyperthreading, sometimes called simultaneous multi-threading, is a technique that allows a single CPU to execute multiple flows of control. It involves having multiple copies of some of the CPU hardware, such as program counters and register files, while having only single copies of other parts of the hardware, such as units that perform floating-point arithmetic. whereas a conventional processor requires around 20,000 clock cycles to shift between different threads, a hyperthread processor decides which of its threads to execute on a cycle-by-cycle basis. For example, if one thread must wait for some data to be loaded into a cache, the CPU can proceed with execution of a different thread.引自第57页