分享

我的内存哪去了?Win7系统32位64位思辨

 文化龙乡 2015-05-07

摘要
时至今日,2GB、4GB大内存成为个人电脑基本配置。而究竟应该采用32位还是64位操作系统,成为众人争论的话题。本文介绍32位win7下4GB内存消失的原因,同时试图通过历史的视角,给64位4GB内存问题一个可供参考的答案。

已经用上win7的用户都会发现,除了入门、家庭、专业和旗舰以外,win7统统分为32位版和64位版。两者最大的差异在于64位版支持4GB以上大内存,而4GB内存在32位win7只能最高用到3.75G。这是为什么呢?

个人电脑,除了显卡、声卡、硬盘等等主要设备外,还有着大量周边设备,usb接口需要控制芯片,SATA硬盘有AHCI控制器,主板芯片组还有各种底层设备,如果是笔记本电脑,蓝牙、Wifi、摄像头,甚至指纹识别器都塞在一个小小的计算机中。整个电脑就好像一个小城镇,我们使用电脑打开摄像头,win7这个“市长”就要去访问摄像头,怎么找到摄像头在哪里呢?就好比城镇里面有门牌号一样,电脑里的摄像头也有地址,这个地址就映射在内存中。win7利用一种叫做MMIO的技术,让程序访问摄像头时直接访问内存,这样做的好处是让程序无需考虑复杂的设备调用问题,但坏处就是占用了内存地址。

当相当多的周边设备在内存中映射地址,就占用了4GB中的很大一部分,但实际上,占用的这部分内存仅仅是内存的地址而已,内存中并没有数据,访问也是要访问相对应的外设,而这部分内存范围,被称为PCI Memory Address Range。



【如上图所示,以我的个人电脑为例,被PCI设备占用的空间加在一起足有1GB,再刨去系统底层占用的少部分内存,就得出了可用内存数。】

其实早在XP时代这种技术已经采用,因为那时的主流内存不过几百兆,而被占用的地址大多数都在2GB范围以上,但是随着内存价格下降,大内存成为常态,4GB内存问题随之出现。

既然是一部分地址被占用,只要释放这部分地址就可以解决4GB问题了。事实上这也正是大量4GB破解软件的基本原理。那么我们是否有必要通过软件来解决4GB问题?

别急,让我们先听一段故事。

1985年,个人电脑领域方兴未艾,各种产品层出不穷,开放平台的IBM兼容PC刚刚打败了乔布斯的APPLE系列,一时春风得意,傲立潮头。当时的PC机采用Intel 80286 CPU,集成13万个晶体管,最高运算速度20Mhz,内存支持16MB,最关键的是,80286是16位。Intel的工程师们并不满足,他们设计出了集成27.5万个晶体管,运算速度高达25Mhz的CPU——80386,而它支持的内存大小——没错,你猜的没错——最高支持4GB,因为它是32位的。

然而,IBM的大爷们并不买账,他们认为自己并不需要一个32位的CPU,只需要把16位的CPU做的更快就可以了,而当时年轻的Intel告诉IBM,让CPU运行的更快的办法,就是从16位进化到32位。

终于,IBM推出了32位个人电脑——386,差不多5年后,微软推出了windows3.0,模拟支持了32位操作环境,销售大获成功。微软统治个人电脑领域的霸业,正开始于那一年。

一转眼,30年过去了,在这个CPU计算能力数以G记的时代,个人电脑终于达到了32位内存的瓶颈——4GB。个人电脑从16位进化到32位,等了5年时间,而从32位进化到64位,一等就是30年。

其实,早在2003年的Windows Server 2003企业版,即使是32位版本,最高支持内存已经达到了32GB。而Windows2000高级企业版就已经可以支持8GB内存。由此可见,32位下依然可以通过技术实现支持超大内存。但是,继续在32位体系内修修补补并不利于个人计算机整个产业。毕竟,32位是迟早都要跨越的一道坎儿。

当然,64位windows7尚且存在或多或少的兼容问题,但随着使用人数的增加,这些问题都将逐步得到解决。而且,64位windows7提供了一个程序模拟环境,可以模拟32位环境运行32位程序。

但,笔者并不鼓励小内存用户采用64位系统。64位win7环境下,因为数据位宽的增加,耗用内存同样会增加。2GB的用户用win7 64位,会发现比32位系统消耗更多内存。

在目前的情况下,如果你电脑的内存在3GB以下,32位确实是最优选择。如果你的内存已经达到4GB,64位的win7正在朝你微笑。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多