超执行绪


超执行绪

文章插图
超执行绪超执行绪技术一般指本词条
超执行绪(HT, Hyper-Threading)是英特尔研发的一种技术,于2002年发布 。超执行绪技术原先只套用于Xeon 处理器中,当时称为“Super-Threading” 。之后陆续套用在Pentium 4 HT中 。早期代号为Jackson 。
通过此技术,英特尔实现在一个实体CPU中,提供两个逻辑执行绪 。之后的Pentium D纵使不支持超执行绪技术,但就集成了两个实体核心,所以仍会见到两个执行绪 。超执行绪的未来发展,是提升处理器的逻辑执行绪 。英特尔于2016年发布的Core i7-6950X便是将10核心的处理器,加上超执行绪技术,使之成为20个逻辑执行绪的产品 。
【超执行绪】英特尔表示,超执行绪技术让Pentium 4 HT处理器增加5%的裸晶面积,就可以换来15%~30%的性能提升 。但实际上,在某些程式或未对多执行绪编译的程式而言,超执行绪反而会降低性能 。除此之外,超执行绪技术亦要作业系统的配合,普通支持多处理器技术的系统亦未必能充分发挥该技术 。例如Windows 2000,英特尔并不鼓励用户在此系统中利用超执行绪 。原先不支持多核心的Windows XP Home Edition却支持超执行绪技术 。
基本介绍中文名:超执行绪
外文名:Super-Threading/Hyper-Threading
发布时间:2002年
公司:英特尔
简称:HT
学科:计算机
基本简介通过超执行绪技术,英特尔成为第一家实体处理器中,提供两个逻辑执行绪的公司 。之后的Pentium D纵使不支持超执行绪技术,但就集成了两个实体核心,所以仍会见到两个逻辑执行绪 。超执行绪的未来发展,是提升处理器的逻辑执行绪,英特尔有计画将8核心的处理器,加以配合超执行绪技术,使之成为16个逻辑执行绪的产品 。英特尔表示,超执行绪技术让(P4)处理器增加5%的裸晶面积,就可以换来15%~30%的效能提升 。但实际上,在某些程式或未对多执行绪编译的程式而言,超执行绪反而会降低效能 。除此之外,超执行绪技术亦要作业系统的配合,普通支持多处理器技术的系统亦未必能充分发挥该技术 。例如Windows 2000,英特尔并不鼓励使用者在此系统中利用超执行绪 。原先不支持多核心的Windows XPHome Edition却支持超执行绪技术 。运作方式每个单位时间内,一个单运行管线的CPU只能处理一个执行绪(作业系统:thread),以这样的单位进行,如果想要在一单位时间内处理超过一个执行绪是不可能的,除非是有两个CPU的实体单元 。双核心技术是将两个一样的CPU放置于一个封装内(或直接将两个CPU做成一个晶片),而英特尔的HT技术是在CPU内部仅複製必要的资源、让两个执行绪可同时运行;在一单位时间内处理两个执行绪的工作,模拟实体双核心、双执行绪运作 。Intel自Pentium开始引入超标量、乱序运行、大量的暂存器及暂存器重命名、多指令解码器、预测运行等特性;这些特性的原理是让CPU拥有大量资源,并可以预先运行及平行运行指令,以增加指令运行效率,可是在现实中这些资源经常闲置;为了有效利用这些资源,就乾脆再增加一些资源来运行第二个执行绪,让这些闲置资源可执行另一个执行绪,而且CPU只要增加少数资源就可以模拟成两个执行绪运作 。P4处理器需多加一个Logical CPU Pointer(逻辑处理单元) 。因此P4 HT的die的面积比以往的P4增大了5% 。而其余部分如ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache(二级快取)并未增加,且是共享的 。使用HT技术的CPUPentium 4CPU中,Northwood及其之后推出的版本内置超执行绪技术;但在早期的Northwood核心中,一些型号的HT技术被关闭,纵使有软体侦测到超执行绪技术的存在,用户并不可以激活;而双核心的Pentium D中也只有EE版提供HT技术 。英特尔的Core 2 Duo处理器则没有HT技术 。但处理器已集成了两个实体CPU核心,所以仍然支持两个执行绪 。而在2008年推出的Intel Core i7及Intel Atom处理器又支持类似HT的技术,在Nehalem中,Hyper-Threading 大举捲土重来 。在 IntelNetBurst架构的 Northwood 版本中开始导入的 Hyper-Threading-在 Intel 世界之外称为 Simultaneous Multi-Threading (SMT)-是善用执行绪平行性的方法,让单一核心在套用软体层能运行两个逻辑执行绪 。Intel Core i3(第八代除外)和Intel Core i7(第九代除外)支持该技术,双核心的Intel Core i5也支持该技术 。从Kaby Lake Pentium开始,目前定位低级的Pentium(部分型号)也支持超执行绪技术 。顾虑把运行管线的状态,想像成流水线,资源A→资源B→资源C,来了两条数据要计算,一条需要消耗A的100%→B的50%→C的50%,另一条一样需要消耗A的100%→B的50%→C的50%,一条单纯的(无HT)的运行管线的资源A需要先运用100%性能把第一条运算完才能再运算下一条,但后面的资源B跟C却都有50%性能的浪费; 如果把运行管线的资源A,变成两个,资源B跟C依然只有一个,那这条管线就可以变成“两个资源A同时消耗100%性能运算两条数据,到了资源B跟C阶段时,两条数据再各自消耗50%的性能”,即达成“不必增加一条完整的运行管线,却能在一样时间运算两条执行绪”但实际套用时,运行管线不会都是收到这幺完美的需运算数据,可能会是需消耗“A的10%→B的70%→C的70%”+“A的30%→B的50%→C的70”+......等多种不同性能需求的需运算数据,依照档案的统计数字,整体能够提升的性能约为5~15%左右,且万一发生资源互抢的情形时,整体性能反而会下降 。(以上是非常简略地描述大略情形,实际的超执行绪架构从P4时代至i系列6代,每一代都有所进化)要令计算机支持超执行绪技术,通常需作业系统和硬体的配合 。晶片组需要支持具有HT技术之处理器 。为此,当时的Intel推出了新的晶片组,i865PE和i875P 。要充分发挥超执行绪的性能,用户要使用Windows 2000之后的作业系统,而Windows XP家用版亦支持超执行绪技术 。除了微软的Windows外,Linux kernel 2.4.x亦开始支持该技术 。软体方面,通常最佳化多执行绪的程式都可以支持到 。早期,游戏软体的支持是比较少 。但随着多核心技术的普及,愈来愈多游戏软体支持多执行绪的处理器 。使用前提需要CPU支持正式支持超执行绪技术的CPU有Core i3、Core i5、Core i7全系 。在老CPU中,Pentium4 3.06GHz 、2.40C、2.60C、2.80C 、3.0GHz、3.2GHz以及Prescott处理器,还有部分型号的Xeon支持超执行绪技术 。需要主机板晶片组支持需要正式支持超执行绪技术的主机板晶片组支持超执行绪技术的使用,而早前的一些晶片组只能升级BIOS就可以解决支持的问题需要主机板BIOS支持主机板厂商必须在BIOS中支持超执行绪才行 。需要作业系统支持微软的作业系统中只有Windows XP专业版及后续版本支持此功能,而在Windows 2000上实现对超执行绪支持的计画已经取消了 。需要套用软体支持一般来说,只要能够支持多处理器的软体均可支持超执行绪技术,但是实际上这样的软体并不多,而且偏向于图形、视频处理等专业软体方面,游戏软体极少有支持的 。实际问题由于处理器实际上只有一个核心,能够提升的效能约为5~15%左右,且万一发生资源互抢的情形时,整体效能反而会下拉 。这亦是AMD不提供虚拟双核心处理器的理由 。另外,由于架构的不同,AMD的处理器对多工处理的表现会较好,所以没有迫切性令产品支持相关的技术 。要令到计算机支持超执行绪技术,必须要软体和硬体的配合 。处理器本身要支持超执行绪,晶片组亦要支持相关处理器 。为此,当时的Intel推出了新的晶片组,i865PE和i875P 。要充分发挥超执行绪的效能,使用者要使用Windows 2000之后的作业系统,而Windows XP家用版亦同样支持超执行绪技术 。除了微软的Windows外,Linuxkernel 2.4.x亦开始支持该技术 。软体方面,不是所有程式都可以发挥超执行绪,通常最佳化了多处理器的程式都可以支持到 。此类软体通常是图形或视频处理软体 。早期,游戏软体的支持是比较少 。但随着多核心技术的普及,愈来愈多游戏软体支持多执行绪的处理器 。优点1.超执行绪技术的优势在于同时进行多任务批处理工作,儘管支持超执行绪技术的软体不多,也只有少数的软体可以享受到由超执行绪技术带来的性能提升,但是这符合今后软体等技术的发展方向,今后更多的软体将受益于超执行绪技术 。2.从来看,部分客户可以发觉在运行某些特定软体时,超执行绪技术让系统有了30%的性能提升,为超执行绪技术最佳化的软体都能够享受到超执行绪技术的好处 。3.客户同时运行两个以上的软体时候,将可以明显的感受到这两个软体的性能都得到提升相比关闭超执行绪技术的情况下都有很大的提升,超执行绪技术的效率优势只有在多任务操作时候才能得到发挥 。4.支持超执行绪技术的Windows XP作业系统,其中的很多系统软体都已经针对超执行绪技术最佳化过,因此在使用Windows 作业系统的时候可以很好的享受到超执行绪技术带来好处 。缺点1.因为超执行绪技术是对多任务处理有优势,因此当运行单执行绪运用软体时,超执行绪技术将会降低系统性能,尤其在多执行绪作业系统运行单执行绪软体时将容易出现此问题 。2.在打开超执行绪支持后,如果处理器以双处理器模式工作,那幺处理器内部快取就会被划分成几区域,互相共享内部资源 。对于不支持多处理器工作的软体在双处理器上运行时出错的机率要比单处理器上高很多 。3.因为很多工作站软体为Windows 2000作业系统进行过最佳化,但是採用Windows 2000这样的作业系统的工作站无法完全利用超执行绪技术的优势,也带来不了高的工作效率 4.超执行绪技术只能提高40%左右的性能(测评时可以看成50%,即Core i3 的执行效率为3核速率,Core i5 4核 HT与Core i7 的执行效率为6核速率)与双核心区别超执行绪(Hyper Threading)技术,是在程式处理上比较经典的解决方案,具有超执行绪技术的CPU,搭配支持超执行绪技术的Windows 系统(Windows XP/2003),可以减少系统资源的浪费,从而提高了处理器的工作效率 。实际上,超执行绪技术是把一个处理器模拟为两个处理器使用,这样能有效地利用和分配资源,达到提高整体性能的目的,这就是为什幺超执行绪CPU在系统中也会被识别成两个CPU的原因 。双核心CPU则不同,双核心处理器的概念就是将两颗处理器的晶片,通过全新的封装技术,整合成为一颗处理器,在这一颗处理器中拥有两颗核心,真正地实现了多处理器协同工作 。双核心处理器核心内的资源都是独立的,而且也可以交换使用资源,核心与核心之间沟通的延迟远比多个单核心处理器同时运行好 。另见多执行绪