6.1. ETMv2 pipeline status signals

You can consider the pipeline status as a view of the Execute stage of the pipeline. Any side-effects of the instruction, for example an aborted load or a write to the PC, are observed immediately, before the pipeline status for the next instruction is generated. This means that the protocol is independent of the exact pipeline implementation of the ARM processor.

Each executed instruction generates a single pipeline status message on the PIPESTAT signals of the port. These are shown in Table 6.1.

Table 6.1. PIPESTAT messages

Status

Mnemonic

Meaning

Description

b0000

IE

Instruction Executed

An instruction passed its condition code test and was executed. No trace packets were generated.

Usually this status is generated by an operation that did not cause a branch. It is also generated by direct branches, that is, branches where the destination can be calculated by referring back to the code image.

b0001

DE

Instruction Executed with Data

An instruction passed its condition code test and was executed. The instruction placed one or more packets on the FIFO. The system outputs these packets from the FIFO as a TRACEPKT signal.

b0010

IN

Instruction Not Executed

An instruction reached the Execute stage of the pipeline, but failed its condition code test. No trace packets were generated.

b0011

DN

Instruction Not Executed with Data

An instruction reached the Execute stage of the pipeline, but failed its condition code test. The instruction placed one or more packets on the FIFO. The system outputs these packets from the FIFO as a TRACEPKT signal.

b0100

WT

Wait

No instruction this cycle, but there is valid data on the trace port.

If there is no packet output in a cycle, the status returned is TD, not WT.

b0101

DW

Wait with Data

No instruction this cycle, however packets have been placed on the FIFO. The system outputs these packets from the FIFO as a TRACEPKT signal.

b0110

TR

Trigger

Indicates that the trigger condition occurred, see Trigger PIPESTAT signals. The real pipeline status value is on TRACEPKT[3:0].

b0111

TD

Trace Disabled

There is no FIFO data on the TRACEPKT pins this cycle. There are two possible reasons for this:

  • The FIFO is empty. This is likely to occur after tracing is disabled until it is next enabled.

  • A TFO is being output for ETM synchronization. See Trace synchronization in ETMv2 for more information.

b1000

PTIE

Branch phantom taken plus IE

A branch was correctly predicted, taken, and executed in parallel with the instruction following, that caused an IE, DE, IN, or DN. See Branch phantom PIPESTAT signals.

b1001

PTDE

Branch phantom taken plus DE

b1010

PTIN

Branch phantom taken plus IN

b1011

PTDN

Branch phantom taken plus DN

b1100

PNIE

Branch phantom not taken plus IE

A branch was correctly predicted but not taken, because it failed its condition codes. It executed in parallel with the instruction following, that caused an IE, DE, IN, or DN. See Branch phantom PIPESTAT signals for more information.

b1101

PNDE

Branch phantom not taken plus DE

b1110

PNIN

Branch phantom not taken plus IN

b1111

PNDN

Branch phantom not taken plus DN


Only instructions that reach the Execute stage of the pipeline are traced, except for instructions canceled by certain exceptions. For more information, see Exceptions and Instruction Not Executed PIPESTAT signals.

Note

ETMv2 protocol differs from the ETMv1 protocol because ETMv2 describes what happens each cycle. With ETMv1, ID PIPESTAT only occurs on a Data instruction. With ETMv2, DE PIPESTAT can occur on any instruction (for example MOV r1,r2) if no data is loaded or stored in parallel with the instruction being executed.

Copyright © 1999-2002, 2004-2009, 2011 ARM Limited. All rights reserved.ARM IHI 0014Q
Non-ConfidentialID101211