6.8.1. Data aborts

If one or more of the data accesses was aborted by the memory system, a branch address to the data abort exception vector is also output as part of the same instruction. See Data address synchronization for details.

A data abort can occur on any or all of the data transferred. Data tracing ignores the abort status of data transferred. All transferred data for an instruction, whether aborted or not, is traced. The decompressor must ignore all data traced by an instruction that causes an abort.

For information about specifying comparator behavior when data aborts occur, see Exact matching for data address comparisons.

Imprecise data aborts, ETMv2.1 and later

ETMv2.1 and later support imprecise data aborts. The implications of this are:

Trace implications

Regular (precise) data aborts are traced as non-canceling exceptions because the instruction that causes the data abort is regarded as having executed, and the exception bit in the branch to the data abort exception vector is not set to 1.

Imprecise data aborts are traced as canceling exceptions. The exception bit in the branch to the exception vector is set to 1, and the last instruction traced before this branch is deemed not to have executed and must be ignored.

Resource implications

All resources treat an imprecise data abort in the same way as any other canceling exception, not as a data abort. For example, an imprecise data abort does not prevent a data address comparator with its Exact match bit set to 1 from matching, but prevents an instruction address comparator with its Exact match bit set to 1 from matching on the last instruction traced.

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