安装4G内存操作系统却只报告 3.2G 是4G时代困扰我们的一个问题。
解决办法需要3个条件齐备,缺一不可
- 内存控制器支持 > 4G 寻址
- 操作系统支持 PAE 或者直接64位系统
- BIOS 支持 mem remap
** > 4G 寻址的内存控制器,intel 平台的话要求至少是 945 以上的芯片组。
AMD 平台的话,内存控制器内置于 CPU, 只要是支持 64 位的 AMD CPU 就可以了。
操作系统吧,不多解释。 32位的windows 使用 PAE 内核,或者64位 windows.
Linux 也一样。
这里要注意的是,开了 PAE 的 32位 windows 7 也不能识别 > 4G 的内存 ...... ,可以使用 ReadyFor4G 这个小工具修改内核。
这里是本文的重点。
mem remap 就是重新布局 PCI 设备地址和 DRAM 地址。使原本要重叠的地址错开,分布到 > 4G 的地址空间上。
这样才能使安装的 4G DRAM 可以被全部寻址。
其中,mem remap 分2种方式
- 4G DRAM 获得连续的地址空间,PCI 设备地址被放置于 4G 地址之上
- 4G DRAM 内存被分割。 PCI 设备地址被放置于 4G 以内,其余的 RAM 被放置到 4G 之上
对于第一种方式最简单,最容易理解。 但是却有潜在的兼容性问题。
第一 许多 PCI 设备在设计的时候并不能寻址 > 4G 的内存,这样在进行 DMA 的时候非常容易出问题。 如果主板粗暴的将 PCI 地址放到 4G 后面,那么很多设计不良的设备就罢工了。
第二 32bit 的操作系统在此选项下将无法正常工作。因为 PCI 设备的地址都跑到 4G 外面去了。
第二种方式,给内存地址引入了一个“洞”。 对 32bit OS 和老旧的 PCI 设备提供了良好的兼容。
但是对内存引入的"洞" 确实给内存性能带来了潜在的影响。虽然通过 MTFR 情况还不会太坏。
但是,“洞” 怎么也不让人舒服啊!
此文的引用地址:
UTF-8 http://microcai.gsalex.net/trackback.php?id=34&encode=utf-8