  Large persistent memories such as NVDIMM have been perceived as a disruptive
memory technology, because they can maintain the state of a system even after a
power failure and allow the system to recover quickly. However, overheads
incurred by a heavy software-stack intervention seriously negate the benefits
of such memories. First, to significantly reduce the software stack overheads,
we propose HAMS, a hardware automated Memory-over-Storage (MoS) solution.
Specifically, HAMS aggregates the capacity of NVDIMM and ultra-low latency
flash archives (ULL-Flash) into a single large memory space, which can be used
as a working or persistent memory expansion, in an OS-transparent manner. HAMS
resides in the memory controller hub and manages its MoS address pool over
conventional DDR and NVMe interfaces; it employs a simple hardware cache to
serve all the memory requests from the host MMU after mapping the storage space
of ULL-Flash to the memory space of NVDIMM. Second, to make HAMS more
energy-efficient and reliable, we propose an "advanced HAMS" which removes
unnecessary data transfers between NVDIMM and ULL-Flash after optimizing the
datapath and hardware modules of HAMS. This approach unleashes the ULL-Flash
and its NVMe controller from the storage box and directly connects the HAMS
datapath to NVDIMM over the conventional DDR4 interface. Our evaluations show
that HAMS and advanced HAMS can offer 97% and 119% higher system performance
than a software-based hybrid NVDIMM design, while consuming 41% and 45% lower
system energy, respectively.
