英特尔CPU为Windows7提升性能之秘
Wintel,一个非常有意思的单词,从字面上很容易理解,这是一个无比强悍的阵营——它由Microsoft OS和Intel Processor组成。
我们要谈的是这两家令人欣喜的合作成果。
他们合作的结果是更高的性能,更低的能源消耗,或两者兼备,这取决于在你的应用程序中的开启线程的数量。
更好的处理器核心管理是现行Intel处理器的重要特点。这些芯片利用同步多线程(SMT)技术,令每一个核心都能够同时运行两个线程。即如果启用SMT,那么双/四核处理器将增长为4/8逻辑线程。
Nehalem/Westmere的架构十分关注每个核心活跃运行的代码。当在一个确定的时间内,核心仍然没有活动时,晶体管驱动器将关闭处理器的核心。此功能的设计主要为了节约能源。然而该处理器还可以一定范围内提升活跃核心的频率,以便获得更好的性能。这个技术名为TurboBoost。
但要知道这种功能需要OS来配合。必须保证处理器的活跃核心拥有足够长的时间来关闭晶体管。这是在Windows7发布之前很难达到的。创建应用程序的线程是由操作系统来安排并加以执行的,应用程序无法自己进行调控,它们只能控制到底使用哪些管道。在Windows7之前,Windows内核不考虑安排一个线程到底运行于哪个可用的核心。若实时没有可用核心,Windows的线程调度将会选择一个正在运行的线程或是正在等待交换的线程,将其关闭。
由于以前的Windows对于其预定线程的调度不规划,因此一个使用三个线程的应用程序可能会轮流使用各个内核。其结果是,节电功能和TurboBoost会受到影响,因为没有核心会保持很长时间不活动。然而Windows7往往安排线程始终运行在单一内核,而不是让他们轮流工作,空闲的内核则将被关闭。
这样的模式有效控制了能源消耗,而且还能够通过TurboBoost提升性能。真正的胜利是在节能方面的。在桌面系统中,功耗可能不会时最重要的一个标准,但他们对服务器和移动设备却是非常重要的。特别是移动用户,将享受更长的电池寿命时,Nehalem的移动处理器将在消费电子设备中出现。
而最新的情况更加令人欢快,Intel的智能处理器已发展到了第二代,高级矢量扩展(Advanced Vectore Xtensions)是newgeneration中令人欣喜的又一个增添项。这个新的指令集在WindowsOS中必须要得到Windows 7 Service Pack1的支持。SandyBridge处理器在Win7 SP1的帮助下,将完美呈现出AVX的实力——它将大大加强处理器的浮点计算能力。在一些浮点运算密集的程序(如图形渲染,多媒体编码,3D游戏等)中,我们将会看到极为显著的性能提升。当然,关于这个提升,我们已经在新平台移动终端产品上面测试过,实际效果着实振奋。
简单来讲,当你的Program、你的Processor和你的OS都提供了对AVX的支援,那么这个应用将会变得出奇地快。有多快?负责地讲,它的花费将近是Westmere在Win7原版OS下的一半时间。 |