同时多线程
同步多线程,简称SMT,是一种利用硬件多线程提高超标量CPU整体效率的技术。SMT允许多个独立的线程执行,以更好地利用现代计算机架构提供的资源。
多线程在概念上类似于多任务处理,但在现代超标量处理器中是在执行线程级实现的。
在处理器设计中,有两种方法可以用较少的资源需求提高片上并行度。
- 超标量技术:试图通过同时执行多条指令(术语:同时);通过"同时"向处理器内部构建的多个冗余执行单元调度指令(术语:指令调度)来提高指令级并行性(ILP)。
- 芯片级多线程(CMT)技术:利用线程级并行(TLP),以便在一个处理器芯片内同时执行多个线程的指令。
一个芯片内部支持多个线程的方法有很多,即。
- 交错式多线程(IMT):从不同线程交错发出多条指令,也称为时空多线程。根据交错发布的频率,又可分为细粒度多线程和粗粒度多线程。细粒度多线程在每一个周期后都会发出不同线程的指令,而粗粒度多线程只有在当前执行线程引起一些长延迟事件(如页面故障等)时,才会切换到发出另一个线程的指令。粗粒度多线程对于线程之间的上下文切换较少,比较常见。对于每核只有一条流水线的处理器来说,交错式多线程是唯一可能的方式,因为它每个周期最多只能发出一条指令。
- 同步多线程(SMT)。在一个周期内从多个线程发出多条指令。处理器必须是超标量的才能做到这一点。
- 芯片级多处理(CMP或多核处理器):将两个或两个以上的超标量处理器集成到一个芯片中,每个处理器独立执行线程。
- IMT/SMT/CMP的任何组合
区别它们的关键因素是看处理器在一个周期内能发出多少条指令,以及指令来自多少个线程。
现代SMT CPU的例子
- 英特尔Pentium 4是第一款实现同步多线程的现代桌面处理器,从2002年发布的3.06GHz型号开始,此后被引入到他们的多款处理器中。英特尔将该功能称为超线程技术(HTT),并提供了一个基本的双线程SMT引擎。英特尔宣称,与其他相同的、非SMT的Pentium 4相比,速度最高可提升30%。
- 最新的MIPS架构设计包括一个被称为"MIPS MT"的SMT系统。
- 2004年5月发布的IBM POWER5,有的是双核DCM,有的是四核或8核MCM,每个核心都包括一个双线程SMT引擎。IBM的实现比之前的更复杂,因为它可以给各个线程分配不同的优先级,更加细化,而且SMT引擎可以动态地开启和关闭,以更好地执行那些SMT处理器不会提高性能的工作负载。这是IBM对通用硬件多线程的第二次实现。
- 2008年发布的英特尔Atom是英特尔第一款采用SMT(市场上称为超线程)的产品,但不支持指令重排序、投机执行或寄存器重命名。
相关网页
- 线程(计算机科学)
- 并行计算
- 指令级并行
- 多核处理器
问题和答案
问:什么是同步多线程?答:同步多线程(SMT)是一种提高具有硬件多线程的超标量CPU整体效率的技术。它允许多个独立的执行线程,以更好地利用现代计算机架构所提供的资源。
问:SMT与多线程相比有什么不同?
答:多线程在概念上与多任务类似,但它在现代超标量处理器中是在执行线程层面上实现的,而多任务是在进程层面上实现的。
问:增加片上并行性的两种方法是什么?
答:增加片上并行性的两种方法是超标量技术和芯片级多线程(CMT)。
问:有哪些不同类型的芯片级多线程?
答:不同类型的芯片级多线程包括交错多线程(IMT)、细粒度多线程、粗粒度多线程和同步多线程(SMT)。
问:如何区分IMT/SMT/CMP?
答:区分IMT/SMT/CMP的关键因素是看处理器在一个周期内能发出多少条指令以及这些指令来自多少个线程。
问:对于SMT必须使用什么类型的处理器?
答:对于SMT,必须使用超标量的处理器。
问:芯片级多处理使用什么类型的处理器?
答:芯片级多处理使用多核处理器,将两个或多个超标量处理器集成到一个芯片中,每个处理器独立执行线程。