编辑本段基本简介
通过超线程技术,英特尔成为第一家公司实现在一个实体 处理器中,提供两个逻辑线程。
之后的 Pentium D纵使不 支持超线程技术,但就集成了两个实体 核心,所以仍会见到两个逻辑线程。超线程的未来发展,是提升 处理器的逻辑线程,英特尔有计划将8 核心的处理器,加以配合 超线程技术,使之成为16个逻辑线程的产品。
英特尔表示, 超线程技术让(P4) 处理器增加5%的裸晶面积,就可以换来15%~30%的 效能提升。但实际上,在某些程式或未对 多线程编译的程式而言,超线程反而会降低 效能。除此之外, 超线程技术亦要 操作系统的配合,普通支持多 处理器技术的系统亦未必能充分发挥该技术。例如 Windows 2000,英特尔并不鼓励使用者在此系统中利用超线程。原先不支持 多核心的 Windows XPHome Edition却 支持超线程技术。
编辑本段工作原理
尽管提高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使用800 外频的CPU大多数都支持超线程。在 主板方面,则主要由 芯片组决定是否支持超线程。
编辑本段运作方式
每个单位时间内, CPU只能处理一个线程,以这样的单位进行,如果想要在单位时间内处理超过一个的线程,是不可能的,除非是有两个 核心处理单元,英特尔的 HT技术便是以单个核心处理单元,去整合两个逻辑处理单元,也就是一个实体 核心,两个逻辑 核心,在单位时间内处理两个线程,模拟 双核心运作。
编辑本段技术支持
技术原理
“超线程”(Hyperthreading Technology)技术就是通过采用特殊的硬件指令,可以把两个逻辑内核模拟成两个物理超线程芯片,在单 处理器中实现线程级的 并行计算,同时在相应的软硬
件的支持下大幅度的提高运行 效能,从而实现在单处理器上模拟双处理器的效能。其实,从实质上说,超线程是一种可以将CPU内部暂时闲置处理资源充分“调动”起来的技术。
实现条件
* CPU的支持,实现“超线程”的功能必须选购一块支持“HT”技术的 处理器。Intel 支持这一技术的CPU有Core i3、Core i5、Core i7全系。在老CPU中,Pentium4 3.06GHz 、2.40C、2.60C、2.80C 、3.0GHz、3.2GHz以及Prescott 处理器,还有部分型号的Xeon 支持超线程技术。
* 主板 芯片组和主板BIOS的支持
正式支持“HT”技术的 芯片组有Intel的875P、E7205、850E、865PE/G/P、845PE/GE/GV、845G(B-stepping)、845E。其中875P、E7205、865PE/G/P、845PE/GE/GV以及最新推出的 915/925 芯片组均可直接 支持超线程技术的使用,而早前的845E以及850E芯片组,只要升级BIOS就可以解决支持的问题。SiS方面有SiS645DX(B版)、SiS648(B版)、SiS655、SiS658、SiS648FX。VIA方面有P4X400A、P4X600、P4X800。同时, 主板的BIOS也必须支持超线程功能。
* 操作系统和 应用软件的支持
目前在 微软的 操作系统中只有Windows XP及以上的版本才能正式支持“超线程”技术,Windows 98/Me/2000均不支持此项功能。
一般说来,最大发挥HT技术的运行 效能还需要真正 支持超线程技术的 软件,现实中这样的软件是少之又少的。除了MS Office系列 软件和一些视频、图形如Photoshop等专业软件外几乎都不支持HT技术。很多游戏也不支持HT技术。
编辑本段使用前提
需要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上实现对超线程支持的计划已经取消了。
需要应用软件支持
一般来说,只要能够支持多 处理器的 软件均可 支持超线程技术,但是实际上这样的软件并不多,而且偏向于图形、 视频处理等专业软件方面,游戏软件极少有支持的。 应用软件有Office 2000、Office XP等。另外Linux kernel 2.4.x以后的版本也支持超线程技术。
编辑本段实际问题
由于 处理器实际上只有一个 核心,能够提升的 效能约为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则不同, 双核心处理器的概念就是将两颗处理器的芯片,通过全新的封装技术,整合成为一颗处理器,在这一颗处理器中拥有两颗核心,真正地实现了多处理器 协同工作。双核心 处理器核心内的资源都是独立的,而且也可以交换使用资源,核心与核心之间沟通的延迟远比多个单核心处理器同时运行好。
编辑本段支持的芯片组
目前 支持超线程技术的 芯片组包括如下:
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是不支持 支持超线程技术的;SIS655、SIS648FX、SIS661FX、SIS655FX、SIS655TX、SIS649和SIS656则都支持超线程技术。
ULI 芯片组:M1683和M1685都 支持超线程技术。
ATI 芯片组:ATI在 Intel平台所推出的所有芯片组都 支持超线程技术,包括Radeon 9100 IGP、Radeon 9100 Pro IGP和RX330。
nVidia 芯片组:即将推出的nForce5系列芯片组都支持超线程
Pentium 4CPU中,Northwood及其之后推出的版本内建
超线程技术;但在早期的 Northwood核心中,一些型号的HT技术被关闭,纵使有 软件侦测到超线程技术的存在,使用者并不可以启用。;而 双核心的 Pentium D中也只有EE版提供HT技术。(详见:Pentium D 处理器列表、Intel Pentium 4处理器列表)
英特尔的 Core 2 Duo 处理器则没有HT技术。但 处理器已集成了两个实体核心,所以仍然支持两个线程。
而英特尔在 2008年推出的 Intel Core i7及Intel Atom 处理器又支持类似HT的技术,在 Nehalem中, Hyper-Threading大举卷土重来。在 Intel NetBurst架构的 Northwood 版本中开始导入的 Hyper-Threading-在 Intel 世界之外称为 Simultaneous Multi-Threading (SMT)-是善用线程平行性的方法,让单一 核心在 应用软件层能提供两个逻辑核心、而且确实可以提升一些 效能。