超线程技术

 
                                     线
                                  XIDIAN  130513 熊站营  学号: 13051239
摘要:
    Hyper-Threading Technology 即超线程技术,就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算。从而兼容多线程操作系统和软件,提高处理器的性能。操作系统或者应用软件的多线程可以同时运行于一个 HTT 处理器上,两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、负载等操作。本文主要讲解超线程技术,其工作原理和软硬件支持平台。
关键字:
    超线程技术   HTT工作原理   软硬件支持平台 性能影响   虚实CPU实际分配方案
引言:
当今的处理器发展普遍向着提高处理器指令平铺速率的方向迈进,但由于所使用的处理器资源会有冲突,因此性能提升的效果并不理想。而通过 Hyper-Threading 技术,通过在一枚处理器上整合两个逻辑处理器(注:是处理器而不是运算单元)单元,使得具有这种技术的新型 CPU 具有能同时执行多个线程的能力,而这是现有其它微处理器都不能做到的。 2002 11 14 日, 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 “超线程技术”
[3] http://tech.sina.com.cn/c/2002-09-17/15693.html 支持超线程技术的 P4 主板
[5] http://www.chinaserver.cn/service_evaluating.php?sty=9&newsid=825 超线程技术祥解 --HTT 与服务器应用
[6] http://baike.baidu.com/view/39.htm   超线程—百度百科
 
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值