What's the maximum amount of RAM I can use on an specific hardware

I've an Asus U31SD Notebook with an i5-2430M CPU. The Asus site says that the maximum RAM is 8 GB, but Intel's says my CPU supports 16 GB. What is the maximum RAM I can use on this system under Ubuntu?


Solution 1:

The limit is actually between your hardware (Motherboard memory support and amount of slots in it) and the version of Ubuntu (32 Bit, 32 Bit + PAE, x32ABI, 64 Bit)

If you have a motherboard that supports a maximum of 4GB, it does not matter if you use 32 Bit, 32 Bit PAE or 64 Bit since you will have a hardware limit of 4GB.

But if you buy a motherboard that supports a higher amount of memory, you can play around with the versions of Ubuntu, which have the following maximum supported memory:

Ubuntu 32 Bit - 4GB RAM

Ubuntu 32 Bit + PAE (Physical Address Extension) - 64GB RAM

Ubuntu x32ABI - 4GB RAM (This is for 32 Bit architecture modified with 64 Bit enhancements running on 64 Bit hardware. It is not yet available.)

Ubuntu 64 Bit - A LOT! (Actually 2^64) but because of hardware limits and real world computers the limit is around 1TB ( 1024GB RAM)

So the question about memory limit should be used when you are using more than 4GB of RAM. In this case you would need, either 32 Bit PAE or 64 BIT which support really big memory sizes.

Also note that if you have for example 4GB right now, and you buy 16GB of ram, there is no need to reinstall Ubuntu or do any changes. Just change the memories and Ubuntu should read and work with them out of the box. No configuration necessary. If you have 32 Bit with 4 GB RAM and you install 16GB or RAM, Ubuntu will automatically change from 32 Bit to 32 Bit PAE. I can vouch for this since I moved from 4GB to 16 GB in the beginning of this year.

Here is a link to a very good explanation for Ubuntu about memory in 32/64: https://help.ubuntu.com/community/32bit_and_64bit#Memory

UPDATE - Forgot to add that some motherboards have BIOS updates that enable, correct or enhance the maximum memory supported. For example, some Intel motherboards in the past had problems working with the maximum they supported. A BIOS update fixed this. Other motherboards had support for 4GB because of a BIOS problem, after upgrading they had support for more than 4GB.

Also comparing the Maximum supported memory for the CPU and the Motherboard, the Maximum you can have is the Minimum of any of them. So for example:

CASE 1
CPU Maximum Supported Memory - 16GB
Motherboard Maximum Supported Memory - 8GB
Your Maximum Supported Memory - 8GB (Because is the lowest value between the CPU and Motherboard)

CASE 2
CPU Maximum Supported Memory - 16GB
Motherboard Maximum Supported Memory - 32GB
Your Maximum Supported Memory - 16GB (Because is the lowest value between the CPU and Motherboard)

CASE 3
CPU Maximum Supported Memory - 16GB
Motherboard Maximum Supported Memory - 64GB
Your Maximum Supported Memory - 16GB (Because is the lowest value between the CPU and Motherboard)

The reason behind this Memory Limit relation to the CPU is because of technical modifications by Intel with the latest Core CPUs.

So in your case, you have a motherboard that supports 8GB and a CPU that supports 16GB. This means the maximum you can have is 8GB which you can use depending on the amount of slots in the motherboard. In that Asus you have 2 Slots, which means you can have two 4GB of RAM to complete the Maximum of 8GB.

More Info about x32abi:

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

LWN - https://lwn.net/Articles/456731/ (Recommend reading comments for easy to learn explanations about memory limit)

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

Lastly, since Ubuntu 12.04, all 32 Bit versions of Ubuntu come with PAE activated by default so all 32 Bit will support a maximum of 64 GB of RAM. In case you are using 12.04+ and want to know which architecture to use, you now know that you can use any of them as long as you follow some recommendations:

  • If you have 512 MB of RAM or less it is highly recommended to use 32 Bit

  • If you have less than 4 GB of RAM but more than 512 MB it is recommended to use 32 Bit (But you can still use 64 Bit)

  • If you have 4 GB of RAM it is recommended to use 32 Bit (But you can still use 64 Bit)

  • If you have between 4 GB or RAM and 64 GB of RAM you can use either 32 Bit or 64 Bit, but it is recommended to use 64 Bit.

  • If you have more than 64 GB of RAM you need to use 64 Bit

Solution 2:

I just bought an extra 8GB to pop in my U31SD, for 12GB total. Despite the Asus spec page saying 8GB is the limit, this Works fine. Passed memtest86 and is visible to 64bit Ubuntu.

I have the latest bios update installed, not sure if that makes any difference.

FYI, output of sudo dmidecode -t 16 indicates Maximum Capacity: 16 GB.