There has been a lot of discussion lately about how much memory the latest 64-bit Macs can access. While all provide for a 64-bit virtual memory space, the amount of physical RAM that can be installed is substantially less. How much less? Quite a bit less. Here's what I learned from Intel.
CPUs that are labelled as 64-bits have 64-bit internal registers and a 64-bit data path to memory. The first item allows a theoretical maximum of 2^64 = 16 exabytes of virtual memory and the second allows 64-bit sized chunks of memory to be loaded from or stored to memory.
Nehalem Processor (Intel photo bank)
What's often overlooked is the Address Bus. That's a bus in the CPU that determines how much real, physical RAM can be installed, and that's almost always substantially less than 64 bits, perhaps 36 to 40 bits. That's because it doesn't make economic and engineering sense to design a CPU that can access a whole lot more memory than a typical consumer or business can afford.
For example, Other World Computing charges about US$25/gigabyte for the modern 2 GB DDR3 SDRAM we use now. If, for the sake of argument, one could install 16 exabytes of physical RAM, it would cost roughly (2^64/2^30)*$25 = roughly $429.5 billion dollars. That's clearly not an efficient way to design a CPU.
Apple doesn't go into much detail about the intricacies of the CPU design specs provided by Intel, nor the engineering considerations of physical RAM, so one has to look elsewhere to understand how much real memory we can put in our Macs. Other technical considerations also come into play, as well as the number of memory slots Apple supplies.
Core 2 Duo, back (Intel photo bank)
In the case of the Mac Pro, Apple currently uses two Intel CPUs: the Xeon W3520 "Bloomfield" for the low end Quad-Core and the Xeon E5520 "Gainestown" for the high end 8-Core. In the MacBook Pros (15-inch), Apple uses the Intel Core 2 Duo T9400 "Penryn" (at, for example, 2.53 GHz). Let's look at the spec pages at Intel for those CPUs.
Mac Pros and MacBook Pros
The Mac Pro, Quad-Core has a Nehalem that sports a 36-bit address bus -- which could theoretically support 64 GB of RAM. I spoke with George Alfs at Intel and he explained that while that's a theoretical maximum, that Nehalem CPU has only been tested up to 24 GB of RAM. With six memory slots, that would imply 4 GB modules. While that CPU has three memory channels and, with two DIMMs per channel, begs for six slots, Apple has chosen to limit the Quad-Core Mac Pro to four.
That takes us down to 16 GB (4 x 4 GB). In addition, Mr. Alfs pointed out that chipset limitations and more likely, bus signal integrity issues, could reduce that to the 8 GB that Apple recommends. Either that, or Apple simply wants to artificially differentiate the two Mac Pro models. (More on this below.)
The Mac Pro, 8-core uses the Xeon E5520 which has a larger 40-bit address bus. That's a theoretical limit of 1 terabyte of physical RAM. Intel has tested the two CPU configuration (8-cores) with up to 144 GB of RAM, according to Mr. Alfs.
Apple's 8-Core Mac Pro has eight memory slots. With 4 GB SDRAM modules, that's just 32 GB. (Apple charges $6,100 for that upgrade alone.) There are some heavy duty servers made by, for example, Sun Microsystems, that do in fact have the 18 memory slots and allow up to 144 GB of RAM. Clearly, Apple is being conservative. After all, 144 GB of RAM would require the massively more expensive 4 GB modules, cost a boatload of money, and be likely outside the price range of Apple's intended customers.
As we know, the MacBook Pros use a Core 2 Duo. While Intel's site doesn't include address bus size and maximum memory numbers in the same way as the Nehalem pages, Mr. Alfs confirmed a 36-bit address bus and a maximum theoretical RAM of 64 GB. For those who want to see it in print, a page at Lenovo confirms that. Again, technical considerations and chipset limitations, in practice, may reduce that to 8 GB in all the MacBook Pro configurations.
MacBook Pros come with two memory slots than can contain either 2 or 4 GB SO-DIMMs each.
Installing Memory in Nehalem Mac Pros
Because of the way the memory channel is assigned to memory slots, banks that are incompletely populated must be loaded in a certain order. There is a utility on Mac Pros at /System/Library/CoreServices/Memory Slot Utility can detect if the the SDRAM modules are installed in the incorrect order and will make a suggestion on how to improve it. An easy way to launch it is to use the Finder's Go -> Go to Folder...
Memory Slot Utility, Result
Finally, if you are wondering about the benefit of remaining with 2 DIMMs per memory channel (for speed) or filling all available slots in a Mac Pro (for breathing room), it can depend on the applications you're using. [This is, for example, the choice between 6 GB or 8 GB in a Quad-Core Mac Pro.] Other World Computing has done some extensive testing on this. And in the process, found that 16 GB in the Quad-Core Mac Pro works just fine.
While our modern 64-bit CPUs can address 16 exabytes of virtual memory, design considerations limit the address bus, and hence the physical RAM, to much less. In the case of the Intel CPUs Apple uses, that's 36 or 40-bits depending on the CPU we looked at. Additional limitations like chipset issues, bus signal integrity QA and other considerations typically reduce that further from the theoretical maximum physical RAM. Finally, the number of memory slots the computer maker choses to supply can further restrict available RAM.