Multi-Channel DRAM or MCDRAM is a 3D-stacked DRAM that is used in the Intel Xeon Phi processor code-named Knights Landing. In the fields of digital electronics and computer hardware, multi-channel memory architecture is a technology that increases the data transfer rate between the DRAM memory and the memory controller by adding more channels of communication between them. It is a version of Hybrid Memory Cube developed in partnership with Micron, and a competitor to High Bandwidth Memory. The technique goes back as far as the 1960s having been used in IBM System/360 Model 91 and in CDC 6600.
The many cores in the Xeon Phi processors, along with their associated vector processing units, enable them to consume many more gigabytes per second than traditional DRAM DIMMs can supply. The channels permit reading from and writing to memory to occur on distinct channels. The “Multi-channel” part of the MCDRAM full name reflects the cores having many more channels available to access the MCDRAM than processors have to access their attached DIMMs. Therefore, a DRAM chip can hold more data than an SRAM (static RAM) chip of the same size can.
Multi-Channel DRAM is proprietary, high-bandwidth memory that physically sits atop the family of Intel Xeon Phi processors, code-named Knights Landing. Its physical placement on the processor imposes some limits on capacity – up to 16 GB at launch, which is much smaller than the capacity of off-package DRAM (384GB). If you choose to upgrade your computer’s SDRAM, check your machine’s requirements to see if the memory modules must be installed in pairs. If so, you will need to replace two modules at once and they must be the same size.
The memory can be partitioned at boot time, with some used as cache for more distant DDR, and the remainder mapped into the physical address space. To take advantage of a dual-channel platform when purchasing memory make sure to buy memory in identical pairs. For example, if you wanted to upgrade to an additional 2 GB of memory. Buy two 1 GB memory modules that are exactly identical.
DRAM is a type of RAM that stores each bit of data on a separate capacitor. The application can request pages of virtual memory to be assigned to either the distant DDR directly, to the portion of DDR that is cached by the MCDRAM, or to the portion of the MCDRAM that is not being used as cache. One way to do this is via thememkind API. This is an efficient way to store data in memory because it requires less physical space to store the same amount of data than if it was stored statically.
While each memory chip’s speed doesn’t need to be the same as the others, it’s best to install memory with matching speeds. When used as cache, the latency of a miss accessing both the MCDRAM and DDR is slightly higher than going directly to DDR, and so applications may need to be tuned to avoid excessive cache misses. If the speeds differ, the motherboard runs the memory chips at the speed of the slowest chip.