HT超线程技术是一种同步多执行绪技术,就是把一颗 CPU 当成两颗来用,将一颗具 Hyper-Threading 功能的“实体”处理器变成两个“逻辑”处理器而逻辑处理器对于操作系统来说跟实体处理器并没什么两样。
Intel 正式发布了“Hyper-Threading Technology(超线程技术)”这项技术将率先在 XEON 处理器上得到应用。通过使用该技术,Intel 将提供世界上首枚集成了双逻辑处理器单元的物理处理器(其实就是在一个处理器上整合了两个逻辑处理器单元),据说能够提高 40%的处理器性能,类似的技术似乎也将出现在 AMDK8-Hammer 处理器上。
介绍
当今的处理器发展普遍向着提高处理器指令平铺速率的方向迈进,但由于所使用的处理器资源会有冲突,因此性能提升的效果并不理想。而通过 Hyper-Threading 技术,通过在一枚处理器上整合两个逻辑处理器(注:是处理器而不是运算单元)单元,使得具有这种技术的新型 CPU 具有能同时执行多个线程的能力,而这是现有其它微处理器都不能做到的。
简单的说,Hyper Threading 是一种同步多执行绪(SMT,simultaneous Multi-threading)技术,它的原理很简单,就是把一颗 CPU 当成两颗来用,将一颗具 Hyper-Threading 功能的“实体”处理器变成两个“逻辑”处理器而逻辑处理器对于操作系统来说跟实体处理器并没什么两样,因此操作系统会把工作线程分派给这“两颗”处理器去执行,让多种应用程序或单一应用程序的多个执行绪(thread),能够同时在同一颗处理器上执行;不过两个逻辑处理器是共享这颗 CPU 的所有执行资源。
线程(Threads)
在 ? 年代中期,线程的概念被引入到操作系统的设计中,它是比进程更小的能独立运行的基本单位.操作系统中引入进程的目的,是为了使多个程序并发执行,以改善资源利用率及提高系统的吞吐量.进程有两个基本属性:(1)进程是一个可拥有资源的独立单位;(2)进程是可以独立调度和分派的基本单位.因为进程是一个资源拥有者,所以在进程的创建、撤消和切换中,系统必须为之付出较大的时空开销.因而,在系统中所设置的进程数目不宜过多,进程切换的频率也不宜过高,也就限制了并发程度的进一步提高.产生线程的概念,也是由于上述原因,有不少操作系统的学者们想到,将进程的两个属性分开进行处理.即对作为调度和分派的基本单位,不同时作为独立分配资源的单位,以使之轻装运行,而对拥有资源的基本单位,又不频繁地对之进行切换.在引入线程的操作系统中,线程是进程中的一个实体,是被系统独立调度和分派的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈),但它可与同属一个进程的其它线程共享进程所拥有的全部资源.一个线程可以创建和撤消另一个线程;同一进程中的多个线程之间可以并发执行.由于线程之间的相互制约,致使线程在运行中也呈现出间断性.相应地,线程也同样有就绪、阻塞和执行三种基本状态,有的系统中线程还有终止状态等.1.2 超线程技术(Hyper—Threading Technology 缩写为 HTT)超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算.具体讲,就是通过 CPU 的寄存器构成了两个逻辑处理器,来共享处理器的物理执行单元,并同步进行加、乘、负载等操作.操作系统或者应用软件的多线程可以同时运行于一个 HTT 处理器上,两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、负载等操作,这样就可以使得运行性能提高,这是因为在同一时间里,应用程序可以使用芯片的不同部分.虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作.而超线程技术可以使芯片同时进行多线程处理,使处理器性能得到提升。
产生原因
CPU 发展到今天,其整体速度虽然越来越快,内部的执行单元却越来越得不到充分的利用.为什么呢?原来 NetBurst 架构的奔腾 4 在设计结构上就每次只能处理一个线程,而与此同时我们的电脑需要同步执行的任务却在不断增加,而且花在各线程之间切换等待的时间太多,处理器的应用效率自然也就降低了.长期以来,CPU 生产商为了提高 CPU 的性能,通常做法是提高 CPU 的时钟频率、增加缓存容量、晶体管数量以及指令集来提升其性能.这些方法的副作用就是会增加处理器的功耗,而且往往会受到制造工艺上的限制以及成本过高的制约.CPU 要想取得更好的表现,拥有更快的处理速度,就得需要更大的供电量,更强劲的散热条件.2005 年,英特尔取消了生产 4.0GHz 的“Tejas”单核处理器.因为他们发现,要想达到这个频率,它的驱动功率必须要达到 100W.不仅如此,要保证它正常的运行还要有温度的控制,需要更大的散热器.要是在不过多增加硬件投入的情况下,处理器就能够充分利用现有的强劲物理单元同步执行多线程来增强性能,那该多好?因此,Intel 采用另一个思路去提高 CPU 的性能,让 CPU 可以同时执行多重线程,就能够让 CPU 发挥更大效率,即超线程技术.也正是由于通过不高的代价,就能带来极大的性能提升,超线程技术倍受 Intel 的青睐,并被予以大力宣传.
工作原理
超线程技术的工作原理是在每个时钟周期内完成更多工作,一个支持超线程(HT)技术的处理器使当前的操作系统和应用可以看到两个虚拟处理器,该处理器可以同时处理两组任务,充分利用闲置资源,并可在相同时间内完成更多工作.在处理多个线程的过程中,多线程处理器内部的每个逻辑处理器均可以单独对中断做出响应,当第一个逻辑处理器跟踪一个软件线程时,第二个逻辑处理器也开始对另外一个软件线程进行跟踪和处理了.另外,为了避免 CPU 处理资源冲突,负责处理第二个线程的那个逻辑处理器,其使用的是仅是运行第一个线程时被暂时闲置的处理单元.例如:当一个逻辑处理器在执行浮点运算(使用处理器的浮点运算单元)时,另一个逻辑处理器可以执行加法运算(使用处理器的整数运算单元).这样做,无疑大大提高了处理器内部处理单元的利用率和相应的数据、指令的吞吐能力.4 实现超线程技术的前提条件实现超线程的五大前提条件:(1)需要 CPU 支持:目前正式支持超线程技术的 CPU 有 Pentium4 3.O6GHz、2.40C、2.60C、2.80C、3.0GHz、3.2GHz 以及 Prescott 处理器,还有部分型号的 Xeon.(2)需要主板芯片组支持:正式支持超线程技术的主板芯片组的主要型号包括 Intel 的 875P,E72O5,850E,865PE/G/P,845PE/GE/GV,845G(B-stepping),845E.875P,E7205,865PE/G/P,845PE/GE/GV 芯片组均可正常支持超线程技术的使用,而早前的 845E 以及 850E 芯片组只要升级 BIOS 就可以解决支持的问题.SIS 方面有 SIS645DX(B 版)、SIS648(B 版)、SIS655、SIS658、SIS648FX.VIA 方面有 4X4O0A、P4X6OO、P4X8OO.(3)需要主板 BIOS 支持:主板厂商必须在 BIOS 中支持超线程才行.(4)需要操作系统支持:MicrosoftWin—dowsXP、MicrosoftW indows2003,Linuxkernel2。
4.XP 以后的版本也支持超线程技术.(5)需要应用软件支持:一般来说,只要能够支持多处理器的软件均可支持超线程技术,但是实际上这样的软件并不多,而且偏向于图形、视频
处理等专业软件方面,游戏软件极少有支持的.应用软件有 Office2000、Photoshop 等.5 超线程技术的优缺点
优点优点一
物美价廉。由于这项技术是将一个处理器模拟成两个使用,从而在增加极少投入的情况下就能够提高性能.对于操作系统来说,它又像真的拥有两个物理处理器一样工作,从而让两个程序或一个程序的两个线程,能够在单处理器上同时执行.由于减少了在线程之间的切换,提高了执行单元的利用率,从而使处理器实际使用效果得到极大的改善.
优点二
超线程在 Web 服务、SQL 数据库等很多服务器领域的应用中表现优异.在 2001 年的时候,IBM 就推出了它的第一款双核 Power 4 处理器.IBM 当时是用在了它的 RISC 服务器中,服务器的性能得到了很大的提高.
优点三
在某些支持多线程的软件应用上能够得到 3O 左右的性能提升,如 3Dsmax、Maya、Of—rice、Photoshop 等.在今后的软件开发中,支持多线程应用的软件定会蓬勃发展,大多数主流软件都会利用到超线程.因为无论是硬件厂商或软件厂商都会利用新技术来巩固自己的市场地位.
优点四
WindowsXP 已经针对其作出优化,在运行多个不支持多线程的程序时,性能也可能会获得提高.即便带来损失,也会显得比较轻微.
优点五
主流的桌面芯片组基本都已可以支持超线程,无需额外的花费.
优点六
目前在高端的 Pentium EE 和一部分 Xeon 上也支持超线程技术.在支持超线程的处理器的机器上,支持多 CPU 的 Windows 会认出两个 CPU.而在支持双内核处理的机器上,Windows
也会认出两个 CPU,在支持超线程双内核的处理器上,Windows 会认出四个 CPU.