I am new to arm architecture. I am reading exception handling from ARM cortex-A series programming guide. I have confusion about the technical difference between precise abort and synchronous abort or imprecise abort and synchronous abort. Are they refer to the same abort or they are separated?
What is precise asynchronous abort or imprecise asynchronous abort? These terms are very confusing.
Thank you
An abort is described as synchronous if it is generated as a result of execution orattempted execution of the instruction stream, and where the return address willprovide details of the instruction that caused it.
An asynchronous abort is not generated by executing instructions, while thereturn address might not always provide details of what caused the abort.
Quoted from ARM Cortex-A series Programming Guide
A precise abort occurs on the instruction associated with the access that triggers the abort exception. An imprecise abort can occur on an instruction subsequent to the instruction associated with the access that triggers the abort exception.
Quoted from Cortex-A8 Technical Reference Manual
Now according to my understanding, asynchronous and imprecise aborts are same thing. And if they are same, then what is precise asynchronous abort?