简单定义“超线程”技术
所谓超线程技术就是利用特殊的硬件指令,把多线程处理器内部的两个逻辑内核模拟成两个物理芯片,从而使单个处理器就能“享用”线程级的并行计算的处理器技术。多线程技术可以在支持多线程的 *** 作系统和软件上,有效的增强处理器在多任务、多线程处理上的处理能力。
超线程技术可以使 *** 作系统或者应用软件的多个线程,同时运行于一个超线程处理器上,其内部的两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、负载等 *** 作。这样做可以使得处理器的处理能力提高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以后的版本也支持超线程技术。
二、 什么是“双通道”内存技术?
双通道内存技术,就是在北桥(又称之为GMH)芯片组里制作两个内存控制器,这两个内存控制器是可以相互独立工作的。在这两个内存通道上,CPU可以分别寻址、读取数据,从而可以使内存的带宽增加一倍,数据存取速度也相应增加一倍(理论上是这样)。
目前流行的双通道DDR内存构架是在两个64bitDDR内存控制器构筑而成的,其带宽可以达到128bit,但工作方式不同于单通道128bit的内存控制技术。因为双通道体系的两个内存控制器是独立的、具备互补性的智能内存控制器,两个内存控制器都能够在彼此间零等待时间的情况下同时运作。例如:当控制器B准备进行下一次存取内存的时候,控制器 A就在读/写主内存,反之亦然。两个内存控制器的这种互补“天性”可以让有效等待时间缩减50%,从而使内存的带宽翻了一翻。
双通道DDR的两个内存控制器在功能上是完全一样的,并且两个控制器的时序参数都是可以单独编程设定的。这样的灵活性可以让用户使用两条不同构造、容量、速度的DIMM 内存条,此时双通道DDR简单地调整到最低的密度来实现128bit带宽,允许不同密度/等待时间特性的DIMM内存条可以可靠地共同运作。
简而言之,双通道技术是一种关系到主板芯片组的技术,与内存自身无关,只要厂商在芯片内部整合两个内存控制器,就可以构成双通道DDR系统。而主板厂商只需要按照内存通道将DIMM分为Channel 1与Channel 2,用户也需要成双成对地插入内存,就如同RDRAM那样。如果只插单根内存,那么两个内存控制器中只会工作一个,也就没有了双通道的效果了。
如果只插单根内存,那么两个内存控制器中只会工作一个
双通道内存控制技术可以非常有效的提高内存带宽,特别是那些需要同内存频繁交换数据的软件和整合有图形核心(整合显卡)的芯片组。在865G这样整合有显卡的双通道主板上,双通道内存控制技术所带来的高带宽,可以帮助整合显卡在划分主存做为显存的时候,得到更高的数据带宽,而显存的数据带宽正是制约一块显卡性能发挥的瓶颈所在。
对于整合图形核心的主板来说,其内存不仅要与CPU频繁变换数据,而且还将被主板上整合的图形核心共享为显存。而在这个时候,显存也必将频繁地进行数据变换,而这对于有限内存带宽来说,无疑将是一种严峻的考验。
双通道内存控制技术是一种主板芯片组技术,只有支持双通道内存控制技术的芯片组才能构架起双通道内存平台,英特尔阵营有I850、 i875P、i7205、i865PE、i865G、SIS655、SIS655FX、VIA PT600(P4X600)、VIA PT800(P4X800)、VIA PT880等芯片组,其真可谓人才济济,而AMD阵营仅有NForce2 、NForce3芯片组独力支撑局面。
三、“超线程”处理器技术的优点与缺点
超线程技术的优点
(1)超线程在Web服务、SQL数据库等很多服务器领域的应用中表现优异。
(2)主流的桌面芯片组基本都已可以支持超线程,你无需额外的花费。
(3)Windows XP已经针对其作出优化,在运行多个不支持多线程的程序时,性能也可能会获得提高。即便带来损失,也会显得比较轻微。
(4)在某些支持多线程的软件应用上能够得到30%左右的性能提升,如3dsmax、Maya、Office、Photoshop等。Intel甚至在一项测试中取得了90%的提高。
超线程技术的缺点
(1)较受欢迎的Windows 2000并不支持超线程技术,必须得安装也许您并不满意的Windows XP。
(2)打开超线程后处理单线程应用,处理器性能有时会降低。
(3)缺乏针对超线程优化的各种普通应用软件,性能因此得不到充分体现。
总的来说,通过以上优缺点的比较,我们已经了解到了超线程技术的确能够在处理多任务的时候,能够给系统性能带来一定的提升。而在运行单任务处理的时候,多线程的其优势是无法表现出来的,而且一旦打开超线程,处理器内部缓存就会被划分成几个区域,互相共享内部资源,从而造成单个的子系统性能下降。笔者认为,用户在进行单任务 *** 作时候,没有必要打开超线程,只有多任务 *** 作时候可以适时打开超线程,享受超线程技术带来的好处。
四、“双通道”内存控制技术的优缺点
双通道的优点
(1)可以带来2倍的内存带宽,从而可以那些与必须内存数据进行频繁交换的软件得到极大的好处,譬如SPEC Viewperf、3DMAX、IBM Data Explorer、Lightscape等。
(2)在板载显卡共享内存的时候,双通道技术带来的高内存带宽可以帮助显卡在游戏中获得更为流畅的速度,以3Dmark2001Se为例,其得分成绩的差距,可以拉大到15-40%。
双通道的缺点
(1)必须构架在支持双通道的主板上,并且必须要有两条相同容量、类型内存条。英特尔的双通道对于内存类型和容量要求很高,两根内存条必须完全一致。而SIS和VIA的双通道主板则允许不同容量和类型的内存共存,只要是两根内存条就行。
(2)双通道内存控制技术在普通的游戏和应用上,与单通道的差距极小。
(3)需要购买支持双通道内存控制技术的主板和两根内存条,而这需要更多的成本。
(4)双通道的接法,对于初手来说十分重要,一旦接法不正确,将无法使双通道起作用。
(5)双通道内存架构,其超频比较困难,这对于喜欢DIY超频朋友将不太适合。
Intel的超线程(Hyper Threading)技术开创性地使用了"逻辑处理器"的技术,给应用带来的影响不仅是以往的CPU主频的提高,更具意义的是性能的显著提升--超线程技术已经被验证,在企业级计算领域,它能够将服务器执行兼容应用的性能提升30%,大大改进了系统响应速度,从而使服务器能够支持更多用户。当前的 *** 作系统和服务器应用已不再将不同应用的工作负载混为一个数据流,而是分为单独的指令"线程"。在多路服务器中,这些线程分别由不同的处理器来执行,从而性能远远超出了单处理器系统。凭借超线程技术,英特尔至强处理器 *** 作系统和应用而言就是如同是两个独立?逻辑"处理器,能够同时处理两个"线程"。这一能力主要得益于英特尔NetBurst 微架构的不断创新,它使处理器资源得以充分利用。超线程技术使一个物理处理器能够同时执行两个独立的代码流(称为线程)。从体系结构上讲,一个含有超线程技术的IA-32处理器相当于两个逻辑处理器。而其中每个逻辑处理器都有自己的IA-32架构中心,在加电初始化后,每个逻辑处理器都可单独被停止、中断或安排执行某一特定线程,而不会影响芯片上另一逻辑处理器的性能。与传统双路(DP)配置不同(使用两个独立的物理IA-32处理器),在含有超线程技术的处理器,逻辑处理器共享处理器内核的执行资源,其中包括执行引擎、高速缓存、系统总线接口和固件等。
英特尔超线程技术可兼容现有的大多数多线程32位应用和 *** 作系统,因而软件将无需进行重新编译。当前,业界正在展开优化工作,以使服务器应用能够最大限度利用超线程技术的优势,如Web、目录应用、安全应用、电子商务、CRM、协作、ERP/SCM和数据库等。
超线程技术带来的杰出业务优势包括:较高的服务器响应速度和数据处理速度带来出色业务响应能力;更高效地利用处理器可用资源意味着支持更多的员工。
应用程序和 *** 作系统的功能日益丰富,这需要更高的处理能力。病毒扫描、文件加密和电子邮件压缩等IT后台服务使计算基础设施更加稳健,但同时也增大了电脑处理器的负载。从而,现在含有多任务和后台处理的商用计算迫切需要一种新的方法来提高性能,以使系统保持出色的响应能力。超线程技术带来的影响不可低估。英特尔超线程技术引入了台式机,来满足这些需求,使商业用户事半功倍。使用超线程技术,商业用户可以最充分地利用Windows XP的优先多任务体系结构,同时运行多个要求最苛刻的应用程序,并保持系统的响应性。IT部门可以部署台式机后台服务,以使其环境更加安全、高效和易于管理,同时最大限度地减少对最终用户工作效率的影响。此外,商业用户现在有能力处理以前曾无法处理的任务,如使用SAS进行数据采掘,同时用Excel宏分析数据,或者一边使用Photoshop设计宣传手册,一边使用Adobe Premiere渲染图像。
超线程的优势还不止这些。提高多任务环境中现有软件及多线程应用的性能只是目前的收益。英特尔还正在与开发下一代解决方案的领先软件公司通力合作,将超线程技术的极大优势融入到这些解决方案之中。
Hyper-Threading 超线程技术
超线程从观念上很容易理解,它让一颗物理处理器在使用的时候看起来更象是两个,处理器的资源被分成两个逻辑的部分。对于用户来说,这也意味着让从前那些多用户、多进程、多线程的软件充分发挥效能的环境不再局限于物理多CPU--逻辑CPU也能够起到接近的作用。
尽管超线程技术在P4 Xeon处理器中已经应用了半年有余的时间,但是面对着未来集成了超线程技术的P4级别CPU,我们认为,还是有必要从更深的层次来挖掘超线程的技术细节以及它与P4核心的有效整合。很幸运,在11月初我们找到了Intel于今年2月份发布Xeon之前的一份内部技术资料--66页的Intel超线程技术白皮书,在这份资料中,Intel详细描述了超线程技术的由来、架构、如何优化以及测试方法和测试数据。在此,我们愿与读者一起来共享这些知识,以便我们能够一起来更多了解超线程的机理。
一. 应运而生,超线程诞生的背景
各个行业巨大的需求一直是推动CPU按照摩尔定律稳步进行性能提升的主要动力,尤其是在互联网和通讯领域,为了满足这些增长迅速的需求,我们无法再沿用传统的仅提升CPU频率的设计思路。微结构技术被用来从细节上提升CPU的性能,比如超流水线、乱序运行、超标运行、多级缓存等技术都有效的提升了CPU的性能,但是随着这些技术的引入,我们正在使用的CPU也越来越复杂,它集成了越来越多的晶体管并且要求更高的电源供应。实际上,晶体管数量和电源供应增加的速度远远大于处理器性能提升的速度。
过去十年INTEL CPU性能提升与花费比较
我们来看上图,它体现了过去10年Intel CPU性能提升与相应的成本提升速度的比较,为了减少微结构技术给最终比较结果造成的影响,我们假设这四代CPU都在使用同样的制造工艺并且以486的速率作为基准。 在此表中我们可以看出,排除微结构技术的影响,Intel CPU整数运算的性能在这十年提升了5倍左右;与此同时,如果采用同样工艺,CPU的封装将要扩大15倍;相应的,在同样的工艺下,电源供应的要求提升了将近18倍。 尽管这个例子显示的是Intel的状况,但我们会发现,任何一家高性能CPU的制造商,都面临着同样的困惑。
当然,我们上面假象的是制造工艺和技术都还停留在486的阶段,随着制造工艺的提高以及相关技术的不断突破,我们并没有看到上述的封包和电源需求的可怕状况,但CPU更新速度在加快,现有的制造工艺很快就会捉襟见肘,如果依然按照现有的性能提升发展下去,很快瓶颈就会出现,所以,必须寻找其他的道路来降低提升性能被工艺束缚的危险,超线程正是在这样一个背景下被Intel推向前台的。
二. 超线程的运行机理
超线程属于线程级并行的一种,其实现在软件发展的趋势尤其是在服务器软件方面正是向着多线程的方向发展,比如在在线事务处理和Web服务中,大量的线程由来自不同IP的不用请求产生,如果这些线程不能够并行处理, 那么整个网络服务器的性能将受到极大的影响;在桌面系统的软件中也存在着这种趋势,面对这样的一个情况,Intel清楚的看到,充分利用现有系统资源,优化并完善线程级的并行处理,使多个线程能够更好的同时处理,比不断的增加晶体管的数量来达到CPU性能的提升更有效。
现有的已经在中高端服务器/工作站领域充分利用的多处理器技术就可以被看作是线程级并行的一种,通过增加CPU的数目,系统的性能有了非常稳固的提升,将多个线程同时在多个处理器上同时运行,而不管它们是否来自一个程序。多处理技术目前已经是非常成熟的技术,但是它存在着成本的问题,无法进一步的在更主流的应用中普及。
近几年,更多的线程级并行解决方案被提出,基于他们的产品也有不少已经发布,在其中有几种典型的技术:
芯片级多进程:这种技术将两个完全一样的处理器封装在一起,它们都拥有独立的结构,共享大部分缓存资源,这种技术与传统的多处理器技术有着很大的区别, 因为你完全可以使用多个采用这种技术来构造的CPU组成一个多处理器系统,但是它的缺点也很明显,更大的封装尺寸以及昂贵的制造成本使其无法成为主流的处理器制造技术。
分时多进程:这种技术是让处理器在安排好的时序周期里交叉运行多个线程,这种技术在牺牲了频率性能的同时,以最小的代价节省了浪费的时序周期,但是对于那种需要大量内存读写 *** 作的线程,它的影响有限。
事件响应多进程:这种技术是在一个线程需要进行长时间的后台处理比如对缓存进行读写 *** 作的时候,将处理器的 *** 作权交给另外一个线程,它应用于需要进行大量读写 *** 作的服务器程序中对性能的提升很高。
并行多线程:无论是分时多进程还是事件响应多进程都有它无法避免的局限性,在它们的技术的基础上,并行多线程提出了新的解决思路,它在一个处理器内部实现了无需切换的多个线程并行处理,它能够更有效的利用处理器的资源,它是多种线程级并行方案中节约最多资源、提升性能最多并且适用范围最广的。
超线程就是并行多线程技术在Intel处理器架构中的体现,它在一个处理器的内部为每个逻辑处理器构建了一套架构状态(Architecture State以下简称AS),每个AS包括一个处理器必须的一些寄存器,包括:通用状态寄存器、控制寄存器、高级程序中断寄存器以及其他一些处理一个线程必须的寄存器, 完整的复制AS需增加的晶体管数量非常有限;同时两个逻辑处理器共享一套物理执行单元、分支预测单元、控制逻辑以及总线,从软件 *** 作的角度来看,这意味着 *** 作系统和应用程序可以象在一台多处理器的系统中运行一样来规划它的进程或者线程运行。而从微架构的角度来看,这意味着来自逻辑处理器的指令将在共享的运算单元并行处理。
不包含多线程技术的处理器的多处理器系统
作为一个例子,上图展示了一个典型的没有多线程技术支持的多处理器系统,下图展示了一个典型的采用多线程技术支持的CPU的多处理器系统,我们可以看到两个物理的处理器内部被分成了4个逻辑的处理器。
使用多线程技术处理器的多处理器系统
在超线程技术产品化的过程中,还有几个细节我们需要特别注意:
1. 尽量的缩小超线程技术对封包尺寸的影响:由于逻辑处理器共享了大部分的微结构资源而仅仅复制了一小部分必须的硬件资源,封包的尺寸仅仅增加了不到5%。
2. 当一个逻辑处理器停止运行的时候,另一个逻辑处理器应能够继续运行:一个逻辑处理器可能因为多种原因而暂时中断,比如等待缓存读写、等待上一条指令的结果等等,Intel通过一个中立的程序来管理指令缓冲队列,在有两个线程在进行的时候,它不允许任何一个逻辑处理器独占指令缓冲队列,这样就有效的避免了一个逻辑处理器独占指令缓冲队列并暂时中断时,另外一个逻辑处理器也陷入无限悲惨之漫长等待。
3. 当只有一个线程运行时资源的调配:当只有一个线程在处理器中运行的时候,拥有超线程技术的处理器的运行效率能否达到同档次没有超线程技术的处理器呢?这意味着当只有一个线程运行时,所有的资源都应该调配给它以便它能够更有效的运行,我们可以看到下面的图,在P4的超级流水线上,任何两个逻辑处理流程之间,都由缓冲队列来进行分割,通过这种方式,它保证了任何正在进行的线程能够根据缓冲队列的拥挤程度来请求资源并逐步完成线程,而当只有一个线程存在时,由于缓冲队列是空的,所以所有的资源都会提供给这个线程以保证它在最短时间完成 *** 作。
要亲身感受Hyper-Threading超线程技术,除了带HT标志的P4外,以下的一些条件也是必不可少的,请看:
1、 采用含有HT技术的芯片组制造的主板。最新的Intel 845PE、845GE芯片组都支持HT技术;
2、 确保上述这类主板的BIOS中有开启HT技术的选项,并将其打开;
3、 为HT超线程技术进行优化的 *** 作系统(Microsoft Windows XP家庭版或专业版,以及Linux 2.4.18或更新的版本)。需要注意的事,您原有的Ghost镜像文件已是无效的,必须在BIOS中打开HT后,重新安装 *** 作系统,再进行Ghost备份的镜像文件才是支持HT超线程技术的;
4、 您的Microsoft Windows XP系统必须打好SP1补丁。
众所周知,高端服务器平台通常会采用多个处理器,可并发执行多个线程,从而获得极大的性能提升。在消费级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和其他软件厂商在硬件和软件方面做进一步的完善。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)