佳能1d多少钱:超线程最早是哪个公司研制的?

来源:百度文库 编辑:高校问答 时间:2024/04/27 16:51:57

众所周知,高端服务器平台通常会采用多个处理器,可并发执行多个线程,从而获得极大的性能提升。在消费级PC中使用类似于SMP技术一直以来是无数人的梦想,但高昂的价格和复杂的技术架构一直阻碍着多线程技术在低端市场的普及。

??业界在处理器结构的问题上存在着两种不同的方案——同时多线程处理器(SMT处理器)和单芯片多处理器(CMP)。先讲讲CMP,Chip Mulitprocessor。随着大规模集成电路技术的发展以及半导体制造工艺的提高,人们逐渐产生了将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。SMP技术已经相当成熟,因此CMP结构设计起来比较容易,但是两个物理核心整合在同一块芯片之中,晶体管数量,芯片面积以及芯片发热量都是突出的问题,造成后端设计和芯片制造工艺的要求较高。正因为这些原因,SMP技术在流行了一段时间之后慢慢失去了发展的动力,厂商们纷纷转向另一种方案——SMT处理器的研发工作。

??多线程处理器对线程的调度与传统意义上由操作系统负责的线程调度是有区别的。它完全由处理器硬件负责线程间的切换。由于采用了大量的硬件支持,所以线程的切换效率更高。线程高效调度的目的就是要尽可能减少处理器处于闲置状态,通过有效的线程切换来获取处理器在相同工作时间内更高的工作效率。而SMT最具吸引力的是它只需小规模改变处理器核心的设计,几乎不用增加额外的成本就可以获得显著的效能提升。这对于桌面低端系统来说无疑十分具有吸引力。因为价格始终是桌面系统的关键因素之一,像高端平台那样去换取高性能显然是不合适的。因此,SMT比起CMP显然更适合于桌面市场。

??虽然Intel并不是多线程技术的主导力量,但多线程技术获得大众广泛关注却源于Intel。在其新一代基于奔腾4的Xeon处理器中,Intel使用了超线程(Hyperthreading)技术,而这一技术的核心就是同时多线程(SMT)。其实Intel一直都想将多线程技术逐步融入到自己的产品当中,在Itanium的EPIC核心身上,我们看到了ILP(Instruction-Level Parallelism)——指令级并行技术的身影。

??对于处理器的并行处理而言,将并行处理“贯彻”到指令级无疑是最好的选择,因为分得越细,越有利于任务的调度,处理器的空闲机会就越少,并发处理的能力就越强。但对于性能、价格远不在一个层次的x86处理器身上使用类似的技术远没有想象中那么简单,而且碍于架构和缓存容量的因素,能不能发挥出相同的威力也是个未知之数。再三考虑之下Intel决定将ILP的思想嫁接到新一代的Pentium4处理器当中,这就是Hyper-Threading。不同的是,Hyper-Threading是TLP(Thead-Level Parallelism)线程级的并行技术。

??超线程技术可以使单一的物理处理器执行两个独立的线程。从架构上说,使用超线程技术的IA-32处理器由两个逻辑处理器构成,并且每一个逻辑处理器都有各自的架构描述。运行过程中,每一个逻辑处理器均可独立地挂起、中断以及直接执行特定线程而不受另一个逻辑处理器的影响。

??和传统的双处理器平台使用两个独立的物理处理器(如Intel Xeon处理器)不同,使用超线程技术处理器的两个逻辑处理器共享处理器的核心,包括执行引擎,缓存,系统总线界面和固件等。超线程技术能够更好的发挥的Intel的NetBurst微架构,实现IA-32处理器在一般操作系统,工作站以及服务器应用软件的性能。

??事实上,目前的操作系统(包括Windows和Linux)将任务分解为进程和线程,并能够自由地安排和分派到处理器。相似的工作方式我们可以在数据库引擎、科学计算程序、工程软件和多媒体软件等很多高性能应用程序中都看到。为了能够进一步发挥处理器的效能,目前的不少操作系统和应用软件都支持使用SMP技术的多处理器架构。

??超线程技术通过同一个核心中两个独立的逻辑处理器实现目前操作系统和应用程序普遍支持的进程级和线程级的并行处理。每个线程可以由两个逻辑处理器之一执行。两个线程的指令同时分派到处理器核心,处理器核心通过乱序执行机制并发地执行两个线程,使处理器在每一个时钟周期中都保持最高的运行效率。

??要真正发挥超线程处理器的威力,除了硬件方面具有NetBurst微架构之外,还需要配合带有多线程代码的IA-32指令。Intel的NetBurst微架构是专门针对单指令流设计并优化的,但即使是执行最优化的代码,运行周期当中处理器的执行单元都不能完全被利用。平均来说,当处理器执行多种复合的IA-32指令时,NetBurst架构中仅有35%的执行单元被利用(在这一点上AMD的架构更有优势)。为了使剩余的执行单元能被充分利用起来,超线程技术通过自身的并行多线程代码为处理器核心分配第二个可执行线程。两个被执行的线程通过公共的指令缓冲池向处理器提供指令编排,两个指令的相关性越少,两者的资源冲突就越少,因而处理器当中利用起来的执行单元数就越多,这样就使指令的执行速度得到提高。

??使用超线程技术的IA-32处理器对于软件而言等同于两个独立的IA-32处理器,和传统的多处理器系统相似。这使得原来为传统多处理器系统设计的应用软件不需要任何修改就可以直接在使用超线程技术的IA-32处理器上运行。只不过对于多处理器系统而言指令是向多个处理器分发,而现在指令分发的对象是相对独立的逻辑处理器。

??在固件(BIOS)方面,超线程处理器的运作模式和传统多处理器系统相似。支持传统双处理器和多处理器的操作系统也可以通过CPUID指令侦测使用超线程技术的IA-32处理器的存在。但尽管目前的应用代码都能在使用超线程技术的处理器上正常运行,但为了获得最理想的运行效果,简单的代码修改还是必须的。

??在得到操作系统和应用软件的支持之下,使用超线程技术的处理器比起普通处理器有30%的额外性能提升。超线程技术应用到多处理器系统时,效能的提升和处理器的数量基本成线性关系增长。在理想状况下,不需要增加额外成本就能有如此可观的性能增幅,Intel的超线程技术应该有不错的发展潜力。当然30%只是理想情况下,实际运行当中超线程技术可能会带来缓存命中率下降,物理资源冲突以及内存带宽紧缺等问题,这些负面影响不但会使影响超线程技术所带来的性能增幅,在极端情况下还可能造成性能的不升反降,所以要进一步发挥超线程技术的威力,还需要Intel和其他软件厂商在硬件和软件方面做进一步的完善。
超线程技术就是利用特殊字符的硬件指令,把两个逻辑内核模拟成物理芯片,让单个处理器能使用线程级并行计算,从而兼容多线程并行计算,从而兼容多线程操作系统和软件,使运行性能提高30%.
虽然单线程芯片每秒钟能处理成千上万条指令,但是在任一时刻只能对一条指令进行操作。而“超线程”技术可以使芯片同时进行多线程处理,使芯片性能得到提升。如果单单是CPU支持超线程技术而没有芯片组、软件进行协同作战的话,超线程技术也就是一句空话而已。

| 我也来回答 | 修改回答 | | 我来评论 | 投诉 |↑回页首 |

回答者:登记过户 学弟(2005-07-08 13:22:49)
简单定义“超线程”技术

所谓超线程技术就是利用特殊的硬件指令,把多线程处理器内部的两个逻辑内核模拟成两个物理芯片,从而使单个处理器就能“享用”线程级的并行计算的处理器技术。多线程技术可以在支持多线程的操作系统和软件上,有效的增强处理器在多任务、多线程处理上的处理能力。

超线程技术可以使操作系统或者应用软件的多个线程,同时运行于一个超线程处理器上,其内部的两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、负载等操作。这样做可以使得处理器的处理能力提高30%,因为在同一时间里,应用程序可以充分使用芯片的各个运算单元。

对于单线程芯片来说,虽然也可以每秒钟处理成千上万条指令,但是在某一时刻,其只能够对一条指令(单个线程)进行处理,结果必然使处理器内部的其它处理单元闲置。而“超线程”技术则可以使处理器在某一时刻,同步并行处理更多指令和数据(多个线程)。可以这样说,超线程是一种可以将CPU内部暂时闲置处理资源充分“调动”起来的技术。

超线程是如何工作的

在处理多个线程的过程中,多线程处理器内部的每个逻辑处理器均可以单独对中断做出响应,当第一个逻辑处理器跟踪一个软件线程时,第二个逻辑处理器也开始对另外一个软件线程进行跟踪和处理了。

另外,为了避免CPU处理资源冲突,负责处理第二个线程的那个逻辑处理器,其使用的是仅是运行第一个线程时被暂时闲置的处理单元。例如:当一个逻辑处理器在执行浮点运算(使用处理器的浮点运算单元)时,另一个逻辑处理器可以执行加法运算(使用处理器的整数运算单元)。这样做,无疑大大提高了处理器内部处理单元的利用率和相应的数据、指令处吞吐能力。

实现超线程的五大前提条件

(1)需要CPU支持

目前正式支持超线程技术的CPU有Pentium4 3.06GHz 、2.40C、2.60C、2.80C 、3.0GHz、3.2GHz以及Prescott处理器,还有部分型号的Xeon。

(2)需要主板芯片组支持

正式支持超线程技术的主板芯片组的主要型号包括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就可以解决支持的问题。SIS方面有SiS645DX(B版)、SiS648(B版)、SIS655、 SIS658、SIS648FX。VIA方面有P4X400A、P4X600、P4X800。

(3)需要主板BIOS支持

主板厂商必须在BIOS中支持超线程才行。

(4)需要操作系统支持

目前微软的操作系统中只有Windows XP专业版及后续版本支持此功能,而在Windows2000上实现对超线程支持的计划已经取消了。

(5)需要应用软件支持

一般来说,只要能够支持多处理器的软件均可支持超线程技术,但是实际上这样的软件并不多,而且偏向于图形、视频处理等专业软件方面,游戏软件极少有支持的。应用软件有Office 2000、Office XP等。另外Linux kernel 2.4.x以后的版本也支持超线程技术。
简单讲,就是\\\"软\\\"双核心