《64-bit是不是晃点全人类的阴谋.docx》由会员分享,可在线阅读,更多相关《64-bit是不是晃点全人类的阴谋.docx(34页珍藏版)》请在三一办公上搜索。
1、64-bit是不是晃点全人类的阴谋?伐木者注:最近大家谈论比较多的就是64位的XP,在此转贴一篇关于64位的性能评测。对于没有耐心看完此贴的朋友,我可以先告诉大家结果。64位确实比32位先进,但性能提升是及其有限的。16位计算机的内存寻址为640K,32位计算机的内存寻址能力是4G,64位将扩展到180亿G。但现在有哪台家用电脑用4G内存不够?显然,32位升级到64位远不如当初从16位升级到32位值得欢呼。任何规律都有其局限性的,摩尔定律也不例外,电脑总有一天会如同办公桌一样用二十年。一、64-bit 究竟有没晃点我们? 究竟我们是在期待处理器还是操作系统的升级? 每次Intel 和AMD 竟
2、相发布更高规格和性能处理器的时候,我们都难免沾沾自喜一番,可是买了最新的硬件,却不得不面临没有操作系统和软件支持的尴尬局面。在硬件发展快过软件的时代,微软的操作系统一次次地成为了我们的救命稻草。 Windows 95-Windows98se-Windows 2000-Windows XP ,几乎每次全新操作系统的发布都能够给我们涣然一新的感觉,并带领了整个IT产业向前发展。Windows Longhorn 更是为我们带来全新的理念,3D 化的操作界面,多媒体功能也完完全全地被贯彻到了PC 系统当中,不过今天的主角显然也决不会令大家失望。 AMD Athlon64 处理器的发布,吹响了PC 进军
3、64-bit 平台的口号,市场追随者迅速被凝聚起来了,最后Intel 也不得不破天荒跟随AMD ,在其Xeon 和6XX系列处理内置了64-bit 内存扩展技术。可是当一切竞争井然有序进行的时候,越来越多的人才知道微软竟然没有64-bit 的主流操作系统,当64-bit 之风吹遍整个神州大地的时候,我们竟面临无操作系统可用的尴尬境地。这好比你买了一台奔驰汽车,却只能在山涧的崎岖小道行使一样,感觉特别不爽。不过历经波折之后,Windows XP 64bit 版本终于可拨开乌云见明月。(其实笔者有一点还是异常担忧的,微软现在依靠在操作系统的垄断地位,不断深入各个软件、硬件领域,即使操作系统也细分为
4、N+1个版本,什么Windows Mobile 、Windows Tablet 、多媒体中心版本。人的精力、能力终归是有限的,盖茨面对这么多产品相必也力不从心吧。也就是说,更优质操作系统的开发周期变长、所包含的技术减少,此时此刻,笔者都已经深深感受到分拆微软其实真可造福全人类,让他们带来更好的产品。这是题外话!) 当我们一次次提到64-bit 计算的时候,很多人想到的可能会是“它有两倍于32-bit 平台的性能,在3D建模时速度更快、效果更逼真,玩游戏自然也更流畅,那时候计算机就会是一个具有魔力的盒子,变得无所不能吧?”。但也有一部分反对者认为(Intel 早期便是这样想的),64-bit 只
5、是个唬人的数字,晃点消费者去购买新平台的阴谋而已。不过事实终归是证明了一切,Intel、AMD、微软、nVIDIA、ATi、VIA 等等业界巨头都在倡导着64-bit 技术,这总不会是全人类造就的阴谋吧!那么对于64-bit ,对于Intel和AMD 各自的64-bit ,我们都有充分的认知,有做好心理准备去迎接实现方法不同,结果都是迈入64-bit的平台吗? Intel 和AMD 两者是既有区别,也有共同点,首先是它们并不会带来如我们期待的两倍于32-bit 的性能(那是理想化的结果),正如双核心处理器的性能并不会等于两颗单核心处理器性能之和。以前我们有过从8bit 处理器到16-bit ,
6、从16-bit 到32-bit 的区别,现在也是相同道理。目前面向PC 平台的64-bit 技术其实都是在往昔x86 指令架构(ISA)上的扩展,包括了AMD64 和Intel 代码兼容的EM64T ,都有各自的优点和缺点。优点包括了,比x86 ISA 提供了更大的内存寻址空间,更清晰方便的编程模式,还有性能的增益,并且保留了向目前32-bit 应用程序兼容的能力。 为了方便大家对未来64-bit 平台的选购,从容驾御自己的工作、娱乐平台,我们今天特地挑选了AMD 和Intel 的64-bit 处理器,并搭配微软最新的64-bit Windows XP 操作系统,进行一些技术解析和性能测试。在
7、正式版本的Windows XP 64-bit 发布后,想这也是发展的必然趋势吧。最新的64-bit 处理器与Windows XP Pro x64 版本在32bit 和64-bit 的应用究竟如何?不用再等待,现在就让大家先睹为快。二、64-bit 技术的要点 把PC 平台带入64-bit “深渊”的始作俑者乃AMD ,它最早提出了x86 技术的64-bit 扩展,这便是现在闻名于世的AMD64 。在开发的早期,该技术一直被命名为x86-64 ,最后可能出于市场的原因,在正式推出的时候被修改为AMD64 。实际上,AMD64 也是AMD K8架构的官方名称,因此在很多时候会搞得大家一塌糊涂。在6
8、4-bit 深入人心,微软明确表示不再开发第二款64-bit 操作系统的时候,Intel 也只能加入兼容AMD64 的阵营,不过在命名的选择上它的余地很少。再说无论怎样,Intel 都不会做“Now With AMD64 Compatibility”(兼容AMD64)这种龟孙子的行为吧。在此严峻形势而无可选择的情况下,Intel 只得复制AMD64 技术,并被命名为Intel 扩展内存64bit 技术,也就是“EM64T”。 在很多时候我们听到商家和媒体声嘶力竭地呼喊“64-bit 处理器是区别于以往处理器的全新产品”,其实我们现在明白它只不过是在x86的基础上加入了新的64-bit 指令扩展
9、而已,当然除此外也有其它技术革新,因为社会肯定是不断进步的,虽然道路会有些曲折。 现在市场上销售的所有Athlon64 和Opteron 处理器都提供了对x86-64 技术的兼容,而Intel方面则在Pentium4 600 系列和最新的Xeons处理器 提供了相关技术支持。Intel 信誓旦旦地声称,将会在所有桌面处理器产品线提供对64-bit 技术的兼容,当然也包括Celeron 低端产品。AMD 方面虽然没有表示在Sempron 产品线也提供AMD64 扩展,但如果Celeron 也这样做的话,它也只好不得以而为之了。两个竞争对手 在很长的一段时间里,能够提供对64-bit 技术支持的只
10、有Linux 操作系统,甚至现在所有市场上出售的Windows XP x86-64 仍是处于Beta 阶段。当然过几天微软就会正式推出最终版的Windows XP x86-64 ,它也承诺将免费提供给现在的正版Windows XP 操作系统拥有者。在四月份发布的Windows XP 专业版x64 和我们现时的XP 有着比较大的区别,因为它是在服务器版本Windows XP 技术的基础上提供64-bit 的支持。也就是说,它们原本就是微软打算开发给Intel Itanium 处理器使用的,如果牵强地称呼为Windows XP 64-bit 未免有些不敬,它的稳定性和安全性相信比之前的版本有质的提
11、高。在四月前,市场上可用得到的Windows x64 乃RC2版,一旦Windows XP x64 Edition 正式出售,也同时表明64-bit 市场进入突飞猛进的时代,预计64-bit 全面进入千家万户。 关于对32-bit 程序的兼容问题,是一个值得积极探讨的事情。Windows x64 通过一个称为“WOW64”的工具,可以运行32-bit应用程序,而在性能的损失都是微乎其微的。也就是说,使用Windows XP Pro x64 ,无论是应用界面和使用习惯都和当前的操作系统一般无二。不过任何事情可不能看表面,其中玄机和工夫都由厂家给完成了。比如设备的驱动,就必须为Windows x6
12、4 进行重新编译,32-bit 驱动在其上将不能够正常工作。当然微软已经为当前主流的硬件设备内置了驱动程序,比如Intel 925X 和nForce4 平台就不需任何芯片组驱动。不过在另一方面,我们却不得不等待硬件制造商发布最新版本的驱动,RealTek 和nVIDIA 都各自不断更新音频和视频驱动,以期获得更好的兼容性和性能、功能。ATi 也已经推出了64-bit beta 版本的催化剂显示卡驱动,不过值得注意的是,很多硬件制造商还没有做好向64-bit 平台迁移的准备。 有一些应用程序可能也还没做好往Windows 64 迁移的准备,比如WinXP x64 就会有两个版本的Internet
13、 Explorer,分别是32-bit 和64-bit 的版本。微软之所以把32-bit IE 作为操作系统的默认,是因为目前大部分ActiveX控件都还是用32-bit 代码编写,也就是说间谍软件也不能运行在64-bit 操作系统?不过随着时间的进步,未来越来越多的程序将会使用64-bit 程序作为默认编译器,64-bit 二进制也将唯一兼容64-bit 处理器和操作系统。三、64-bit 技术的优势1、完全解决内存寻址的问题 当AMD的设计团队创建x86-64 ISA 的时候,它就为后者准备一些与生俱来的优点,首先最为重要的是解决32-bit 的硬伤-32 bit 的内存寻址空间:32-b
14、it 系统和硬件支持的最高物理内存为4GB ,对于当前桌面PC 来说,这似乎已经足够了,但越来越多的x86 ISA 平台被应用于工作站和服务器,4GB 内存无异于杯水车新。并不仅仅如此而已,32-bit 寻址的效率也实在不敢恭维。在默认的情况下,Windows XP 限制了应用程序仅能使用2GB 的内存空间,而剩下的2GB 则保留给系统任务。x86 系统的寻址使用了一个称为物理内存扩展的机制,这解决了4GB物理内存的限制,在某些服务器版本的操作系统,它允许在32-bit 系统支持最高达128GB的物理内存。然而,PAE 使用的内存分页被认为效率不高。 与此同时,一些用户经常使用的数据却在呈现级
15、数的上升,比如高清晰的数字摄影机、HD 视频和HD 游戏,显示卡的内存甚至也已经高达512MB 。科学计算和技术工作站也已经抵达了32-bit 应用的高峰。 在转移到64-bit 寻址的时候,内存寻址空间能力也从232 增加到 264 ,至此x86-64 ISA完全解决了内存数量的限制。64-bit 寻址空间的峰值寻址空间是16EB ,这在当前是无法想象的巨大数量。不过当前AMD64 处理器并没有完全利用64-bit 的寻址能力,仅有40 bits 物理寻址空间,1TB,48bits 的虚拟内存寻址空间,为256TB 。开始Windows XP x64 支持128GB 的物理内存和高达16TB
16、 的虚拟内存 ,缓存的最高上限也从32bit 的1GB 增加到64bit 的1TB ,1千倍。Windows XP x64 还为32-bit 应用程序赢得了额外的增益,每个应用程序最高可以使用4GB 的空间。 简而言之,转移到64bit后,x86 ISA 的内存限制被完全去除,为PC 赢得了增长的空间。不过这个改进机制并不会带来性能的增益,可用内存的多少并不代表就有多少内存。但这是与x86-64 相比最重要的区别。2、寄存器,64-bit 性能的重点 x86 ISA 普通寄存器(GPRs)可用数目也是一个值得注意的问题。寄存器的速度非常快,要远快于处理器内存的缓存,它在处理器内部用于储存计算的
17、值,要重复使用的数据通常会存放在寄存器中。不过可惜好东西并不多,x86 ISA 仅能够提供8个GPRs ,数量之微也使得它一直处于耗尽状态,而同代的处理器则可提供更多的GPRs,比如PowerPC 604 RISC 架构可提供32个GPRs 。由于没有足够的GPRs可用,x86编译器为了得出正确可用的数据,只得花费大量时间在缓慢的数据排序上。 为了解决这样的瓶颈,x86-64 ISA 带来了更多更好的寄存器。首先它增加了8个GPRs,总数达到16 ,并且它们都没有32-bit 值的限制,都能储存64-bit 数据类型。此外在新的GPRs中,x86-64 还包括了8个新的128-bi SSE/S
18、SE2 寄存器,总共也是16个。在这样的处理后,x86-64 ISA 比x86 获得了性能的长足进步。x86-64 与x86 ISA 相比增加的寄存器 那么性能的增长究竟有几何?这还要依据应用程序,要知道某些程序并没有使用上述的所有寄存器,不过它们在用x86-64 重新编译后,均可获得本地数据类型的好处。此外代码的复杂程度、应用程序的计算密度都会影响到性能,比如用Fortran 语言代码的性能增益就要比单纯的执行2进制数据来得明显。 也就是为什么会有些人说,64-bit 程序的性能与32-bit 比并没有没什么增益,但是在某些情况下,所见到的性能却是获得了实实在在的增长。3、指令集,性能增长的
19、魅力 x86 ISA 在编程模块也存在一些恼人的问题,比如有些指令集是并不需要使用到的,现在MMX、3DNow、x87、SSE、SSE2 和SSE3 已经能够处理之前的x86ISA 。x86-64 则丢弃了MMX、3DNow!、x87FPU ,而是把SSE和SSE2作为其核心指令集。SSE/SSE2 指令集能复制其它指令集的功能,但是在切换到64-bit 模式后,WinXP x64 就不能够执行FPU和MMX 寄存器。也就是说MMX、3DNow! 和x87 FPU 在WOW64 32-bit 兼容模式可以执行,但在64-bit 应用却不行。至于最新的SSE3 ,则有望在不远的将来被64-bit
20、 处理器支持,AMD 也预计在AMD64 架构加入SSE3 的支持。 x87 FPU 与RISC 设计相比,一直被认为乃x86 CPU 架构的短板,也就是说x86处理器的FPU 性能相当糟糕。SSE2 使用更现代的编程模块,取代了x87基于堆栈的编程模块,从而在浮点运数性能上获得了增长的潜力。SSE2 还取代了x87 的IEEE 80-bit 精度,换为可选择的IEEE 32-bit 或者64-bit 浮点运算。这样做的好处是x86-64 处理器在执行64-bit 模式的时候可获得类似RISC CPUs的浮点性能,不过由于精度的差异,这些结果和x87 FPU 的会有些区别。 由于64-bit
21、ISA 取消了MMX、3DNow!和x87 FPU ,包括了汇编代码的程序将无法在Windows x64 编译。这也意味着应用程序,包括游戏,使用汇编代码进行的优化都必须牺牲。那么在32-bit 到64-bit 转移的时候,x86-64 额外寄存器所带来的优势似乎又被这样给消去了。某些32-bit 游戏、程序如果使用大量优化的话,它完全可以达到转移到64-bit所带来的性能。 我们的测试平台和办法Pentium4 系统的所有测试都打开Hyper-Threading 功能。系统桌面被设置为1152x864 32-bit 85Hz 刷新率,所有测试垂直刷新功能都被禁止。进行的测试包括了以下应用程序
22、:SiSoft Sandra 2005 SR1 10.50 DOOM 3 1.1 with trdelta1 demo Far Cry 1.3 with tr3-pier demo Unreal Tournament 2004 v3355 with trdemo1 The Chronicles of Riddick: Escape from Butcher Bay with trdemo3 3DMark05 v120 POV-Ray for Windows 3.6.1a 32-bit POV-Ray for Windows 3.6 64-bit picCOLOR v4.0 build 532
23、32-bit picCOLOR v4.0 build 532 64-bit The Panorama Factory v3.3 The Panorama Factory v3.3 AMD64 Edition Beta 3 Blobby Dancer for AMD64 demo 五、测试结果 由于大部分人对游戏都会非常感兴趣,因此我们也从此测试开始。首个测试是“超世纪战警:逃离屠场”,这是个非常火暴的游戏,很多玩家甚至认为它比Doom3 还要略胜一筹。该游戏除了32-bit版本外,还特地开发了64-bit 版本。 在测试时候我们首先用正常的游戏记录demo,然后在通过回放的形式进行测试。在Ge
24、Force 6 系列GPUs,游戏支持高级的软渲染模式,但是显示卡的负担也非常吃力。1、超世纪战警:逃离屠场 以下测试结果中,如果标明“Win32”表示测试的系统是32-bit 版本Windows XP Pro ,如果“Win64”则表示运行在WinXP Pro x64 RC2 。标注“32-bit”则是使用32-bit 的应用程序,标注“64-bit”则表明使用64-bit应用程序。不过在很多情况可能会是“Win64”和“32-bit”的混合体,它是在Windows x64 操作系统执行32-bit 程序。 AMD 和Intel CPU 在使用64-bit 模式的时候并没有获得巨大的性能进步
25、。不过有趣的是,Athlon64 在WinXP x64 执行32-bit 代码要比WinXP 32-bit 快。Pentium4 则相反,在64-bit 操作系统的性能反而不及32-bit 。似乎转移到64-bit 应用的性能并非如预期的理想。2、Doom3 接着我们使用一些32-bit 游戏进行测试,由于可使用的64-bit 游戏并不多,我们在测试的时候多少有些被动。在此我们也是用录制demo的方式,然后是回放测试。 Doom3 在转移到64-bit 操作系统的时候并没有获得性能增长或者损失,这对于准备换平台的人来说可是个好消息。3、Far Cry Far Cry 是个非常有趣的游戏,它和R
26、iddick 一样,在包装盒上使用了AMD64 的Logo 。不过和Riddick 不同,Far Cry 的64-bit 版本一再拖延,现在我们也只有使用32-bit 的方式测试。4、虚幻竞技场2004 Pentium4 在使用64-bit 操作系统的时候,获得了一定性能进步。保守点说,32-bit 游戏在WinXP x64 的执行效能要比WinXP 32 bits模式的好。5、picCOLOR 专业测试 picCOLOR 是一个图象处理和分析的工具,也是从32-bit 应用程序转移到64-bit 的典型。它被广泛使用在科学应用上,比如质点流量分析。picCOLOR 也用进了CPU 技术的优点
27、,包括MMX、SSE2和Hyper-Threading ,由于有64-bt 版本,所以我们能够测试x86-64 ISA 。 对比64-bit 和32bit 的性能比较并不直观,由于32-bit 程序使用了一些汇编代码进行优化,并加入MMX来对程序进行加速。由于MMX 不支持的缘故,汇编代码在64-bit模式将不能够被执行,64-bit编译器也没法执行64-bit编译。也就是说,picCOLOR 64-bit 模式没有优化的代码。 幸好,32-bit picCOLOR 包括了禁止MMX code 的功能,我们也得以从高阶语言(C语言)执行2进制编译器,picCOLOR 的32-bit和64-bi
28、t模式也能够获得比较。在下面的图表中,标注32-bit/No MMX”表示没有包括MMX 代码。 与32-bit 版本没有使用MMX 汇编代码优化的程序相比,Pentium4和Athlon64 在64-bit都获得了瞩目的性能进步。不过有个现象也非常有趣,Pentium4 在32-bit模式有较好的性能,而Athlon64 4000+ 在64-bit模式表现更加优秀,究其原因是Athlon64 使用x86-64 ISA 的收益。 另一方面,32-bit picCOLOR 在使用MMX 后,要比没有使用要更快,而在WinXP x64 运行32-bit 程序的时候,几乎没有任何性能增长或者丢失。6
29、、The Panorama Factory The Panorama Factory是一个专门制作具有360度环场效果的影像式虚拟现实软件,您也可以使用它来制作出超广角的照片,而且只要轻轻松几个步骤就可以做到,再也不需要使用Photoshop等影像编修软件大费周章的做调整了。 在转移到64-bit 模式获得的性能增长是显著的,Athlon64 在64-bit 模式几乎有1一分钟的增长,而Pentium4 获得的性能也相似。 交换函数,作为程序性能的核心部分,在使用x86-ISA 后获得了巨大的进步。在整体时间,我们不相信读/写等 I/O 函数被包括在 Panorama Factory 的计算中
30、。7、POV-Ray 是指建立逼真出色图片的电脑绘图技术. POV-Ray即属此类的绘图软件。 Athlon64 在POV-Ray 64-bit 模式渲染要快10秒钟,而Pentium4 在64-bit 模式则更慢。至于在32-bit 程序,P4 在WinXPx64 则更快,而Athlon64 则变慢,非常有趣的现象。 从该测试我们也可以了解一些事情,P4 在64-bit 模式性能要弱些,而Athlon64 则有理想的性能增长。8、Blobby Dancer 这个 3D 立体的虚拟舞者,原本是为了展示 32 位技术而创造的。nVIDIA 调整虚拟舞者的软件码,用以显示 AMD Athlon64
31、 位处理器先进的 64 位架构带来所带来更优异的效能表现。9、SiSoft Sandra 这是一套功能强大的系统分析评测工具,拥有超过30种以上的测试项目,主要包括有CPU、驱动器、CD-ROM/DVD、内存、SCSI、APM/ACPI、鼠标、键盘、网络、主板、打印机等。全面支持当前各种 VIA、ALI 芯片组和 Pentium 4、AMD DDR 平台。除了具有强大的功能外,使用也很方便,易于上手。 “Integer x16”版本使用了整数来模拟浮点运算,不过Athlon64 的64-bit 整数测试性能并不理想,浮点在SSE2的帮助下则表现不错。Pentium4 在SSE2测试上以高分胜出
32、,当然对于两个处理器来说,额外的SSE2寄存器都获得了不错的性能增长。六、总结 通过以上的测试,我们都知道,在应用程序和操作系统支持的前提下,x86-64 的性能的确比32-bit有长足的进步,不过增长幅度因情况而异。对于技术和科学运算来说,额外的寄存器,清晰的编程模块,更大的内存寻址空间都受益菲浅。 对于游戏爱好者和PC 发烧友来说,64-bit 的好处则不会在近期体现出来,但是即使执行32-bit应用程序,也并不会对性能带来不好的影响。在上述的游戏测试中表明,32-bit游戏在WinXP和WinXP x64 之间的性能影响是微乎其微的,其它应用程序也是类似的情况。 至于Pentium4 和Athlon64 那个在64-bit 应用会有更佳的体验,通过以上的测试,不知道各为陪审团的成员是否已经有结果了?