Что такое исключение в ARM?

Добрый день!

Я сейчас изучаю Обработка исключений AArch64.

В начале документа написано:

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

Это означает, что прерывания - исключение для ARM, верно?

Я плохо говорю по-английски, поэтому мне очень сложно читать документы.

Спасибо.

Да, просто воспринимайте прерывания как исключение.

Paul R 22.08.2018 09:26

@PaulR Спасибо. Если да, то реализовано ли прерывание как исключение в ARM? Или они просто пытаются рассматривать прерывания как своего рода исключение?

김어진 22.08.2018 09:37

Я не эксперт по ARM, но полагаю, что механизм обработки исключений является общим как для прерываний, так и для других типов исключений.

Paul R 22.08.2018 10:21

@PaulR Спасибо!

김어진 23.08.2018 02:40
Знайте свои исключения!
Знайте свои исключения!
В Java исключение - это событие, возникающее во время выполнения программы, которое нарушает нормальный ход выполнения инструкций программы. Когда...
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
3
4
892
1

Ответы 1

ARM и многие другие архитектуры рассматривают прерывания как подмножество исключений, потому что, как вы указали, все исключения могут прерывать поток выполнения программного обеспечения (не только прерывания). Подводя итог, все прерывания являются исключениями, но не все исключения являются прерываниями, учитывая, что некоторые исключения могут быть (управляемыми обработчиком исключений через таблица векторных изображений):

  • Сброс, исключение с наивысшим приоритетом
  • Неопределенная инструкция
  • Прерывания (управляемые обработчиком прерывания): FIQ, IRQ (приоритет FIQ выше, чем IRQ) или SWI
  • Прерывания, данные или предварительная выборка
  • ...

Таким образом, невыровненный доступ к данным (прерывание данных) и таймер (IRQ) запускают обработчик исключений (и останавливают «ожидаемое выполнение инструкций»), но прерывание данных не является прерыванием, а является исключением.

Это означает, что прерывания считаются подмножеством исключений не только ARM, но и в обычном режиме?

김어진 23.08.2018 02:38

Отредактировано для ясности

Jose 23.08.2018 09:20

Это известно как «унифицированная модель исключений». Целью разработки было упростить настройку и обработку прерываний и «традиционных» исключений (исключительных состояний ЦП) за счет использования одной и той же модели обработчика для всего. Это сработало, ИМО.

cooperised 23.08.2018 11:59

Хороший комментарий, я не знал об этом определении.

Jose 23.08.2018 12:06

Другие вопросы по теме