김어진
김어진

Reputation: 67

What is an exception in ARM?

Good day!

I am currently studying AArch64 Exception Handling.

At the beginning of the document is written:

Strictly speaking, an interrupt is something that interrupts the flow of software execution. However, in ARM terminology, that is actually an exception.

This means that interrupts are an exception for ARM, right?

I do not have fluency in English, so I have a lot of trouble reading the documents.

Thanks.

Upvotes: 4

Views: 1715

Answers (1)

Jose
Jose

Reputation: 3460

ARM and many other architectures consider the interrupts as a subset of exceptions, because as you cited, all of the exceptions are able to interrupt the flow of software execution (not only interrupts). Summarising, all interrupts are exceptions, but not all exceptions are interrupts, given that, some exceptions can be (managed by an exception handler through a vector table):

  • Reset, the highest priority exception
  • Undefined instruction
  • Interrupts (managed by an interrupt handler): FIQ, IRQ (FIQs priority is higher than IRQs) or SWI
  • Aborts, data or prefetch
  • ...

So an unaligned data access (data abort) and a timer (IRQ) will trigger the exception handler (and halt the "expected execution of the instructions"), but a data abort is not an interrupt, is an exception.

Upvotes: 4

Related Questions