毫无疑问,超线程技术已经成为年末处理器市场上的新热点。
让我们简单地了解一下什么是超线程技术:
首先需要了解什么是线程、单线程和多线程。对于处理器来说,程序就是一组经过编译的机器代码,这些代码又是由一条条的指令组成。可以打个简单的比方:有一队士兵来到一个港口要乘船过河,规则是一条船一次只能载一个人。这里我们把“港口”看作一个 CPU ,“小船”看作一个逻辑处理器。如果把“让这一队士兵过河”称做一个程序,把“让一个士兵上船”、“开船”、“让这个士兵下船”等事件就称做指令,那么“把一个士兵运过河”就是一个线程。遗憾的是“港口”只有一条小船,因此单位时间内只能有一个士兵被运过河”,就相当于“单线程”。如果“士兵”太多,这样的工作效率就太低了。能否提高效率呢?方法是增加“小船”的总体数量,实现“多条小船同时运士兵”即“多线程”。
在使用超线程技术之前,处理器工作时每次只能执行一条线程,即单线程作业。在单一处理器系统中,CPU 总是按照指令在内存中排列的逻辑位置逐个执行单一的指令。总是上一条指令执行完毕再对下一条指令进行操作。当然指令是可以中断的,即线程可以中断。CPU 能够把运算的中间结果暂时存储到一个特殊的内存空间(堆栈),等待下次操作。不同的线程可以交叉运行,实现多任务,但每次运行的线程仍然只有一条。因此在互相交叉的运算过程中就会出现系统资源的占用和损耗。另外,由于在单一时间内处理器只能对一个指令作出响应,因此在 CPU 实际的工作当中,往往只有一部分资源被集中占用,而其余资源则处于闲置状态。因此大大影响了 CPU 的运算效能。
以往提升性能的办法有两种:一种是增加处理器数量(用上面的比喻可以理解为增加“港口”的数量);另一种提高单个处理器的工作频率或者加大缓存容量。增加处理器数量的作用显而易见:一个 CPU 只能实现单线程作业,两个或者更多的 CPU 就可以实现双线程或者多线程操作。但是多 CPU 系统并不能实现相应倍数的性能提升,例如双 CPU 系统只能提升系统性能 33% 。采用增加工作频率和缓存容量的方法也是治标不治本,CPU只是提高了速度,其内部的的执行单元仍然没有被充分利用。
于是出现了“超线程”技术。在 CPU 中同时加入两个逻辑处理单元(用上面的比喻来说,就是在一个“港口”同时有两条“小船”),共同管理 CPU 资源,来达到提高 CPU 内核的工作效率的目的,就是“超线程”技术。这项技术利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让两个逻辑处理器共享一组处理器执行单元,并行完成各种操作,从而兼容多线程操作系统和软件,提高处理器的性能。
据英特尔官方报道,由于采用了超线程技术,新近发布的 P4 3.06 GHz CPU 能够“将性能提升 25%”。