图3. Hydra CMP的结构示意图
MT-多线程处理器(Multi-threading Processor)
为了理解CMT,我们还有必要看一下多线程处理器(Hardware Multithreading)。顾名思义,多线程处理器是在一个处理器内核中提供支持多个“硬”线程(Hardware Thread)的能力,通常由处理器内核为每个线程维护独立的处理器状态,包括寄存器与程序计数器PC等,并能够快速地切换线程上下文。由于多线程处理器在遇到延迟事件时,可以将线程迅速切换去执行另外一部分程序代码,从而有效避免了将时间浪费在延迟等待上。下图中给出了一个支持硬件多线程技术的CPU在四个硬线程之间切换的情况,可以看出,在这种方式下,处理器的流水线始终保持在满负荷的工作状态,即便是某些线程由于内存访问被阻塞。

图4:多线程处理器在不同的硬线程间切换,这样就能保持CPU满负荷的工作,即便是某些线程由于内存访问延迟被阻塞。
我们小结一下,多线程处理器MT赋予CPU在多个线程中转换处理的能力,是一个超标量处理器内核。一个CMP是由若干个单线程处理器以SMP(对称多处理器系统)方式构成的支持TLP的系统,如果我们用MT处理器去置换CMP中的一个个的单线程处理器内核,使用多线程处理器来构造SMP方式的TLP系统,岂不是锦上添花?没错,这种将CMP和MT相结合的创新就是CMT技术。
片上多线程Chip Multi-threading (CMT)
简言之,CMT就是在一块芯片上集成多个MT处理器内核所构造的支持TLP的SMP系统。和极为复杂的传统单线程处理器不同,CMT技术采用相对简单的多线程处理器核心。每个处理器核心都维护多个线程,线程一直保持运行状态直到被阻塞,这时流水线将立即切换到另外一个就绪的线程。CMT处理器的一个天生优势是:由于这些单个的处理器核心的流水线相对简单,它们的制备不那么复杂,因而能耗低,散热量小。下图示意了一个4核的CMT技术的CPU,支持并发16个线程。

图5:采用4核,每核4线程的CMT处理器能够支持16个并发执行的硬线程
由于CMT采用了可以采用相对简单的多线程微处理器作为处理器核心,使得CMT主要具有以下优点:
设计和验证周期短:微处理器厂商可以基于成熟的多线程处理器作为处理器核心,从而缩短设计和验证周期。
控制逻辑简单,扩展性好,易于实