基本简介
超线程技术把多线程处理器内部的两个逻辑内核模拟成两个物理芯片,让单个处理器就能使用线程级的并行计算,进而兼容多线程操作系统和软件。超线程技术充分利用空闲CPU资源,在相同时间内完成更多工作。
虽然采用超线程技术能够同时执行两个线程,当两个线程同时需要某个资源时,其中一个线程必须让出资源暂时挂起,直到这些资源空闲以后才能继续。因此,超线程的性能并不等于两个CPU的性能。而且,超线程技术的CPU需要芯片组、操作系统和应用软件的支持,才能比较理想地发挥该项技术的优势。本文的主要工作就是研究Kylin操作系统如何有效支持的Intel超线程处理器。
运作方式
每个单位时间内,一个单运行管线的CPU只能处理一个线程(操作系统:thread),以这样的单位进行,如果想要在一单位时间内处理超过一个线程是不可能的,除非是有两个CPU的实体单元。双核心技术是将两个一样的CPU放置于一个封装内(或直接将两个CPU做成一个芯片),而英特尔的多线程技术是在CPU内部仅复制必要的资源、让两个线程可同时运行;在一单位时间内处理两个线程的工作,模拟实体双核心、双线程运作。
Intel自Pentium开始引入超标量、乱序运行、大量的寄存器及寄存器重命名、多指令解码器、预测运行等特性;这些特性的原理是让CPU拥有大量资源,并可以预先运行及平行运行指令,以增加指令运行效率,可是在现实中这些资源经常闲置;为了有效利用这些资源,就干脆再增加一些资源来运行第二个线程,让这些闲置资源可执行另一个线程,而且CPU只要增加少数资源就可以模拟成两个线程运作。
P4处理器需多加一个Logical CPU Pointer(逻辑处理单元)。因此P4HT的die的面积比以往的P4增大了5%。而其余部分如ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache(二级缓存)并未增加,且是共享的。
超线程的需求条件
并不是所有的处理器都支持超线程,支持超线程的台式机处理器有以下几种:
1、Intel Pentium 4 B 3.06GHz
2、Intel Pentium 4 C 2.4/2.6/2.8/3.0/3.2/3.4
3、Intel Pentium 4 E 2.8(800FSB)/3.0/3.2/3.4/3.6
4、Intel Pentium 4 XE 3.4/3.46/3.73
5、Intel Pentium 4 520/530/53l/540/541/550/551/560/561/570/57l/630/640/650/660
6、Intel Pentium XE 840(双核加NT)
超线程除了需要CPU的支持外还需要以下几个方面的支持:
1、需要主板BIOS的支持。主板厂商必须在BIOS中支持超线程才可以。个别的主板需要升级BIOS才能稳定支持。
2、需要操作系统支持。Windows XP即支持此功能。
3、需要应用软件的支持。通常,只要支持多处理器的软件就能支持超线程技术,但是目前支持多处理器的软件并不多,当前支持超线程技术的应用软件主要有Office 2000、Office XP及Linux kernel 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核速率)
与多核心区别
超线程技术与多核体系结构的区别如下:①超线程技术是通过延迟隐藏的方法,提高了处理器的性能,本质上,就是多个线程共享一个处理单元。因此,采用超线程技术所获得的性能并不是真正意义上的并行。从而采用超线程技术获得的性能提升,将会随着应用程序以及硬件平台的不同而参差不齐。②多核处理器是将两个甚至更多的独立执行单元,嵌入到一个处理器内部。每个指令序列(线程),都具有一个完整的硬件执行环境,所以各线程之间就实现了真正意义上的并行。
超线程技术与多核技术相结合可以给应用程序带来更大的优化空间,进而极大地提高系统的吞吐率。