超线程技术

来源:互联网 发布:p2p网络控制器 编辑:程序博客网 时间:2024/05/16 23:52
 
                                     线
                                  XIDIAN  130513熊站营  学号:13051239
摘要:
    Hyper-Threading Technology即超线程技术,就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算。从而兼容多线程操作系统和软件,提高处理器的性能。操作系统或者应用软件的多线程可以同时运行于一个HTT处理器上,两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、负载等操作。本文主要讲解超线程技术,其工作原理和软硬件支持平台。
关键字:
    超线程技术   HTT工作原理   软硬件支持平台 性能影响   虚实CPU实际分配方案
引言:
当今的处理器发展普遍向着提高处理器指令平铺速率的方向迈进,但由于所使用的处理器资源会有冲突,因此性能提升的效果并不理想。而通过Hyper-Threading技术,通过在一枚处理器上整合两个逻辑处理器(注:是处理器而不是运算单元)单元,使得具有这种技术的新型CPU具有能同时执行多个线程的能力,而这是现有其它微处理器都不能做到的。20021114日,Intel发布3GHz CPU的时候,透露了其内部拥有先进的超线程技术,此言一出,整个IT界都为之哗然。因为超线程技术虽然一年前就发布了,但一直使用在高端的XEON 服务器CPU中,今番迈入个人电脑CPU系列,的确是INTEL的一大转变。经过五年的发展,超线程技术的应用也日趋成熟。
 
超线程技术:
超线程技术是便于让人理解而取的名称,它的原理来自适用于x86平台的同步多线程(SMT)技术[1]。究竟什么是超线程技术?简而言之:超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算。从而兼容多线程操作系统和软件,提高处理器的性能。操作系统或者应用软件的多线程可以同时运行于一个HTT处理器上,两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、负载等操作。这样就可以使得运行性能提高30%,这是因为在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而“超线程”技术可以使芯片同时进行多线程处理,使芯片性能得到提升。
 
HTT工作原理:
Hyper Threading是一种同步多执行绪(SMT,simultaneous Multi-threading)技术,它的原理很简单,就是把一颗CPU当成两颗来用,将一颗具Hyper-Threading功能的“实体”处理器变成两个“逻辑”处理器,而逻辑处理器对于操作系统来说跟实体处理器并没什么两样,因此操作系统会把工作线程分派给这“两颗”处理器去执行,让多种应用程序或单一应用程序的多个执行绪(thread),能够同时在同一颗处理器上执行;不过两个逻辑处理器是共享这颗CPU的所有执行资源[2]
Hyper-Threading做法是复制一颗处理器的架构指挥中心(architectural state)变成两个,使得Windows操作系统认为是在与两颗处理器沟通,但这两个架构指挥中心共享该处理器的工作资源(execution resources)。架构指挥中心追踪每个程序或执行绪的执行状况;工作资源指的则是“处理器用来进行加、乘、加载等工作的单元(execution unit)”。如此一来,操作系统把工作线程安排好以后,就分派给这两个逻辑上的处理器执行,而这颗CPU的每个执行单元等于在同样的时间内要服务两个“指令处理中心”,当然它的效率就高多了,操作系统就把一颗实体的处理器认定为两个逻辑处理器作工作指派,当然整体工作效能就比没有具备Hyper-Threading 的处理器高出许多,性价比自然高出许多。
 
软硬件支持平台:
超线程技术发展前景远大。但它如以前的其它技术一样,需要硬件和软件多方面的支持才能真正应用。要想使用超线程技术,首先硬件设备必须支持这项技术,目前可以支持这项技术的CPU目前正式支持超线程技术的CPU有Pentium4 3.06GHz 、2.40C、2.60C、2.80C 、3.0GHz、3.2GHz以及Prescott处理器,还有部分型号的Xeon。主板有微星648 Max[3]、天虹UB-8I845GE、天虹UB-8I845PE、天虹UB-8I845GV、天虹UB-8I845G、华硕I845PE、百时通8IXPE。除了硬件的支持,还需要操作系统的支持,目前WINDOWS XP及后续版本以及最新版本的LINUX才能很好的支持这项技术。除了操作系统支持外,最后还需要应用软件支持这项技术。只要能够支持多处理器的软件均可支持超线程技术,但是实际上这样的软件并不多,而且偏向于图形、视频处理等专业软件方面,游戏软件极少有支持的。目前,OFFICE 2000/XP、3Dmax、MAYA等软件已经支持超线程技术,而且以后会有越来越多的软件支持这项技术
 
超线程技术对性能的影响:
超线程技术对性能的影响与使用的软件有直接联系,不能一概而论。有人以为两个处理器可以提高双倍性能,其实即使真的有两个物理CPU并行工作也根本不可能有这样的提高。据Intel方面解释,超线程技术能够提高30%以上的性能。据目前测试和使用的情况来看,除非运行某些特别为超线程,多任务优化代码的软件,否则超线程对系统性能的提高比较有限。当然,因为Windows XP系统对超线程支持较好,打开超线程之后,系统整体性能会有一定提高,而且在实际使用中用户一般多项任务同时处理,在这种状态下,打开超线程对整体性能的提高还是比较明显的。
然而,如果程序只支持单线程的话,打开超线程不会有性能上的提高,而且刚刚超线程技术的两个虚拟逻辑处理器使用一套执行单元,缓存。如果两者之间产生竞争资源的情况,系统会增加一定的延迟,就有可能产生打开超线程之后性能反而下降的情况。因为超线程本身是由服务器领域转化到桌面系统的,甚至有的软件,有的硬件还可能和超线程产生兼容性问题,如果打开超线程,软件就不能运行,或者运行不正常。据了解,一些PC供应商,比如DELL,在整机出货的时候默认关闭超线程,就是考虑到可能存在一定兼容性问题,而且性能提高有限甚至有少数反而下降。
当然总的来说,超线程技术带来的是正面的影响,能够在不提高系统频率的情况下提高性能,是当前CPU设计的大势所趋。随着软件的成熟,系统的完善,如今的超线程技术已经基本不会产生多大的兼容性问题了,所以建议如果你的机器能够打开超线程,又是使用Windows XP操作系统,还是打开超线程比较合算。
 
虚实CPU实际分配方案:
特定的应用程序在打开超线程的时候会变慢,有的甚至运行不正常,如果遇到这种问题,你怎么办?通常的办法只能是在BIOS里面关闭超线程,代价就是系统大多数程序以及系统本身效率下降,虽然幅度不大,但是对性能的影响仍然存在。特别是一些专门使用多媒体压缩的用户,哪怕是5%以内的性能提高都可以使压缩时间大为缩短。而且超线程的确在这一方面特别有效。那么有没有方法使得你又享受超线程带来的快感,同时减小它带来的不良影响呢?
我们自可以让操作系统对那些受超线程不良影响的程序指定使用单处理器模式,即把我们认为可能受到超线程不利影响的程序都分配给真实CPU来执行,那么我们可以在不关闭超线程的情况下,降低超线程带来的负面影响。根据实际测试,使用自己分配的方案可以在超线程起反作用的时候提高性能。
至于到底应该给什么程序分配单线程,什么程序分配超线程,具体情况需要具体分析。每一款程序不同,每一台机器也不一样,需要我们慢慢摸索结论。
有一些经验可供参考:
1.对于打开超线程后产生问题的软件,尝试仅用物理处理器。
2.如果你经常频繁使用两款软件,比如一边压mp3,一边写文章,又如一边扫毒,一边上网。这种情况可以尝试分别给两个处理器分配不同工作,这样比起操作系统自己分配要好。
3.有一些用户经常整夜压音乐,压MPEG 4或者其他格式电影。这种情况下可以自己作评测:用一段测试片断,分别运行在仅用物理处理器和使用系统默认自动分配任务两种状态,看哪一个更加快。这样可以节省很多时间。
4.有一些用户专门运行科学计算程序,比如MATLAB,比如MATHEMATICA,还有很多行业软件,比如电路设计软件,三维建模软件。一些著名软件已经越来越多地为超线程优化,但是仍有不少软件不能很好支持超线程。这些软件您更有必要自己测试一下,因为很多时候一些程序一运行就是几天,甚至几个礼拜,对这种程序榨干系统的性能很重要。
5.对游戏用户,超线程并不会有多大帮助。
   
结束语:
    超线程技术刚刚兴起,它可能使系统性能大幅提升,使整个IT界为之哗然。但超线程技术的实现是有条件的。除了操作系统支持之外,还必须要软件的支持。从这点我们就可以看出,就目前的软件现状来说,支持双处理器技术的软件毕竟还在少数。对于大多数软件来说,目前由于设计的原理不同,还并不能从超线程技术上得到直接的好处。因为超线程技术是在线程级别上并行处理命令,按线程动态分配处理器等资源。该技术的核心理念是“并行度(Parallelism)”,也就是提高命令执行的并行度、提高每个时钟的效率。这就需要软件在设计上线程化,提高并行处理的能力。而目前PC上的应用程序几乎没有为此作出相应的优化,采用超线程技术并没不能获得效能的大幅提升。这就要求我们程序设计者,改变软件开发思路和方法,开发出更多更好的支持HTT的软件。相信随着更多桌面软件开发者的支持,这项属于服务器市场的贵族技术会愈加成熟并在桌面电脑市场普及。
参考文献:
[1]http://www.bych.cn/html/2006-11/3553.html 漫谈CPU“超线程技术”
[2]http://detail.zol.com.cn/product_param/index2743.html 主板 : 超线程技术
[3]http://tech.sina.com.cn/c/2002-09-17/15693.html 支持超线程技术的P4主板
[4]http://www.pc-long.com/zzwh/jsmcxj/zb-cxc.asp 精品课程网
[5]http://www.chinaserver.cn/service_evaluating.php?sty=9&newsid=825超线程技术祥解--HTT与服务器应用
[6]http://baike.baidu.com/view/39.htm   超线程—百度百科
 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 普通发票联丢了医保给报销怎么办 手机买好高铁票身份证丢了怎么办 买了高铁票身份证丢了怎么办 小米手机手电简打开不亮了怎么办 华为p7手机显示屏不亮了怎么办 红米手机3x屏幕不灵怎么办? 乐视1s手机字库坏了怎么办 三星c7手机左右两按钮不亮怎么办 手机摔了一屏碎了下黑屏了怎么办 三星手机摔了一下黑屏了怎么办 行驶证一年扣分超过50分怎么办 朋友去广西传销现在骗我怎么办 行驶证忘带交警查住了怎么办 行驶证正本丢了副本在怎么办 在杭州驾照12分扣完了怎么办 驾照审验期过了40天了怎么办 自己的车借给别人撞死了人怎么办 无证驾驶报别人驾驶证被扣车怎么办 交了强制险但驾驶证过期了怎么办 考驾照科目一身份证掉了怎么办 驾照科目二考试身份证丢了怎么办 身份证遗失又要参加考试怎么办啊 驾驶本到期换本有扣分怎么办 b2驾驶证六年到期有扣分怎么办 驾考有效期是几年过期了怎么办? 驾考要过期了科四补考没过怎么办 驾驶证过期了可副业丢了怎么办 外地人北京驾驶本到期换本怎么办 报考驾照时电话号码填错了怎么办 报考驾照时电话填错了怎么办 邢台开三轮车驾证扣12分怎么办 新c1驾照扣满6分怎么办 b2驾照酒驾降级后再次酒驾怎么办 我b2驾照扣了9分怎么办 开别人的车出了事故怎么办 骑摩托车行驶证年检过期了怎么办 在两个城市车船税交重复了怎么办 车子被撞对方全责不赔钱怎么办 驾驶证暂扣期间该审证了怎么办 号码预约被不小心取消了怎么办 老婆出轨要跟我离婚我不想离怎么办