5.7.1. PIPESTAT signals indicating data accesses in the pipeline

The ETM generates specific pipeline status encodings to indicate which load and store instructions caused packets to be inserted into the trace stream. A load/store operation can be signaled in four possible ways, depending on the state of ViewData and whether the instruction causes a branch. The possible signals are:

IE (Instruction Executed)

An instruction has executed and one of the following applied:

  • the instruction was not a load/store operation

  • the instruction was a load/store operation but the data access was not placed into the trace stream because ViewData was inactive.

Instruction execute means that the instruction at that address has reached the Execute stage of the pipeline and includes instructions that fail their condition codes. This is slightly different from the pipeline status codes that indicate instruction executed and condition code test passed (these codes have the letter E, standing for Executed, in their mnemonics), and instruction executed and condition code failed (these codes have the letter N, standing for Not Executed, in their mnemonics).

If the instruction reaches execution but fails its condition code test, a pipeline status code or P-header is generated that includes the letter N in its mnemonic, to indicate an instruction not executed. ETMv1.2 introduced the facility to control trace using the result of the condition code test whenever an instruction is executed.

ID (Instruction Executed with Data)

A load/store instruction has executed causing a data access, and ViewData was active when the access occurred.

BD (Branch Executed with Data)

This special case is similar to Instruction Executed with Data, except that the instruction also caused a write to the PC. There are two possible reasons for this:

  • there was an explicit load operation to the PC

  • the load/store was aborted.

Both of these occurrences cause the processor to branch, and therefore the trace packets must include a branch destination address in addition to any packets associated with the data transfer.

BE (Branch Executed)

An instruction has executed and one of the following applied:

  • the instruction was not a load/store operation but caused a write to the PC

  • the instruction was a load to the PC and ViewData was not active when the access occurred

  • an exception occurred.

This PIPESTAT signal is used for all indirect branches. See Instruction trace for more details.

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