System-directed checkpointing is enabled in otherwise standard computers through relatively straightforward augmentations to the computer's
memory controller hub.
Firmware routines executed by a control and dispatch unit that is normally part of any
memory controller hub enable it to implement any of six different checkpointing strategies: post-image checkpointing in which an image of the
system state at the time of the last checkpoint is maintained in a local
shadow memory; post-image checkpointing in which an image of the
system state at the time of the last checkpoint is maintained in a
shadow memory located in a second,
backup computer; post-image checkpointing using a bit-map memory, having one bit representing each data block in
system memory, to reduce the amount of memory-to-memory
copying required to establish a checkpoint; post-image checkpointing to a local
shadow memory using two bit map memories to enable normal
processing to continue while the shadow is being updated, post-image checkpointing to a local shadow memory using a block-state memory that eliminates the need for any memory-to-memory
copying; and local pre-image checkpointing that does not require a shadow memory. Since each of these implementations has advantages and disadvantages relative to the others and since similar mechanisms are used in the
memory controller hub for all of these options, it can be designed to support all of them with hardwired or settable status bits defining which is to be supported in a given situation.