Message Signaled Interrupts ( MSI, Message-Initiated Interrupts ) on vaihtoehtoinen keskeytysmuoto, joka on saatavilla PCI - versiossa 2.2 ja sitä uudemmissa PCI-X- versioissa , ja se on myös pakollinen kaikissa PCI Expressin versioissa . Sen sijaan, että sille määritettäisiin kiinteä keskeytyspyyntönumero , laite voi kirjoittaa viestin tiettyyn järjestelmän muistiosoitteeseen, joka on itse asiassa yhdistetty prosessorin paikalliseen keskeytysohjaimeen (paikallinen APIC ). Viestin kirjoittamiseen käytetään samaa väylän masterointimekanismia kuin DMA:ssa.
Viestien kirjoittamista varten jokaisessa MSI:tä käyttävässä laitteessa voi olla yhdestä kolmeenkymmentäkaksi ainutlaatuista muistialuetta.
Kaikki PCI Express -väyläkeskeytykset toimitetaan aina MSI-muodossa, jopa käytettäessä perinteistä keskeytysjohtonumeroemulointia.
MSI:n edut:
MSI on tuettu Microsoft Windows Vistassa ja uudemmissa käyttöjärjestelmissä, FreeBSD :ssä versiosta 6.3 lähtien, OpenBSD :ssä versiosta 5.0 alkaen [1] ja Linux-ytimessä versiosta 2.6.8 lähtien [2]
MSI-X on MSI:n laajennettu versio, jonka avulla voit määrittää jopa useita tuhansia keskeytyksiä.
Huolimatta MSI:n ja MSI-X:n ilmestymisestä suhteellisen kauan sitten, todellista laajaa käyttöä ei vieläkään ole, vaikka Windows 10:n uusin versio olisi asennettuna. Esimerkiksi nVidia, jotta se olisi yhteensopiva hyvin vanhojen laitteiden kanssa, ei aktivoida tuki MSI-keskeytyksille oletusarvoisesti ohjaimissaan. Ja useimmat Windowsiin asennetut ajurit eivät tarjoa MSI-tukea alun perin, mikä edellyttää, että otat sen käyttöön itse ja jota varten on asianmukaiset apuohjelmat. [1] Aktivoidun MSI:n puute käynnissä olevassa järjestelmässä johtaa DPC-viiveen lisääntymiseen [3] , koska linjapohjaisessa tilassa ajurit vaativat enemmän huomiota prosessorilta. Ja virheellisin päätös tällaisessa tilanteessa on sammuttaa HPET , mikä itse asiassa lisää prosessorin kuormitusta vielä enemmän ohjelmistojen ajastimen käsittelyalgoritmien aktivoinnin vuoksi sen sijaan, että käytettäisiin laitteistoajastinta emolevyn eteläsillassa.