正文内容 评论(0

领教双手互搏
2002-11-14 19:24:00  出处:快科技 作者:驱动之家评测室 编辑:     评论(0)点击可以复制本篇文章的标题和链接

   

一如Intel所承诺的那样,Intel P4 3.06G CPU如约而至,北京时间11月14日下午2点整将是它正式发布的时刻。

作为Intel公司送测的国内网络媒体之一,驱动之家评测室全力以赴进行测试,尝试揭开Intel P4 3.06G CPU所有的秘密,你将会在后面的文章中看到我们为此而进行的大胆且有趣的实验,在3.06G P4抵达驱动之家评测室后的几天里,新CPU不停的连续运转,几乎没有空闲的时候。

但谁会在乎这些呢,因为从这块CPU开始,Intel又将一项全新的技术Hyper-Threading超线程技术带入我们的PC系统,不管你是否愿意接受它,从今后的每一块P4都会有它的身影(就好像当年的MMX技术),HT CPU会有什么样的表现,这才是我们最关心的。

OK!首先还是让我们一起来探讨一下理论知识,试着了解这块CPU背后的核心技术。如果你是一位极端的实用主义者,可以跳过它,点击此处直接进入我们的测试及测试结果单元。

Part I:共同探讨理论知识

驱动之家视点栏目曾发表了一篇名为“Intel:双手互搏不好使?” http://news.mydrivers.com/page/dir17/2002,11,03,8081.htm target=_blank>http://news.mydrivers.com/page/dir17/2002,11,03,8081.htm的新闻。这条新闻被20000余读者阅读并发表了上百条评论,其中不乏很有见地的论述。而今日发布的Intel的3.06G P4 CPU作为第一片集成了超线程技术的P4级别处理器,将会将针对超线程的讨论从服务器级别带入到更多的主流应用中。

超线程从观念上很容易理解,它让一颗物理处理器在使用的时候看起来更象是两个,处理器的资源被分成两个逻辑的部分。对于用户来说,这也意味着让从前那些多用户、多进程、多线程的软件充分发挥效能的环境不再局限于物理多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的超级流水线上,任何两个逻辑处理流程之间,都由缓冲队列来进行分割,通过这种方式,它保证了任何正在进行的线程能够根据缓冲队列的拥挤程度来请求资源并逐步完成线程,而当只有一个线程存在时,由于缓冲队列是空的,所以所有的资源都会提供给这个线程以保证它在最短时间完成操作。

    Part II:你做好迎接HT的准备了吗

要亲身感受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补丁。

XP必须打好SP1补丁

再来看看我们的测试平台吧:

另外,必须关闭WinXP的视觉效果功能、屏幕保护程序和禁用系统还原功能。

    Part III:独立平台上的测试

在了解了Hyper-Threading超线程技术理论后,包括我们驱动之家每一位编辑在内的所有硬件发烧友都急于知道Hyper-Threading在实际使用中到底会有怎样的效果。事实上,根据评测室收集的资料,国内外硬件预测对于超线程技术的作用还是有一定争议的。抱着将信将疑的态度,真实的测试开始了。

系统综合性能部分:

首先出场的还是SPEC出品的SPEC CPU2000测试软件。说到SPEC,大家可能都想到了非常有名的SPECViewPerf,不错,这正是SPEC的作品。SPEC是Standard Performance Evaluation Corporation的缩写,从它的全称中我们就可以看出,这是一个致力于标准性能评估的组织。 SPEC成了于1998年,以非盈利性和公正性为宗旨。这个组织中立于任何厂商,尽力确保测试软件的公正。并且,据他们所提供的资料表明,他们提供的测试软件因其标准化架构,可以准确评析当前最新,最流行的计算机设备。应用SPEC CPU2000软件的测试报告我们在国内网络媒体还不曾见到,要知道,SPEC CPU2000对于处理器厂商及国外的专业评估的媒体来说却是不可或缺的专业测试工具,影响力不在SPECViewPerf之下。要知道,中科院的“龙芯”就是用它来做的测试呀!

SPECint测试部分

在这次的Intel P4 3.06G CPU测试中,驱动之家评测室在XP平台,打开、关闭超线程的情况下跑完了SPEC CPU2000的全部整数、浮点部分,合计耗时超过30个小时,先给了P4 3.06G一次严格的考验。

正在运行的SPEC CPU2000

SPEC CPU2000的运行结果令人满意,在打开HT超线程技术的情况下,不论浮点fp还是整数int成绩都有了10%的提高。

到Winstone的测试就开始出现问题了,基于MS Office模拟环境的Business Winstone打开HT前后得分接近,而原本应体现HT优势,基于Adobe Photoshop、Premiere、Director、Dreamweaver等多媒体模拟环境的Business Winstone得分在打开HT后得分却明显下降,实在不可思议。

PCMark2002 CPU部分的得分HT有进步,但内存部分同样令人犯迷糊。

这一部分,除了专门针对CPU的SPEC CPU2000真正显示了HT双手互搏的威力外,HT在办公商业性能测试中,不进反退。

游戏性能部分:

权威的D3D测试中,打开超线程与否无关紧要。

最新的D3D游戏UT2003中,情况同样如此。

在极其依赖CPU的卡曼奇游戏中,HT技术带来了2帧的性能提升。

基于Quake III引擎的《重返德军总部》也看不到HT打开与关闭的区别。但它的祖师爷Quake III的情况就不太好了。

hehe,Quake III的表现令我满地找眼珠,打开HT后急降到关闭HT时的一半!着急的我试了多次,包括输入了“r_smp 1”指令,都未能带来任何的起色,WHY?

游戏部分,除了Quake III可能有特殊原因外,其他所有的游戏测试中,打开和关闭超线程HT没有任何区别。

专业图形性能部分:

从双P3到双Athlon MP,图形工作者对双CPU平台一直青睐有加,Intel给我们带来的不加成本双逻辑处理器是否能象双物理处理器那样,提升专业图形性能呢?

SPECViewperf 7.0测试得分令人欣慰,对分秒必争的图形工作站来讲,目前的超线程技术多少还有点帮助。

为了更进一步的测试真实操作情况下HT技术在专业图形方面的表现,我们进一步加测了SPECapc V1.0 for 3ds max。

基于测试的完整性和可比较性考虑,我们没有采用模型包+支持双CPU渲染补丁渲染的方法来测试CPU性能。这里我们同样采用了来自SPEC的SPECapc V1.0 for 3ds max R3.1测试包,在3DS MAX 5.0采用OpenGL API的平台上进行测试,结果如下:

SPECapc V1.0 for 3ds max的得分也令人满意,性能有提升只是提升幅度不大。

对图形工作站而言,不许额外花钱却能带来小幅性能提升的技术还是值得考虑的。

精彩的还在后面呢,请继续往下看。

    Part IV:真正的多用户、多进程、多线程实地测试

所有Intel公布的技术资料都显示,超线程在多任务处理的应用中会展现出极大的优势。可是,那些理论上的论述与极端情况的测试早已让我们看的足够头晕脑涨了。驱动之家的“Intel:双手互搏不好使?” http://news.mydrivers.com/page/dir17/2002,11,03,8081.htm target=_blank>http://news.mydrivers.com/page/dir17/2002,11,03,8081.htm 这条新闻有20000余读者阅读并发表了上百条评论,其中不乏很有见地的论述。我们看到,读者们都迫切需要一次客观的、基于实际应用的测试来看看超线程到底何去何从。于是,我们驱动之家评测室规划了这样一次特别的,非常契合网站实际的测试。

这一次的测试,编辑们请到了网管配合行动。测试原理陈述如下:

我们将驱动之家“硬件虚拟社区”栏目作为测试对象,当虚拟社区栏目同时在线用户数为150-160人时,分别测试开启/关闭超线程功能后的系统资源使用率。

为什么要选用“硬件虚拟社区”栏目做测试呢?大家看看下面的表格就会明白。

根据测试原理,我们将会用这套P4 3.06G平台暂时替代我们的论坛服务器,于是,编辑们抱着测试设备来到了电信局数据中心。

数据中心一角:令人羡慕的Dell服务器群

SGI的Origin大型计算机,旁边的两个是磁盘阵列柜

右边的那个白色设备你知道是用来做什么的吗?答案是:为了降低地板下温度的空调

在一个合适的角落里,接上100M网线与电源

我们测试准备开始了

这就是我们的测试设备和它临时的安身之处

我们采用Windows2000 Server附带的性能监视器来配合测试。网络管理员把整套社区系统复制搭建完毕后,我们准备开始进行迁移工作,此时P4 3.06G平台的超线程功能为开启状态。2002年11月12日23:30分,编辑修改了社区入口的Html文件,将原社区服务器入口IP(202.102.249.254)改为构件在新平台上的202.102.249.253,并且停止了202.102.249.254的服务。平台转换几秒钟后,开始有社员登陆到202.102.249.253(P4 3.06G平台)服务器上。8分钟左右,社区同时在线人数达到了150-160人(网络管理员负责控制同时在线人数不超过160人),此时我们打开了性能监视器,主要监视当前CPU占用率与SQL Server同时连接数两个重要参数。

经过了15分钟的测试,CPU占用率平均值为17.724%,其中最高峰值没有超过70%。

此时,我们重启系统,将超线程功能关闭。系统启动完毕后,10分钟左右,社区同时在线人数再次达到了150-160人(网络管理员继续负责控制同时在线人数不超过160人)。我们打开了性能监视器继续测试。

又经过了15分钟的测试,性能监视器显示服务器CPU平均占用率为27.525%,波形图明显陡峭了许多,CPU占用率在70%以上的峰值频频出现,最高甚至达到了98%。

此时,我们完成了测试,将服务迁回原先的社区服务器202.102.249.254上。

最终的测试对比图如下:

到这里,我们对于超线程技术在服务器上的实际应用有了一个理性的认识。我们看到了事实:在以多用户、多进程、多线程为显著特征的网络服务应用方面,Intel的超线程功能具有非同寻常的意义!在不增加投资的情况下,我们的应用程序平均CPU占用率下降了10个百分点,这种情况在这个领域还没有出现过。我们知道,Intel的超线程功能在工作站、服务器领域普及已经有相当长的时间。Intel P4 Xeon平民化的价格(比同频率的Northwood P4每颗仅贵50美金左右)使大量的工作站、服务器用户早就领略了超线程的魅力。我们驱动之家正是由于应用了P4 Xeon的解决方案,才特别留意超线程功能是否真的是吹牛的噱头,因此,当我们一拿到P4 3.06G就定下了这样一次真正的实测。

让我们把话题回到P4 3.06这颗CPU本身。P4 3.06作为第一款投放主流市场的支持超线程处理器,意义非凡。这是Intel向主流市场推行超线程技术的第一步。不可否认的是,P4 3.06当前会很贵,我们掌握的一些资料表示,它的上市价格大约在700美元左右,还不够资格切入主流市场。不过,通过这项测试,我认为P4 3.06在最近的几个月里不失为一类良好的工作组级服务器代偿解决方案,籍着超线程功能,其实当前的一些工作组级服务器性能完全赶不上P4 3.06 With HT,价格反倒比P4 3.06还高。展望未来,当为超线程技术充分优化的Windows.net Server出现后,我们有理由相信在高端服务器应用领域,超线程将能够为我们带来意想不到的变化。

    Part V:进程、线程,我们自己的尝试

首先,了解进程(Process)与线程(Thread)的意义与它们之间的关系对我们来说很重要。

简单的来说,我们平常运行的操作和应用都是通过执行程序的,程序是一段静态的代码,是软件运行的基础。进程指的是程序的执行过程,它对应了代码加载、演绎到完成的整个过程,一个进程为此产生、演进然后消失。同一段程序,或者更多的程序,均可以被加载到系统内存区域的不同部分分别执行形成不同的进程。而进程基于线程,一个进程至少有一个线程,进程在执行过程中可以产生多个线程,与进程一样,每条线程也拥有产生、演进然后消失的过程。

上面的这些解释可能很绕口令,那么我们不妨看图说话。

现在,我们用IE打开桌面上一个叫test.htm的文件

任务管理器中出现了iexplore.exe这个进程。

我们留意到,当前iexplore.exe进程的线程数为14。现在,我们去掉刚才那个test.htm页面中右上角金光闪闪的微星光驱广告,那是个Flash。关闭IE后再打开这个页面。

现在再看看,

哦!iexplore.exe进程现在只有11个线程了!原来当我们浏览这个页面时,微星的Flash广告消耗了三个线程——还好,这个Flash广告的效果并不怎么复杂。

就处理器周期和内存的使用而言,创建进程的开销很大。多线程这个概念的出现解决了这个问题,一个进程的所有线程共享同一个内存空间并共享系统资源,节约系统开销,创建线程比创建进程更简单更快。多进程/线程与单进程相比的在效率和速度上的优势是很明显的。

现在,是该想办法验证一下Intel的“超线程”究竟“超”在那里了!在编辑的要求下,我们的程序员帮助了我们,他利用VC编译了可以在规定时间内榨干所有的CPU周期在一个进程中竭尽全力产生线程的程序。希望了解编程原理的朋友们可以给drivers@mydrivers.com信箱来信索取源代码。

这个程序投入测试中后,编辑发现,当超线程功能关闭时,此程序一旦运行就能够100%的利用CPU资源。而当超线程功能开启时(任务管理器出现两个逻辑CPU),此程序只能利用每个逻辑CPU60%左右的资源,结果很不理想,超线程开启比关闭时生成线程数低了近2000 Thread/S。

于是,我们又进行了另外一个试验,同时开三个进程运行该测试程序60秒,并且将三个进程所生成的线程相加与关闭超线程功能运行测试程序60秒的结果比较。结果是——开启超线程功能较关闭超线程功能平均提高了2000 Thread/S!

超线程开启

超线程关闭

这也许终于揭示了很多测试中开启超线程比关闭超线程后成绩不升反降的原因。很简单,现有一些测试程序仍停留在为一个CPU考虑问题的状态中,根本无力充分利用两个逻辑处理器的资源。这也恰恰对应了Intel关于超线程的技术描述与当前的现实困难——超线程是创新的技术——超线程需要软件的大量支持与优化!

为了测试使用方便,程序员用VB为我们做了一个Shell。这个外壳程序将起到同时操纵5个在进程中全力产生线程程序的作用。也就是说,同时生成5个进程,并且这5个进程中的每一个都将用尽全力生成尽量多的线程。在60秒的时间里,程序将测试系统5个进程生成的总线程数加起来除以60,得出系统平均每秒生成的线程数,这个数据与CPU的处理能力是成正比的。

经过编辑与程序员一致同意J,这款测试程序被命名为——驱动之家超级线程测试器。

此程序可以在http://www.mydrivers.com/dir62/d25088.ht被下载,大家可以用它来测试一下自己CPU的能力,有条件的朋友自然可以用来测试自己的超线程处理器,不过需要留意的是,考虑CPU缓存对结果的影响,建议大家取连续测试三次后的结果为准。

    Part VI:我们的结论

我们认同Intel的观点,超线程技术的产品化不是一个噱头,而是在过去几年线程级并行研究基础上的一次集中体现,它在最少的系统成本增加的基础上最大的提升了系统的性能,在半导体制造工艺和微结构技术经过长时间高速发展而即将进入瓶颈的时候,超线程的出现给了它们以喘息的时间。当然不同的尝试也在进行,我们看到一直在推迟发布的AMD的K8 CPU也在结构优化上面下了很大的文章,抛弃了前端总线而将内存控制器集成到了CPU的内部以提升系统效率,看来CPU的竞争将越来越好看了,AMD和Intel都选择了提升频率以外的其他途径来进一步优化效率,只不过Intel走的更远一些。

随着P4 3.06G处理器的发布,Intel将多线程技术从纯粹的服务器/工作站应用引入到了桌面系统,这将必然对未来的软件发展产生很大的影响,相信在未来的2-3年内,更多的针对商业用户的桌面软件甚至针对个人和家庭的软件将会向多进程靠拢,而这也会反过来推动Intel在超线程技术方面进一步的研究,同时,更多软件的支持也将会是Intel制约AMD的一大法宝,相信Intel绝对不会忘记AMD扯着微软来当其K8的“帐篷”的事情。

无论是作为一个中立的媒体还是一个主观的Diyer,笔者都对眼前这一切非常欣喜,在厌倦了频率之争和等候K8的而昏昏欲睡的时候,超线程的出现给就像给我被打了一针兴奋剂,更高领域竞争的第一枪终于打响了,面对未来更多技术层面的竞争和更多先进技术能够被应用于产品领域,相信会让大家惊喜连连的。最后我们要对AMD说,加油跟上,没有你,CPU的世界将不复有趣。

【本文结束】如需转载请务必注明出处:快科技

责任编辑:

  • 支持打赏
  • 支持0

  • 反对

  • 打赏

文章价值打分

当前文章打分0 分,共有0人打分
  • 分享好友:
  • |
本文收录在
#快讯

  • 热门文章
  • 换一波

  • 好物推荐
  • 换一波

  • 关注我们

  • 微博

    微博:快科技官方

    快科技官方微博
  • 今日头条

    今日头条:快科技

    带来硬件软件、手机数码最快资讯!
  • 抖音

    抖音:kkjcn

    科技快讯、手机开箱、产品体验、应用推荐...