Вопрос относительно прерывания и обработки прерывания - PullRequest
1 голос
/ 10 декабря 2010

Не могли бы вы дать мне знать, как аппаратное обеспечение / драйвер вызывает прерывание? и в SMP, какой процессор прерывается? Если IRQ используется несколькими устройствами, то как ядро ​​определяет, какое устройство вызвало прерывание.

/ Ganesh

Ответы [ 2 ]

1 голос
/ 11 декабря 2010

Традиционно существует фактический провод прерывания, который проходит от устройства к контроллеру прерываний, когда он высокий (или низкий, или на границе), генерируется прерывание, и ЦПУ начинает выполнять обработчик прерываний.

В современных системах прерывания, как правило, представляют собой сообщения на шине, которые отправляются контроллеру прерываний (или их может быть несколько).

С точки зрения более подробной информации вам необходимо быть более конкретным, деталиразличаются в зависимости от того, о каком аппаратном обеспечении вы говорите.

0 голосов
/ 27 июня 2012

Обработчик прерываний, также называемый ISR, является частью драйвера устройства в ОС.В ОС каждый номер irq представляет линию прерывания от контроллера прерываний.

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

Для совместного использования номеров прерываний в аппаратных средствах, таких как GPIO в ARM, контроллер прерываний или устройство должны предоставлять дополнительный регистр для реального номера прерывания.Кроме того, ISR должен проконсультироваться с этим регистром на предмет реального номера IRQ.

...