PSA: 64 bits and RAM limits

Promit

Member
Mar 28, 2005
55
0
0
I've read this in a couple places, most notably Toms's Hardware Guide, and it makes me cringe every time I read it, because it's not even vaguely true. Supposedly you can have a max of 4 GB in a system which uses a 32 bit processor. This is not true; the misunderstanding comes from this logic:

On a 32 bit system, pointers are 32 bits long, more or less by definition. This gives you 2^32 memory addresses you can use, or a total of 4GB of memory addressing space. So unless you have a 64 bit processor, you can't have more than 4GB of RAM.

This is not true. First of all, the above argument breaks down due to the very nature of virtual memory. Each and every process has its own, isolated virtual address space. In other words, every single process can theoretically address 4 GB on its own. Pointer values aren't unique across the system -- this is why you can't just move memory around between processes trivially. The OS is capable of dealing with far larger amounts of memory...I'm fairly sure Windows is capable of dealing with 64+ GB of physical memory, and I'm absolutely certain that Linux can as well (there's a kernel option you need to activate if you plan to work with more than 64GB). Intel systems (without EM64T) are by no means restricted to 4 GB RAM -- they'd be useless for high end servers if that were true. Plus there's swap/paging files, which are also in the virtual address space.

The 4 GB restriction on memory is usually related to your motherboard chipset and how it handles memory. Even the Athlon64 motherboards usually aren't equipped to deal with more than 4 GB of physical RAM. So while it's true that most desktop systems are restricted to 4 GB of RAM, it's not because of 32 bit CPUs and it's not changing with the introduction of 64 bit CPUs, at least not in the current desktop market.

This post might seem pointless to some of you, but it seems important to me to clarify that being able to use more than 4GB of physical memory, a very frequently cited statistic in favor of 64 bit systems, is not actually true. It really makes me feel bad when a site like THG, which is supposed to know its stuff, screws up something like this repeatedly.

Coming later: Why is the Athlon64 really so much faster than the XP?
 

mparr1708

Senior member
Jan 5, 2005
258
0
0
Originally posted by: Promit
I've read this in a couple places, most notably Toms's Hardware Guide, and it makes me cringe every time I read it, because it's not even vaguely true. Supposedly you can have a max of 4 GB in a system which uses a 32 bit processor. This is not true; the misunderstanding comes from this logic:

On a 32 bit system, pointers are 32 bits long, more or less by definition. This gives you 2^32 memory addresses you can use, or a total of 4GB of memory addressing space. So unless you have a 64 bit processor, you can't have more than 4GB of RAM.

This is not true. First of all, the above argument breaks down due to the very nature of virtual memory. Each and every process has its own, isolated virtual address space. In other words, every single process can theoretically address 4 GB on its own. Pointer values aren't unique across the system -- this is why you can't just move memory around between processes trivially. The OS is capable of dealing with far larger amounts of memory...I'm fairly sure Windows is capable of dealing with 64+ GB of physical memory, and I'm absolutely certain that Linux can as well (there's a kernel option you need to activate if you plan to work with more than 64GB). Intel systems (without EM64T) are by no means restricted to 4 GB RAM -- they'd be useless for high end servers if that were true. Plus there's swap/paging files, which are also in the virtual address space.

The 4 GB restriction on memory is usually related to your motherboard chipset and how it handles memory. Even the Athlon64 motherboards usually aren't equipped to deal with more than 4 GB of physical RAM. So while it's true that most desktop systems are restricted to 4 GB of RAM, it's not because of 32 bit CPUs and it's not changing with the introduction of 64 bit CPUs, at least not in the current desktop market.

This post might seem pointless to some of you, but it seems important to me to clarify that being able to use more than 4GB of physical memory, a very frequently cited statistic in favor of 64 bit systems, is not actually true. It really makes me feel bad when a site like THG, which is supposed to know its stuff, screws up something like this repeatedly.

Coming later: Why is the Athlon64 really so much faster than the XP?

The max memory any current desktop version of windows can address is 4gb. You have to use 2000 advanced server or Windows server 2003 enterprise for the OS to see more. Now this leads to a misconception that going over the 4gb limit is pointless but depending on your app it is not. SQL server is a good example. Depending on the version you have it can use as much memory as you can throw at it.

THG is not screwing this point up, although I have not read the article you speak of (feel free to link it) they would be correct is saying current windows versions (Not sure about limit for 64bit windows but it isnt curent anyway being as its still in RC status) can only address 4gb. They maybe could clarify that you can use enterprise versions of the OS to address more but then that assumes you have software that needs that much memory (Seriously doubt any home user does) and that you have hardware that supports more then 4gb (again seriously doubt any home user does and if they did they put there money in the worng place as far as hardware goes).

Just my 2 cents
 

Promit

Member
Mar 28, 2005
55
0
0
Originally posted by: mparr1708
The max memory any current desktop version of windows can address is 4gb. You have to use 2000 advanced server or Windows server 2003 enterprise for the OS to see more. Now this leads to a misconception that going over the 4gb limit is pointless but depending on your app it is not.
Untrue. You can enable AWE (Address Windowing Extension) on Windows 2000 and XP and work with up to 64GB of RAM.

SQL server is a good example. Depending on the version you have it can use as much memory as you can throw at it.
Naturally there are applications that can actually use more than 4 GB (albeit not many). But they've been getting along just fine without it in most of the market...other CPU architectures like Sparc have filled in the ultra high end.

THG is not screwing this point up, although I have not read the article you speak of (feel free to link it) they would be correct is saying current windows versions (Not sure about limit for 64bit windows but it isnt curent anyway being as its still in RC status) can only address 4gb.
It's not a specific article, they mention it quite a few times. And as I said earlier, even the desktop OSes aren't restricted to 4GB physical memory.
 

mparr1708

Senior member
Jan 5, 2005
258
0
0
Originally posted by: Promit
Originally posted by: mparr1708
The max memory any current desktop version of windows can address is 4gb. You have to use 2000 advanced server or Windows server 2003 enterprise for the OS to see more. Now this leads to a misconception that going over the 4gb limit is pointless but depending on your app it is not.

Untrue. You can enable AWE (Address Windowing Extension) on Windows 2000 and XP and work with up to 64GB of RAM.

My understanding is that AWE lets applications see more then 4gb but the limit still has a hard limit of 4gb.

Originally posted by: Promit
Originally posted by: mparr1708
SQL server is a good example. Depending on the version you have it can use as much memory as you can throw at it.
Naturally there are applications that can actually use more than 4 GB (albeit not many). But they've been getting along just fine without it in most of the market...other CPU architectures like Sparc have filled in the ultra high end.

Sparc has little to do witht his conversation and I can tell you that I have multiple SQL servers in place that have, use, and need more then 4GB of ram.

Originally posted by: Promit
Originally posted by: mparr1708
THG is not screwing this point up, although I have not read the article you speak of (feel free to link it) they would be correct is saying current windows versions (Not sure about limit for 64bit windows but it isnt curent anyway being as its still in RC status) can only address 4gb.
It's not a specific article, they mention it quite a few times. And as I said earlier, even the desktop OSes aren't restricted to 4GB physical memory.

I'd like a link to any of the articles so I can see what exactly you are talking about and yes OSes are limited to 4GB unless it is an enterprise, datacenter, or advanced version of the OS.