Patent ID: 7779307
Filing Date: 2010-08-17
Classification: G06F

Abstract:
1. 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 first 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 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; a first sub-circuit configured to hold a memory operation ordering entry corresponding to each one of the active memory operations, where the memory operation ordering entry includes an indication of the trace associated with the corresponding active memory operation, where the first sub-circuit is further configured to detect a violation of the ordering constraints, where the violation occurs between at least two of the active memory operations, and where the first sub-circuit is further configured to generate, in response to the detection, a memory ordering violation signal that includes an indication of at least one of the one or more traces corresponding to the at least two active memory operations involved in the violation; where each of the memory operation ordering entries corresponds to exactly one of the checkpoint entries, and where each of the checkpoint entries corresponds to exactly one of the memory operation ordering entries.