кстати, вопрос в тему: каким образом идет передача номера вектора от PIC к CPU? если брать LPC в ICH8, который инкапсулирует PIC, то он имеет доступ только к части системной шины (LINT0#, INIT#, ...) прямого доступа к адресной шине и шине данных у ICH8 нет с APIC все понятно: LPC генерирует цикл записи на шине PCI, приемником является MCH, он генерирует IMT на системной шине
rei3er APIC это и есть PIC. Вернее то что раньше было PIC теперь I/O APIC он передает данные на системнкю шину. На этой шине висит Local APIC он уже в процессоре и он прерывает работу процессора. Все усложнилось. Как нету? Еще как есть. Читай подробнее 5.8.1.3 Hardware/Software Interrupt Sequence Там используется acknowledge cycle.
нет LPC инкапсулирует как PIC (MASTER/SLAVE), так и I/O APIC выход MASTER PIC каскадно подключен ко входу INTIN0 I/O APIC 0-ой элемент RT, соответствующий INTIN0, реализует Virtual Wire режим (Delivery Mode = ExtINT) т. к LPC имеет доступ к LINT0# на системной шине, а I/O APIC - часть LPC, генерация сигнала любым PIC приводит к генерации сигнала LINT0# на системной шине обычно элемент LVT0 для всех не BSP Local APIC замаскирован (семантика обычного PIC-режима) BSP Local APIC получает входной сигнал LINT0# и проверяет Delivery Mode в LVT0 для реализации Virtual Wire режима обычно Delivery Mode = ExtINT в этом случае идет генерация сигнала на внутренний вход CPU, соответствующий ExtINT CPU отвечает генерацией Acknowledge Cycle на системной шине Host Bridge на MCH получает сигнал и преобразует его в Acknowledge Cycle на PCI шине единственным получателем сигнала данного типа является LPC LPC генерирует 2 INTA# сигнала для PIC вот теперь вопрос: каким образом передается номер вектора после получения PIC второго INTA# сигнала? нет читай спецификацию на ICH8 доступ к A[35:0]# и D[63:0]# есть только у MCH MCH соединен с ICH8 через DMI в случае I/O APIC все понятно: обычный цикл записи на PCI шине с фиксированными 12-ю старшими разрядами адреса (0xFEE) PCI-to-PCI bridge (имеющий доступ к DMI) ретранслирует цикл записи через DMI на MCH Host Bridge гененерирует IMT (Interrupt Message Transaction) генерация идет до передачи вектора
rei3er Процессор генерирует interrupt acknowledge cycle он передается на шину PCI. Далее этот запрос должен быть доставлен контроллеру прерываний. ICH8 разибвает на два сигнала которые сопровождаются INTA#. При перым замораживаются состояния прерываний. При втором отпровляется вектор прерывания как данные на шину данных. Эти данные должны передаться на шину PCI по шине данных (все еще выставлен interrupt acknowledge cycle). Спецификацию PCI посмотри. А вот далее эти данные должны быть доставленны процессору.