标题：超线程技术
基本信息
超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源，理论上要像两颗CPU一样在同一时间执行两个线程，P4处理器需要多加入一个Logical CPU Pointer（逻辑处理单元）。因此新一代的P4 HT的die的面积比以往的P4增大了5%。而其余部分如ALU（整数运算单元）、FPU（浮点运算单元）、L2 Cache（二  超线程技术级缓存）则保持不变，这些部分是被分享的。
虽然采用超线程技术能够同时执行两个线程，但它并不象两个真正的CPU那样，每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时，其中一个要暂时停止，并让出资源，直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。
效能提升
一般很多人都会认为，采用超线程技术，就能使得系统效能大幅提升，但是事实真是如此么？不要忘了我们前面说到的超线程技术实现的必要条件，这可是超线程技术发挥应有效能的前提条件。除了操作系统支持之外，还必须要软件的支持。从这点我们就可以看出，就目前的软件现状来说，支持双处理器技术的软件毕竟还在少数。对于大多数软件来说，目前由于设计的原理不同，还并不能从超线程技术上得到直接的好处。因为超线程技术是在线程级别上并行处理命令，按线程动态分配处理器等资源。该技术的核心理念是“并行度（Parallelism）”，也就是提高命令执行的并行度、提高每个时钟的效率。这就需要软件在设计上线程化，提高并行处理的能力。而目前PC上的应用程序几乎没有为此作出相应的优化，采用超线程技术并没不能获得效能的大幅提升。上面说的只是目前软件支持的现状，操作系统在这个方面则没有太大的问题，毕竟Windows的某些版本、Linux都是支持多处理器的操作系统。并且随着Intel支持超线程技术的处理器面世之后，凭借Intel处理器的号召力，必然会引起目前应用程序设计上的改变，必然会有更多的支持并行线程处理的软件面世，届时，当然是支持超线程处理器大显身手的时候了。那时候，普通用户才能够从超线程技术中得到最直接的好处。
必然性
提升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（奔腾4） HT的面积比以往的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，Linuxkernel 2.4.x以后的版本也支持超线程技术。目前支持超线程技术的芯片组包括如：
Intel芯片组：
845、845D和845GL是不支持支持超线程技术的；845E芯片组自身是支持超线程技术的，但许多主板都需要升级BIOS才能支持；在845E之后推出的所有芯片组都支持支持超线程技术，例如845PE/GE/GV以及所有的865/875系列以及915/925系列芯片组都支持超线程技术。
ⅥA芯片组：
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系列芯片组都支持超线程技术。
工作原理
在处理多个线程的过程中，多线程处理器内部的每个逻辑处理器均可以单独对中断做出响应，当第一  超线程技术个逻辑处理器跟踪一个软件线程时，第二个逻辑处理器也开始对另外一个软件线程进行跟踪和处理了。
另外，为了避免CPU处理资源冲突，负责处理第二个线程的那个逻辑处理器，其使用的是仅是运行第一个线程时被暂时闲置的处理单元。
例如：当一个逻辑处理器在执行浮点运算（使用处理器的浮点运算单元）时，另一个逻辑处理器可以执行加法运算（使用处理器的整数运算单元）。这样做，无疑大大提高了处理器内部处理单元的利用率和相应的数据、指令处吞吐能力。对于Prescott处理器，发热量大也主要是因为它。
前提条件
需要CPU支持目前正式支持超线程技术的CPU有Pentium4 3.06GHz 、2.40C、2.60C、2.80C 、3.0GHz、3.2GHz以及Prescott核心的Pentium4处理器，还有部分型号的Xeon。
2009年，Intel新一代顶级处理器Core i7也支持超线程技术，超线程技术令Core i7可以由四核模拟出八核。需要主板芯片组支持正式支持超线程技术的主板芯片组的主要型号包括Intel的875P，E7205，850E，865PE/G/P，  超线程技术845PE/GE/GV，845G(B-stepping），845E。875P，E7205，865PE/G/P，845PE/GE/GV芯片组均可正常支持超线程技术的使用，而早前的845E以及850E芯片组只要升级BIOS就可以解决支持的问题；2009年，与Core i7相配的X58芯片组也支持超线程技术。
SIS方面有SiS645DX(B版）、SiS648(B版）、SIS655、SIS658、SIS648FX； 
威盛方面有P4X400A、P4X600、P4X800。需要主板BIOS支持主板厂商必须在BIOS中支持超线程才行。需要操作系统支持目前微软的操作系统中Windows XP专业版，Windows Vista，Windows 7，Windows server 2003，Windows Server 2008支持此功能，而在Windows 2000上实现对超线程支持的计划已经取消了。
另外，系统核心代号高于2.4.x的Linux系统也支持超线程技术。需要应用软件支持一般来说，只要能够支持多处理器的软件均可支持超线程技术，但是实际上这样的软件并不多，而且偏向于图形、视频处理等专业软件方面，游戏软件极少有支持的。应用软件有Office 2000、OfficeXP等。另外Linux kernel 2.4.x以后的版本也支持超线程技术。小结超线程技术就是利用特殊的硬件指令，把两个逻辑内核模拟成两个物理芯片，让单个处理器都能使用线程级并行计算，从而兼容多线程操作系统和软件，提高处理器的性能。操作系统或者应用软件的多线程可以同时运行于一个HTT处理器上，两个逻辑处理器共享一组处理器执行单元，并行完成加、乘、负载等操作。这样就可以使得运行性能提高30%，这是因为在同一时间里，应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令，但是在任一时刻只能够对一条指令进行操作。而“超线程”技术可以使芯片同时进行多线程处理，使芯片性能得到提升。
优缺点
HT技术优点⒈超线程技术的优势在于同时进行多任务批处理工作，尽管现在支持超线程技术的软件不多，也只有少数的软件可以享受到由超线程技术带来的性能提升，但是这符合今后软件等技术的发展方向，今后更多的软件将受益于超线程技术。
⒉从目前来看，部分客户发可以发觉在运行某些特定软件时，超线程技术让系统有了30%的性能提升，为超线程技术优化的软件都能够享受到超线程技术的好处。
⒊客户同时运行两个以上的软件软件时候，将可以明显的感受到这两个软件的性能都得到提升相比关闭超线程技术的情况下都有很大的提升，超线程技术的效率优势只有在多任务操作时候才能得到发挥。
⒋另外目前支持超线程技术的Windows XP操作系统，其中的很多系统软件都已经针对超线程技术优化过，因此在使用Windows操作系统的时候可以很好的享受到超线程技术带来好处。HT技术缺点⒈因为超线程技术是对多任务处理有优势，因此当运行单线程运用软件时，超线程技术将会降低系统性能，尤其在多线程操作系统运行单线程软件时将容易出现此问题（这也是在WindowsXP中运行显卡的测试软件时候，得分下降了一点）。
⒉在打开超线程支持后，如果处理器以双处理器模式工作，那么处理器内部缓存就会被划分成几区域，互相共享内部资源。对于不支持多处理器工作的软件在双处理器上运行时出错的概率要比单处理器上高很多。
⒊目前因为很多工作站软件为Windows 2000操作系统进行过优化，但是采用Windows2000这样的操作系统的工作站无法完全利用超线程技术的优势，也带来不了高的工作效率。
通过上面的解答，我们应该知道了超线程技术的确实对系统性能提升有好处，但是这仅对多任务处理的时候有优势，在进行单各任务处理的时候，优势表现不出来，而且因为打开超线程，处理器内部缓存就会被划分成几区域，互相共享内部资源，造成单个的子系统性能下降。个人认为，用户在进行单任务操作时候，没有必要打开超线程，只有多任务操作时候可以适时打开超线程，享受超线程技术带来的好处。
免费升级
超线程（HT）是Intel在奔腾™ 和现在流行的酷睿™ i3 i7 系列）具有的一项功能，这项技术能显著提高计算机在多任务并行时的处理能力。但大多数人所使用的CPU并不具备这个功能，并且近期没有升级硬件的打算。
最近笔者试用了一款叫做Process Tamer，它能实现超线程技术类似的功能，即根据程序运行情况自动分配CPU时间。那么，这款软件究竟可以解决哪些问题呢？看看下面的典型例子： 
①使用QQ/MSN同时多人视频时，系统进行其他操作变得异常迟缓。
②打开包含较多图片、Flash、视频的网页时，IE界面无法自动刷新，其他程序也陷入假死。
Process Tamer 小档案 
软件版本：2.00.15 软件大小：1.3MB 
软件性质：免费软件 运行环境：Windows 2000/XP 
下载安装这个软件后，屏幕右下角的系统托盘中就出现了一个天平的图标，这样Process Tamer就会自动平衡各个进程对CPU的资源占用，提高多任务间切换的速度。
由于Process Tamer的自动调整机制可能造成一些问题，比如在CPU占用率高时自动降低正在进行记录操作的Nero进程优先级，有可能把盘刻“飞”，所以还需要手动更改一些设置。
第一步：右击系统托盘中的Process Tamer图标，选择“Configure”（设置），打开配置面板。
第二步：在弹出窗口中切换到“Processes”（进程）标签，在其下方的列表中就显示了当前已经运行的进程（CPU占用低于1%的默认不显示），找到需要更改的进程，本例中我们选择nero.exe，在其“Explicit Rule”（显式规则）列的下拉列表中选择“Ignore”（忽略），点击“确定”（见图）。
超线程技术
小提示 
在配置界面中去除“Hide<1%CPU”（隐藏CPU占用<1%的进程）的勾选就能显示所有进程。　 
原理与误区 
很多文章都把这个软件神话了（包括有些大媒体的文章），其实它的作用只能说是用软件方式改善多任务的使用状况，与真正的基于硬件的超线程技术是有区别的。而有的文章却说“极力推荐各位赛扬D处理器用户们使用这个软件”，这就有点“伪科学”的嫌疑了。
Process Tamer实现多任务速度优化的原理是：在系统出现CPU高负载运行时，降低占用CPU时间最多的进程的优先级，提高那些被别的进程抢占CPU时间而导致响应迟滞的进程的优先级，这样就能降低系统出现假死的概率。经过测试发现，在运行Process Tamer时，系统并没有启动新的服务，所以判断该程序是运行在应用程序层，而非系统服务层的，也就是说，该软件自身的优先级切换功能也受到系统速度的影响。