我可以在特定硬件上使用的最大RAM数量是多少


26

我有一台i5-2430M CPU 的Asus U31SD笔记本电脑。华硕网站说最大RAM是8 GB,但是英特尔说我的CPU支持16 GB。在Ubuntu下可以在此系统上使用的最大RAM是多少?


3
综上所述,由于主板的限制,笔记本电脑只能使用8GB的RAM。:您可以通过看这个问题进行验证askubuntu.com/questions/140322/...
reverendj1

对于每个人,我想指出,内存生产公司“海盗船”有一个内存定位器,它可以大致告诉您系统可以使用的最大RAM量是多少。您也可以通过在线搜索模型系统来阅读技术表,它会告诉您可以使用的最大RAM。
托马斯·沃德

@时间之王:任何链接?
0xC0000022L13年

问题所引用系统的Corsair Memory Finder / Configurator:www2.corsair.com/configurator/… || Corsair Memory Finder(开始页面):corsair.com/us/learn_n_explore (他们会做广告,但我可以以此为基础来查找最大内存的半精确规格
Thomas Ward

Answers:


29

限制实际上在您的硬件(主板内存支持和其中的插槽数量)与Ubuntu版本(32位,32位+ PAE,x32ABI,64位)之间

如果您的主板最多支持4GB,则使用32位,32位PAE或64位都没有关系,因为硬件限制为4GB。

但是,如果您购买支持更高内存量的主板,则可以试用具有以下最大支持内存的Ubuntu版本:

Ubuntu 32位 -4GB RAM

Ubuntu 32位+ PAE(物理地址扩展) -64GB RAM

Ubuntu x32ABI -4GB RAM(这是针对64位硬件上运行的64位增强功能进行修改的32位体系结构。尚不可用。)

Ubuntu 64位 -很多!(实际上是2 ^ 64),但是由于硬件限制和实际计算机的限制,该限制大约为1TB(1024GB RAM)

因此,当您使用超过4GB的RAM时,应该使用有关内存限制的问题。在这种情况下,您将需要支持非常大的内存大小的32位PAE或64位。

还要注意,如果您现在有例如4GB,并且购买了16GB的ram,则无需重新安装Ubuntu或进行任何更改。只需更改记忆,Ubuntu就应该立即阅读并使用它们。无需配置。如果您具有32位和4 GB RAM,并且安装了16GB或RAM,Ubuntu将自动从32位变为32位PAE。我可以保证这一点,因为我在今年年初从4GB迁移到16GB。

这是对Ubuntu有关32/64中内存的很好解释的链接:https : //help.ubuntu.com/community/32bit_and_64bit#Memory

更新 -忘记添加某些主板具有BIOS更新,这些更新可启用,更正或增强支持的最大内存。例如,过去某些英特尔主板在使用它们支持的最大容量时存在问题。BIOS更新修复了此问题。由于BIOS问题,其他主板支持4GB,升级后它们支持的内存超过4GB。

同时比较CPU和主板支持的最大内存,您可以拥有的最大内存是其中任何一个的最小值。因此,例如:

案例1
CPU最大支持内存-16GB
主板最大支持内存-8GB
最大支持内存-8GB(因为这是CPU和主板之间的最小值)

CASE 2
CPU最大支持内存-16GB
主板最大支持内存-32GB
您最大支持内存-16GB(因为这是CPU和主板之间的最小值)

情况3
CPU最大支持内存-16GB
主板最大支持内存-64GB
最大支持内存-16GB(因为这是CPU和主板之间的最小值)

与CPU的内存限制关系背后的原因是因为英特尔对最新的Core CPU进行了技术修改。

因此,根据您的情况,您有一块支持8GB的主板和一个支持16GB的CPU。这意味着您可以使用的最大容量为8GB,具体取决于主板上的插槽数量。在该华硕中,您有2个插槽,这意味着您可以有两个4GB的RAM来完成最大8GB的内存。

有关x32abi的更多信息:

KernelNewbies - http://kernelnewbies.org/Linux_3.4#head-039c9d273884c9639937c10d68b4a3214869eb4b

LWN - https : //lwn.net/Articles/456731/(推荐阅读注释,以方便了解有关内存限制的说明)

Google - http://sites.google.com/site/x32abi/

最后,从Ubuntu 12.04开始,Ubuntu的所有32位版本默认都激活了PAE,因此所有32位版本最多支持64 GB的RAM。如果您使用的是12.04+,并且想知道要使用哪种体系结构,那么现在您知道只要遵循一些建议,就可以使用其中的任何一种:

  • 如果您有512 MB或更少的RAM,则强烈建议使用32位

  • 如果您的RAM小于4 GB但大于512 MB,建议使用32位(但是您仍然可以使用64位)

  • 如果您有4 GB RAM,建议使用32位(但是您仍然可以使用64位)

  • 如果您具有4 GB或RAM到64 GB的RAM,则可以使用32位或64位,但是建议使用64位。

  • 如果您有超过64 GB的RAM,则需要使用64位


Luis是否确定x32的4 GB限制?真可悲。我在一篇文章(德国杂志)中读到,x32支持4 GB以上的内存。还有PAE呢?
2012年

@turbo-这是一个非常好的问题,我花了一段时间才找到。我回答4GB,是因为这部分解释了“ x32abi是什么?”:X32 ABI允许使用32位指针在64位模式下运行程序。由于它可以与32位指针一起使用,因此这意味着它可以实际使用的最大内存为4GB。当然,我不知道是否存在x32abi PAE模式,但是由于它是一种执行32位程序以利用64位的某些优点而无需对任务使用双ram的方式,因此我得出结论,它受32位限制到4GB的RAM。
路易斯·阿尔瓦拉多

1
实际上,对于64位的限制是2 ^ 48个字节,对于x32进程,x32是相同的,每个进程仅限于4 GB 。x32运行64位内核,因此可以运行一些完整的64位程序,但是x32构建的大多数程序仅使用32位。
psusi

6

对于32位,理论限制为2 ^ 32 = 4096 MB,但默认情况下,PAE(物理地址扩展)上的Ubuntu 12.04已打开,限制为2 ^ 36 = 64 GB。

对于64位,理论上应为2 ^ 64 = 16777216 TB(是TB)。实际上,RAM的数量限制为2 ^ 48,即256 TB RAM。

由于普通笔记本电脑实际上无法达到理论极限,因此实际限制是笔记本电脑中的内存插槽数量(通常为1-2个)以及芯片组的支持。如果您愿意为8 GB的模块付出大量的金钱,那么8-16 GB在这里是现实的。


因此,我可以安全地购买2个8GB模块并期望它们能够正常工作吗?(我运行的是64位,当前使用8GB内存)
crond 2012年

非常安全... ... P具有Intel HM65 Express芯片的其他笔记本电脑确实支持16 GB(Asus G74SX-TZ293V),所以可以。
涡轮增压

6

我刚刚购买了一个额外的8GB来放入我的U31SD,总共12GB。尽管Asus规格页面上说8GB是限制,但这可以正常工作。通过了memtest86,并且对64位Ubuntu可见。

我安装了最新的BIOS更新,不确定是否有任何区别。

仅供参考,sudo dmidecode -t 16显示Maximum Capacity: 16 GB


1

这是对主板的限制,而不是对CPU的限制。CPU可能最多可以支持16GB,但是如果主板只能占用8GB,那就是您的极限。

在Ubuntu中,如果您运行的是32位,则限制为4GB,如果您运行的是64位,则限制要高得多(虽然无法确定,但还是超过16GB。

但是您将始终受到硬件的限制。您必须始终将主板限制和CPU限制进行比较,并将最小值作为PC的限制。


0

在您的特定情况下,8 GB是由于您的主板不支持超过此数量的RAM。

但是Ubuntu本身最多支持32位4 GB,32位PAE 64位和64位128 GB(尽管理论上64位的上限更高)。


0

有很多问题决定了指针的大小。基本上,您可以说这是处理器架构,

x86 -> 4 bytes pointer -> can address 4,294,967,296 locations = 4GB (it is the limit)

x64 -> 8 bytes pointer -> can address 1.84467440737e+19 locations (it is the limit, big, eh)

要寻址8GB的RAM,您需要8,589,934,592个映射,大小为4个字节的指针无法寻址所有可能的值。因此,这就是为什么我在x86架构上不能拥有超过4GB RAM的原因。

但是,还有其他一些可能性:

RAM的数量不受体系结构(32或64位)的限制。架构仅决定一次操作系统及其上运行的程序一次可以寻址多少内存。在32位计算机(即具有32位宽的内存总线的计算机)上,操作系统和程序只能“看到” 4 GB的内存。但这并不意味着只有4 GB的RAM。如果制造商提供了此功能,则可以有16 GB或4x4 GB的RAM。在那种情况下,将有另外2条“隐藏”地址线,并且还会有硬编码逻辑来决定这两条线的电平,从而选择任何可用的4 GB RAM-00 01 10 11。这些“隐藏”地址位未被软件层使用,因此对于这些层,它们只能使用4字节指针。这些“隐藏”的数量

这只是一个例子。这取决于供应商,他们如何决定提供额外的RAM。

也可以看看:

在通常情况下,指针的大小足以容纳比系统内存单位更多的地址。这引入了一种可能性,即程序可能尝试访问不对应于任何内存单元的地址,原因是没有安装足够的内存(即,超出了可用内存的范围),或者体系结构不支持此类地址。在某些平台(例如Intel x86架构)中,第一种情况可能称为分段错误(segfault)。在当前的AMD64实现中,第二种情况是可能的,其中指针的长度为64位,而地址仅扩展为48位。在那里,指针必须符合某些规则(规范地址),因此,如果取消引用非规范指针,则处理器会引发一般性保护错误。

另一方面,某些系统具有比地址更多的内存单元。在这种情况下,将采用更复杂的方案(如内存分段或分页)在不同时间使用内存的不同部分。x86体系结构的最后一个版本支持多达36位的物理内存地址,这些地址通过PAE分页机制映射到32位线性地址空间。因此,一次只能访问可能的总内存的1/16。同一计算机系列中的另一个示例是80286处理器的16位保护模式,该模式虽然仅支持16 MiB的物理内存,但最多可以访问1 GiB的虚拟内存,但是16位地址和段的组合寄存器使得在一种数据结构中访问超过64 KiB变得很麻烦。

为了提供一致的接口,某些体系结构提供了内存映射的I / O,该体系结构允许某些地址引用内存单元,而其他地址引用计算机中其他设备的设备寄存器。有类似的概念,例如文件偏移量,数组索引和远程对象引用,它们的某些目的与其他类型对象的地址相同。

(更多在这里

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.