Emerging coherent and non-coherent device interfaces are changing how systems software accesses persistent memory, remote memory, and I/O devices. Cache-coherent accelerators can interpose on persistent memory operations without putting software back on the critical path, while efficient ordering mechanisms can keep CPU-to-device communication fast even when the interconnect itself is non-coherent.
The resulting systems combine accelerator-managed crash consistency, support for remote memory access, and memory-ordering mechanisms for fast I/O paths.