Intel正式发布了“Hyper-Threading Technology(超线程技术)”这项技术将率先在XERON处理器上得到应用。通过使用该技术,Intel将提供世界上首枚集成了双逻辑处理器单元的物理处理器(其实就是在一个处理器上整合了两个逻辑处理器单元),据说能够提高40%的处理器性能,类似的技术似乎也将出现在AMDK8-Hammer处理器上。
何为Hyper-Threading:
当今的处理器发展普遍向着提高处理器指令平铺速率的方向迈进,但由于所使用的处理器资源会有冲突,因此性能提升的效果并不理想。而通过Hyper-Threading技术,通过在一枚处理器上整合两个逻辑处理器(注:是处理器而不是运算单元)单元,使得具有这种技术的新型CPU具有能同时执行多个线程的能力,而这是现有其它微处理器都不能做到的。
简单的说,Hyper Threading是一种同步多执行绪(SMT,simultaneous Multi-threading)技术,它的原理很简单,就是把一颗CPU当成两颗来用,将一颗具Hyper-Threading功能的“实体”处理器变成两个“逻辑”处理器而逻辑处理器对于操作系统来说跟实体处理器并没什么两样,因此操作系统会把工作线程分派给这“两颗”处理器去执行,让多种应用程序或单一应用程序的多个执行绪(thread),能够同时在同一颗处理器上执行;不过两个逻辑处理器是共享这颗CPU的所有执行资源。
Hyper-Threading做法是复制一颗处理器的架构指挥中心(architectural state)变成两个,使得Windows操作系统认为是在与两颗处理器沟通,但这两个架构指挥中心共享该处理器的工作资源(execution resources)。架构指挥中心追踪每个程序或执行绪的执行状况;工作资源指的则是“处理器用来进行加、乘、加载等工作的单元(execution unit)”。如此一来,操作系统把工作线程安排好以后,就分派给这两个逻辑上的处理器执行,而这颗CPU的每个执行单元等于在同样的时间内要服务两个“指令处理中心”,当然它的效率就高多了,操作系统就把一颗实体的处理器认定为两个逻辑处理器作工作指派,当然整体工作效能就比没有具备Hyper-Threading 的处理器高出许多,性价比自然高出许多。
超线程技术实现的必要条件
除了硬件支持之外,我们必须注意到,超线程技术的实现还需要软件的支持才能够发挥出应有的威力。首先是操作系统的支持,我们必须使用支持双处理器的操作系统,如Win2000等才能完全发挥出超线程技术的性能。至于软件方面,目前很多专业的应用程序对于双处理器都提供了支持,如著名的图形处理软件3Dmax、Maya等。
此外,很多用户可能会有疑问,既然超线程技术以前专门针对服务器处理器,那么现有的众多软件,能否完全兼容支持超线程技术的处理器,是否还需要什么修改才能运行呢?其实这个我们大可不必担心,现有的IA32软件不需进行任何的修改,就可以在支持超线程的P4处理器上很好的运行了。
超线程=效能提升?
一般很多人都会认为,采用超线程技术,就能使得系统效能大幅提升,但是事实真是如此么?不要忘了我们前面说到的超线程技术实现的必要条件,这可是超线程技术发挥应有效能的前提条件。除了操作系统支持之外,还必须要软件的支持。从这点我们就可以看出,就目前的软件现状来说,支持双处理器技术的软件毕竟还在少数。对于大多数软件来说,目前由于设计的原理不同,还并不能从超线程技术上得到直接的好处。因为超线程技术是在线程级别上并行处理命令,按线程动态分配处理器等资源。该技术的核心理念是“并行度(Parallelism)”,也就是提高命令执行的并行度、提高每个时钟的效率。这就需要软件在设计上线程化,提高并行处理的能力。而目前PC上的应用程序几乎没有为此作出相应的优化,采用超线程技术并没不能获得效能的大幅提升。
上面说的只是目前软件支持的现状,操作系统在这个方面则没有太大的问题,毕竟Windows的某些版本、Linux都是支持多处理器的操作系统。并且随着Intel支持超线程技术的处理器面世之后,凭借Intel处理器的号召力,必然会引起目前应用程序设计上的改变,必然会有更多的支持并行线程处理的软件面世,届时,当然是支持超线程处理器大显身手的时候了。那时候,普通用户才能够从超线程技术中得到最直接的好处。
尽管提高CPU的时钟频率和增加缓存容量后的确可以改善性能,但这样的CPU性能提高在技术上存在较大的难度。实际上在应用中基于很多原因,CPU的执行单元都没有被充分使用。如果CPU不能正常读取数据(总线/内存的瓶颈),其执行单元利用率会明显下降。另外就是目前大多数执行线程缺乏ILP(Instruction-Level Parallelism,多种指令同时执行)支持。这些都造成了目前CPU的性能没有得到全部的发挥。因此,Intel则采用另一个思路去提高CPU的性能,让CPU可以同时执行多重线程,就能够让CPU发挥更大效率,即所谓“超线程(Hyper-Threading,简称“HT”)”技术。超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。
采用超线程及时可在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而超线程技术可以使芯片同时进行多线程处理,使芯片性能得到提升。
超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元)。因此新一代的P4 HT的die的面积比以往的P4增大了5%。而其余部分如ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache(二级缓存)则保持不变,这些部分是被分享的。
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。
英特尔P4 超线程有两个运行模式,Single Task Mode(单任务模式)及Multi Task Mode(多任务模式),当程序不支持Multi-Processing(多处理器作业)时,系统会停止其中一个逻辑CPU的运行,把资源集中于单个逻辑CPU中,让单线程程序不会因其中一个逻辑CPU闲置而减低性能,但由于被停止运行的逻辑CPU还是会等待工作,占用一定的资源,因此Hyper-Threading CPU运行Single Task Mode程序模式时,有可能达不到不带超线程功能的CPU性能,但性能差距不会太大。也就是说,当运行单线程运用软件时,超线程技术甚至会降低系统性能,尤其在多线程操作系统运行单线程软件时容易出现此问题。
需要注意的是,含有超线程技术的CPU需要芯片组、软件支持,才能比较理想的发挥该项技术的优势。操作系统如:Microsoft Windows XP、Microsoft Windows 2003,Linux kernel 2.4.x以后的版本也支持超线程技术。目前支持超线程技术的芯片组包括如:
Intel芯片组:
845、845D和845GL是不支持支持超线程技术的;845E芯片组自身是支持超线程技术的,但许多主板都需要升级BIOS才能支持;在845E之后推出的所有芯片组都支持支持超线程技术,例如845PE/GE/GV以及所有的865/875系列以及915/925系列芯片组都支持超线程技术。
VIA芯片组:
P4X266、P4X266A、P4M266、P4X266E和P4X333是不支持支持超线程技术的,在P4X400之后推出的所有芯片组都支持支持超线程技术,例如P4X400、P4X533、PT800、PT880、PM800和PM880都支持超线程技术。
SIS芯片组:
SIS645、SIS645DX、SIS650、SIS651和早期SIS648是不支持支持超线程技术的;后期的SIS648、SIS655、SIS648FX、SIS661FX、SIS655FX、SIS655TX、SIS649和SIS656则都支持超线程技术。
ULI芯片组:
M1683和M1685都支持超线程技术。
ATI芯片组:
ATI在Intel平台所推出的所有芯片组都支持超线程技术,包括Radeon 9100 IGP、Radeon 9100 Pro IGP和RX330。
nVidia芯片组:
即将推出的nForce5系列芯片组都支持超线程技术。
.超线程技术的优势在于同时进行多任务批处理工作,尽管现在支持超线程技术的软件不多,也只有少数的软件可以享受到由超线程技术带来的性能提升,但是这符合今后软件等技术的发展方向,今后更多的软件将受益于超线程技术。
2.从目前来看,部分客户发可以发觉在运行某些特定软件时,超线程技术让系统有了30%的性能提升,为超线程技术优化的软件都能够享受到超线程技术的好处。
3.客户同时运行两个以上的软件软件时候,将可以明显的感受到这两个软件的性能都得到提升相比关闭超线程技术的情况下都有很大的提升,超线程技术的效率优势只有在多任务操作时候才能得到发挥。
4.另外目前支持超线程技术的Windows XP操作系统,其中的很多系统软件都已经针对超线程技术优化过,因此在使用Windows操作系统的时候可以很好的享受到超线程技术带来好处。
HT技术缺点:
1.因为超线程技术是对多任务处理有优势,因此当运行单线程运用软件时,超线程技术将会降低系统性能,尤其在多线程操作系统运行单线程软件时将容易出现此问题(这也是在WindowsXP中运行显卡的测试软件时候,得分下降了一点)。
2.在打开超线程支持后,如果处理器以双处理器模式工作,那么处理器内部缓存就会被划分成几区域,互相共享内部资源。对于不支持多处理器工作的软件在双处理器上运行时出错的概率要比单处理器上高很多。
3.目前因为很多工作战软件为Windows 2000操作系统进行过优化,但是采用Windows2000这样的操作系统的工作战无法完全利用超线程技术的优势,也带来不了高的工作效率。
通过上面的解答,我们应该知道了超线程技术的确实对系统性能提升有好处,但是这仅对多任务处理的时候有优势,在进行单各任务处理的时候,优势表现不出来,而且因为打开超线程,处理器内部缓存就会被划分成几区域,互相共享内部资源,造成单个的子系统性能下降。个人认为,用户在进行单任务操作时候,没有必要打开超线程,只有多任务操作时候可以适时打开超线程,享受超线程技术带来的好处。
超线程(HT)是Intel新款P4处理器才具有的一项功能,这项技术能显著提高计算机在多任务并行时的处理能力。但大多数人所使用的CPU并不具备这个功能,并且近期没有升级硬件的打算。
最近笔者试用了一款叫做Process Tamer,它能实现超线程技术类似的功能,即根据程序运行情况自动分配CPU时间。那么,这款软件究竟可以解决哪些问题呢?看看下面的典型例子:
①使用QQ/MSN同时多人视频时,系统进行其他操作变得异常迟缓。
②打开包含较多图片、Flash、视频的网页时,IE界面无法自动刷新,其他程序也陷入假死。
Process Tamer 小档案
软件版本:2.00.15 软件大小:1.3MB
软件性质:免费软件 运行环境:Windows 2000/XP
下载地址:http://www.newhua.com/cfan/200517/protm2015.exe
下载安装这个软件后,屏幕右下角的系统托盘中就出现了一个天平的图标,这样Process Tamer就会自动平衡各个进程对CPU的资源占用,提高多任务间切换的速度。
由于Process Tamer的自动调整机制可能造成一些问题,比如在CPU占用率高时自动降低正在进行记录操作的Nero进程优先级,有可能把盘刻“飞”,所以还需要手动更改一些设置。
第一步:右击系统托盘中的Process Tamer图标,选择“Configure”(设置),打开配置面板。
第二步:在弹出窗口中切换到“Processes”(进程)标签,在其下方的列表中就显示了当前已经运行的进程(CPU占用低于1%的默认不显示),找到需要更改的进程,本例中我们选择nero.exe,在其“Explicit Rule”(显式规则)列的下拉列表中选择“Ignore”(忽略),点击“确定”(见图)。
小提示
在配置界面中去除“Hide<1%CPU”(隐藏CPU占用<1%的进程)的勾选就能显示所有进程。
原理与误区
很多文章都把这个软件神话了(包括有些大媒体的文章),其实它的作用只能说是用软件方式改善多任务的使用状况,与真正的基于硬件的超线程技术是有区别的。而有的文章却说“极力推荐各位赛扬D处理器用户们使用这个软件”,这就有点“伪科学”的嫌疑了。
Process Tamer实现多任务速度优化的原理是:在系统出现CPU高负载运行时,降低占用CPU时间最多的进程的优先级,提高那些被别的进程抢占CPU时间而导致响应迟滞的进程的优先级,这样就能降低系统出现假死的概率。经过测试发现,在运行Process Tamer时,系统并没有启动新的服务,所以判断该程序是运行在应用程序层,而非系统服务层的,也就是说,该软件自身的优先级切换功能也受到系统速度的影响。
http://publish.it168.com/cword/962.shtml





