为什么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芯片组。
uname -a
发言权?
为什么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芯片组。
uname -a
发言权?
Answers:
这归因于笔记本电脑中的移动式英特尔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内存控制器可能太懒了,无法理解。
我的简短回答是:可能是因为BIOS设计者草率。
长的答案是:
尽管您已安装4GB RAM,但您不能期望Intel 945GM芯片组具有4GB可用RAM。这是芯片组的限制。您可以从芯片组的规格中得知:
从第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设计人员为资源分配地址范围的任务,因此它们不会与任何其他地址范围冲突。
psusi是正确的。
我在这里有同样的情况:
尽管他们称其为“ 64位CPU”,但您通常无法寻址4 GB以上的内存。
大多数旧主板的地址只有32位,图形卡也需要从该池中获取地址。
= 4 GB-显卡内存(1 GB)= 3 GB。
我担心无法通过修补或升级任何固件来解决此问题。
如果您对详细信息感兴趣,我建议:物理地址扩展
uname -a
,的输出,free -m
还可以确认您拥有超过3GB的ram活动内存。