【IT168 应用技巧】众所周知,由于开发时间(2000-2001年)较早的缘故,Windows XP是一个针对单核处理器的产品。虽然支持对称单核多处理器(SMP),但是对2005年以后出现的双核,单处理器如AMD 双核移动炫龙和英特尔酷睿移动处理器支持并不理想。很多的双核笔记本用户反应双核处理器在运行没有针对双核设计的程序和游戏时,出现Windows XP系统运行不稳定的情况或者跟单核处理器相比,运行速度不增反而减慢的奇怪现象 尤其是在游戏中,经常出现游戏玩家口中所谓的“卡机”现象。
微软知识库中的三篇文档对这种现象进行了描述:
KB896256:如果计算机装有多个支持处理器电源管理功能(如高级配置和电源界面 (ACPI) 处理器性能状态)的处理器,则需要安装 Microsoft Windows XP Service Pack 2 (SP2)。并且使用本更新来优化运行 Windows XP SP2 的计算机的性能和行为。如果没有安装此类更新,则装有这些具有电源管理功能的移动双核处理器的计算机可能出现性能下降或行为异常。注意:此问题还会影响基于 x64 版本的 Microsoft Windows Server 2003。但是,关联的专用修补程序无法解决在 AMD 双核计算机上运行的游戏和其他应用程序中的计时问题。
原始地址:http://support.microsoft.com/kb/896256/
KB924441 :安装本更新程序可以解决以下问题:使用支持 ACPI 处理器性能状态 (AMD PowerNow!) 的 Advanced Micro Devices (AMD) 双内核处理器或多处理器的系统停止响应问题。
KB909944:当您尝试使用双核心处理器, 在 基于 WindowsXP 计算机上运行游戏,计算机性能可能很差。 例如, 可能会遇到以下症状之一:
- 游戏停止响应在游戏过程。
- 游戏停止响应在呈现过程。
- 游戏速度很慢。
如果使用不是运行双核心处理器计算机上设计游戏有时可能会出现这些性能问题。 发生性能问题的原因是游戏无法正确捕获计时信息。
原始地址:http://support.microsoft.com/kb/909944/
相应的,微软在网站上提供了这个双核补丁的下载,
Windows XP 更新程序 (KB896256),载地址:微软官方( http://www.microsoft.com/downloads/details.aspx?FamilyID=c2ab5a48-8240-4934-bbd8-34fb8a0fce3b&DisplayLang=zh-cn )
单单是关于双核处理器性能下降问题,微软就发表了至少三篇相关知识库文章,我们作为双核笔记本用户,究竟需要哪个双核补丁呢?就让我们来逐个分析,探索一个究竟。
首先我们再来看一下KB896256的描述,让笔者把其中的关键文字用黑体标注出来:
KB896256:具有多个支持 ACPI 处理器性能状态的 CPU 的计算机需要安装 Windows XP SP2。此要求适用于支持下列项目的计算机:
- 多个物理插槽
- 多核设计
- 多个逻辑线程,如 Intel 超线程技术
由于 Windows XP 最初并不支持多处理器配置的性能状态,因此需要进行更改才能在多处理器系统上正确实现这种支持。Windows XP Service Pack 2 包括对核心电源管理器所需的更改。这些更改可以确保 Windows XP 在具有处理器性能状态的多处理器系统上能够正确运行。
此修补程序还解决了在具有多个支持处理器性能状态的处理器的计算机上存在的下列问题:
- 处理器性能状态在使用按需切换功能时,单线程工作负荷的性能可能会下降。
- 在多处理器系统上使用 ACPI 电源管理计时器时,处理器时间戳计数器 (TSC) 的同步跨处理器进行注册。
- 核心电源管理器中的 ACPI C 状态升级和降级问题。
背景知识:什么是“按需切换”?
按需切换 (DBS) 是指使用 ACPI 处理器性能状态(动态调整电压和频率)来响应系统工作负荷。Windows XP 处理器电源管理使用自适应处理器限制策略来实现 DBS。此策略会自动地动态调节处理器的当前性能状态,以响应系统 CPU 的使用情况而无需用户干预。 就是我们平常所说的动态调频技术,支持这种技术的CPU在负荷不大的情况下,自动降低运行频率,在CPU占用率增高的情况下,可以在1/2000秒内将运行频率切换到全速运行,这样降低了音频、视频播放、上网、文字处理、文件下载这类轻量级任务时候,笔记本的发热量,也保证视频编码、文件压缩、3D渲染的时候的机器性能。
如果单线程工作负荷运行于包括双核配置的多处理器系统上,则工作负荷可以在可用的 CPU 内核间迁移。此行为是 Windows 在可用 CPU 资源之间安排工作的正常现象。但是,在具有处理器性能状态的系统上,如果该处理器性能状态使用自适应处理器限制策略运行,则此线程迁移可能会导致 Windows 核心电源管理器错误地计算处理器的非常好的目标性能状态。发生此行为的原因是,单个处理器内核(逻辑的或物理的)看起来好像没有整个处理器包实际那么繁忙。在使用单线程工作负荷的性能基准上,此产物的结果可能是性能下降,也可能是连续运行的相同基准测试之间存在很大程度的差异。 导致运行繁重的单核任务的时候,处理器工作在错误的降频状态!
此双核补丁程序包括对核心电源管理器的更改,以跟踪处理器包之间的 CPU 使用情况。通过这些更改可以看到复合 CPU 的真实活动级别,因此有助于正确地计算增加的目标性能状态。
很明显,从上面可以得出2个结论:
- 必须是支持SpeedStep,PowerNows!此类按需切换技术的CPU,双核补丁才能发挥作用,赛扬处理器,不支持按需切换 (DBS)的桌面双核处理器,补丁起不到作用。
- Windows电源管理必须处于CPU自动变频状态,补丁才能发挥作用。
以上是根据微软公司相关文档得出的结论,接下来我们通过测试验证双核补丁在什么条件下,能够多大程度影响Windows XP性能?
首先说明一下测试环境:
硬件环境 | |
处理器 |
Intel Core Duo(Yonah) T2400(1.83G) |
芯片组 |
Intel 945PM+ICH7M |
内存 |
2G DDR2 667 |
硬盘 |
80G 日立 5K160 SATA硬盘 |
分辨率 |
1280×800 |
显卡 |
独立,ATI Mobility Radeon X1600 256M |
软件环境 | |
操作系统 |
Windows XP Service Pack 2简体中文版 |
双核补丁 |
WindowsXP-KB896256-v4-x86-CHS(2006年12月) |
单核性能 |
Super PI 1.1 |
整体性能 |
Futuremark PCMark 05 v1.20 |
理论性能 |
Sissoft Sandra XIb |
3D渲染性能 |
Cinebench 9.5 |
测试方法:在以上软硬件环境下,使用全新安装的系统,并对测试磁盘经行完全的磁盘整理以后,分别测试不同系统电源管理方案下,没安装双核补丁和安装双核补丁的两种不同情况下的笔记本整体性能和单核执行性能,还有理论CPU性能的区别。
需要额外说明,如果测试成绩在千分之五浮动或者说相差不超过1%的时候,这里默认为测试误差,认为两次测试成绩相当。超过这个幅度,才会认为是有实质的性能区别。
其中将Windows电源管理选择为“便携/袖珍式”时候,笔记本电脑的双核处理器即工作在“按需性能”模式,拿Intel处理器举例说明,此时当系统负荷不重的情况下,CPU工作于6倍频,对于测试系统来说,就是时钟频率为1000MHz,CPU核心电压为0.95V。选择为“家用/办公桌”时候,笔记本电脑的双核处理器即工作在“按需性能”模式,,此时CPU工作于全速状态,对于测试系统来说,就是1.83GHz,CPU核心电压为1.088V。
首先是大家熟悉的Super PI测试,这是一个由东京大学Kanada Lab.所制作的一款通过计算圆周率的来检测处理器性能的工具,在测试里面可以有效的反映包括CPU和内存在内的运算性能,成绩极大的依赖于CPU主频,高速缓存大小和内存性能。
参考酷睿处理器发布一年多以来的多次评测,干净XP系统下,Intel酷睿双核的Super PI 104万位计算典型成绩应该为:
T2050 @ 1.6G : 约35秒
T2300 @ 1.66G : 约33秒
T2400 @ 1.83G : 约32秒
T2500 @ 2.0G : 约30秒
T2600 @ 2.16G : 约28秒
我们的测试系统测试成绩如下:
Super PI 1.1 | |
单位:秒 |
运行时间 |
未打双核补丁(CPU按需变频) |
39.578 |
未打双核补丁(CPU全速) |
32.796 |
已达双核补丁(CPU按需变频) |
32.812 |
已达双核补丁(CPU全速) |
32.625 |
点击图片查看大图 |
反复了四次测试结果表明,未打双核补丁,并且没有其他程序干扰的情况下,测试平台Super PI 104万位运算时间最长可达39.578秒,比预期时间延长了20%。也就是说没打双核补丁的系统,最坏的情况下系统性能下降了20%,但是这种情况不是每次都会出现,具有一定的随机性,超过一半的几率运算在33秒以内就结束了。
PCMark05 1.20版也是以推出3DMark系列软件而名声大振的Futuremark公司旗下另一款非常著名的系统综合性能测试软件。通过模拟多个日常多媒体、文件解压缩和视频压缩等软件运行,倾向于计算机整体的多媒体和游戏性能测试,同时兼顾测试系统的多核处理和单核处理性能。这些任务包括读取、对数据块的文字和复制通入cpu缓存和主存储器并且潜在因素测试。PCMark05针对Vista的发布,官方网站也对PCmark05发布了V1.2.0补丁。该补丁我们在WinXP系统下也作了更新.
PCMark05 v1.20 | |||||
|
PCMark得分 |
CPU得分 |
内存得分 |
显卡得分 |
硬盘得分 |
未打补丁(变频) |
3914 |
4123 |
2881 |
3142 |
3775 |
未打补丁(全速) |
4022 |
4259 |
2933 |
3133 |
3840 |
已达补丁(变频) |
4016 |
4243 |
2930 |
3137 |
3807 |
已达补丁(全速) |
4022 |
4259 |
2933 |
3134 |
3823 |
我们的测试平台在全速模式下运行PCMark 05出现了惊人的巧合,无论系统是否打了双核补丁,得分竟然都是相同的4022分,说明全速运行的系统性能不受双核补丁的影响。没打双核补丁的变频电源方案测试系统,系统综合得分轻微的降低,但是幅度未超过3%
Sissoft Sandra是另外一套著名的CPU理论性能测试软件,它的CPU理论性能测试是针对多个的处理器核心进行的。它放弃了使用含义模糊的指数,改为采用有实际意义的性能数字,例如像每秒执行指令数或每秒字节数等。SiS Sandra测试软件针对Vista操作系统作了一个专门的升级,本次测试的版本为SiS Sandra Lite XI b。
Sissoft Sandra XIb | ||||||
|
CPU性能 |
CPU性能 |
多媒体性能 |
多媒体性能 |
内存带宽 |
内存带宽 |
未打补丁(变频) |
12465 |
9180 |
28538 |
38902 |
3628 |
3639 |
未打补丁(全速) |
12479 |
9181 |
28572 |
38973 |
3633 |
3635 |
已达补丁(变频) |
12461 |
9183 |
28537 |
38912 |
3624 |
3629 |
已达补丁(全速) |
12482 |
9178 |
28581 |
38990 |
3631 |
3637 |
这次测试成绩我们可以看到,在完全居于多核心的CPU基准测试中,无论打没打补丁,CPU是否工作于全速状态,测试成绩全部在允许的千分之五范围内。可以认为没有任何性能差别。
CINEBENCH是一款基于一个3D设计软件 ——CINEMA 4D的免费测试工具,是基于实际应用的专业3D软件包。CINEBENCH 9.5测试包括CPU子系统和图形性能两大部分,CPU部分又分为单CPU(线程)和多CPU(线程)2个子项目,并给出单线程和多线程结果的提升比率,非常直观。由于对CPU性能测试比较准确,更是少见的支持多核CPU的软件之一,所以现在也常常被用于服务器CPU测试。Intel官方在演示E5320的时候,就多次利用这个测试软件,由此也看出这个测试软件的权威性。
Cinebench 9.5 | ||
单位:CB-CPU |
单CPU渲染 |
多CPU渲染 |
未打双核补丁(变频) |
192 |
499 |
未打双核补丁(全速) |
271 |
504 |
已达双核补丁(变频) |
273 |
505 |
已达双核补丁(全速) |
275 |
509 |
在这个测试中,未打补丁并工作于按需变频模式的测试系统单核渲染成绩比打了补丁的系统下降了接近25%,工作于全速/变频/多核并行渲染的测试系统成绩差距小于百分之一,可以认为没有区别。
为什么Windows XP系统中的双核处理器处于变频状态,并运行只占满单一处理器核心的单核任务的情况下,会造成CPU性能的下降呢?我们在测试上述CPU性能的同时,也使用任务管理器和Mobile Meter软件监视着CPU的负荷量和CPU频率之间的关系变化,如下图所示:
点击图片查看大图 |
运行单核任务和双核任务的CPU占用率图示,
点击图片查看大图 |
未打双核补丁的CPU频率变化图,红框为运行满负荷任务阶段,可以看到CPU频率不停的上下波动
点击图片查看大图 |
安装双核补丁的CPU频率变化图,红框为运行满负荷任务阶段,可以看到CPU频率相当平稳
从图上不难看出,打了Windows XP双核补丁之间,在运行单核满负荷任务的时候,CPU频率犹如锯齿一般上下波动,Windows错误的判断和估计了处理器的负荷状态,错误的认为CPU处于轻量负荷状态,所以导致了CPU核心频率在1.0-1.33-1.83G之间的波动。
而安装好双核补丁以后,只要是CPU满负荷工作,无论是一个核心还是2个核心,CPU核心频率都会自动的调节到1.83G的最高频率
测试结果肯定了笔者上面提到的结论,没打双核补丁造成系统性能明显下降必须满足两个条件:
1、多核系统运行的单核负荷任务。
2、CPU支持并设置于“按需性能”模式。
那么,这种性能下降是否会带来明显的笔记本系统整体性能下降呢?PCMark 05的测试已经给了我们一个答案,整体性能仅仅不到3%的下降。单核任务明显下降了20%-25%的性能,为什么会出现整体性能不到3%的下降呢?
因为目前我们日常应用软件里面,除了Word/IE等办公软件、老式视频播放软件如Real、没有针对双核设计的游戏,还是单核单线程运行的程序已经不多了。而恰恰除了游戏,其他单核应用对处理器速度的要求都不高。而大部分强烈占用CPU的新版压缩/解压缩软件,平面/机械/三维图形/动画专业设计软件、高清音频播放软件、性能测试软件,2006年最新推出的游戏,都已经针对双核优化过了。所以日常用途,系统实际性能下降不大。
但我们也不能忽视的一种情况:最容易感觉到这个笔记本双核处理器性能下降的,就是老式单核设计游戏。
看到这里,很多读者马上想检查一下自己的机器是否打了双核补丁,是否游戏性能受到影响了吧?先别着急,网上还有部分提及:仅仅安装上双核补丁,它默认还是处于关闭状态并不会自动发挥作用。还需要做最后的修改,增加一个注册表设置来启动,微软的知识库页面可以找到如下文字:
1. |
单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。 |
2. |
右键单击“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager”,指向“新建”,然后单击“项”。 |
3. |
键入 Throttle 作为该新项的名称。 |
4. |
右键单击“Throttle”,指向“新建”,然后单击“DWORD 值”。 |
5. |
键入 PerfEnablePackageIdle 作为值名称。 |
6. |
右键单击“PerfEnablePackageIdle”,然后单击“修改”。 |
7. |
在“数值数据”框中,键入 0。确保选中了“编辑 DWORD 值”对话框中的“十六进制”,然后单击“确定”。 |
8. |
退出注册表编辑器。 |
警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。笔者不能保证您可以自行解决这些问题。修改注册表需要您自担风险。
如果没有这个注册表项目,双核补丁默认也是发挥了了作用的。如果读者对上面的修改感到比较困难,无法完成,可以将下面的方框内的注册表内容复制下来,粘贴到新创建的.reg文件中,然后双击导入系统,即可顺利关闭双核补丁:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Throttle] "PerfEnablePackageIdle"=dword:00000001 |
以上只是针对Intel双核移动处理器性能下降的解决办法,如果您使用的是AMD双核移动处理器,还需要独立的安装其他双核补丁:
Windows XP 更新程序 (KB924441),解决使用支持 ACPI 处理器性能状态 (AMD PowerNow!) 的 Advanced Micro Devices (AMD) 双内核处理器或多处理器的系统停止响应问题。下载地址:微软官方( http://www.microsoft.com/downloads/details.aspx?FamilyID=b0ff829d-c427-4f40-bc56-f481837effbe&DisplayLang=zh-cn )
另外还有AMD也提供了两个双核驱动和优化程序下载。AMD双核在XP系统下面的驱动。官方下载地址: http://www.amd.com/us-en/assets/content_type/utilities/amdcpusetup.exe
AMD官方双核优化工具。官方下载:http://www.amd.com/us-en/assets/content_type/utilities/Setup.exe
以上,加上前面解析的第一个双核补丁,AMD移动双核处理器用户一共需要安装四个补丁。
怎么判断我的系统是否需要安装双核补丁呢?很简单,在控制面板的添加卸载程序里面,勾选显示更新并寻找相关项目:
如果您的系统是集成补丁安装版,显示不出更新项目也没关系。启动资源管理器,选择Windows安装目录,然后选择搜索下列文件:”Halmacpi.dll, Hal.dll, Ntkrnlmp.exe , Ntkrnlpa.exe, Ntkrpamp.exe, Ntoskrnl.exe”,然后勾选高级搜索,选择搜索系统文件和隐藏文件,如下图所示:
搜索出来的文件单击鼠标左键选择属性,版本,然后对照下面的文件版本列表,如果您系统里面的文件版本高于或者等于列出的文件版本,那么您的Windows XP系统已更新到最新状态,您已经无需再单独安装此双核补丁。
文件名 |
文件版本 |
文件大小 |
文件日期 |
时间 |
平台 |
补丁包支持 |
Halmacpi.dll |
5.1.2600.3023 |
134,400 |
30-Oct-2006 |
11:27 |
x86 |
SP2 |
Hal.dll |
5.1.2600.3023 |
134,400 |
30-Oct-2006 |
11:27 |
x86 |
SP2 |
Ntkrnlmp.exe |
5.1.2600.3023 |
2,137,600 |
30-Oct-2006 |
12:11 |
x86 |
SP2 |
Ntkrnlpa.exe |
5.1.2600.3023 |
2,059,264 |
29-Oct-2006 |
19:27 |
x86 |
SP2 |
Ntkrpamp.exe |
5.1.2600.3023 |
2,017,280 |
30-Oct-2006 |
11:27 |
x86 |
SP2 |
Ntoskrnl.exe |
5.1.2600.3023 |
2,182,016 |
30-Oct-2006 |
12:13 |
x86 |
SP2 |
双核补丁是否就有益无害呢?不尽然,此双核解决方案有利于提高系统性能,但不利于节省笔记本计算机的电源。尽管基准性能的分数可能得到提高,但是电池使用可能会受到不良影响。因此,微软才在注册表项增加禁用这种核心策略更改,以允许最大程度的灵活性。当然我们也可以通过在电池状态下选择电源方案为最大电池模式,或者使用Notebook Hardware Control或者 RMClock之类的软件,控制双核处理器频率保持最低水平,从而达到延长电池时间的目的。
结论:鉴于双核补丁对单任务系统性能有最多可达接近30%的提高,并且提高了Windows系统核心文件版本,笔者强烈建议使用双核移动处理器的用户安装此补丁,并修改注册表使补丁生效,充分享受双核处理器带来的澎湃动力。
然而事物总是存在两面性的,双核补丁是否就有益无害呢?不尽然,此双核解决方案有利于提高系统性能,但不利于节省笔记本计算机的电源。尽管基准性能的分数可能得到提高,但是电池使用可能会受到不良影响。因此,微软才在注册表项增加禁用这种核心策略更改,以允许最大程度的灵活性。
当然我们也可以通过在电池状态下选择电源方案为最大电池模式,或者使用Notebook Hardware Control或者 RMClock之类的软件,控制双核处理器频率保持最低水平,从而达到延长电池时间的目的。