If E3-1285 v6 supports a maximum of 64 GB of RAM, does using a dual socket motherboard increase max memory? I guess not, but would like to know the reason. My logic says that if RAM is shared, both processors should be able to address all available RAM and thus, it will also be limited to 64GB. Any technical explanation for this?
3 Answers
In modern CPUs the memory controller is integrated directly into the CPU, whereas in former times memory was accessed by the CPU over a bus system. The bus system had the advantage that memory access was uniform, which is still the case in single-socket CPUs.
Now, entering dual-socket systems, each CPU has dedicated local memory and the memory of the other CPU can be accessed indirectly over QPI which is in simple words a link between the two CPUs. This is called NUMA ( non-uniform memory access ).
Well, putting things together. If you have a second CPU you can increase the total amount of memory of your system, but you also need a CPU that is capable of running in dual-processor mode. IIRC the E3 series is not dual-socket capable, E5 is dual-socket capable and E7 quad-socket capable.
- 4,155
- 5
- 21
- 28
-
Thanks a lot for your clear explanation.. my computer science studies lag behind market progress in computer architecture. A fellow told me to try and build a Xeon system with integrated GPU (for openCL means) and 128 GB... and it is simply impossible :-(. – kankamuso Feb 18 '18 at 19:25
-
4You can do it, you just need a CPU with memory controllers to address more memory. The Xeon E5 machines have 4 memory channels and you can install up to 8 modules of 32 GB each per CPU. – Andreas Rogge Feb 18 '18 at 19:31
-
This is sometimes written cryptically as *1S only*. – chrylis -cautiouslyoptimistic- Feb 19 '18 at 04:01
-
@AndreasRogge, but I also need an integrated GPU and E5 does not include it :-( – kankamuso Feb 19 '18 at 10:31
-
1@kankamuso A discrete GPU can be quite useful, though. – JAB Feb 19 '18 at 16:08
-
2@kankamuso An integrated Intel GPU is not going to be useful for OpenCL. You'll get better performance out of even an entry-level discrete GPU. – Feb 19 '18 at 21:13
First of all, the E3-1285v6 does not support multi-socket, so to increase the number of CPUs in the system you'll need a different CPU.
While AMD and Intel CPUs in long-mode use 64-bit pointers, the CPUs available today are limited to 48 bit. Thus it is possible to address up to 256 TB of memory and every x86_64 compatible CPU can address that amount of memory.
However, there is another limitation: The memory controller integrated into the CPU. That memory controller has a limited number of channels (in case of your CPU: 2), which means that it can talk to two memory modules simultaneously. The channels can alternate between multiple modules (usually 2), so you can usually connect two modules per channel which totals to 4 modules in your case.
If you have a multi-socket board with multiple CPUs installed you will have one memory controller per CPU, so in the end you double the physical installable memory (which is not really related to addressable memory) by installing a second CPU.
- 2,670
- 10
- 24
-
-
848 bits is the virtual address space limit, not physical. It's inconvenient for the kernel, but it's possible to support more physical memory than can be mapped into one flat virtual address space (we had this with 32-bit + PAE for a while). The [x86-64 page table format already supports up to 52-bit physical addresses](https://stackoverflow.com/questions/46509152/why-in-64bit-the-virtual-address-are-4-bits-short-48bit-long-compared-with-the), although real CPUs support less. The memory-controller details are usually important here, not just the internal phys addr width. – Peter Cordes Feb 19 '18 at 05:15
-
@PeterCordes: otoh several processors have not all address lines implemented, like the E5-1620v3 I am currently running on, which has 46bits physical address support. – PlasmaHH Feb 19 '18 at 09:43
If E3-1285 v6 supports a maximum of 64 GB of RAM, does using a dual socket motherboard increase max memory?
Yes using multiple CPUs does increase the maximum memory, however your CPU does not support multiple socket motherboards.
A fellow told me to try and build a Xeon system with integrated GPU (for openCL means) and 128 GB... and it is simply impossible :-(
Indeed, the low end (socket 115x) parts have the option of integrated GPUs (presumably because they are derived from the same basic designs as the mainstream desktop parts) but they don't have multi-socket support and they have a memory controller that only supports four modules (two channels with two modules each) of unregistered memory. With current technology that limits you to 64GB.
The higher end parts have better memory controllers with more channels and support for memory types that allow more and larger modules per channel (512GB per socket is doable) and in some cases support for multi-socket configurations but they lack the integrated GPUs.
- 4,056
- 10
- 29