Meddelande signalerade avbrott

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 26 februari 2021; kontroller kräver 7 redigeringar .

Message Signaled Interrupts ( MSI, Message-Initiated Interrupts ) är en alternativ form av avbrott som finns tillgänglig i PCI version 2.2 och senare, PCI-X , och även obligatorisk i alla versioner av PCI Express . Istället för att tilldelas ett fast avbrottsbegärannummer tillåts enheten skriva ett meddelande till en specifik systemminnesadress, faktiskt mappad till processorns lokala avbrottsstyrenhet (lokal APIC ) hårdvara. För att skriva ett meddelande används samma busmastering-mekanism som för DMA.

Beskrivning

För att skriva meddelanden kan varje enhet som använder MSI ha från ett till trettiotvå unika minnesområden.

Alla PCI Express-bussavbrott levereras alltid som MSI, även när traditionell emulering av avbrottstrådsnummer används.

Fördelar med MSI:

MSI stöds på Microsoft Windows Vista och senare operativsystem, på FreeBSD sedan version 6.3, på OpenBSD sedan version 5.0 [1] och i Linux-kärnan sedan version 2.6.8 [2]

MSI-X

MSI-X är en utökad version av MSI som låter dig definiera upp till flera tusen avbrott.

Nuvarande implementering

Trots utseendet av MSI och MSI-X för relativt länge sedan, är den verkliga utbredda användningen fortfarande inte närvarande, även om den senaste versionen av Windows 10 är installerad. Till exempel, nVidia, för att vara kompatibel med mycket gammal hårdvara, gör det inte aktivera stöd för MSI-avbrott på standard i sina drivrutiner. Och de flesta drivrutiner som är installerade i Windows ger inte MSI-stöd initialt, vilket kräver att du aktiverar det själv och för vilka det finns lämpliga verktyg. [1] Avsaknaden av en aktiverad MSI i ett körande system leder till en ökning av DPC-latens [3] , eftersom drivrutiner kräver mer uppmärksamhet från processorn i linjebaserat läge. Och det mest felaktiga beslutet i en sådan situation är att stänga av HPET , vilket faktiskt ökar belastningen på processorn ännu mer på grund av aktiveringen av mjukvarutimerbearbetningsalgoritmer istället för att använda en hårdvarutimer i sydbryggan på moderkortet.

Anteckningar

  1. OpenBSD 5.0 ​​​​Changelog (nedlänk) . Arkiverad från originalet den 3 maj 2016. 
  2. Sammanfattning av konfigurationsparametern för Linux-kärnan, CONFIG_PCI_MSI (nedlänk) . Arkiverad från originalet den 4 juni 2012. 
  3. Windows: Line-Based vs. Meddelande signalerade baserade avbrott. MS verktyg.  (engelska)  ? . guru3D-forum . Hämtad 5 april 2021. Arkiverad från originalet 13 april 2021.

Litteratur

Länkar