A method and mechanism for annotating a transaction
stream. A
processing unit is configured to generate
annotation transactions which are inserted into a transaction
stream. The transaction
stream, including the annotations, are subsequently observed by a trace unit for debug or other analysis. In one embodiment, a
processing unit includes a trace address register and an
annotation enable bit. The trace address register is configured to store an address corresponding to a trace unit and the enable bit is configured to indicate whether
annotation transactions are to be generated.
Annotation instructions are added to
operating system or
user code at locations where annotations are desired. In one embodiment, annotation transactions correspond to transaction types which are not unique to annotation transactions. In one embodiment, an annotation instruction includes a reference to the trace address register which contains the address of the trace unit. Upon detecting the annotation instruction, and detecting annotations are enabled, the
processing unit generates an annotation transaction addressed to the trace unit. In one embodiment, annotation transactions may be used to indicate context switches, processor mode changes, timestamps, or address translation information.