APIC

APIC (англ. Advanced Programmable Interrupt Controller) — улучшенный программируемый контроллер прерываний. Он был добавлен в процессоре Pentium.

Описание

APIC использовался в многоядерных/многопроцессорных системах, начиная с Intel Pentium (ядро P54). Начиная с этого процессора, каждый следующий снабжался интегрированным Local APIC-ом.

Преимущества расширенного контроллера прерываний:

  • возможность реализации межпроцессорных прерываний — сигналов от одного процессора другому
  • поддержка до 256 входов IRQ, в отличие от 8-16 на классической IBM PC
  • крайне быстрый доступ к регистрам текущего приоритета прерывания и подтверждения прерывания. Контроллер прерываний, совместимый с IBM PC, исполнялся как устройство шины ISA с очень медленным доступом к его регистрам (порт 0x20).

APIC поддерживался в ОС Windows, начиная с Windows NT 4.0.

В настоящий момент наблюдается тенденция к отказу от IO APIC, как и проводников IRQ, и переходу на Message Signaled Interrupts.

APIC состоит из двух модулей: англ. local APIC и англ. IO APIC:

  • LOCAL APIC — располагается в ядре процессора, если система многоядерная — в каждом ядре.
  • I/O APIC — контроллер, расположенный на системной плате, обычно как часть микросхем обрамления процессора (например, микросхема Intel 82489DX).

Проводники IRQ от устройств подсоединены к IO APIC. Для общения local APIС и IO APIC, а также local APIC различных ядер друг с другом, используется FSB шина многопроцессорной системы, также используемая для соединения процессоров и контроллера памяти. Варианты использования передней шины для общения APIC между собой — отдельные проводники, или же специальные типы транзакций — менялись от поколения к поколению процессоров Pentium и Core.

Необходимость в новом контроллере, способном заменить программируемый контроллер прерываний (PIC), возникла с появлением следующих проблем:

  • Появление многоядерных систем, требующих распределения прерываний по ядрам.
  • Резкий рост числа подключенных устройств, превышающее количество свободных IRQ процессора.
  • Скорость передачи данных устройств, превышающая скорость работы PIC.

Современные IOAPIC поддерживают 24 аппаратных прерывания, хотя количество линий может достигать до 256 линий IRQ.

Расширенный контроллер прерываний впервые начал применяться на двухпроцессорных системных платах, из-за более сложной обработки прерываний от различных устройств (не совсем очевидно, какой из процессоров должен реагировать на прерывание). Затем расширенный контроллер прерываний начал использоваться и на однопроцессорных системах — устройствам становится доступно большее число прерываний (24 вместо 16), плюс, несколько плат расширения могут разделять между собой общее прерывание.

См. также

Литература

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.