Persistent Memory (PM) technologies enable program recovery to a consistent state in a case of failure. To ensure this crash-consistent behavior, programs need to enforce persist ordering by employing mechanisms, such as logging and checkpointing, which introduce additional data movement. The emerging near-data processing (NDP) architec-tures can effectively reduce this data movement overhead. In this work we propose NearPM, a near data processor that supports accelerable primitives in crash consistent programs. Using these primitives NearPM accelerate commonly used crash consistency mechanisms logging, checkpointing, and shadow-paging. NearPM further reduces the synchronization overheads between the NDP and the CPU to guarantee persistent ordering by moving ordering handling near memory. We ensures a correct persist ordering between CPU and NDP devices, as well as among multiple NDP devices with Partitioned Persist Ordering (PPO). We prototype NearPM on an FPGA platform.1 NearPM executes data-intensive operations in crash consistency mechanisms with correct ordering guarantees while the rest of the program runs on the CPU. We evaluate nine PM workloads, where each work load supports three crash consistency mechanisms -logging, checkpointing, and shadow paging. Overall, NearPM achieves 4.3-9.8X speedup in the NDP-offloaded operations and 1.22-1.35X speedup in end-to-end execution.
翻译:持久内存(PM)技术使得程序在发生故障时能够恢复到一致状态。为确保这种崩溃一致性行为,程序需通过日志记录、检查点等机制强制持久化排序,从而引入额外的数据移动。新兴的近数据处理(NDP)架构可有效降低此类数据移动开销。本文提出NearPM——一种支持崩溃一致性程序中可加速原语的近数据处理器。利用这些原语,NearPM加速了日志记录、检查点及影子分页等常用崩溃一致性机制。通过将排序处理迁移至内存附近,NearPM进一步降低了NDP与CPU间的同步开销,以保障持久化排序。我们通过分区持久化排序(PPO)确保CPU与NDP设备之间、以及多个NDP设备间的正确持久化排序。我们在FPGA平台上对NearPM进行了原型验证。在程序中其余部分由CPU执行的同时,NearPM能够以正确的排序保证执行崩溃一致性机制中的数据密集型操作。我们评估了九种PM工作负载,每种负载均支持三种崩溃一致性机制——日志记录、检查点及影子分页。总体而言,NearPM在NDP卸载操作上实现了4.3-9.8倍加速,在端到端执行上实现了1.22-1.35倍加速。