Podręcznik

8. Przerwania zgłaszane komunikatem

Już magistrala PCI (standard PCI 2.2) umożliwiała alternatywną metodę zgłaszania przerwań. Zamiast wystawiania sygnału na odpowiedni pin układu, przerwania są zgłaszane w pełni programowo. Są to przerwania zgłaszane komunikatem MSI (ang. Message Signaled Interrupts). Metoda ta polega na zapisie odpowiedniego słowa w przestrzeni adresowej magistrali PCI (czyli trzeba wpisać odpowiednią informację do przeznaczonego do tego celu rejestru). Metoda ta jest bardzo wygodna. Przede wszystkim znika ograniczenie liczby przerwań do 255 (liczba wpisów w tablicy przerwań). Poza tym każdy blok funkcjonalny urządzenia PCI może mieć własny sygnał przerwania, czyli możemy przeznaczyć wiele przerwań dla jednego urządzenia. W tym przypadku nie jest konieczne dzielenie przerwań.

W momencie wprowadzenia magistrali PCI Express (PCI 3.0) przerwania zgłaszane komunikatem stały się niejako standardem. System został też rozszerzony (teraz nazywa się MSI-X). W przypadku PCI 2.2 komunikat składa się z adresu i 16-bitowej wartości. W przypadku PCI 3.0 komunikat składa się z adresu i 32-bitowej wartości. Zakres możliwych do przydzielenia przerwań jest bardzo duży (pojedyncze urządzenie MSI-X może użyć maksymalnie 2048 MSI),  przerwania przydzielane są od 0xFFFFFFFE (4294967294) przez 0xFFFFFFFD, …C, …B itd.).