Message Signaled Interrupts ( MSI, Message-Initiated Interrupts ) je alternativní forma přerušení dostupná v PCI verze 2.2 a novější, PCI-X , a také povinná ve všech verzích PCI Express . Namísto přidělení pevného čísla požadavku přerušení může zařízení zapsat zprávu na konkrétní adresu systémové paměti, která je ve skutečnosti mapována na hardware místního řadiče přerušení procesoru (místní APIC ). Pro zápis zprávy se používá stejný mechanismus řízení sběrnice jako pro DMA.
Pro psaní zpráv může mít každé zařízení využívající MSI od jedné do třiceti dvou jedinečných oblastí paměti.
Všechna přerušení sběrnice PCI Express jsou vždy dodávána jako MSI, a to i při použití tradiční emulace čísla vodiče přerušení.
Výhody MSI:
MSI je podporován v operačních systémech Microsoft Windows Vista a novějších, na FreeBSD od verze 6.3, na OpenBSD od verze 5.0 [1] a v jádře Linuxu od verze 2.6.8 [2]
MSI-X je rozšířená verze MSI, která umožňuje definovat až několik tisíc přerušení.
Navzdory tomu, že se MSI a MSI-X objevily poměrně dávno, skutečné rozšířené použití stále není přítomno, i když je nainstalována nejnovější verze Windows 10. Například nVidia, aby byla kompatibilní s velmi starým hardwarem, není aktivovat podporu pro přerušení MSI ve výchozím nastavení ve svých ovladačích. A také většina ovladačů nainstalovaných v systému Windows zpočátku neposkytuje podporu MSI, což vyžaduje, abyste ji povolili sami a pro kterou existují vhodné nástroje. [1] Nedostatek povoleného MSI v běžícím systému vede ke zvýšení latence DPC [3] , protože v režimu založeném na lince vyžadují ovladače více pozornosti od procesoru. A nejchybnějším rozhodnutím v takové situaci je vypnout HPET , což ve skutečnosti zvyšuje zátěž procesoru ještě více kvůli aktivaci algoritmů zpracování softwarového časovače namísto použití hardwarového časovače na jižním můstku základní desky.