APIC або вдосконалений програмований контролер переривань

У статті про переривання IRQ ми вже згадували такий термін, як APIC. Можливо, читачам хотілося б дізнатися трохи докладніше про цю технологію.

Спочатку розберемося з тим, що ж означає саме це словосполучення. Абревіатура APIC розшифровується як Advanced Programmable Interrupt Controller (вдосконалений програмований контролер переривань).

Advanced Programmable Interrupt Controller – це контролер переривань, розроблений Intel і прийшов на зміну раніше використався контролера PIC (програмованого контролера переривань).

Принцип роботи контролера

Контролер виконаний у вигляді двох роздільних пристроїв. Одна частина контролера розміщена прямо в ядрі процесора (так званий Local APIC, або LAPIC), інша (I / O APIC) – на материнській платі.

Схема роботи інтерфейсу вводу / виводу APIC через системну шину з вбудованими в процесор

У сучасних комп’ютерах LAPIC міститься в кожному процесорному ядрі, присутньому в системі. У перших реалізаціях APIC LAPIC і I / O APIC були пов’язані один з одним за допомогою спеціальної шини. У сучасних системах для зв’язку обох контролерів служить системна шина.

переваги

Основна перевага APIC в порівнянні з PIC – це підтримка багатопроцесорних систем. Та й розроблявся цей контролер переважно для систем з декількома процесорами. Вся справа в тому, що в системах, де встановлено кілька процесорних ядер, вкрай важливо підтримувати паралельність роботи всіх процесорів. А для цього потрібна була така система, яка могла б доставляти переривання одночасно всім процесорам. Тому основний обов’язок APIC – це розподіл переривань між процесорами.

У однопроцесорних системах введення APIC також виявилося корисним нововведенням. Зокрема, Advanced Programmable Interrupt Controller дозволив пристроїв PCI відмовитися від прив’язки до переривань шини ISA, що призвело до поліпшення продуктивності систем. Сам же набір стандартних переривань було розширено з доступних в шині введення / виведення ISA 16 переривань до 24.

Історія виникнення

APIC вперше з’явився в системах, заснованих на процесорах 486 DX. Спочатку його передбачалося використовувати лише в багатопроцесорних рішеннях, але згодом він з’явився і в однопроцесорних.

Процесор 486 DX покоління

У системах, заснованих на процесорах 486, а також ранніх Pentium (до архітектури P54C), контролер LAPIC був встановлений не в процесорі, а на системній платі.

Повністю підтримка контролера на рівні ОС з’явилася лише починаючи з Windows XP, в Windows 2000 була доступна лише обмежена підтримка.

Присутність в BIOS

Більшість користувачів комп’ютера може при бажанні включити або вимкнути підтримку даної технології в програмі BIOS Setup. Зазвичай для цієї мети служить опція BIOS ACPI APIC Support. Однак варто пам’ятати, що відключення підтримки APIC в BIOS зазвичай призводить до неможливості завантаження сучасних операційних систем, починаючи з Windows 2000. При цьому багато старих ОС, такі як Windows 95, 98 і ME можуть нестабільно працювати з цією опцією, оскільки вони розроблялися з урахуванням підтримки PIC.

Також варто враховувати, що підтримка APIC є складовою частиною технології ACPI, тому якщо ви вимкнете в BIOS саму підтримку ACPI, то ви не зможете використовувати і Advanced Programmable Interrupt Controller.

висновок

APIC – новий, розроблений компанією Intel програмований контролер переривань, вперше використовувався в системах, заснованих на старших моделях лінійки процесорів Pentium. Введення цього контролера дозволило поліпшити обробку переривань, як в багатопроцесорних, так і в однопроцесорних рішеннях.

Ссылка на основную публикацию