ARM技术论坛
直播中

马祥

7年用户 774经验值
私信 关注
[经验]

ARMv8 architecture里的Memory aborts简析

  在AArch64 Virtual Memory System Architecture中,有以下几种机制会导致PE在访问memory失败时产生exceptions。
  Debug exception: An exception caused by the debug configuration.
  Alignment fault: An Alignment fault is generated if the address used for a memory access does not have the required alignment for the operation.
  MMU fault: An MMU fault is a fault generated by the fault checking sequence for the current translation regime.
  External abort: Any memory system fault other than a Debug exception, an Alignment fault, or an MMU fault.
  这些机制统称为aborts。
  当1笔access产生abort时,会使用Fault Address Registers (FARs)和Exception Syndrome Registers (ESRs)去记录context information,方便software debug。
  以下列出了这些aborts的特点。
2.jpg
  对于exception有synchronous和asynchronous两种,它们的区分如下:
2.jpg
  Synchronous exception types有:
2.jpg
2.jpg
  Instruction alignment fault应该报PC alignment fault exception。Data access alignment fault应该报Data Abort exception。SP misaligned fault报SP alignment fault exception。instruction fetch的aborts报instruction abort exceptions。
  Asynchronous exception types有:
2.jpg
  其中physical SError interrupt经常用于memory system里external aborts的asynchronous错误。



原作者:谷公子

更多回帖

发帖
×
20
完善资料,
赚取积分