Межпроцессорное прерывание

Тип сигнала прерывания, посылаемого между процессорами компьютера

В вычислительной технике межпроцессорное прерывание ( IPI ), также известное как плечевой тап , представляет собой особый тип прерывания , с помощью которого один процессор может прерывать другой процессор в многопроцессорной системе, если прерывающий процессор требует действия от другого процессора. Действия, которые могут быть запрошены, включают:

  • сброс кэшей блоков управления памятью , таких как буферы трансляции , на других процессорах, когда отображения памяти изменяются одним процессором;
  • остановка при завершении работы системы одним процессором.
  • Уведомить обработчика о наличии более приоритетной работы.
  • Уведомить обработчика о работе, которую невозможно выполнить на всех обработчиках, например, по следующим причинам:

Механизм

Опция M65MP OS /360 использовала функцию Direct Control S/360 для генерации прерывания на другом процессоре; на S/370 и его последователях, включая z/Architecture , инструкция SIGNAL PROCESSOR обеспечивает более формализованный интерфейс. В документации некоторых операционных систем IBM это называется «плечевым касанием».

На компьютерах , совместимых с IBM PC , которые используют Advanced Programmable Interrupt Controller (APIC), сигнализация IPI часто выполняется с использованием APIC. Когда CPU хочет отправить прерывание другому CPU, он сохраняет вектор прерывания и идентификатор локального APIC цели в регистре команд прерывания (ICR) своего собственного локального APIC. Затем сообщение отправляется через шину APIC в локальный APIC цели, который затем выдает соответствующее прерывание своему собственному CPU.

Примеры

В многопроцессорной системе под управлением Microsoft Windows процессор может прерывать работу другого процессора по следующим причинам, помимо перечисленных выше: [3]

  1. поставить в очередь прерывание DISPATCH_LEVEL, чтобы запланировать выполнение определенного потока;
  2. Точка останова отладчика ядра.

IPI присвоен IRQL 29. [4]

Смотрите также

Ссылки

  1. ^ "Приложение F: Расширения многопроцессорной обработки" (PDF) . Логика супервизора ввода-вывода ОС - Выпуск 21 - Номер программы 360S-CI-505 (PDF) . Логика программы. IBM . стр. 271. GY28-6616-9 . Получено 28 августа 2022 г. .
  2. ^ "AMD Technical Information Portal". docs.amd.com . Получено 2024-07-18 .
  3. ^ "Использование прерывания между процессорами". Stack Overflow . Получено 2024-07-18 .
  4. ^ Мэтт (28.04.2002). "Понимание IRQL". Архивировано из оригинала 14.10.2019 . Получено 06.12.2014 .
  • Прерывания и исключения


Retrieved from "https://en.wikipedia.org/w/index.php?title=Inter-processor_interrupt&oldid=1244730475"