One embodiment of the present invention provides a system that facilitates
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. This system operates by receiving a write
operation directed to the main memory at a memory controller, wherein the
write operation includes 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. Next, the system examines 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, the system creates a new entry for the write address
in the checkpoint store; retrieves an existing value from the write
address in the main memory; and stores the existing value to the new entry
in the checkpoint store. The system then stores the data to be written to
write address in the main memory. The system also periodically performs a
checkpointing operation, which clears all entries from the checkpoint
store.
Μια ενσωμάτωση της παρούσας εφεύρεσης παρέχει ένα σύστημα που διευκολύνει την αξιόπιστη εκτέλεση σε ένα συγκρότημα ηλεκτρονικών υπολογιστών με την παρακολούθηση γράφει ότι οι διαδικασίες σε μια κύρια μνήμη του συγκροτήματος ηλεκτρονικών υπολογιστών προκειμένου να ανατρεφθεί γράφουν τις διαδικασίες εάν είναι απαραίτητο. Αυτό το σύστημα λειτουργεί με τη λήψη γράφει τη λειτουργία που κατευθύνεται στην κύρια μνήμη σε έναν ελεγκτή μνήμης, όπου γράψτε ότι η λειτουργία περιλαμβάνει τα στοιχεία που γράφονται στην κύρια μνήμη και γράψτε τη διεύθυνση που διευκρινίζει μια θέση στην κύρια μνήμη στην οποία το στοιχείο πρόκειται να γραφτεί. Έπειτα, το σύστημα εξετάζει ένα κομμάτι κούτσουρων που συνδέεται με γράφει τη διεύθυνση, όπου το κομμάτι κούτσουρων δείχνει εάν μια υπάρχουσα αξία από γράφει ότι η διεύθυνση στην κύρια μνήμη έχει αντιγραφεί σε ένα κατάστημα σημείων ελέγχου. Εάν το κομμάτι κούτσουρων δεν είναι θέστε, το σύστημα δημιουργεί μια νέα είσοδο για γράφει τη διεύθυνση στο κατάστημα σημείων ελέγχου ανακτά μια υπάρχουσα αξία από γράφει τη διεύθυνση στην κύρια μνήμη και καταστήματα η υπάρχουσα αξία στη νέα είσοδο στο κατάστημα σημείων ελέγχου. Το σύστημα αποθηκεύει έπειτα τα στοιχεία που γράφονται για να γράψει τη διεύθυνση στην κύρια μνήμη. Το σύστημα επίσης περιοδικά εκτελεί μια checkpointing λειτουργία, η οποία καθαρίζει όλες τις καταχωρήσεις από το κατάστημα σημείων ελέγχου.