Добрый день!
Я сейчас изучаю Обработка исключений AArch64.
В начале документа написано:
Strictly speaking, an interrupt is something that interrupts the flow of software execution. However, in ARM terminology, that is actually an exception.
Это означает, что прерывания - исключение для ARM, верно?
Я плохо говорю по-английски, поэтому мне очень сложно читать документы.
Спасибо.
@PaulR Спасибо. Если да, то реализовано ли прерывание как исключение в ARM? Или они просто пытаются рассматривать прерывания как своего рода исключение?
Я не эксперт по ARM, но полагаю, что механизм обработки исключений является общим как для прерываний, так и для других типов исключений.
@PaulR Спасибо!
ARM и многие другие архитектуры рассматривают прерывания как подмножество исключений, потому что, как вы указали, все исключения могут прерывать поток выполнения программного обеспечения (не только прерывания). Подводя итог, все прерывания являются исключениями, но не все исключения являются прерываниями, учитывая, что некоторые исключения могут быть (управляемыми обработчиком исключений через таблица векторных изображений):
Таким образом, невыровненный доступ к данным (прерывание данных) и таймер (IRQ) запускают обработчик исключений (и останавливают «ожидаемое выполнение инструкций»), но прерывание данных не является прерыванием, а является исключением.
Это означает, что прерывания считаются подмножеством исключений не только ARM, но и в обычном режиме?
Отредактировано для ясности
Это известно как «унифицированная модель исключений». Целью разработки было упростить настройку и обработку прерываний и «традиционных» исключений (исключительных состояний ЦП) за счет использования одной и той же модели обработчика для всего. Это сработало, ИМО.
Хороший комментарий, я не знал об этом определении.
Да, просто воспринимайте прерывания как исключение.