Open Memory Platform Development Kit (OpenMPDK)

Be part of creating a new software ecosystem and fully utilize Samsung’s latest state-of-the-art memory and storage products now.

No more waiting for exhaustive implementation process from OEM host vendors.

A Software Platform for Storage Solutions

Open Memory Platform Development Kit (OpenMPDK) is a collection of softwares bridging the gap between host applications and devices: user drivers, APIs, application- specific user level file systems, sample applications, test suits, management and others (Refer to the figure below).

Figure 1. OpenMPDK Architecture. OpenMPDK Architecture contains Application - Applications (DB...), Plug-in, Middleware - File system, SDK, Tool - Test, Management, Library - API, Management, Interface, Device Driver - Kernel Driver, User Driver. Memory Devices contains UFS, NVMe SSD, KV(Key Value) SSD.

OpenMPDK is offered via Github.com (since May 2018) as an “open source.” Being “open” means that anyone can make a contribution with his/her new ideas or enhancements, and the exiting reference software can continuous evolve in its ecosystem. As a result, a better performing and more optimized system will emerge while shortening the development and integration time.

Reference Software Download Links

 

Please visit OpenMPDK section on Github (https://github.com/OpenMPDK) and download the reference software. Once integration and testing are completed, your system product may be released per your needs.

 

uNVMe Driver (https://github.com/OpenMPDK/uNVMe)

 

A user space NVMe driver which can reduce overhead and provide lower latency than kernel driver. Samsung will upload reference softwares to use uNVMe driver on the “uNVMe” repository of Github. (FIO, RocksDB, etc.)

uNVMe Driver white paper

 

 

HPB (Host-aware Performance Booster) Driver (https://github.com/OpenMPDK/HPBDriver)

 

SW-centric solution which transfers HPB entry through COMMAND/RESPONSE UPIU, bringing UFS Performance improvement by using Host DRAM.

 

 

OpenMPDK for KV SSD (https://github.com/OpenMPDK/KVSSD)

 

With a different interface from conventional SSDs, KV SSD requires modified host software to demonstrate its full potential. Device drivers and other tools such as KvRocks, KV Bench, and KV Emulator are included in the development kit.