刘佳李林慰妈妈:什么叫做超线程技术?

来源:百度文库 编辑:高校问答 时间:2024/04/28 00:15:31
可以讲细一点么?CPU的HT技术有什么特点呀……

Intel正式发布了“Hyper-Threading Technology(超线程技术)”这项技术将率先在XERON处理器上得到应用。通过使用该技术,Intel将提供世界上首枚集成了双逻辑处理器单元的物理处理器(其实就是在一个处理器上整合了两个逻辑处理器单元),据说能够提高40%的处理器性能,类似的技术似乎也将出现在AMDK8-Hammer处理器上。

何为Hyper-Threading:

??当今的处理器发展普遍向着提高处理器指令平铺速率的方向迈进,但由于所使用的处理器资源会有冲突,因此性能提升的效果并不理想。而通过Hyper-Threading技术,通过在一枚处理器上整合两个逻辑处理器(注:是处理器而不是运算单元)单元,使得具有这种技术的新型CPU具有能同时执行多个线程的能力,而这是现有其它微处理器都不能做到的。

简单的说,Hyper Threading是一种同步多执行绪(SMT,simultaneous Multi-threading)技术,它的原理很简单,就是把一颗CPU当成两颗来用,将一颗具Hyper-Threading功能的“实体”处理器变成两个“逻辑”处理器而逻辑处理器对于操作系统来说跟实体处理器并没什么两样,因此操作系统会把工作线程分派给这“两颗”处理器去执行,让多种应用程序或单一应用程序的多个执行绪(thread),能够同时在同一颗处理器上执行;不过两个逻辑处理器是共享这颗CPU的所有执行资源。

Hyper-Threading技术简介

??Hyper-Threading做法是复制一颗处理器的架构指挥中心(architectural state)变成两个,使得Windows操作系统认为是在与两颗处理器沟通,但这两个架构指挥中心共享该处理器的工作资源(execution resources)。架构指挥中心追踪每个程序或执行绪的执行状况;工作资源指的则是“处理器用来进行加、乘、加载等工作的单元(execution unit)”。如此一来,操作系统把工作线程安排好以后,就分派给这两个逻辑上的处理器执行,而这颗CPU的每个执行单元等于在同样的时间内要服务两个“指令处理中心”,当然它的效率就高多了,操作系统就把一颗实体的处理器认定为两个逻辑处理器作工作指派,当然整体工作效能就比没有具备Hyper-Threading 的处理器高出许多,性价比自然高出许多。

超线程技术实现的必要条件

除了硬件支持之外,我们必须注意到,超线程技术的实现还需要软件的支持才能够发挥出应有的威力。首先是操作系统的支持,我们必须使用支持双处理器的操作系统,如Win2000等才能完全发挥出超线程技术的性能。至于软件方面,目前很多专业的应用程序对于双处理器都提供了支持,如著名的图形处理软件3Dmax、Maya等。

此外,很多用户可能会有疑问,既然超线程技术以前专门针对服务器处理器,那么现有的众多软件,能否完全兼容支持超线程技术的处理器,是否还需要什么修改才能运行呢?其实这个我们大可不必担心,现有的IA32软件不需进行任何的修改,就可以在支持超线程的P4处理器上很好的运行了。

超线程=效能提升?

一般很多人都会认为,采用超线程技术,就能使得系统效能大幅提升,但是事实真是如此么?不要忘了我们前面说到的超线程技术实现的必要条件,这可是超线程技术发挥应有效能的前提条件。除了操作系统支持之外,还必须要软件的支持。从这点我们就可以看出,就目前的软件现状来说,支持双处理器技术的软件毕竟还在少数。对于大多数软件来说,目前由于设计的原理不同,还并不能从超线程技术上得到直接的好处。因为超线程技术是在线程级别上并行处理命令,按线程动态分配处理器等资源。该技术的核心理念是“并行度(Parallelism)”,也就是提高命令执行的并行度、提高每个时钟的效率。这就需要软件在设计上线程化,提高并行处理的能力。而目前PC上的应用程序几乎没有为此作出相应的优化,采用超线程技术并没不能获得效能的大幅提升。

上面说的只是目前软件支持的现状,操作系统在这个方面则没有太大的问题,毕竟Windows的某些版本、Linux都是支持多处理器的操作系统。并且随着Intel支持超线程技术的处理器面世之后,凭借Intel处理器的号召力,必然会引起目前应用程序设计上的改变,必然会有更多的支持并行线程处理的软件面世,届时,当然是支持超线程处理器大显身手的时候了。那时候,普通用户才能够从超线程技术中得到最直接的好处。

但是我们还是需要看到,随着目前操作系统对于双处理器技术的广泛支持,例如Windows2000、Windows XP等操作系统都支持双处理器,在这些操作系统上使用支持超线程技术的处理器,对于系统的整体性能还是有一定的提高的。。

超线程技术就是利用特殊字符的硬件指令,把两个逻辑内核模拟成物理芯片,让单个处理器能使用线程级并行计算,从而兼容多线程并行计算,从而兼容多线程操作系统和软件,使运行性能提高30%.

虽然单线程芯片每秒钟能处理成千上万条指令,但是在任一时刻只能对一条指令进行操作。而“超线程”技术可以使芯片同时进行多线程处理,使芯片性能得到提升。如果单单是CPU支持超线程技术而没有芯片组、软件进行协同作战的话,超线程技术也就是一句空话而已。

那又有哪些芯片支持超线程技术呢?

Intel方面有850E、845GE、845PE、845GV、845G、845E、新款的Intel方面有850GE、845PE芯片组均可正常支持超线程技术的使用,而最早前的845E以及850E芯片组只需升级BIOS即可解决支持问题。
而SIS矽统方面决定升级其sis654DX、sis648芯片组为“B”版,这样就可以支持多线程技术了。

软件方面: 操作系统有 winXP;应用软件为office2000、officeXP等。另Linux kemel2.4.x以后的版本也支持超线程技术。原来目前还只是一些办公软件支持超线程,这也未免让爱好GAME的小编失望呀!

程序是一组编译代码,可以执行相关的数据计算与操作,这些代码由一条条的指令组成,每一个代码组就是一条线程。在电脑中,无论做任何操作,都需要动用到线程,即使按一按键盘,电脑响应输入信号,也有相关的指令在运行。

现有主流电脑使用x86架构,每次只能执行一条线程,即单线程系统。单芯片计算环境中,在执行指令的时候,CPU先找出相应指令所在的内存位置,执行下一条指令,再转换到另一个位置,在同一时间内CPU只能对应一个指令。线程可以中断,并把中间结果暂存在另一个特殊位置(堆栈),不同的线程可以交叉运行,实现多任务,但每次运行的线程仍然仅有一条,千万不要把多任务和多线程混淆了。

超线程是一种特殊的多线程技术,它可以充分利用CPU的效率,发挥单个物理CPU的潜力。它不是代替多处理器,而是为了让多处理器的实力发挥得更加完美。

简而言之:超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,从而兼容多线程操作系统和软件,提高处理器的性能。操作系统或者应用软件的多线程可以同时运行于一个HTT处理器上,两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、负载等操作。这样就可以使得运行性能提高30%,这是因为在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而“超线程”技术可以使芯片同时进行多线程处理,使芯片性能得到提升。

Intel开发超线程技术(Hyper-Threading)的目的是为了更有效地利用CPU的硬件资源,由于Pentium 4的流水线多达20级,在大多数状态下流水线总是无法被完全利用,客观上导致了指令性低下。
HT技术通过模拟的办法实现“逻辑双CPU”——CPU核心内增加了由通用寄存器,机械寄存器以及高级可编程中断寄存器组成的状态保存寄存器(其作用是保存CPU的一个完整执行状态),再加上CPU内原有的状态寄存器,在运行时就可以同时拥有两个独立而完整的架构状态。对操作系统来说,它识别出来的就是两个互相独立的逻辑CPU,可以同时执行任务互不干扰(同时执行两个独立的线程)
因为这两个逻辑CPU共享执行引擎,缓存,系统总线等硬件单元,所以硬件资源的利用率得到了有效提高。在使用超线程技术之前,Pentium 4 CUP 平均约利用35%的硬件资源,而在采用该技术之后,资源利用率提升至60%—80%,性能提升显而易见。
但在某些应用中(例如运行单线程的程序),HT功能有时候反而会稍稍拖慢CPU的速度.

我记得是模拟两个CPU什么的,忘记了。。。