Кіріспе
Компьютерлік жабдықтың үзілісінің түрі. Хабарламамен жіберілетін үзілістер (MSI) – арнайы жолақты хабарламаларды пайдаланып үзілістерді сигналдау әдісі, бұл арнайы үзіліс желілеріндегі дәстүрлі сигналдарды алмастырады. Хабарламамен жіберілетін үзілістерді құрылғыда іске асыру күрделірек болғанымен, олар пин негізіндегі үзіліс сигналдауға қарағанда үзілістерді өңдеудің жақсартылған тиімділігі сияқты маңызды артықшылықтарға ие. Бұл дәстүрлі үзіліс механизмдеріне, мысалы, ескі үзіліс сұрау (IRQ) жүйесіне қарама-қарсы. Хабарламамен жіберілетін үзілістер PCI шинасының 2.2 нұсқасынан бастап және кейінірек пайда болған PCI Express шинасында қолдау көрсетіледі. Кейбір PCI емес архитектуралар да хабарламамен жіберілетін үзілістерді қолданады.
Message Signaled Interrupts (MSI) are a method of signaling interrupts, using special in band messages to replace traditional out of band signals on dedicated interrupt lines. While message signaled interrupts are more complex to implement in a device, they have some significant advantages over pin based out of band interrupt signalling, such as improved interrupt handling performance. This is in contrast to traditional interrupt mechanisms, such as the legacy interrupt request (IRQ) system. Message signaled interrupts are supported in PCI bus since its version 2.2, and in later available PCI Express bus. Some non PCI architectures also use message signaled interrupts.
Шолу
Дәстүрлі түрде, құрылғы хост өңдеу ортасына үзіліс туралы хабарлау үшін қолданатын үзіліс желісіне (пиніне) ие болады. Бұл үзіліс хабарлаудың дәстүрлі түрі – бақылау сигналдарын жіберудің дербес тәсілі, себебі ол осындай басқару ақпаратын негізгі деректер жолынан бөлек, арнайы жол арқылы жібереді. MSI осы дербес үзіліс желілерін негізгі деректер жолы арқылы үзілістерді көрсететін арнайы хабарламалар алмасу арқылы дербес емес сигнал берумен алмастырады. Атап айтқанда, MSI құрылғыға үзілісті сипаттайтын шағын көлемдегі деректерді жадқа бейнеленген I/O мекенжайына жазуға мүмкіндік береді, ал чипсет сол деректердің негізінде тиісті үзілісті процессорға жібереді. MSI туралы жиі кездесетін жаңылыс түсінік – құрылғының үзіліс бөлігі ретінде процессорға деректерді жіберуге мүмкіндік береді деген сенім. Жадқа жазу транзакциясының бөлігі ретінде жіберілген деректер чипсетке қай процессорда қай үзілісті іске қосу керектігін анықтау үшін қолданылады; бұл деректер құрылғыға үзіліс басқарушыға қосымша ақпарат беру үшін қолжетімді емес.
Артықшылықтар
Құрылғыда іске асыруы күрделірек болғанымен, хабарлама арқылы жіберілген үзілістердің пин негізіндегі үзіліс сигналдауынан бірнеше маңызды артықшылықтары бар. Механикалық тұрғыдан алғанда, азырақ пиндер жалғауды қарапайымдап, арзандатып және сенімдірек етеді. Бұл стандартты PCI жалғауы үшін артықшылық болмаса да, PCI Express осы үнемдеуден пайдаланады. MSI мүмкін болатын үзілістер санын арттырады. Дәстүрлі PCI бір карта үшін төрт үзіліспен шектелген (және олардың барлық карталар арасында бөлісілгендігіне байланысты, көбінесе тек біреуін ғана пайдаланады), ал хабарлама арқылы жіберілген үзілістер картаға ондаған үзілістерді жіберуге мүмкіндік береді, қажет болған жағдайда. Бұл бәсекенің алдын алу үшін үзіліс басқарушылары DMA жазуы аяқталғанын қамтамасыз ету үшін құрылғыдан мәліметтерді оқуға міндетті болды. Бұл оқу орташа өнімділікке кедергі келтіретін. MSI жазуы DMA жазуын басып өте алмайды, сондықтан бәсеке жойылды.
because they were shared among all cards, most are using only one), message signalled interrupts allow dozens of interrupts per card, when that is useful. To prevent this race, interrupt handlers were required to read from the device to ensure that the DMA write had finished. This read had a moderate performance penalty. An MSI write cannot pass a DMA write, so the race is eliminated.
MSI түрлері
PCI хабарлама арқылы жіберілетін үзілістерді қолдау үшін MSI және MSI X деп аталатын екі қосымша мүмкіндікті анықтайды. PCI Express бұрынғы PCI үзілістерін имитациялау үшін өзіндік хабарламаға негізделген механизмін анықтайды.
MSI
MSI (алғаш рет PCI 2.2 нұсқасында анықталды) құрылғыға 1, 2, 4, 8, 16 немесе 32 үзіліс тіркеуге мүмкіндік береді. Құрылғы жазуға арналған мекенжаймен (әдетте, бұл үзіліс контроллеріндегі басқару тіркелгіші) және оны сәйкестендіру үшін 16 биттік дерек сөзімен бағдарламаланады. Үзіліс нөмірі дерек сөзіне қосылып, үзіліс анықталады.
MSI-X
MSI X (алғаш рет PCI 3.0 стандартында анықталды) құрылғыға 2048 үзіліске дейін бөлуге мүмкіндік береді. Алғашқы MSI қолданған жалғыз мекенжай кейбір архитектуралар үшін шектеулі болып табылған. Атап айтқанда, бұл кейбір жоғары жылдамдықты желілік қолданбаларда пайдалы болатын әртүрлі процессорларға жеке үзілістерді бағыттауды қиындатты. MSI X үзілістердің үлкен санын қамтамасыз етеді және әрқайсысына жеке мақсатты мекенжай мен дерек сөзін тағайындайды. MSI X құрылғылары міндетті түрде 2048 үзілісті қолдамайды. MSI-дегі қосымша мүмкіндіктер (64 биттік адрестеу және үзіліс маскалау) MSI X-те де міндетті болып табылады.
PCI Express мұралық үзілістер эмуляциясы
PCI Express физикалық үзіліс сымдарына ие емес, бірақ PCI-дың 4 физикалық үзіліс сымын арнайы PCI Express хабарламалары арқылы, мысалы, Assert INTA және Deassert INTC арқылы имитациялайды. Хабарламаларға негізделген (PCI Express деңгейінде) бұл механизм PCI деңгейінің MSI механизмінің кейбір, бірақ барлық артықшылықтарын ұсынады: құрылғыға арналған 4 виртуалды сым енді шинада ортақ қолданылмайды (бірақ PCI Express контроллерлері ескі үзілістерді ішкі түрде біріктіре алады), ал үзіліс өзгерістері енді жарыс жағдайларынан зардап тартпайды. PCI Express құрылғыларға осы ескі үзіліс хабарламаларын пайдалануға рұқсат береді, бұл PCI драйверлерімен бағдарламалық үйлесімділікті сақтайды, бірақ олар PCI деңгейінде MSI немесе MSI X-ті де қолдауы тиіс.
x86 жүйелері
Intel жүйелерінде PCI (және PCI Express) MSI/MSI X жұмыс істеуі үшін, тіпті бір процессорлы (бір ядролы) жүйелерде де LAPIC қосулы болуы қажет. Мұндай жүйелерде MSI-лер үзіліс қызметін қажет ететін процессордың/ядроның LAPIC-іне үзіліс векторын тікелей жазу арқылы өңделеді. 2009 жылғы Intel LAPIC-тері 224-ке дейін MSI негізделген үзілістерді қолдады.