1. A method for facilitating reliable execution in a computer system by keeping track of write operations to a main memory of the computer system in order to undo the write operations if necessary, comprising: receiving a write operation directed to the main memory at a memory controller, the write operation including data to be written to the main memory and a write address specifying a location in the main memory into which the data is to be written; examining a log bit associated with the write address, wherein the log bit indicates whether an existing value from the write address in main memory has been copied to a checkpoint store; if the log bit is not set, creating a new entry for the write address in the checkpoint store, retrieving the existing value from the write address in the main memory, and storing the existing value to the new entry in the checkpoint store; storing the data to be written to write address in the main memory; and periodically performing a checkpointing operation, wherein performing the checkpointing operation involves clearing all entries from the checkpoint store.