This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Asynchrous External Data Abort in ARMv7

hi, experts:

以Cortex-A7 CPU为例:

如果在程序执行过程中:发生了一个Asynchrous External Data Abort,它会很快进入Data Abort handler吗?

(Synchrous Data Abort会立即进入Data Abort handler.)

不清楚Asynchrous external data abort,什么时候才会进入Data abort handler!

best wishes,

Parents
  • hi,

    应该是很快就进入Data Abort handler的,

    所谓ansynchrous 是指和当前执行的指令没有关系,例如一个写已经写到buffer里面了,对于cpu来讲已经完成了,但是后来从buffer里往downstream写的时候出错了,这个就是async的data abort了。

    如果是读,cpu的load指令会一直hold在那里,直到数据回来,这个时候的出错就是sync的abort了,因为cpu知道哪个指令错了。

    所有的中断处理都是要求及时处理的,至于在哪个cycle进入handler,取决于cpu的microarchi和cpu所处的状态,例如在关中断时就需要等着。

    async和sync的一个区别在于ln寄存器记录的值是否是handler处理完之后可以恢复执行的点。

Reply
  • hi,

    应该是很快就进入Data Abort handler的,

    所谓ansynchrous 是指和当前执行的指令没有关系,例如一个写已经写到buffer里面了,对于cpu来讲已经完成了,但是后来从buffer里往downstream写的时候出错了,这个就是async的data abort了。

    如果是读,cpu的load指令会一直hold在那里,直到数据回来,这个时候的出错就是sync的abort了,因为cpu知道哪个指令错了。

    所有的中断处理都是要求及时处理的,至于在哪个cycle进入handler,取决于cpu的microarchi和cpu所处的状态,例如在关中断时就需要等着。

    async和sync的一个区别在于ln寄存器记录的值是否是handler处理完之后可以恢复执行的点。

Children