每一个单位时间内,一个CPU只能处理一个线程(操做系统:thread),以这样的单位进行,若是想要在一单位时间内处理超过一个线程是不可能的,除非是有两个CPU的实体单元。双核心技术是将两个同样的CPU放置于一个封装内(直接将两个CPU作成一个芯片)。而英特尔的Hyper-Threading技术是在CPU内部仅复制必要的资源、让CPU模拟成两个线程;也就是一个实体核心,两个逻辑线程,在一单位时间内处理两个线程的工做,模拟实体双核心、双线程运做。多线程
Intel自Pentium开始引入超标量、乱序运行、大量的暂存器及寄存器重命名、多指令解码器、预测运行等特性;这些特性的原理是让CPU拥有大量资源,并能够预先运行及平行运行指令,以增长指令运行效率,但是在现实中这些资源常常闲置;为了有效利用这些资源,就干脆再增长一些资源来运行第二个线程,让这些闲置资源可运行另外一个线程,并且CPU只要增长少数资源就能够模拟成两个线程运做。架构
超线程技术,Hyper-Threading是一种多线程并行技术——即同步多执行线程(SMT,simultaneous Multi-threading)。经过在一枚cpu上整合两个逻辑处理器(注:是处理器而不是运算单元)单元,使得具备这种技术的新型CPU具备能同时执行多个线程的能力。性能
Hyper-Threading的原理很简单,就是把一颗CPU当成两颗来用,将一颗具Hyper-Threading功能的“实体”处理器变成两个“逻辑”处理器,而逻辑处理器对于操做系统来讲跟实体处理器并没什么两样,所以操做系统会把工做线程分派给这“两颗”处理器去执行,让多种应用程序或单一应用程序的多个执行绪(thread),可以同时在同一颗处理器上执行;不过两个逻辑处理器是共享这颗CPU的全部执行资源。优化
Hyper-Threading作法是复制一颗处理器的架构指挥中心(architectural state)变成两个,使得操做系统认为是在与两颗处理器沟通,但这两个架构指挥中心共享该处理器的工做资源(execution resources)。架构指挥中心追踪每一个程序或执行绪的执行情况;工做资源指的则是“处理器用来进行加、乘、加载等工做的单元(execution unit)”。如此一来,操做系统把工做线程安排好之后,就分派给这两个逻辑上的处理器执行,而这颗CPU的每一个执行单元等于在一样的时间内要服务两个“指令处理中心”,固然它的效率就高多了,操做系统就把一颗实体的处理器认定为两个逻辑处理器做工做指派,固然总体工做效能就比没有具有Hyper-Threading 的处理器高出许多,性价比天然高出许多。spa
因为处理器实际上只有一个实体核心,可以提高的性能约为5~15%左右,且万一发生资源互抢的情形时,总体性能反而会降低。这亦是AMD不提供虚拟双核心处理器的理由。操作系统
要令到电脑支持超线程技术,必需要软件和硬件的配合。线程