4GB的内存条在32位系统中只能显示为3GB左右的原因(转)

原帖地址:http://bbs.51cto.com/viewthread.php?tid=875012&extra=&page=1

1. 4GB的内存条在32位系统中只能显示为3GB左右的原因

第一个原因只会“吃掉”您一小部分的内存

众所周知,电脑中二进制中的换算关系是 1GB=1024MB,实际生产时,硬件厂商厂商的换算单位是1GB=1000MB,当电脑厂商告诉您,您电脑中的内存是1GB的时候,其实您的内存是1000MB,系统识别时,用1000处以1024,也就显示您的内存是0.976GB,同理您安装了4G的内存,系统会显示您的内存是3.9GB。这并不是硬件厂商欺骗您。

第二个原因可能会“吃掉”您数量可观的一部分内存

内存(RAM,也就是您的系统的寻址总空间)=内存条(物理内存,您的内存条是4GB的)+bios内存+缓存+显存+...,,32位的电脑的寻址空间是2的32次方,也就是4G,系统将这4GB的地址分配给内存条,缓存,显存,硬件等。


系统分配寻址空间时是有优先级的, bios的内存,cpu的缓存,各个硬件的内存,显卡的显存等,他们的优先级比物理内存(也就是内存条)高,所以系统先将寻址空间分配给bios的内存,cpu的缓存,各个硬件的内存,显卡的显存,最后才将剩余的寻址空间分配给内存条。比如您的显卡有500MB,那么可以分配的内存也就只剩下4GB-0.5GB=3.5GB了。

相当于一条街上有1000户居民,但是门牌号码确实只有800个,于是还有200户居民没能获得门牌号码,但是这200户居民并未消失。


如果在32位电脑上装上4G内存条依照优先级关系,你只能使用3G多的的内存条空间,因为前面的几百MB空间是给了各个硬件(包括显存),4GB的内存条只有其中的3.31GB获得了寻址空间,此时您只可以看到获得了寻址空间的那一部分内存条(见下图.)
 


如果是2G的内存条,因为电脑本身寻址能里是4G,前面几百MB给了硬件,依旧剩余3G多的寻址空间, 2G的内存条可以完全获得2G的寻址空间,您也就能看到2G的内存条了
(见下图)

2.理论的换算方式以及32位破解原理

  关于64位计算机寻址能力,就是X64架构,理论上X64架构完整的寻址能力为2^64次方,也就是最大寻址能力为18446744073709551616,就是等于16384GB,就是能够16TB的内存,这个主要还要看计算机物理寻址架构是否有没被限制。目前INTEL和AMD桌面级的64位处理最大寻址能力只有128GB而已,只有服务器的处理器才能支持16TB的内存。
  那么32位系统如何实现所谓超过4G内存破解,原理很简单,现在CPU基本都是64位处理器,也就是硬件是没有4GB的识别问题,破解就是应用64位系统寻址原理,来打开32位系统对超过4G内存识别限制。而将这些多出来内存则作为RAMDISK来使用,就是缓存盘,在WINDOWS 下软件运行都会产生临时文件,那么他就是将这些软件产品临时文件都搬到RANDISK上来,而不写入磁盘。在某个角度上来的确可以提高系统运行速度。但并不是真正系统和软件使用64位系统和软件寻址方式,仍然是32位的寻址。如果将这个破解应用在纯32位CPU上,你再试试看他能否能打开所谓超4G内存的破解。
如果真正想有效让系统分配超过4G的内存,建议还是使用64位系统,只有64位系统才能原生支持超过4G内存的寻址。
  还有很多人对64位系统有一些认识上的错误,以为64位系统不能使用32位的软件,那是错误的,在WIN7 32位系统能正常运行的软件,在64位系统下也基本不会有兼容问题,除了杀毒软件、系统优化软件和一些专业软件(但是专业软件基本都有64位版本,比如AutoCAD等)。在64位系统下运行32位软件,唯一的差别就是32位软件仍然是32寻址机制。

原文地址:https://www.cnblogs.com/dyakira/p/4732785.html