Patent attributes
A system for managing software-defined persistent memory includes a CPU, a PCIe switch, one or more random access memory modules, and one or more NVMe SSDs. The PCIe switch is configured to communicate with one or more host devices. The CPU and the PCIe switch are configured to generate, for each host device, a persistent memory controller data structure that has configuration data to enable the CPU and the PCIe switch to emulate a persistent memory controller when interacting with the host device. The CPU and the PCIe switch are configured to receive instructions from the one or more host devices and persistently store write data in one or more NVMe SSDs or retrieve read data from the one or more NVMe SSDs based on the instructions from the one or more host devices, and use at least a portion of the RAM as cache memory to temporarily store at least one of the read data from the one or more NVMe SSDs or the write data intended to be persistently stored in the one or more NVMe SSDs.