Timestamps provide information on the timing of event generation with respect to their visibility at a trace output port. A timestamp packet can be generated and appended to a single event packet, or a stream of back-to-back packets where multiple events generate a packet stream with no idle time. The timestamp status information is merged with the timestamp packets to indicate if the timestamp packet transfer is delayed by the FIFO, or if there is a delay in the associated event packet transfer to the output FIFO. The timestamp count continues until it can be sampled and delivered in a packet to the FIFO.
The ARMv7 processor can implement either or both of the following types of timestamps:
Local timestamps provide delta timestamp values, which means that each local timestamp indicates the elapsed time since generating the previous local timestamp. The ITM generates local timestamps from timestamp clock in the ITM block. Each time ITM generates a local timestamp packet, it resets this clock to provide the delta functionality.
Global timestamps provide absolute timestamp values based on a system global timestamp clock. They provide synchronization between different trace sources in the system.