[又转来一篇好文章,专门讨论 Win32 的 4GB 物理内存的应用问题]
win2003 winxp win2k 4GB内存的访问问题
启用物理地址扩展 (PAE) X86
1.打开 Windows 资源管理器。
2.在“工具”菜单上,单击“文件夹选项”。
3.在“查看”选项卡上,单击“显示所有文件和文件夹”,清除“隐藏受保护的操作系统文件”复选框,
然后单击“确定”。如果显示警告对话框,单击“是”以继续。
4.在根文件夹(如 C:)下查找 Boot.ini 文件并删除它的只读属性。
5. 打开 Boot.ini 文件,然后将 /PAE 参数添加到 ARC 路径中,如以下
Windows Server 2003 Datacenter Edition 示例所示:
multi(0)disk(0)rdisk(0)partition(2)\%systemroot%=
”Windows Server 2003, Datacenter Edition” /PAE
6.在“文件”菜单上,单击“保存”。
7.还原 Boot.ini 文件的只读属性。
8.为使更改生效,请重新启动计算机。
注意 要执行该过程,您必须是本地计算机上 Administrators 组的成员,或者您必须被委派了适当的权限。 如果计算机已加入某个域, 则 Domain Admins 组的成员可能会执行该过程。 作为安全性最佳操作,请考虑使用“运行方式”执行此过程。 详细信息,请参阅默认本地组、默认 组以及使用“运行方式”。 |
64位系统出来以后,不会再出现这样的情况了,
32位的里面也有一些版本是直接可以识别的,例如数据中心版,高级服务器版好象也可以
在windows2003企业版下打开PAE开关使用4G内存会花屏? 4G内存是32BIT物理内存寻址的极限!在你的32bit系统的2003上很容易出现问题! 而PAE的打开只有在64BIT系统上才能完全发挥其作用! 该问题的出现,除去显卡本来质量的原因,问题出在系统和驱动上! 建议使用64BIT的操作系统,或更新最新的显卡驱动来解决!也可以降低显卡的物理加速,来解决! |
准备升级4G内存容量的朋友们,来看看 对于准备升级3GB以上容量内存的用户,我们总结以下几点供大家参考。 第一,Intel包括945、965、975都需要在BIOS中打开Memory Remap Feature 选项 (设置为Enable),才可支持4GB或以上容量的内存。 而在默认的Disable下是无法识别3000M以上容量的。 第二,NVIDIA nForce5和nForce6系列,在搭配包括Intel CPU,和AMD Sempron(Manila核心) Athlon64X2(Brisbane、Windsor核心)时,均可以正常支持4GB容量内存。 第三,WindowsXP SP2 32bit、WindowsVista 32bit 均无法使用3GB以上的容量。 Windows2003Server,可以正确识别4GB容量。 第四,CPU-Z在已上各种情况下,均可以正确识别4GB甚至已上的内存容量; Windows 系统信息中的Total Memory中也始终可以正确识别4GB及以上容量。 但我们需要观察的是Available Memory Size,这才是系统真正可用的内存。 |
最 后,我们可以看到4GB或以上内存,对于目前主流平台来说遇到的问题在于软件操作系统上。
在Windows XP SP2 32bit和 Windows Vista 32bit下,4GB内存都无法被完全使用,
而让普通用户去安装Windows2003 Server 32bit甚至 64bit操作系统,可能还不够方便。
4GB的系统地址空间中,PCI内存范围占用了大量的地址范围——接近750MB, 导致最后系统内存只有3.25GB的罪魁祸首就是这部分空间. BIOS、 PCI/PCIE等设备,系统和这些设备都是使用内存地址空间来通信的(以往也使用I/O Port 来进行通信,然而其速度不够理想),我们称这部分空间为MMIO(Memory Mapped Input/Output 内存映射输入输出)空间,由于这些地址空间被设备所占用,实际上插在内存插槽上 对应的空间就闲置、 浪费了,因此我们花了4GB内存的钱,实际却只能得到3.25GB的可用空间 |
Windows 可管理的最大内存和Windows程序(进程)可寻址的最大空间是两个不同的概念。 |
32位的程序最大只能寻址4GB,其中用户模式占2GB,内核占 2GB。 这里的内存是Windows的虚拟内存空间,其实包括了物理内存和页面文件。 因为系统内存有限,而每个进程都假设自己获得4GB的空间,所以每个进程的真实内存空间一部分在物 理内存中,一部分在被交换到页面文件中。 那个boot.ini里面的/3GB参数,实际上修改的是4GB的 内存分配模式,3GB给了用户模式,1GB给了内核,让应用程序能用到跟大的空间。 |
Windows所能管理的空间,是另一个概念。 同样是32位的系 统,Windows 2003 Std可管理4GB,而Enterprose就可以管理32GB。 这并不奇怪,系统在自动调配内存自由,通过的其实就是 PAE,就如当年DOS下通过EMS,XMS突破 1M的访问空间。PAE也是在内存中开了一个窗口,把超出4GB的内存,映射到4GB的范围中,而应用 程序的使用则是透明的。对于能管理大于4GB的操作系统,PAE是自动打开的。 系统及应用程序都能 利用这些‘多’出的内存。对于XP,2000 pro这些最多只能管理4GB的操作系统,大内存其实并没有 浪费,应用程序可以调用AWE(通过PAE)来使用这些内存,自己作映射了。 |
微软承认在某些情况下,4GB只被认出3GB。原因是由于XP或2003在某些主板的行为所致。微软的建议是升级到XP SP2或2003 SP1。
这有的时候并不成功。原因是系统硬件具有内存冗余(redundant memory)或内存镜像(memory mirroring)的功能。
只能参考主板的手册,在BIOS中关闭对于的选项。
所以,这可能是主板和OS兼容的问题,打补丁,升级BIOS,调整BIOS中的内存设置,甚至换内存都可能是解决之道。 或者换2003的企业版。
另外,确定在BIOS中的advanced选项中,内存不是mirror,要想用到8GB,应该设成Advanced ECC
主要原因是3.2GB到4GB之间的内存地址被保留了,这些地址主要被915G和925G芯片组来使用。
为了拒绝操作系统使用上述地址空间,这些地址被标注为不可用。
在Intel 915G芯片组技术手册上ftp://download.intel.com/design/motherbd/ag/C6860001.pdf
解释了这些地址空间是被芯片组的一些功能占用了,这些功能包括:
*BIOS/firmware hub (2 MB)
*Local APIC (19 MB)
*Digital Media Interface (40 MB)
*Front side bus interrupts (17 MB)
*PCIe configuration space (256 MB)
*MCH base address registers, internal graphics ranges, PCIe ports (up to 512 MB) .
This must be allocated in uninterrupted 256MB blocks.
*Memory-mapped I/O that is dynamically allocated for PCI Conventional and PCIe add-in cards
(Typically this is around 200MB or more)