关于小悟志网站地图归档友情链接联系Feed

云上小悟 + 

首页 » InfoTech »

什么是超线程(HT)技术?

InfoTech
2012年9月11日 / 23次阅读
标签:计算机

拍拍贷

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 超线程有两个运行模式,Single Task Mode(单任务模式)及Multi Task Mode(多任务模式),当程序不支持Multi-Processing(多处理器作业)时,系统会停止其中一个逻辑CPU的运行,把资源集中于单个逻辑CPU中,让单线程程序不会因其中一个逻辑CPU闲置而减低性能,但由于被停止运行的逻辑CPU还是会等待工作,占用一定的资源,因此Hyper-Threading CPU运行Single Task Mode程序模式时,有可能达不到不带超线程功能的CPU性能,但性能差距不会太大。也就是说,当运行单线程运用软件时,超线程技术甚至会降低系统性能,尤其在多线程操作系统运行单线程软件时容易出现此问题。(应用软件要是多线程的,才有可能发挥出HT的效果来)

需要注意的是,含有超线程技术的CPU需要芯片组、软件支持,才能比较理想的发挥该项技术的优势。支持超线程技术的操作系统如:Microsoft Windows XP、Microsoft Windows 2003,Linux kernel 2.4.x以后的版本也支持超线程技术。

 

笼统地说,CPU中有两个部分:

1)Processing Unit(运算处理单元),简称PU

2)Architectual State(架构状态单元),简称AS

PU一般就是执行运算,比如算数运算加减乘除。AS执行一些逻辑和调度方面的操作,比如控制内存访问等。

普通CPU含一个PU一个AS,而超线程CPU含两个AS和一个PU。看下图:

超线程CPU和普通双核CPU对比

超线程CPU和普通双核CPU对比

上文已经提到,要将超线程的性能发挥出来,应用软件需是多线程的,否则还不如不要打开超线程(可以在BIOS中关闭)。

超线程CPU的每个物理核,一定是对应两个AS,而不是更多的AS。两个AS共享一个PROCESSOR CORE,在对应多线程应用的时候,才能够在某些时候更高效地利用CORE的处理能力,一定程度上实现并行。

在win7中,一个逻辑核被操作系统显示为物理核存在(不确定Linux是否也这样,不能识别逻辑核,都看成物理核),合理想象:CPU核的调度还是OS在进行,OS要能够感知到多线程,才有可能在多CPU中调度。因此,还是回到前面说到的,单线程程序不能发挥出超线程的性能优势,反而会让性能下降,因为多了额外协调两个AS的开销。

一般我们家里的电脑,同时要运行好多应用软件,那些专业开发的应用软件,或多或少都只多线程的,都能够在一定程度上发挥出超线程的优势,别的程序执行快了,你的单线程的执行感觉也好像快了。服务器系统是否使用超线程就好根据情况来分析了。

最后补充一句话:对于追求性能的软件来说,最好的方法是根据系统的CPU核数动态的产生对应的线程数。

 

- 赛扬是双核,不支持超线程 - 入门玩家

- 奔腾是双核,不支持超线程 - 中低端玩家

- i3是双核,支持超线程 - 中端玩家

- i5是4核,不支持超线程 - 中高端玩家

- i7是4核,支持超线程 - 高端玩家

而志强的一些低端CPU,普通玩家也可以用,比如

- E3是4核,支持超线程 - 高端玩家

本文链接:http://www.maixj.net/ict/ht-15776
云上小悟 麦新杰(QQ:1093023102)

-- (*^-^*) --

相关文章

评论是美德

《什么是超线程(HT)技术?》有1条评论

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.

  • 教科书中把超线程也称为SMT,对称多线程。SMT是硬件提供的功能,操作系统是否能够感知硬件细节(是一个真核,还是两个假核)到要看其具体实现。 [ ]


前一篇:
后一篇:

栏目精选


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号苏ICP备14045477号-1

网站二维码
拍拍贷
go to top