  In the last decade, academic and industrial researchers have focused on
persistent memory because of the development of the first practical product,
Intel Optane. One of the main challenges of persistent memory programming is to
guarantee consistent durability over separate memory addresses, and Wang et al.
proposed a persistent multi-word compare-and-swap (PMwCAS) algorithm to solve
this problem. However, their algorithm contains redundant compare-and-swap
(CAS) and cache flush instructions and does not achieve sufficient performance
on many-core CPUs. This paper proposes a new algorithm to improve performance
on many-core CPUs by removing useless CAS/flush instructions from PMwCAS
operations. We also exclude dirty flags, which help ensure consistent
durability in the original algorithm, from our algorithm using PMwCAS
descriptors as write-ahead logs. Experimental results show that the proposed
method is up to ten times faster than the original algorithm and suggests
several productive uses of PMwCAS operations.
