Как процессор знает об аппаратном прерывании? - PullRequest
0 голосов
/ 30 сентября 2018

Согласно википедии,

Прерывание - это сигнал процессора, излучаемый аппаратным или программным обеспечением, указывающий на событие, требующее немедленного внимания.Прерывание предупреждает процессор о высокоприоритетном состоянии, требующем прерывания текущего кода, выполняемого процессором.Процессор отвечает, приостанавливая свои текущие действия, сохраняя свое состояние и выполняя функцию, называемую обработчиком прерываний (или подпрограммой обработки прерываний, ISR), для обработки события.

Выше написано, чтопроцессор уведомляется аппаратным контроллером.Я не могу понять процесс уведомления.

Где процессор видит наличие прерывания?Перезаписан ли указатель счетчика программы?Как процессор решает остановить выполнение текущей задачи?Где хранится сигнал прерывания, пока процессор работает над текущей задачей?

1 Ответ

0 голосов
/ 01 октября 2018

Аппаратные прерывания обычно выполняются в конце текущей выполняемой инструкции ЦП и передаются в ЦП с помощью фактического аппаратного сигнала - вывод / линия запроса прерывания на ЦП повышается / понижается.Аппаратный цикл подтверждения прерывания выполняется вместо исключения следующей инструкции, внутренняя часть которой зависит от архитектуры, чтобы определить, какой адрес кода должен начинать выполнение обработчика прерываний.Прерванный код ПК должен быть сохранен где-нибудь, и может произойти смена защитного кольца памяти.Это в основном полностью аппаратная операция, но предварительно сконфигурированная программным обеспечением.Вам следует обратиться к руководствам пользователя вашего ЦП и контроллера прерываний для получения полной информации о механизме прерываний и вашей ОС для его инициализации / конфигурации.

...