标题：HT超线程技术
何为Hyper-Threading
当今的处理器发展普遍向着提高处理器指令平铺速率的方向迈进，但由于所使用的处理器资源会有冲突，因此性能提升的效果并不理想。而通过Hyper-Threading技术，通过在一枚处理器上整合两个逻辑处理器（注：是处理器而不是运算单元）单元，使得具有这种技术的新型CPU具有能同时执行多个线程的能力，而这是现有其它微处理器都不能做到的。 
简单的说，Hyper Threading是一种同步多执行绪（SMT，simultaneous Multi-threading）技术，它的原理很简单，就是把一颗CPU当成两颗来用，将一颗具Hyper-Threading功能的“实体”处理器变成两个“逻辑”处理器而逻辑处理器对于操作系统来说跟实体处理器并没什么两样，因此操作系统会把工作线程分派给这“两颗”处理器去执行，让多种应用程序或单一应用程序的多个执行绪（thread），能够同时在同一颗处理器上执行；不过两个逻辑处理器是共享这颗CPU的所有执行资源。
线程(Threads)
在8O年代中期，线程的概念被引入到操作系统的设计中，它是比进程更小的能独立运行的基本单位．操作系统中引入进程的目的，是为了使多个程序并发执行，以改善资源利用率及提高系统的吞吐量．进程有两个基本属性：(1)进程是一个可拥有资源的独立单位；(2)进程是可以独立调度和分派的基本单位．因为进程是一个资源拥有者，所以在进程的创建、撤消和切换中，系统必须为之付出较大的时空开销．因而，在系统中所设置的进程数目不宜过多，进程切换的频率也不宜过高，也就限制了并发程度的进一步提高．产生线程的概念，也是由于上述原因，有不少操作系统的学者们想到，将进程的两个属性分开进行处理．即对作为调度和分派的基本单位，不同时作为独立分配资源的单位，以使之轻装运行，而对拥有资源的基本单位，又不频繁地对之进行切换．在引入线程的操作系统中，线程是进程中的一个实体，是被系统独立调度和分派的基本单位。线程自己基本上不拥有系统资源，只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈)，但它可与同属一个进程的其它线程共享进程所拥有的全部资源．一个线程可以创建和撤消另一个线程；同一进程中的多个线程之间可以并发执行．由于线程之间的相互制约，致使线程在运行中也呈现出间断性．相应地，线程也同样有就绪、阻塞和执行三种基本状态，有的系统中线程还有终止状态等．1．2 超线程技术(Hyper—Threading Technology缩写为HTT)超线程技术就是利用特殊的硬件指令，把两个逻辑内核模拟成两个物理芯片，让单个处理器都能使用线程级并行计算．具体讲，就是通过CPU的寄存器构成了两个逻辑处理器，来共享处理器的物理执行单元，并同步进行加、乘、负载等操作．操作系统或者应用软件的多线程可以同时运行于一个HTT处理器上，两个逻辑处理器共享一组处理器执行单元，并行完成加、乘、负载等操作，这样就可以使得运行性能提高，这是因为在同一时间里，应用程序可以使用芯片的不同部分．虽然单线程芯片每秒钟能够处理成千上万条指令，但是在任一时刻只能够对一条指令进行操作．而超线程技术可以使芯片同时进行多线程处理，使处理器性能得到提升。
超线程技术的产生原因
CPU发展到今天，其整体速度虽然越来越快，内部的执行单元却越来越得不到充分的利用．为什么呢?原来NetBurst架构的奔腾4在设计结构上就每次只能处理一个线程，而与此同时我们的电脑需要同步执行的任务却在不断增加，而且花在各线程之间切换等待的时间太多，处理器的应用效率自然也就降低了．长期以来，CPU生产商为了提高CPU的性能，通常做法是提高CPU的时钟频率、增加缓存容量、晶体管数量以及指令集来提升其性能．这些方法的副作用就是会增加处理器的功耗，而且往往会受到制造工艺上的限制以及成本过高的制约．CPU要想取得更好的表现，拥有更快的处理速度，就得需要更大的供电量，更强劲的散热条件．2005年，英特尔取消了生产4．0GHz的“Tejas”单核处理器．因为他们发现，要想达到这个频率，它的驱动功率必须要达到100W．不仅如此，要保证它正常的运行还要有温度的控制，需要更大的散热器．要是在不过多增加硬件投入的情况下，处理器就能够充分利用现有的强劲物理单元同步执行多线程来增强性能，那该多好?因此，Intel采用另一个思路去提高CPU 的性能，让CPU可以同时执行多重线程，就能够让CPU 发挥更大效率，即超线程技术．也正是由于通过不高的代价，就能带来极大的性能提升，超线程技术倍受Intel的青睐，并被予以大力宣传．
超线程技术的工作原理
超线程技术的工作原理是在每个时钟周期内完成更多工作，一个支持超线程(HT)技术的处理器使当前的操作系统和应用可以看到两个虚拟处理器，该处理器可以同时处理两组任务，充分利用闲置资源，并可在相同时间内完成更多工作．在处理多个线程的过程中，多线程处理器内部的每个逻辑处理器均可以单独对中断做出响应，当第一个逻辑处理器跟踪一个软件线程时，第二个逻辑处理器也开始对另外一个软件线程进行跟踪和处理了．另外，为了避免CPU处理资源冲突，负责处理第二个线程的那个逻辑处理器，其使用的是仅是运行第一个线程时被暂时闲置的处理单元．例如：当一个逻辑处理器在执行浮点运算(使用处理器的浮点运算单元)时，另一个逻辑处理器可以执行加法运算(使用处理器的整数运算单元)．这样做，无疑大大提高了处理器内部处理单元的利用率和相应的数据、指令的吞吐能力．4 实现超线程技术的前提条件实现超线程的五大前提条件：(1)需要CPU支持：目前正式支持超线程技术的CPU有Pentium4 3．O6GHz、2．40C、2．60C、2．80C、3．0GHz、3．2GHz以及Prescott处理器，还有部分型号的Xeon．（2)需要主板芯片组支持：正式支持超线程技术的主板芯片组的主要型号包括Intel的875P，E72O5，850E，865PE/G/P，845PE/GE/GV，845G(B-stepping)，845E．875P，E7205，865PE/G/P，845PE/GE/GV芯片组均可正常支持超线程技术的使用，而早前的845E以及850E芯片组只要升级BIOS就可以解决支持的问题．SIS方面有SIS645DX(B版)、SIS648(B版)、SIS655、SIS658、SIS648FX．VIA 方面有4X4O0A、P4X6OO、P4X8OO．(3)需要主板BIOS支持：主板厂商必须在BIOS中支持超线程才行．(4)需要操作系统支持：MicrosoftWin—dowsXP、MicrosoftW indows2003，Linuxkernel2。
4．XP以后的版本也支持超线程技术．(5)需要应用软件支持：一般来说，只要能够支持多处理器的软件均可支持超线程技术，但是实际上这样的软件并不多，而且偏向于图形、视频
处理等专业软件方面，游戏软件极少有支持的．应用软件有Office2000、Photoshop等．5 超线程技术的优缺点
超线程技术的优点
优点一物美价廉。由于这项技术是将一个处理器模拟成两个使用，从而在增加极少投入的情况下就能够提高性能．对于操作系统来说，它又像真的拥有两个物理处理器一样工作，从而让两个程序或一个程序的两个线程，能够在单处理器上同时执行．由于减少了在线程之间的切换，提高了执行单元的利用率，从而使处理器实际使用效果得到极大的改善．优点二超线程在Web服务、SQL数据库等很多服务器领域的应用中表现优异．在2001年的时候，IBM就推出了它的第一款双核Power 4处理器．IBM 当时是用在了它的RISC服务器中，服务器的性能得到了很大的提高．优点三在某些支持多线程的软件应用上能够得到3O 左右的性能提升，如3Dsmax、Maya、Of—rice、Photoshop等．在今后的软件开发中，支持多线程应用的软件定会蓬勃发展，大多数主流软件都会利用到超线程．因为无论是硬件厂商或软件厂商都会利用新技术来巩固自己的市场地位．优点四WindowsXP已经针对其作出优化，在运行多个不支持多线程的程序时，性能也可能会获得提高．即便带来损失，也会显得比较轻微．优点五主流的桌面芯片组基本都已可以支持超线程，无需额外的花费．优点六目前在高端的Pentium EE和一部分Xeon上也支持超线程技术．在支持超线程的处理器的机器上，支持多CPU 的Windows会认出两个CPU．而在支持双内核处理的机器上，Windows
也会认出两个CPU，在支持超线程双内核的处理器上，Windows会认出四个CPU．
超线程技术的缺点
缺点一英特尔P4超线程有两个运行模式，Single Task Mode(单任务模式)及Multi Task Mode(多任务模式)，当程序不支持Multi-Processing(多处理器作业)时，系统会停止其中一个逻辑CPU的运行，把资源集中于单个逻辑CPU 中，让单线程程序不会因其中一个逻辑CPU 闲置而减低性能，但由于被停止运行的逻辑CPU 还是会等待工作，占用一定的资源，因此Hyper-Threading CPU运行Single Task Mode程序模式时，有可能达不到不带超线程功能的CPU性能．
缺点二现在只有Windows XP才能支持超线程技术，所以在操作系统上受到很大的限制．虽然微软公司新推出的Windows VISTA 系统也支持该技术，但是VISTA 系统对计算机硬件及软件的要求很高，所以安装的成本较大,但是win7已经出来，绝对支持，很稳定，笔者就是。
缺点三缺乏大量普通应用软件的支持，性能因此得不到充分体现．