博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是超线程技术?
阅读量:2453 次
发布时间:2019-05-10

本文共 2104 字,大约阅读时间需要 7 分钟。

CPU生产商为了提高CPU的性能,通常做法是提高CPU的时钟频率和增加缓存容量。不过目前CPU的频率越来越快,如果再通过提升CPU频率和增加缓存的方法来提高性能,往往会受到制造工艺上的限制以及成本过高的制约。

  尽管提高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系列芯片组都支持超线程技术。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/312079/viewspace-245284/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/312079/viewspace-245284/

你可能感兴趣的文章
面试官问你想找什么工作_找工作时如何面试面试官
查看>>
适合初学者的数据结构_数据结构101:数组-初学者的直观介绍
查看>>
初级开发人员的缺点_这是我想放弃初级开发人员时所做的事情
查看>>
我如何使用深度学习通过Fast.ai对医学图像进行分类
查看>>
unity 灯笼_如何创建将自己拼成文字的漂亮灯笼
查看>>
regexp 好汉字符串_如何在JavaScript中使用RegExp确认字符串的结尾
查看>>
以太坊公链私链_如何使用以太坊构建汽车制造供应链系统
查看>>
您尝试打开的文件_您是否尝试过重新打开软件团队的身份?
查看>>
编写react组件_React组件的“黄金法则”如何帮助您编写更好的代码
查看>>
react hooks使用_如何使用Hooks将React类组件转换为功能组件
查看>>
websockets_如何将WebSockets与AWS API Gateway和Lambda一起使用来构建实时应用程序
查看>>
软件访问转向本地_我是如何从完整的初学者转向软件开发人员的,以及如何做到的...
查看>>
算法渐近性质分析_神奇宝贝解释的渐近分析:深入研究复杂性分析
查看>>
c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法
查看>>
bigquery使用教程_如何使用Python和Google BigQuery构建机器人以自动执行您的笨拙任务...
查看>>
2019机器学习比赛_2019顶尖的机器学习课程
查看>>
银行软件开发实习生_如何找到学生的软件开发人员实习生
查看>>
根据我的经验如何进行数据科学,人工智能或大数据工作
查看>>
!! javascript_产量! 产量! 生成器如何在JavaScript中工作。
查看>>
初级java开发学习路线_成为初级全栈Web开发人员的10分钟路线图
查看>>