在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的特点。
对于exception有synchronous和asynchronous两种,它们的区分如下:
Synchronous exception types有:
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有:
其中physical SError interrupt经常用于memory system里external aborts的asynchronous错误。