Diablo Technologies’ latest Memory 1 module (see figure) puts 128 Gbytes of flash into a standard DDR4 socket. Its DMX software driver acts as a transparent cache between DRAM and the Memory 1 storage, effectively extending system memory to the higher-capacity Memory 1 modules while maintaining DRAM performance (most of the time).
The DMX software is a greatly improved version of the fast RAM mirroring technology from Diablo Technologies. In this case, the DMX software does not take advantage of the non-volatile nature of flash memory, although that is something that may be possible in the future. The reason for using DMX and Memory 1 is that the flash storage modules have a higher capacity than DRAM. The 128 Gbyte modules allows a two-processor system to host 2 Tbytes of storage.
The Linux-based DMX driver hooks into the virtual memory system. It implements a three-tier system that includes DRAM, Memory 1 and conventional disk storage that could include SSDs. The software handles movement of data between tiers in the same fashion as high-end microcontrollers using multiple levels of cache. A three-level cache system is common in high-end processors. The result is a six-level cache with multiple flash memory levels at the top end, as most enterprise systems are now using SSDs for disk storage.
Currently the software operates as a black box with limited configurability. An internal API is used by the support applications that can track the operation of the system. The modules support S.M.A.R.T. disk management, allowing flash memory lifetimes to be tracked so a device can be replaced before its write lifetime is exceeded.
Prior support of Diablo Technologies modules came in the form of SSDs. In this case, a disk device driver provided flash memory access to the operating system that had to manage the storage. Virtual memory support could swap DRAM contents to flash memory, but the overhead was significantly greater than with the DMX approach. It was still faster than using SATA, SAS, or even NVMe because the flash memory was plugged into the faster memory channel.
DMX takes into account write activity, keeping data that changes often in DRAM. It migrates data to flash memory as writes decrease. This is different from conventional disk caching approaches using virtual memory support, because they were designed to use the older memory/disk architecture where there is only a time penalty writing to disk.
DRAM capacities continue to rise, but flash is growing faster with stacked memory. Diablo’s approach is not applicable to all computing environments because memory latency is an issue. Still, it makes a lot of sense for memory-hungry applications, including many database and web servers. It could also be useful in a range of embedded applications, as well. Diablo Technologies is working with vendors to certify its Memory 1 and DMX software.
At this point, Linux support is available. Other platforms will likely garner support in the future such as Microsoft’s server software. It may also make sense to integrate the caching support to address external storage, as well as clustering support. In the meantime, the system is ideal for one- and two-processor systems that are memory hungry.