现在许多的处理器已经开始向multi-threading过度了。因此查看了一下何为multi-threading。看看她们的性能如何。http://en.wikipedia.org/wiki/Multithreading息将multi-threading分为三类。
第一类是阻塞式多线程(block multi-threading)。又叫cooperative multithreading或coarse-grained multi-threading。其概念在于当一个线程被阻塞时(因为cache miss或者其它会导致长时间stall的操作),线程调度器自动切换(只用一个指令周期)到另一个不被阻塞的线程去运行。现有的CPU实现有:Intel Super-threading。
第二类是交替式多线程(Interleaved multi-threading)。又叫Barrel Processing,或者Pre-emptive multithreaing或Fine-grained multithreading或time-sliced multithreading。其概念在于不同线程的指令会交织地输入CPU。因此,CPU中会跟踪pipeline的不同阶段,并且对每个线程用一个ID来识别。现有的CPU实现有:UltraSPARC T1,MIPS 34K,Ubicom32。
第三类是并发式多线程(Simultaneous multi-threading(SMT))。不同于第一类与第二类,Simultaneous multi-threading是运行在超标题处理器上的。在同一指令周期,来自不同线程的指令同时被送入处理器。现有的CPU实现有:DEC EV8,Intel Hyper-threading,IBM