woaidongmao

文章均收录自他人博客,但不喜标题前加-[转贴],因其丑陋,见谅!~
随笔 - 1469, 文章 - 0, 评论 - 661, 引用 - 0
数据加载中……

x86与x64的区别

如今面对着铺天盖地的关于64位处理的宣传,有些人可能会产生这样的想法:64位可以让游戏以两倍于以前的速度运行,把粗糙的3D模型转化为平滑而逼真的模型,甚至把一台普通的PC变为超强的游戏机。 另一方面,再听听反面的声音:为什么我们要买并不需要的产品?
事实上,这两种看法都有所偏袒。很明显,64位不可能带来两倍的计算速度,不可能重现当初由8位过渡到16位的那种革命性改变。但64位也不可能是毫无意义的。无论AMD64还是IntelEM64T,它们都是x86指令的64位扩展,64位能支持更大的内存寻址空间,能带来更简洁的编程模型,并且完全向下兼容32位应用程序,这些都是提高性能的有利因素。

为了帮助大家真正地了解64位到底能有多大的提升,我们测试了AMDIntel64位处理器,操作系统是最新版本的64Windows XP。看看目前桌面市场上最快的处理器在64位和32位应用程序的性能。

64
位基础知识

最初,是AMD作为业界的先锋,首先跨入64位(台式机范围)。开始,他们把这种技术叫做x86-64。后来出于市场原因,AMD干脆重新命名为AMD64。实际上,最初AMD K8的微内核就叫做AMD64。面对咄咄逼人的AMDIntel也加入对64位的支持,当然,名字不能和AMD一样,于是乎EM64T就诞生了。讲到这里,大家应该明白AMD64EM64T师出同门,他们是相互兼容的。对于普通用户,他们可以说是一样的。

无论叫什么名字,最新的桌面处理器都已经支持64位技术了,包括AMDAthlon64Opteron系列,以及IntelPentium4 600系列和最新的XeonIntel宣称桌面系列的处理器都将支持EM64T,包括低端的Celeron。而AMD并没有承认Sempron系列也将支持AMD64,但是迫于Celeron的压力AMD也很由可能这样做。



时至今天,各种支持64位处理器的Linux已经随处可见。然而微软支持x86-64Windows XP仍然只有beta版本,直到4月份,Windows XP Professional x64 Edition正式版才能问世(注意和支持ItaniumWindows XP 64-bit Edition完全不同)。一旦Windows XP x64 Edition正式上市,64位的市场才能真正活跃起来,所以大家也一定想了解64位计算对自己到底意味着什么。

从正面的角度来说,改变的并不是很多。Windows x64仍然能运行32位应用程序,而且几乎没什么区别。微软把这种兼容技术叫做WOW64,那些32位应用程序就像运行在32位的Windows一样。但区别还是有的,设备的驱动程序必须重新编译,原有的32位驱动是不能使用的。大多数情况下,Windows x64集成了常用设备的驱动,所以我们无需安装任何额外的驱动就能测试Intel 925XnForce4的平台。否则,设备供应商必须提供64位驱动才能在Windows x64上正常工作。 例如RealTekNVIDIA,它们分别提供了64位的声卡和显卡驱动,ATI也推出了beta版本的64位显卡驱动。但是,并不是所有的厂商都发布了64位驱动。

仍然存在着一些程序,它们不能简单地过渡到64位。例如WinXP x64就集成了两个版本的IE浏览器,分别是32位和64位的。系统默认的浏览器是32位的IE,因为几乎所有的ActiveX控件都是32位编码的,很难想像我们只用某种软件的部分功能。同样的,一些直接硬件访问的系统级软件可能会产生某种不可预计的后果,尽管微软很努力,但可以估计一些补丁程序是必不可少的了。当然,最终所有的程序都会顺利过渡到64位,它们只能支持64位的处理器和操作系统。

64
位的优点

AMD研发出x86-64架构时,同时也解决了传统x86固有的一些缺点。其中最重要的就是内存,原来只支持32位的寻址范围,因此最大支持的内存是4GB4GB对普通的桌面电脑来说的确足够了,但由于市场需要,一些入门级服务器及工作站使用的也是桌面平台,对它们而言,4GB内存的限制就显得捉襟见肘了。

从更深的层次来讲,32位寻址空间的缺陷不仅仅停留在表面的容量上。在默认情况下,Windows XP对应用程序的限制是最大只能使用2GB的内存空间,为系统级任务保留了2GB内存。(Intelx86发明了一种物理内存扩展技术PAE,使得WindowsServer版本能访问128GB的内存,但是PAE的页面调度效率比较低。)

同时,一部分用户数据在不断增长,从高分辨率的数码相机,到HD视频,还有需要使用512MB显存的游戏。科学计算和技术工作站也一直受到32位寻址的限制。

通过把寻址总线扩展到64位,最大的寻址空间可达264次方字节,基本上可以说是没有限制了,每个时钟单位可以传送16字节的数据。目前AMD64处理器支持的寻址空间是40位,也就是1TB,虚拟地址空间可达48位,也就是256TBWinXP x64支持128GB的物理内存和16TB的虚拟内存。Windows的系统缓存由原有32位的1GB增加到64位的1TB。即使是WinXP x64中的32位应用程序,系统也能为他们各自分配4GB的空间。

简单的说,64位克服了老x86架构的寻址范围的限制,虽然这种改善不能直接带来性能上的提升,但做为计算机最核心的部分,这种改进还是非常关键的。

寄存器

实际上,提升性能最关键的因素是x86-64架构中添加的寄存器。x8664总共添加了8个常规用途寄存器(GPRs),总数目达到了16。这16组寄存器都能支持64位的数据。同时x86-64还添加了8128位的SSE/SSE2寄存器,总数目也达到了16

实际上,性能还于编码的复杂程度密切相关,复杂的程序需要很多嵌套的循环,更多的寄存器可以提供更高的执行效率。
来源:百度知道

 

posted on 2009-09-08 00:16 肥仔 阅读(1721) 评论(0)  编辑 收藏 引用 所属分类: 其他经验


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理