为什么在使用AMD64时无法识别超过3 GB的RAM?


8

为什么Ubuntu 10.10 amd64(Maverick Meerkat)无法处理更多3 GB RAM?

我的机器是Toshiba P205-S6287 Intel Centrino Duo 64位处理器和667 MHz的4 GB RAM。

根据详细规格,笔记本计算机运行64位Core 2 Duo T5300处理器,并具有945GM Express芯片组。


3
这是一个谜,您能否通过查看dmidecode 来报告的输出uname -a,的输出,free -m还可以确认您拥有超过3GB的ram活动内存。
Martin Owens -doctormo- 2011年

1
并且您确定您具有64位版本的Ubuntu。什么uname -a发言权?
Vojtech Trefny 2011年

同样的问题,optiplex gx620 5 Gb Ram

Answers:


16

这归因于笔记本电脑中的移动式英特尔945GM Express

我拥有一个使用相同芯片组的Thinkpad T60。它是Intel最早推出的Core2Duo 64位CPU的北桥之一。他们没有设计它。

该芯片组理论上只能寻址4GB的RAM,但还必须寻址其他硬件(I / O存储器)。它为此保留了较高的1GB内存范围。Linux内核中对64位逻辑内存地址的支持无济于事,因为主板和北桥仅提供到CPU的32位物理地址总线。而且没有解决方法。
http://forums.lenovo.com/t5/T61-and-prior-T-series-ThinkPad-Thinkpad-s-and-N100-sw-945PM-chipset-can-t-address-gt-3G-Ram/ mp / 2730

设计存储器组切换时有一个理论上的选择。但是内核不支持它,在x86架构上也没有意义。945GM的i810内存控制器可能太懒了,无法理解。


1

我的简短回答是:可能是因为BIOS设计者草率。

长的答案是:

尽管您已安装4GB RAM,但您不能期望Intel 945GM芯片组具有4GB可用RAM。这是芯片组的限制。您可以从芯片组的规格中得知:

http://www.intel.com/content/www/us/en/intelligent-systems/navy-pier/mobile-945-express-chipset-datasheet.html

从第9.2节引述如下:“ 中号埃默里Ç ontroller ħ。UBS提供的4 GB的MCH的最大DRAM地址解码空间不重映射APIC或PCI Express的存储器空间,这意味着作为物理内存量在系统达到填充。 4 GB,将存在一个物理内存,但是它是不可寻址的,因此系统无法使用。

BIOS必须为几种资源保留地址范围,即BIOS本身,PCI和PCI Express内存映射空间,内部图形,APIC内存空间以及其他用于I / O访问的内存窗口。所有这些地址范围必须位于4GB地址空间内,因此占用的地址范围不再对系统内存可用。您可以说这些资源“窃取”了物理RAM内存空间。

话虽如此,如果您安装了4GB,则可以预期会有超过3GB的系统内存可用

系统可用的物理内存量取决于BIOS设计人员为安排这些地址范围付出的努力。例如,BIOS可以为每个资源分配最少的数量。也可以根据系统对PCI Express设备的使用情况,为PCI Express禁用或限制地址分配。

即使安装了4GB,系统的BIOS设计人员也可能将可用RAM的上限设置为最大3GB的静态最大值。这种方法为BIOS设计人员提供了1GB的静态地址窗口,因此简化了BIOS设计人员为资源分配地址范围的任务,因此它们不会与任何其他地址范围冲突。


1

有几种可能的原因。

一种是,实际上您没有运行amd64构建。另一个原因是您的主板和/或BIOS损坏并且未报告正确的RAM量。

另一个是您的视频内存和其他硬件资源占用了3-4 GB内存区域的空间,并且您的主板/ BIOS无法将阴影RAM提升到更高的地址,以便可以对其进行访问。

找出哪个需要查看您的dmesg输出。


0

psusi是正确的。

我在这里有同样的情况:

尽管他们称其为“ 64位CPU”,但您通常无法寻址4 GB以上的内存。

大多数旧主板的地址只有32位,图形卡也需要从该池中获取地址。

= 4 GB-显卡内存(1 GB)= 3 GB。

我担心无法通过修补或升级任何固件来解决此问题。

如果您对详细信息感兴趣,我建议:物理地址扩展


另外:如果有可能,普通的32位安装程序将在需要时自动启用Physical Address Extension内核,从而允许您使用所有内存。
Stefano Palazzo

正如@StefanoPalazzo和其他人所通知的那样,安装PAE内核可以解决此问题。只需在突触包管理器中搜索PAE内核并安装:hailubuntu.blogspot.com/2010/09/ubuntu-detecting-less-ram.html
wisemonkey

1
@wisemonkey:没有PAE内核没有给我完整的4GB。因为我已经使用了64位内核,甚至bios报告:总共4GB-> 3.2GB可用。
aatdark 2012年

@aatdark:您的BIOS设置中是否包含“共享视频内存”字段?如果是,则可以将其禁用(仅在具有独立显卡的情况下才建议使用),但是如果您的计算机是旧计算机,则再次按照您所说的那样,则无法对整个内存进行寻址。
wisemonkey 2012年

1
“基于Intel 945的Intel芯片组提供的最大地址空间为4GB,并且不支持内存重新映射。由于该地址的一部分需要保留给其他设备使用,因此您将无法使用超过3.2 GB的系统内存,您当前的系统配置。没有BIOS更新或64位操作系统可以改变它。这是芯片组而不是主板或BIOS的限制。”
aatdark
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.