同步多线程简称SMT,是一种利用硬件多线程提高超标量CPU整体效率的技术。SMT允许多个独立的线程执行,以更好地利用现代计算机架构提供的资源。

多线程在概念上类似于多任务处理,但在现代超标量处理器中是在执行线程级实现的。

在处理器设计中,有两种方法可以用较少的资源需求提高片上并行度。

  1. 超标量技术:试图通过同时执行多条指令术语:同时);通过"同时"向处理器内部构建的多个冗余执行单元调度指令(术语:指令调度)来提高指令级并行性(ILP)。
  2. 芯片级多线程(CMT)技术:利用线程级并行(TLP),以便在一个处理器芯片内同时执行多个线程的指令。

一个芯片内部支持多个线程的方法有很多,即。

  1. 交错式多线程(IMT):从不同线程交错发出多条指令,也称为时空多线程。根据交错发布的频率,又可分为细粒度多线程和粗粒度多线程。细粒度多线程在每一个周期后都会发出不同线程的指令,而粗粒度多线程只有在当前执行线程引起一些长延迟事件(如页面故障等)时,才会切换到发出另一个线程的指令。粗粒度多线程对于线程之间的上下文切换较少,比较常见。对于每核只有一条流水线的处理器来说,交错式多线程是唯一可能的方式,因为它每个周期最多只能发出一条指令。
  2. 同步多线程(SMT)。在一个周期内从多个线程发出多条指令。处理器必须是超标量的才能做到这一点。
  3. 芯片级多处理(CMP或多核处理器:将两个或两个以上的超标量处理器集成到一个芯片中,每个处理器独立执行线程
  4. IMT/SMT/CMP的任何组合

区别它们的关键因素是看处理器在一个周期内能发出多少条指令,以及指令来自多少个线程。