Patent ID: 7877630

Claim:
A circuit for tracking memory operations, where the circuit is adapted for use with a trace unit and with an execution unit, where the trace unit sequences traces for execution thereby forming a trace sequence order, where each of the traces includes a sequence of operations that includes one or more of the memory operations, where the execution unit executes the operations and has an architectural state, and where the circuit comprises: a first memory configured to cache at least some of the data accessed by the memory operations, where the memory operations being executed form a set of active memory operations, where the active memory operations have a predefined program order among themselves, where the predefined program order imposes a set of ordering constraints, and where at least some of the active memory operations access the memory in an execution order that is different from the predefined program order; a second memory configured to receive and hold a set of checkpoint entries, where each checkpoint entry is of a checkpoint location within the first memory, where each checkpoint entry is made prior to the checkpoint location being updated according to an execution of one of the operations, where each checkpoint entry includes checkpoint data indicating a state of the checkpoint location prior to the update, and where each checkpoint entry is associated with one of the traces; a first sub-circuit configured to receive a rollback request that includes an indication of a particular one of the traces, and, in response thereto, to overwrite in the first memory a set of the checkpoint locations based on the particular trace, where the set of checkpoint locations includes all checkpoint locations of all checkpoint entries associated with the particular trace, and where the set of checkpoint locations further includes all checkpoint locations of all checkpoint entries associated with any traces that are younger than the particular trace in the trace sequence order; where none of the operations of a particular one of the traces has any effect on the architectural state prior to a commitment of the particular trace, and where the particular trace becomes eligible for the commitment after the execution completes for all operations of the particular trace.