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?
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?