METHODS AND APPARATUS TO PERFORM ATOMIC TRANSACTIONS IN NONVOLATILE MEMORY UNDER HARDWARE TRANSACTIONAL MEMORY

A method to perform atomic transactions in non – volatile memory ( NVM ) under hardware transactional memory is disclosed . The method includes tracking an order among transaction log entries that includes arranging transaction logs in an order that is based on when corresponding transactions were executed . Moreover , the method includes , using the ordered transaction logs to recover data states of the nonvolatile memory , by identifying a first unconfirmed transaction associated with a transaction completion uncertainty event based on a corresponding one of the transaction logs including a first commit marker but not including a confirm marker , undoing first ones of the transactions in reverse time order starting at a last transaction that recorded a second commit marker , up to and including the first unconfirmed transaction that recorded the first commit marker , and redoing second ones of the transactions in forward time order from a first confirmed transaction up to but not including the first unconfirmed transaction that recorded the first commit marker.