Patent ID: 8370576

Claim:
A circuit for tracking memory operations in an out-of-order and speculative processor, where the circuit is adapted for use with a trace unit and with an execution unit of the processor, 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 zero 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, where at least some of the active memory operations access the memory in an execution order that is different from the predefined program order, and where the first memory is partitioned into a number N of banks; a second memory configured to receive and hold a set of checkpoint entries, where each checkpoint entry is associated with one of the traces, where each checkpoint entry is of a checkpoint location within the first memory, where each checkpoint entry includes checkpoint data indicating a state of the checkpoint location within the first memory prior to an update of the checkpoint location, and where the update results from executing one of the active memory operations, where the second memory is partitioned into the number N of sub-units, and where each of the sub-units forms a memory unit with a corresponding one of the banks; a first sub-circuit configured to receive a rollback request, and, in response thereto, to overwrite in the first memory a set of the checkpoint locations, where each one of the memory units is rolled back independently of the other memory units, and each one is rolled back concurrently with the other memory units until such time as each one completes rollback.