Судя по очень небольшим знаниям, каждое PCI
устройство имеет 4 контакта прерывания. Пины от множества различных PCI
устройств на материнской плате (встроенные или внешние устройства) направляются на IO-APIC
(усовершенствованный программируемый контроллер прерываний) через программируемый маршрутизатор прерываний. Так что это была топология.
Насколько я знаю, когда происходит прерывание, IO-APIC
будет сигнализироваться, и он поднимет INT на CPU, затем произойдет волшебство, и CPU начнет выполнять ISR (подпрограмма обслуживания прерываний).
Что это за магия?
Какая связь должна происходить между процессором и IO-APIC
для обработки INT?
Я имею в виду, как процессор получил вектор прерывания (это специальный цикл шины PCI
?) И что произойдет, если IRQ
будет использоваться многими устройствами (в качестве примера платформы для x86 Linux
)?
1 ответ
0
Вектор прерывания уже сохранен в таблице векторов прерываний, поэтому ЦПУ не нужно получать его от периферийного устройства. Если прерывание связано с IO-APIC или аналогичным устройством, которое может вызывать прерывания по разным причинам, обработчик прерываний запросит это устройство, чтобы выяснить, почему оно вызвало прерывание. Для этого не существует специального цикла шины, точно так же, как процессор будет получать информацию от одного из своих периферийных устройств.