Оглавление [Скрыть]
Усовершенствованный программируемый контроллер прерываний
-
История и архитектура APIC
- APIC (Advanced Programmable Interrupt Controller) — семейство программируемых контроллеров прерываний Intel.
- APIC заменил PIC (Programmable Interrupt Controller) для создания многопроцессорных систем.
- APIC состоит из локального компонента (LAPIC) и APIC ввода-вывода.
-
Первые реализации APIC
- Первый APIC, 82489DX, был дискретным чипом, функционирующим как LAPIC и APIC ввода-вывода.
- 82489DX использовался в симметричных многопроцессорных системах на базе процессоров Intel 486 и Pentium.
- Начиная с P54C, LAPIC интегрирован в кремниевую оболочку процессоров Intel.
-
Интегрированные локальные APICs
- LAPIC управляет внешними прерываниями для процессора в SMP-системе.
- LAPIC поддерживает до 224 векторов прерываний и может генерировать межпроцессорные прерывания.
- Все процессоры Intel с микроархитектурой P5 и выше имеют встроенный LAPIC.
-
Таймер APIC
- LAPIC обеспечивает таймер высокого разрешения, используемый в Windows и Linux.
- Таймер APIC подвергался критике за низкое разрешение, но используется в Windows и Linux.
-
Точки доступа ввода-вывода
- Точки доступа ввода-вывода маршрутизируют прерывания от периферийных шин на LAPIC.
- Ранние интерфейсы ввода-вывода поддерживали 16 линий прерывания, более поздние — 24.
-
Варианты и улучшения
- xAPIC и x2APIC — последующие поколения APIC с улучшенными характеристиками.
- x2APIC поддерживает до 232 процессоров и имеет улучшенный интерфейс.
- APICv — поддержка аппаратной виртуализации для снижения накладных расходов на прерывания.
-
Проблемы и конкуренция
- Известны ошибки в реализациях APIC, особенно в подключении 8254.
- AMD и Cyrix предложили OpenPIC, но он не получил широкого распространения.
- IBM разработала MPIC на основе спецификаций OpenPIC для PowerPC.