为什么我所有多余的内存在Windows 7中都被标记为 "硬件保留"?
我有一台新的HP Z800工作站,运行Windows 7企业版64位。Z800的规格是这里。
这台机器有4GB的内存 – windows报告说有1.99GB可用,2GB是 “硬件预留"。我又加了2GB,windows报告说有6GB物理内存,但现在4GB是 "硬件预留"。BIOS也看到了全部的内存量。
显卡是nVidia Quadro FX 580,所以它不应该使用任何共享内存。
我有一台新的HP Z800工作站,运行Windows 7企业版64位。Z800的规格是这里。
这台机器有4GB的内存 – windows报告说有1.99GB可用,2GB是 “硬件预留"。我又加了2GB,windows报告说有6GB物理内存,但现在4GB是 "硬件预留"。BIOS也看到了全部的内存量。
显卡是nVidia Quadro FX 580,所以它不应该使用任何共享内存。
有一篇很好的Mark Russinovich的博客文章介绍了windows如何使用物理内存。要查看硬件设备是否预留了一大块物理地址空间,请启动 “devmgmt.msc",在 "查看菜单 "中选择 "资源",然后展开 "内存 "节点。(Mark的博客中会进一步解释)
即使你的显卡有板载的、快速的、专用的显存,Windows仍然必须使用与RAM、PCI设备和其他设备相同的物理内存寻址,并与该内存进行交互。这可能会挤占物理寻址空间。64位的操作系统应该比32位的操作系统能更好地应对这一点,但它的手可能还是会绑住一些设备的要求。 (我的戴尔在Win7x64上预留了700MB的硬件。它没有你的问题那么糟糕,但还是很烦人)
如果能用memtest这样的工具(可以在没有windows的情况下启动和运行)来查看所有安装的内存,会有帮助。试试UBCD上的一些系统信息工具,看看它们是否能看到(和测试)你所有的RAM。
最后,作为最后的想法,你从一个主要的供应商那里买的新的,你应该能够从他们那里得到支持,并询问他们关于这个问题。
编辑:这个SO问题may与你的问题有关,还有一个很好的关于内存映射的IO保留可以减少可用RAM的解释。同样,这可能不是你所面临的问题,但这些博客告诉你如何确定是否是问题。
其实这里面有一个很大的线索,那就是 “硬件预留"。"如果在Windows下勾选/取消勾选 "最大内存 "复选框没有帮助,那么罪魁祸首可能是默认的BIOS设置,它可以为显卡硬件预留过多的内存。可能你的BIOS中的命名或菜单细节不同,但我的情况是这样的。在高级设置下,进入高级芯片组配置:
在高级芯片组配置下,有一个叫UMA帧缓冲区大小的设置。这可以控制你的显卡硬件预留多少内存,默认情况下可以设置为 "自动",它会根据你安装了多少内存来决定一个量,并且根据你的需求,可能预留的内存量会远远超过必要的:
一般情况下,设置为256M:
在任务管理器中的结果:
我在使用三星R519时也遇到了类似的问题。在我的情况下,我把内存从2gb升级到4gb,但我的机器上只有32位操作系统。所以在我的情况下,这就是限制因素,因为32位操作系统最大只能看到3gb。