Interprocessoravbrott - Inter-processor interrupt

En interprocessoravbrott ( IPI ) är en speciell typ av avbrott genom vilken en processor kan avbryta en annan processor i ett multiprocessorsystem om avbrottsprocessorn kräver handling från den andra processorn. Åtgärder som kan begäras inkluderar:

Mekanism

Den M65MP alternativet av OS / 360 använde direktstyrning särdrag hos S / 360 för att generera ett avbrott på en annan processor; på S / 370 och dess efterföljare, inklusive z / Architecture , ger SIGNAL PROCESSOR-instruktionen ett mer formaliserat gränssnitt. Dokumentationen för vissa IBM-operativsystem hänvisar till detta som en axelklapp.

IBM PC-kompatibla datorer som använder Advanced Programmable Interrupt Controller (APIC) utförs IPI-signalering ofta med APIC. När en CPU vill skicka ett avbrott till en annan CPU lagrar den avbrottsvektorn och identifieraren för målets lokala APIC i Interrupt Command Register (ICR) för sin egen lokala APIC. Ett meddelande skickas sedan via APIC-bussen till målets lokala APIC, som därför ger ett motsvarande avbrott till sin egen CPU.

Exempel

I ett multiprocessorsystem som kör Microsoft Windows kan en processor avbryta en annan processor av följande skäl, utöver de som anges ovan:

  1. köa ett DISPATCH_LEVEL-avbrott för att schemalägga en viss tråd för körning;
  2. brytpunkt för kärnfelsökare.

IPI: er får en IRQL på 29.

Se även

Referenser

externa länkar