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
Hi Saud,
I have moved your question to the Processors community as they may be best placed to answer this.
ThanksRyan
To my understanding, precise-abort means what the English word implies: The core can tell you precisely where the abort happened in the code.An asynchronous precise abort is an interrupt. After the interrupt you can continue at the exact place where you have been interrupted.
An synchronous precise abort is a SVC instruction.
An imprecise abort might be one from the memory system where the core cannot know (because of the pipe-line) which instruction cause the abort.
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?