Аппаратные прерывания IRQ

Аппаратные-прерывания-IRQ

IRQ (аппаратные запросы на прерывания) используются различными компонентами ПК для сообщения процессору о срочной необходимости обработать запрос. Данную процедуру можно сравнить с поднятием руки школьником для привлечения внимания преподавателя.

Каналы прерывания – физические проводники (дорожки) на материнской плате с соответствующими разъемами. После получения очередного IRQ-запроса компьютер запускает специальную процедуру, которая начинается с сохранения в стек текущего содержимого регистров процессора. Далее осуществляется обращение к специальной таблице векторов прерываний, которая хранит перечень адресов памяти, которые соответствуют конкретным каналам прерываний. Номер полученного прерывания определяет микропрограмму, запускаемую для данного канала.

Содержимое таблицы векторов указывает адреса памяти, используемые для постоянного хранения программ-драйверов для корректного обслуживания платы, приславшей запрос. Например, для сетевой платы указывается место хранения сетевых драйверов; контролеру жесткого диска указывается программный код BIOS, необходимый для обслуживания встроенного контролера.

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

Прерывания имеют приоритеты: наибольший приоритет имеют прерывания с наименьшим номером. Если новый IRQ имеет более высокий приоритет, он может прервать обработку текущего прерывания.

Материнская плата не способна определять, к какому разъему подключена плата, приславшая запрос на прерывание (при использовании шины ISA), поэтому могут возникать неопределенные ситуации, если несколько плат настроены на работу через один канал. Чтобы избежать фатальных ошибок, в настройках один канал отдается одному устройству.

Шина PCI изначально подразумевает возможность общего использования одного прерывания. Фактически, все устройства на шине PCI используют единое прерывание с индексом A – оно закреплено за самой шиной.

Конфликты, возникающие между прерываниями для ISA и PCI, нередко возникали в ранних поколениях ПК и доставляли немало проблем. Даже появление ОС Windows 95 с технологией Plug and Play не смогло устранить проблему конфликта прерываний.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.