Межпроцессорное прерывание
Эта статья нуждается в дополнительных цитатах для проверки . ( декабрь 2014 г. ) |
В вычислительной технике межпроцессорное прерывание ( IPI ), также известное как плечо , представляет собой особый тип прерывания , с помощью которого один процессор может прервать другой процессор в многопроцессорной системе, если прерывающий процессор требует действия от другого процессора. Действия, которые могут быть запрошены, включают:
- очистка кэшей модулей управления памятью , таких как буферы резервной трансляции , на других процессорах, когда сопоставления памяти изменяются одним процессором;
- остановка, когда система выключается одним процессором.
- Сообщите обработчику, что доступна работа с более высоким приоритетом.
- Уведомить процессор о работе, которую невозможно выполнить на всех процессорах, например, из-за:
- асимметричный доступ к каналам ввода-вывода [ 1 ]
- специальные функции на некоторых процессорах [ 2 ]
Механизм
[ редактировать ]Опция M65MP OS /360 использовала функцию прямого управления S/360 для генерации прерывания на другом процессоре; в S/370 и его преемниках, включая z/Architecture , инструкция SIGNAL PROCESSOR обеспечивает более формализованный интерфейс. В документации некоторых операционных систем IBM это называется «похлопыванием по плечу».
На компьютерах , совместимых с IBM PC , которые используют усовершенствованный программируемый контроллер прерываний (APIC), передача сигналов IPI часто выполняется с использованием APIC. Когда ЦП хочет отправить прерывание другому ЦП, он сохраняет вектор прерывания и идентификатор локального APIC цели в регистре команд прерывания (ICR) своего собственного локального APIC. Затем сообщение отправляется через шину APIC на локальный APIC цели, который затем выдает соответствующее прерывание своему собственному ЦП.
Примеры
[ редактировать ]В многопроцессорной системе под управлением Microsoft Windows процессор может прерывать работу другого процессора по следующим причинам, помимо перечисленных выше: [ 3 ]
- поставить в очередь прерывание DISPATCH_LEVEL, чтобы запланировать выполнение определенного потока;
- Точка останова отладчика ядра.
IPI присваивается IRQL 29. [ 4 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Приложение F: Расширения многопроцессорности» (PDF) . Логика супервизора ввода-вывода ОС — выпуск 21 — номер программы 360S-CI-505 (PDF) . Программная логика. ИБМ . п. 271. GY28-6616-9 . Проверено 28 августа 2022 г.
- ^ «Портал технической информации AMD» . docs.amd.com . Проверено 18 июля 2024 г.
- ^ «Использование межпроцессорных прерываний» . Переполнение стека . Проверено 18 июля 2024 г.
- ^ Мэтт (28 апреля 2002 г.). «Понимание IRQL» . Проверено 6 декабря 2014 г.
Внешние ссылки
[ редактировать ]