Architecture: Hyper Threading
架构:超线程
HTT超线程技术出自Intel位于Oregen俄勒冈州的Hillsboro研发中心。Pentium Pro、Pentium 4、Nehalem架构都是出自这个Hillsboro研发中心。Pentium 4和Nehalem搭载的HTT超线程都是同一个东西,都是让处理器可以同时运行多条指令,实际上,它们属于多线程技术中的一个分类:SMT同步多线程。起先,Intel在资料中使用SMT来称呼Nehalem的HT技术,然而SMT实是一个专有名词,并不仅仅Nehalem有采用,于是Intel又改变了主意,又将其称作为HTT超线程。各种典故可以看这里:机密揭露:Intel超线程技术有多少种?。
Nehalem的超线程技术就是NetBurst超线程技术的升级版本,和Atom和Itanium的超线程技术都不同
并不是所有的Nehalem处理器都提供了超线程技术,在Nehalem-EP当中,只有末尾是0的型号才具有,是其他数字的就不具备HTT。如L5502是一款双核的、不搭载超线程技术的Nehalem-EP处理器,千颗售价$188,非常便宜。当然值不值得又是另外一回事了。
超线程技术可以通过很少的代价提升并行应用的性能,特别是在服务器领域,因此Nehalem在服务器领域的能力将会再一次得到提升。AMD目前并没有类似的技术,因此在未来的对阵当中,Nehalem更被看好些。
SMT属于MTT的一种,下面是MTT——MultiThreading多线程技术的主要分类,MultiThreading多线程就是在一个单个的处理核心内同时运行多个工作线程的技术,和CMP(Chip MultiProcessing,芯片多处理)不同,后者是通过集成多个处理内核的方式来让系统的处理能力提升——也就是现在常见的多核技术。现在主流的处理器都使用了CMP技术。主流的MultiThreading具有着三种形式,差别在于线程间共享的资源以及线程切换的机制:
多线程架构异同 | |||||
多线程技术 | 线程间共享资源 | 线程切换机制 | 资源利用率 | ||
粗粒度多线程 Coarse-Grained MultiThreading | 除取指令缓冲、寄存器、控制逻辑外 | 流水线停顿时 | 提升单个执行单元利用率 | ||
细粒度多线程 Fine-Grained MultiThreading | 除寄存器、控制逻辑外 | 每时钟周期 | 提升单个执行单元利用率 | ||
同步多线程 Simultaneous MultiThreading | 除取指令缓冲、返回地址堆栈、寄存器、控制逻辑、重排序缓冲、Store队列外 | 所有线程同时活动,无切换 | 提升多个执行单元利用率 |
其中CMT和FMT都是在单个执行单元下的技术,不同的线程在指令级别上并不是真正的“并行”,而SMT则具有多个执行单元,同一时间内可以同时执行多个指令,因此前两者有时先归类为TMT(Temporal MultiThreading,时间多线程),以和SMT相区分。
Itanium 2 Montecito也具有超线程技术,不过,和Pentium 4/Nehalem不同,它属于CMT粗粒度多线程技术