Биты регистра обслуживания контроллера прерываний, когда происходит немаскируемое прерывание
У меня есть следующий вопрос (относительно x86
архитектура):
Что происходит, когда немаскируемое прерывание (например, NMI
) прерывает маскируемое прерывание, которое выполняется? Сохраняется ли соответствующий ISR (регистр обслуживания) прерванного прерывания в регистре ISR контроллера прерываний, когда подается маскируемое прерывание или все биты в регистре обслуживания очищаются?
Заранее спасибо.
2 ответа
В первоначальной конструкции аппаратного обеспечения IBM PC сигнал NMI никак не затрагивал контроллер прерываний, поэтому он не оказывал бы влияния на регистр обслуживания. Хотя прошло около 30 лет, я думаю, что это все еще так; современные производители микросхем более или менее связывают свои руки из-за этих основных типов поведения.
ISR необходимо очистить в обработчике прерываний, отправив команду EOI (конец прерывания) контроллеру прерываний.