Организация вычислительных систем



         

Расширенный программируемый контроллер прерываний (APIC) - часть 2


Источники 1, 4, 5, 6, 7 считаются локальными источниками прерываний и обслуживаются специальным набором регистров APIC, называемым таблицей локальных векторов (LVT - local vector table). Два других источника обрабатываются APIC через механизм сообщений. Эти сообщения в Pentium и P6 передаются по выделенной трехпроводной шине APIC (рис. 13.2). В Pentium 4 для передачи APIC-сообщений используется системная шина, поэтому контроллер прерываний может быть подключен непосредственно к обычному системному интерфейсу (например, PCI).

Взаимодействие встроенного APIC и внешнего контроллера прерываний

Рис. 13.2.  Взаимодействие встроенного APIC и внешнего контроллера прерываний

Структура встроенного APIC является архитектурным подмножеством микросхемы контроллера прерываний Intel 82489DX. Регистры APIC отображаются на 4-Кбайтный блок оперативной памяти по адресу FEE00000h (может быть изменен через MSR регистры процессора).

Наличие встроенного APIC в процессоре обнаруживается при помощи инструкции CPUID(1). После RESET встроенный APIC включен, однако впоследствии он может быть отключен, тогда процессор будет работать с прерываниями как Intel-386/486 (линии LINT0 и LINT1 будут использоваться как NMI# и INTR#, к которым может быть подключен контроллер прерываний типа 8259A).

Таблица локальных векторов (LVT) состоит из шести 32-битных регистров (в P6 - 5, в Pentium - 4):

  • регистр вектора прерывания от таймера;
  • регистр вектора прерывания от термодатчика (только в Pentium 4);
  • регистр вектора прерывания от монитора производительности (P6 и Pentium 4);
  • регистр вектора прерывания LINT0;
  • регистр вектора прерывания LINT1;
  • регистр вектора прерывания ошибки.

Значения в этих регистрах определяют:

  • номер вектора прерывания;
  • тип прерывания (fixed - с указанным вектором, SMI - переход в режим системного управления, NMI - немаскируемое, INIT - сброс, ExtINT - внешнее: процессор генерирует цикл INTA и ожидает номер вектора прерывания от внешнего контроллера);
  • активный уровень сигнала (низкий или высокий) или триггерный режим (прерывание по фронту или по уровню);
  • маску прерывания (прерывание может быть замаскировано).

Эти регистры также отражают состояние прерывания (доставляется ли это прерывание ядру процессора в данный момент).

Кроме того, APIC содержит регистры управления таймером APIC, регистр версии, регистр ошибки, регистры, связанные с обслуживанием прерываний (регистр приоритета, регистр запроса IRR, регистр обслуживания ISR), и регистры, связанные с передачей и приемом IPI.




Содержание  Назад  Вперед