Multiprocessing: Funktion & Besonderheiten

Interrupt-Steuerung via APIC

Die Steuerung von Interrupts in einem SMP-System geschieht über sogenannte APICs (Advanced Programmable Interrupt Controller). Sie gehören neben den CPUs zu den Hauptbestandteilen einer Multiprozessor-Plattform. APICs sorgen dabei für eine dynamische Verteilung von Interrupts auf die Einzelprozessoren. So wird eine ausgeglichene Interrupt-Verteilung im System erreicht.

In einem SMP-System gibt es zwei APIC-Typen. Zum einen die lokalen APICs, die in den jeweiligen CPUs integriert sind und zum anderen die so genannten I/O-APICs. Letztere kümmern sich um die externen Interrupts von Peripheriebausteinen. Sie befinden sich in der Regel in einem SMP-fähigen Chipsatz oder einem extra Baustein. Die lokalen APICs leiten unter anderem Interprozessor-Interrupts weiter, beispielsweise wenn ein Prozessor einen Interrupt an einen anderen sendet. Dies ist beispielsweise für Steuersignale von Vorteil.

Die APICs kommunizieren untereinander über den so genannten ICC-Bus (Interrupt Controller Communication) und teilen darüber die anstehende Controller-Funktionen auf. Da alle Interrupt-Botschaften über den ICC-Bus laufen wird der Speicherbus nicht zusätzlich belastet. Auch kann ein Prozessor über diese Verbindung seine Interrupt-Abarbeitung mit einer anderen CPU teilen, was zu einer gleichmäßigen Lastverteilung führt.