多核的时代如何让Windows 7允许速度更快

来源:岁月联盟 编辑:zhuzhu 时间:2009-11-19
多核的时代如何让Windows 7允许速度更快内容简介:微软Windows7发布后受到了市场和用户的追捧。虽然Windows7的内核主要建立在Vista代码的基础上,但其几个主要的进展摆脱 Vista给用户带来的烦恼,大大改善了用户体验。在内核中,一项重大的改变就是如何提升多

微软Windows7发布后受到了市场和用户的追捧。虽然Windows7的内核主要建立在Vista代码的基础上,但其几个主要的进展摆脱 Vista给用户带来的烦恼,大大改善了用户体验。在内核中,一项重大的改变就是如何提升多线程应用的运行。该进展带来的好处就是降低了能耗,提升了可扩展性,并在理论上提高了性能。

  为了验证Windows7对桌面电脑带来的好处,技术人员采用最常用的反映多线程能力的桌面应用程序(即图形导向的软件)进行了测试。例如Adobe Photoshop和其它图形应用软件在启动和功能配置时自我检测桌面系统的负载量。在这种状况下,图形软件一般会使用所有的处理器内核和几乎全部的内存,使得系统能够提供最快的性能。技术人员一般用Viewperf基准测试(一个综合性的图形测试软件,由SPEC标准性能评估公司颁布的)和 Cinebench测试(这是一个单纯的图形渲染测试基准工具),这两个软件是免费的,可以从相关的网站下载后使用。

  测试的硬件平台是戴尔PrecisionT3500工作站。戴尔T3500是一款入门级工作站,一般用于高端图形用户。它有四核心 XeonW3540(Nehalem架构)处理器,2.93GHz的主频,一块NvidiaFXquadro4800显示卡,4GB的内存。这种配置大约是12至18个月后高端桌面系统的主流水平。

  在此次测试中,技术人员使用了三块相同的硬盘驱动器,戴尔工作站预装了WindowsXP专业版、Vista旗舰版和Windows7旗舰版,都是基于32位的,并且是最新版本的驱动程序。然后,技术人员在每个操作系统运行的基准测试。当测试下一个操作系统时,会将前一次测试时用的硬盘换掉,以确保每次测试时不同版本的操作系统运行在系统的硬件上。最后的测试结果如下表: 

  三个版本Windows的性能基准测试结果

测试基准 (数值大的好) Windows XP SP3 Windows Vista SP2 Windows 7 Ultimate SPEC Viewperf 10 (SMT off) 95.84 142.95 139.35 SPEC Viewperf 10 (SMT on) 93.45 145.30 138.80 Cinebench 10 (SMT off) 3.43 3.40 3.48 Cinebench 10 (SMT on) 3.98 4.07 4.09

这些结果表明,在考虑是否部署Windows7时,性能应该被视为是从WindowsXP升级到Windows7的合理理由,但性能的因素不足以让Vista用户转向Windows7。Windows7基于Vista内核的因素使得两者的性能比较接近。

  让人惊讶的是,Windows7的多线程变化并没有提供更多的性能提升。对此的解释是Windows7如何来管理超线程。Windows7多线程能力的主要变化包括增加处理器的亲和力和 Windows内核调度锁定的变化。这种被称作“玻璃眼”的技术是现代操作系统的核心内容,也即内核如何阻止两个线程在同一时间内访问相同的数据或资源。

  任何时候,一个线程想要访问一个可能另一个线程也需要访问的数据,就必须使用锁定机制,以确保只有一个线程可以修改该数据。在 Windows7之前,当一个线程需要获取或访问一个锁定时,它需要通过一个全球性的锁定机制。这种机制通过内核调度锁来处理提出的要求。但因为它是独特的、全球性的,它处理的需求可能来自数以千计的Windows硬件平台。因此,这个调度锁就成为了一个主要瓶颈。事实上,这也是 WindowsServer在相当长的一段时间内最多只能在64个处理器上运行的主要原因。

新的锁定机制

  Windows7包括一个全新的机制,摆脱了全球锁定的概念,将推锁定管理进入到对资源的锁定。这允许Windows7扩展到256个处理器而没有性能损失。在只有少数处理器的系统里,由于旧的内核调度锁不是负担过重,所以这个新的机制对于台式机和小型服务器而言性能的提升不是很明显。

  虽然SMT运行时不可见,但可以预料的是,基准测试会利用一切可用的资源。当运行四个线程的带SMT功能的Viewperf基准测试时,结果基本保持不变。

  Cinebench基准测试是一个衡量多个线程运行比单个线程运行时能快多少的工具。无论是否让SMT功能激活,Cinebench在测试三个操作系统的性能时仅有微不足道的差异。但是和Viewperf不同的是,三个Windows系统的结果在SMT开启的情况下得分明显好于不开启的情况。也就是说,无论是哪个版本的Windows,Cinebench渲染运行在8个线程(SMT开启)比4(SMT关闭)个线程性能要高20%。基准测试在这两个方面的差异,使得用户在决定现有应用是否开启SMT功能时,最好先进行测试后再决定。

功耗情况

  Windows7提供了几个技巧,让线程运行在相同的执行管道里,使底层Nehalem处理器能够关闭那些较少使用或者不工作的晶体管。该功能的主要优点是减少能源消耗。为了量化这一功能的好处,测试人员运行了带SMT功能的4线程版本的Viewperf程序。这种配置意味着大约有一半的管道,将看不到有任何活动。下面表格中的数据,就反应了Windows7的节能效果。


三个版本Windows的Viewperf基准测试结果

能耗考察项 Windows XP SP3 Vista旗舰版SP2 Windows 7旗舰版 功耗(三次测试平均值) 247瓦 248瓦 207瓦

从表中看到,Windows7的优势确实很大,大约能节省17%的能耗。而且这种测试是运行在同一台工作站上,且硬件配置是完全相同的,只有Windows版本是不同的。这是一个可观的能耗节省,并有充分理由相信其它软件将同样受益于Windows7的能力,及充分利用英特尔处理器的魔力。

  和Intel处理器联合起来

  微软操作系统和英特尔处理器这些年来几乎成为了桌面系统的标配。虽然不是每一个周期的迭代产品都对最终用户带来大量的利益,但微软和英特尔的紧密关系已被一些业内人士称为良性循环。而这一次,新的产品联动周期确实提供了一些关键的优势:Nehalem处理器的性能远远超过前任,并且已经在市场上供货。新处理器有很多节能技术,可以有效地加以利用。而在微软这边,Windows7适时推出,在节能方面同样出色。