NVDIMM types


source: Arthur Sainio, In-memory computing summit,2016

Posted in memory, non-volatile memory | Leave a comment

In-Memory Computing

Videos and Slides


「SAP HANA」的圖片搜尋結果


Posted in memory, non-volatile memory | Tagged , | Leave a comment

Non Volatile Memory Conference List


Posted in memory, non-volatile memory | Leave a comment

Active prototypes of Software Defined Memory (SDM)

With the announcements of new storage-class memory (SCM) based devices, such as Intel & Micron 3D XPoint, HPE & SanDisk memristors, Samsung & Netlist NVDIMM-P and Sony & Viking Technology NVDIMM-N.  The performance characteristics of the NVMs have significally changed, such as  DRAM-like latencies and fine-grain data access. Legacy approaches to access storage and memory impose unnecessary overheads while using the new NVM technologies. The software engineers are currently working on a evolving concept for the convergence of storage and memory system. Software-Defined Memory (SDM) was originally coined in 2014 by SanDisk to describe the new software abstraction to access their SSD and persistent memory devices.  Intel and Fusio.io also proposed their SDM solutions trying to provide agile approach to access storage and memory objects.   Current active prototypes of Software Defined Memory (SDM) includes:


This project actively supported by Fusion-io, Inc.


An start-up.


This project actively supported by Intel, Inc.



Posted in Uncategorized | Leave a comment

Linux Support for NVM technology


  1. Download the NVDIMM Kernel Tree
  2. Compile kernel with the following configurations to enable PMEM and DAX support.
  3. If you have NVDIMMs, then you should have kernel support. If you don’t have NVDIMMs, you can still test the new PMEM features via volatile memory (i.e. DRAM ) mapping.
  4. Volatile memory mapping
    1. check your dmsg and find the usable memory range:
      1. Capture
      2. You can see physical memory after 0x00000001000000000 (4G) is useable.
    2. Set the kernel parameter in the GRUB memmap=16G!4G. You will reserve a 12GB physical memory  after 4G address , and Linux will treat this memory as a PMEM.
    3. Reboot
  5. Check if you have pmem device
    1. ls /dev/pmem0
    2. fdisk -l /dev/pmem0Disk /dev/pmem0: 16 GiB, 17179869184 bytes, 33554432 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
  6. Format ext4 file system and mount
    1.  mkdir /mnt/pmem
    2. mkfs.ext4 -F -b 4096 /dev/pmem0
    3. mount -o dax /dev/pmem0 /mnt/pmem


NVDIMM Kernel Tree: https://git.kernel.org/cgit/linux/kernel/git/nvdimm/nvdimm.git

NDCTL: https://github.com/pmem/ndctl.git

ACPI 6: http://www.uefi.org/sites/default/files/resources/ACPI_6.0.pdf

NVDIMM Namespace: http://pmem.io/documents/NVDIMM_Namespace_Spec.pdf

DSM Interface Example: http://pmem.io/documents/NVDIMM_DSM_Interface_Example.pdf

Driver Writer’s Guide: http://pmem.io/documents/NVDIMM_Driver_Writers_Guide.pdf


Posted in memory, non-volatile memory | Leave a comment

NVM Programming Model



Posted in memory, programming model | Leave a comment

Non-volatile memory ( NVM ) technology

Non-volatile memory ( NVM ) is a type of computer memories that can retrieve stored information across even power failure. Unlike volatile memory, NVM does not need its memorized data to be refreshed periodically. It is commonly used for secondary storage or long-term consistent storage.  Examples of mechanical NVMs storage include, hard disk drive (HDD) and magnetic tape. Another type of NVMs is electrical. Examples of electrical NVM storage include, EEPROM,  Flash memory, and solid-state drive (NAND flash SSD)

Recent in developing NVM technologies include:

To make memory persistent, we are facing a number of challenges:

1. How to ensure information stored is durable? The computer system still includes volatile cache memory system. We need to ensure data in caches is flushed. When and how to flush the data impact the system performance .

2. How to ensure consistency of updates? Modern computer have multiple layer private and shared caches.  One data could have multiple copies in caches. How to ensure consistency is still a big challenge. This requires change of hardware and software programming models to achieve this goal.

Posted in memory, non-volatile memory | Leave a comment

3D XPoint Technology

3D XPoint™ technology is an new class of non-volatile memory that can help turn immense amounts of data into valuable information in real time. With up to 1,000 times lower latency and exponentially greater endurance than NAND, 3D XPoint technology can deliver game-changing performance for big data applications. Its ability to enable high-speed, high-capacity data storage close to the processor creates new possibilities for system architects and promises to enable entirely new applications.

Posted in 3d xpoint, memory | Tagged | Leave a comment