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.
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.3
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 tuned4 to avoid excessive cache misses.
Mike P. (sic) (January 20, 2016). "An Intro to MCDRAM (High Bandwidth Memory) on Knights Landing". software.intel.com. Retrieved April 18, 2016. https://software.intel.com/en-us/blogs/2016/01/20/an-intro-to-mcdram-high-bandwidth-memory-on-knights-landing ↩
Ian Cutress (November 16, 2015). "A few notes on Intel's Knights Landing and MDRAM modes from SC15". www.anandtech.com. Retrieved April 18, 2016. http://www.anandtech.com/show/9794/a-few-notes-on-intels-knights-landing-and-mcdram-modes-from-sc15 ↩
Christopher Cantalupo; et al. (March 18, 2015). "User Extensible Heap Manager for Heterogeneous Memory Platforms and Mixed Memory Policies" (PDF). memkind.github.io. Retrieved April 18, 2016. https://memkind.github.io/memkind/memkind_arch_20150318.pdf ↩
Mike P. (sic) (March 10, 2016). "MCDRAM (High Bandwidth Memory) on Knights Landing – Analysis Methods & Tools". software.intel.com. Retrieved April 18, 2016. https://software.intel.com/en-us/articles/mcdram-high-bandwidth-memory-on-knights-landing-analysis-methods-tools ↩