Міжпроцесорне перериванняМіжпроцесорне переривання (англ. inter-processor interrupt, IPI) — спеціальний тип переривання, за допомогою якого один процесор може надсилати спеціальні повідомлення іншим процесорам багатопроцесорної обчислювальної системи. Прикладами таких повідомлень або запитів можуть бути
ІсторіяСпеціальна версія M65MP операційної системи OS/360 використовувала так зване «пряме керування» (англ. Direct Control feature) машини IBM System/360, щоб згенерувати переривання у іншому процесорі.[1] Більш формалізований інтерфейс у вигляді спеціальної інструкції Архітектура x86У IBM PC-сумісних комп'ютерах, що мають контролер переривань APIC, надсилання міжпроцесорних переривань часто здійснюється саме за допомогою APIC. Коли процесорові треба надіслати переривання до іншого процесора, вектор переривань і ідентифікатор LAPIC цільового процесора програмується у спеціальний регістр ICR (англ. Interrupt Command Register) «свого» контролера APIC. Після цього «свій» APIC надсилає повідомлення цільовому контролерові APIC, який викликає переривання потрібного процесора чи ядра. Архітектура ARMУ сучасних процесорах архітектури ARM надсилання міжпроцесорних переривань здійснюється за допомогою контролера переривань GIC.[3]
Зокрема, механізм IPI потрібен для запуску процесорних ядер: після початкового запуску системи команди виконує лише одне «основне» ядро (англ. primary core); всі інші ядра знаходяться у стані «чекання на переривання» (у цей стан ядро переводиться інструкцією Приклади використання у операційних системахУ багатопроцесорній системі під керуванням Microsoft Windows процесор може переривати інший процесор з наступних причин (на додачу до вже наведених вище):
У Microsoft Windows міжпроцесорні переривання мають IRQL 29.[4] Див. такожДжерела
|
Portal di Ensiklopedia Dunia