Przerwanie międzyprocesorowe
W informatyce przerwanie międzyprocesorowe ( IPI ), znane również jako przerwanie barkowe , jest specjalnym rodzajem przerwania , za pomocą którego jeden procesor może przerwać inny procesor w systemie wieloprocesorowym , jeśli przerywający procesor wymaga działania ze strony drugiego procesora. Działania, które mogą być wymagane, obejmują:
- opróżnianie pamięci podręcznych jednostek zarządzania pamięcią , takich jak bufory translacji na innych procesorach, gdy mapowania pamięci są zmieniane przez jeden procesor;
- zatrzymanie, gdy system jest zamykany przez jeden procesor.
- Powiadom procesora, że dostępna jest praca o wyższym priorytecie.
- Powiadom podmiot przetwarzający o pracy, której nie można wykonać na wszystkich procesorach z powodu np.
- asymetryczny dostęp do kanałów I/O
- specjalne funkcje niektórych procesorów
Mechanizm
Opcja M65MP systemu OS/360 wykorzystywała funkcję Direct Control systemu S/360 do generowania przerwania na innym procesorze; na S/370 i jego następcach, w tym z/Architecture , instrukcja SIGNAL PROCESSOR zapewnia bardziej sformalizowany interfejs. Dokumentacja niektórych systemów operacyjnych IBM określa to jako stuknięcie ramieniem.
Na komputerach zgodnych z IBM PC , które używają Advanced Programmable Interrupt Controller (APIC), sygnalizacja IPI jest często wykonywana przy użyciu APIC. Kiedy procesor chce wysłać przerwanie do innego procesora, przechowuje wektor przerwania i identyfikator lokalnego APIC celu w rejestrze poleceń przerwań (ICR) własnego lokalnego APIC. Następnie przez magistralę APIC wysyłany jest komunikat do lokalnego APIC celu, który w związku z tym wysyła odpowiednie przerwanie do własnego procesora.
Przykłady
W systemie wieloprocesorowym z systemem Microsoft Windows procesor może przerywać działanie innego procesora z następujących powodów, oprócz wymienionych powyżej:
- ustaw w kolejce przerwanie DISPATCH_LEVEL, aby zaplanować wykonanie określonego wątku;
- punkt przerwania debugera jądra.
IPI otrzymują IRQL 29.
Zobacz też
Linki zewnętrzne