BIOS安装并检测到3GB RAM,Windows Vista 32bit仅售2GB


9

我正在尝试在使用X6DAL-XG主板的Windows Vista 32位机器上安装更多RAM,并且BIOS中报告的RAM量为3GB +,但Windows仅报告安装了2GB。主板有6个RAM托架,我已经安装了4个1GB棒和2个512mb棒的各种组合,但无论我如何配置它们,Windows看不到超过2GB。我当然意识到32位Windows在内存上有3GB的上限,但这并不能解释为什么它实际上(当前)安装了5GB时只报告2GB。我认为我至少可以看到3GB。

根据主板规格列表,最低RAM要求是DDR333 / 266mhz成对安装。我已经完成了这个,并且BIOS没有在POST报告任何问题。

RAM配置(根据CPU-Z)

  • 插槽#1:PQI MD6412ROE - 512mb PC2700(166mhz)
  • 插槽#2:PQI MD6412ROE - 512mb PC2700(166mhz)
  • 插槽#3:金士顿128mx72D266C25 - 1024mb PC2100(133mhz)
  • 插槽#4:金士顿KVR266X72RC25 / 1024 - 1024mb PC2100(133mhz)
  • 插槽#5:金士顿128mx72D266C25 - 1024mb PC2100(133mhz)
  • 插槽#6:金士顿KVR266X72RC25 / 1024 - 1024mb PC2100(133mhz)

我不确定上面的内存规格是否与主板手册中的此声明冲突:

内存支持

X6DAL-XG支持高达12GB / 24GB的注册ECC DDR333 / 266(PC2700 / PC2100)内存。主板设计为每个插槽支持4GB(PC2100)模块,但只有2GB模块已经过测试。使用已注册的ECC DDR333(PC2700)内存时,支持安装四个双存储器或六个单存储器。

那么,我现在对RAM做错了什么,或者是否存在某种我缺少的兼容性问题?

谢谢!


更多细节

  • 机器的CPU-Z报告
  • 我在Ubuntu和Windows Server 2008中都针对此问题运行了一些额外的测试,他们也只报告了2gb。
  • 我尝试在主板的北桥配置中摆弄内存重映射功能(启用/禁用),但没有看到任何结果。
  • 除了上面的硬件,我有一个256mb PCI Express视频卡,它是外围设备。我不认为内存映射I / O是这里的问题。
  • 我已经移除了2个512mb棒,我只剩下4个1GB棒
  • 我已经将主板BIOS刷新到最新的制造商版本

另一个更新

我已经设法在64位的Ubuntu副本上测试这个硬件配置,并且在安装4gb时完全检测到RAM,但无论RAM配置如何,我都找不到任何读取超过2GB的32位操作系统。所以问题仍然存在:为什么64位操作系统可以看到超过2GB的RAM而同一台机器上安装的32位操作系统的容量是2gb?


经过思考

我非常感谢大家的投入,尽管你付出了很多努力,我仍然觉得这个问题没有得到正确答案。感谢@Goyuix,我确实学到了我一直在使用64位CPU,甚至没有意识到它,所以现在至少我有一个可接受的工作。

除非出现一些意想不到的事件,否则看起来由于赏金到期,赏金将被自动记入@Mark Booth,我不一定会介意,因为他的回答是好的 ; 它只不是这个特定问题的解决方案。(Mark绝对没有冒犯,我非常感谢你的高质量答案!)

在任何情况下,这个问题产生的讨论对我来说都是非常有用的(并且应该成为未来搜索者的一个很好的参考资料)。通过使用64位操作系统已成功缓解了原始问题,但仍未解决。不幸的是(对我来说),在我能够确定问题之前,我永远不会真正满足,所以如果在将来有人设法想到一个没有被提及的解决方案,请,请发布它。

谢谢大家。


如果您有Windows 7可用,我非常希望看到这个补丁如何工作: superuser.com/questions/67444 / ...
突破2010年

另外,当您取下两个512mb棒时会发生什么?
突破2010年

@Breakthrough我尝试删除512mb棒但它似乎没有任何区别。我已经尝试了所有可能的同型号配对组合,我可以使用6支RAM。
内森泰勒2010年

通过运行eventvwr.msc并查找相关消息来检查系统事件日志。
马克艾伦2010年

@Mark它不仅仅与Windows隔离 - 也出现在Ubuntu中。事件日志没有任何硬件问题的指示。
Nathan Taylor 2010年

Answers:


3

由于您在评论中提到Server 2008仅报告2 GB,因此您的配置出现问题。

  1. BIOS报告已安装的RAM有什么作用?它看到4 GB吗?
  2. 根据手册:
    • 必须启用内存重映射
    • 必须禁用内存镜像
  3. 你的模块是如何安装的?手册指定它们必须成对安装,并且成对的插槽彼此相邻。根据你的帖子,看起来你没有将配对的ram安装到相邻的插槽中。根据主板手册/主板压印验证模块的物理安装。
  4. 您是否单独尝试过每对1 GB模块?
    • 如果是这样,请使用Memtest86 +测试每对,以确保每对都能正常工作。
    • 如果每对检出,请尝试更改它们的安装顺序。

BIOS报告4gb,CPU-Z也是如此。启用内存重映射并禁用镜像。我会给它另一个镜头,但我记得配对RAM的方式不同于目前导致BIOS无法识别它。我会尝试记住各个对,看看会发生什么。
内森泰勒2010年

关于记录各个对的任何一个词?
afrazier 2010年

呃这个怎么被接受了?我没有选择它,这意味着评分最高的投票应该接受它,不是吗?
内森泰勒2010年

“ 在至少2个赞成票开始的赏金之后创造的最高投票回答将被自动接受。” (强调我的)说,如果32位Server 2008没有看到所有4 GB,你仍然有问题。如果这是一个生产服务器,那么你应该理所当然。
afrazier 2010年

9

考虑到上面提供的证据,最有可能考虑的两件事是:

  • 内存映射硬件限制了32位操作系统可用的内存。

  • Windows是人为限制操作系统可用的内存。

硬件限制

使用32位操作系统,您可以拥有4GB的地址空间。具有内存映射IO(IO端口,网卡,图形卡,其他主板或附加卡)的任何外围设备将占用该地址空间的一部分(通常非常小)。用于内存映射IO的任何内存都不能用于主内存。

内存映射IO最糟糕的是图形卡。如果你有两块显卡,每块都有1GB或者内存,你的2GB地址空间将耗尽,只剩下2GB的主内存,无论你安装了多少物理内存。

这在具有64位操作系统的计算机上不是问题,因为这些2GB可以远离主内存进行映射,但在32位操作系统上,总共限制为4GB(不使用Microsoft已禁用的技巧)服务器32位操作系统)。

人为限制

另一个选择是某些硬件或软件对Windows安装时可用的内存量设置了限制,即使在安装了更多内存之后,仍然存在人为限制。

我从未在Vista下完成此操作,但在XP下,您将运行msconfig并查看“BOOT.INI”选项卡上的“高级选项”。如果设置了“/ MAXMEM”,则XP忽略了上面的所有内存。

在网上搜索,看起来你在Vista下使用bcdedit。可在此处找到有关如何使用它的详细说明。但是,与往常一样,在弄乱这些事情之前,一定要明白自己在做什么。

其他可能性,特定于服务器/工作站系统

通过X6DAL-XG 手册,我想知道Bios中是否启用了“Memory Mirroring and Sparing”:

选择Enabled以启用Memory RAS( - 镜像和备用),以允许系统创建写入内存的数据的镜像副本以确保数据安全。选项为Disabled和Enabled。

我猜想在内存镜像模式下,只使用了4个库,这可以解释为什么删除512MB Dimms对Windows可见的内存没有任何影响。


1
我目前正在运行GeForce 7800GTX,在该系统上有256mb的视频内存,所以我不怀疑它会非常刺入物理内存。
内森·泰勒2010年

这是一个很好的答案,但据我所知,这些都不是我遇到的问题,基于硬件配置以及问题也扩展到其他操作系统的事实。
内森泰勒2010年

基于我在64位操作系统上完全检测到RAM的发现,我认为可以肯定地说这个答案是不相关的。谢谢你们!
内森泰勒2010年

因为你确实看到64位操作系统上的所有内存,我建议这个答案是非常相关的
HorusKol 2010年

@Mark我目前将Memory Mirroring和Sparing设置为默认值“Disabled”。
内森·泰勒

2

虽然不能直接解决你的问题,但它可能有助于诊断它 - 你试过像Ubuntu那样运行linux live cd 吗?理想情况下,你应该尝试启动32位和64位版本 - 64位应该看到额外的RAM没有问题,如果它只看到两个,那么你几乎肯定有硬件相关的问题。如果32位linux也只看到2GB的RAM,那么正如Mark Booth所说,你可能有内存映射I / O占用其余部分。

视频卡往往是吃掉可用内存最差的罪犯,你不会安装两块1GB的卡吗?

内存重映射

许多现代BIOS都可以选择重新映射内存空间以避免MMIO问题 - 尽管这仅适用于64位操作系统或启用PAE的系统。检查BIOS以获取此设置。

http://support.microsoft.com/kb/929605


该系统目前运行单个7800GTX(256mb),所以我不怀疑这是问题的根源
Nathan Taylor 2010年

@Nathan - 您尝试过任何一种Linux风格吗?另请注意:无论您安装了多少RAM并且可见,在32位桌面Windows操作系统下,单个进程永远不能使用超过2GB的RAM。你在哪里看到2GB的报道?BIOS?系统属性?如果你拉两根512MB的棒子怎么办?
Goyuix 2010年

@Goyuix我的印象是Windows 32位可以解决高达3GB的问题,即使它只会为进程分配2GB。BIOS报告4GB内存,而操作系统仅报告2GB。我没有尝试过linux,但是我尝试过更换棒子,包括移除512mb DIMM。
内森泰勒2010年

@Nathan理论上Win32可以解决所有4 GB内存问题,问题是x86架构使用内存映射I / O来处理许多设备 - 由于内存大小较大,通常最大的攻击者是视频卡。512 MB的卡将最大总可寻址RAM减少到3.5 GB。将两个1 GB的视频卡放入计算机中,Win32甚至看不到超过2 GB的RAM。其他设备也使用内存映射I / O,但通常它们的地址范围最多只有几兆字节,并且很大程度上没有引起注意。
Goyuix 2010年

1
@Nathan:这不仅仅是视频卡。系统芯片组,插件和集成设备以及BIOS配置都发挥作用,因为很多东西都使用MMIO。此外,32位Windows 客户端只能使用最大4 GiB的内存地址。无论使用何种地址,Server 2003 Std 32位都可以处理最多4 GiB的RAM。企业和数据中心可以解决更多问题。整个“32位Windows 4 GiB限制”是许可限制,仅此而已。单个进程可用的虚拟地址空间量是一个完全独立的问题。
afrazier 2010年

1

如果所有操作系统都报告2GB,那么问题可能出在主板上。

我不喜欢你使用两种不同的存储卡,即使它们是成对安装的。
我建议只使用一种存储卡。

根据ramshopping.com,建议您的主板只使用KVR卡。
我会尝试取出另外两张卡,看看机器是否仍然以2GB的速度启动。
如果是,我会用与工作卡相同的卡替换两张非工作卡。


1
虽然这是一种可能性,但我不认为这是一个问题,因为我已经尝试了4种不同类型的RAM,它们都是1gb棒和所有这些,我现在安装的4只是完全检测到的4种通过BIOS。
内森泰勒2010年

@Nathan Taylor:但是你使用了4支相同的棒吗?
harrymc 2010年

不,只是你看到的4根棍子。
Nathan Taylor 2010年

@Nathan Taylor:这就是我的意思 - 使用4支相同类型的棒。
harrymc 2010年

它正在使用4金斯顿2KVR,2 128mx-因为它已经有一段时间了..
Nathan Taylor 2010年

0

我不知道这是否能解决这个问题,但似乎并没有正确配对你的RAM模块。根据规格页面,对应应按照蓝色和黑色并排对的方式相邻开槽。

您上面列出的设置似乎没有遵循此。这可能是因为操作系统试图读取双通道。


0

你应该检查你的BIOS。许多都有一个称为“操作系统安装模式”的功能或一些类似的名称,限制了操作系统可以看到的RAM量。这是必需的,因为如果有太多可用内存,某些操作系统安装程序将会失败。关闭它应该解决。


我查看了BIOS和手册,但我没有看到任何类似的选项。
内森泰勒2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.