- Why is the memory not persistent? Is it persistent by virtue of its properties?
- How does the DRAM caching work? Is that all done in hardware without the support of the OS?
Intel® Optane™ persistent memory
How to fix it:
Intel® Optane persistent memory is an emerging technology where non-volatile media is placed onto a Dual In-Line Memory Module (DIMM) and installed on the memory bus. Persistent memory DIMMs exist alongside traditional volatile memory DRAM DIMMs.
The key thing that differentiates persistent memory DIMMs from DRAM DIMMs is that the data stored on them can be retained when the system is shut down or loses power.
This allows them to be used as a form of permanent storage like Hard Disk Drives (HDDs) or Solid State Drives (SSDs), but with memory-like latencies.
Intel® Optane™ Persistent Memory (PMem) is based on the Intel® Optane™ Memory technology and provides the ability to keep more data, closer to the CPU for faster processing (that is, “warmer”). PMem is designed for use with Intel® Xeon® Scalable Platform processors (code name Cascade Lake).
DCPMMs exist alongside DDR4 DRAM DIMMs to support a two-level memory architecture. The fastest tier is the DRAM-based “near memory” and the slower tier is DCPMM “far memory.” PMem can be configured for use in different modes: Memory Mode, App Direct Mode, or a combination of Memory Mode and App Direct Mode, which is referred to as “Mixed Mode.”
In Memory Mode, PMems act as volatile system memory under the control of the operating system. Any DRAM in the platform will act as a cache working in conjunction with the PMems.
In App Direct Mode, PMem and DRAM DIMMs act as independent memory resources under direct load/store control of the application. This allows the PMem capacity to be used as byte-addressable persistent memory that is mapped into the system physical address space (SPA) and directly accessible by applications.
In Mixed Mode, a percentage of the PMem capacity is used in Memory Mode and the remainder in App Direct Mode.
App Direct Mode capacity can be used as Block over App Direct. In this case, the driver surfaces traditional block storage interface transparent to applications so they do not need to be modified. Block over App Direct is implemented with copy on write optimization via a block translation table to provide power-fail write atomicity.
Otherwise, applications can be modified to access App Direct capacity with direct load/store mechanisms using a persistent memory aware file system. This completely bypasses the kernel and provides the shortest code path to the persistent memory. To learn more about using and programming for persistent memory, refer to Persistent Memory Programming.
Cause & More Information:
THE INFORMATION IN THIS ARTICLE HAS BEEN USED BY OUR CUSTOMERS BUT NOT TESTED, FULLY REPLICATED, OR VALIDATED BY INTEL. INDIVIDUAL RESULTS MAY VARY. ALL POSTINGS AND USE OF THE CONTENT ON THIS SITE ARE SUBJECT TO THE TERMS AND CONDITIONS OF USE OF THE SITE.