Nemaskovatelné přerušení - Non-maskable interrupt

V oblasti výpočetní techniky je nemaskovatelné přerušení ( NMI ) hardwarové přerušení, které standardní techniky maskování přerušení v systému nemohou ignorovat. Obvykle dochází k signalizaci pozornosti kvůli neopravitelným chybám hardwaru . Některé NMI mohou být maskovány, ale pouze pomocí proprietárních metod specifických pro konkrétní NMI.

NMI se často používá, když je doba odezvy kritická nebo když by během normálního provozu systému nikdy nemělo být vypnuto přerušení. Taková použití zahrnují hlášení neopravitelných hardwarových chyb, ladění systému a profilování a řešení speciálních případů, jako jsou resetování systému.

Moderní počítačové architektury obvykle používají NMI ke zpracování neopravitelných chyb, které vyžadují okamžitou pozornost. Při normálním provozu systému by proto takováto přerušení neměla být maskována. Mezi tyto chyby patří neopravitelné vnitřní chyby čipové sady systému , poškození v systémové paměti, jako jsou chyby parity a ECC , a poškození systému zjištěné na systémových a periferních sběrnicích.

V některých systémech může uživatel počítače spustit NMI prostřednictvím rozhraní pro ladění hardwaru a softwaru a tlačítek pro reset systému.

Programátoři obvykle používají ladění NMI k diagnostice a opravě chybného kódu. V takových případech může NMI spustit obslužný program přerušení, který přenáší řízení do speciálního monitorovacího programu. Z tohoto programu může vývojář zkontrolovat paměť stroje a prozkoumat vnitřní stav programu v okamžiku jeho přerušení. To také umožňuje ladění nebo diagnostiku počítačů, které vypadají jako zavěšené .

Dějiny

Ve starších architekturách byly NMI používány pro přerušení, která obvykle nebyla nikdy deaktivována kvůli požadované době odezvy. Byly to skryté signály. Mezi příklady patří řadič disket na Amstrad PCW , koprocesor 8087 na x86 při použití v IBM PC nebo jeho kompatibilních zařízeních (i když Intel doporučil připojení k normálnímu přerušení) a signál Low Battery na HP 95LX .

V původním počítači IBM PC bylo NMI spuštěno, pokud byla v systémové paměti zjištěna chyba parity nebo hlášeno externím zařízením. V každém případě počítač zobrazí chybovou zprávu a zastaví se. Některé pozdější PC klony používaly NMI k utajení hardwarových rozdílů oproti standardnímu PC. Na takových počítačích by se NMI generovalo při pokusu programu o přístup k nekompatibilnímu hardwaru. BIOS handler přerušení by pak překládat žádost o programu tak, aby odpovídala hardware, který byl skutečně přítomen. SMM v 386SL je lepší způsob, jak toho dosáhnout.

Některé 8bitové domácí počítače používaly linku NMI k povolení „teplého startu“, pokud se systém zablokoval. Obvykle by to obnovilo řídicí registry na známé dobré hodnoty uložené v ROM , aniž by došlo ke zničení jakýchkoli dat, která by uživatel aktuálně mohl načíst. Na 8bitových počítačích Commodore byl klíč RESTORE připojen přímo nebo nepřímo na linku NMI na procesoru řady 6502 , ale reset by proběhl pouze v případě, že rutina obsluhy NMI v paměti ROM zjistila, že se také spouští RUN/STOP podrženo, když byl zasažen RESTORE (tato kombinace je verzí Commodore tříprstého pozdravu ). Commodore také připojil MOS Technology 6526 CIA #2 v C64 a C128 na NMI linku procesoru, což byla součást prostředků, kterými byla emulace softwaru 6551 ACIA provedena. 8bitová linka Atari používala pro stejný účel tlačítko SYSTEM RESET .

Ladicí NMI se objevily v řadě forem, včetně „tlačítka programátorů“ Apple Macintosh a určitých kombinací kláves na pracovních stanicích Sun. Se zavedením systému Windows 2000 , Microsoft povoleno použití NMI způsobit systém na obou přestávce do ladicího , nebo vypsat obsah paměti na disk a restartujte počítač.

Ladicí NMI také používala zařízení, která uživatelům volného času a hráčům umožňují manipulovat se spuštěnými programy. Zařízení, která přidala tlačítko pro generování NMI, jako například Multiface od Romantic Robot , byla oblíbeným příslušenstvím pro 8bitové a 16bitové domácí počítače z 80. let. Tyto periferie měly malé množství ROM a tlačítko NMI. Stisknutím tlačítka se přenesl ovládací prvek do softwaru v paměti ROM periferního zařízení, což umožňuje uložení pozastaveného programu na disk (velmi užitečné pro hry založené na pásce bez podpory disku, ale také pro ukládání probíhajících her), snímky obrazovky lze uložit nebo vytisknout nebo hodnoty v paměti, se kterými je třeba manipulovat - například podváděcí technika k získání dalších životů.

Ne všechny počítače poskytují mechanismus pro spouštění NMI; nicméně mnoho počítačů (typicky rackové servery) poskytuje fyzické tlačítko speciálně pro tento účel. Jiné počítače mohou tuto funkci zpřístupnit prostřednictvím rozšiřující karty.

Miles Gordon Technologie ‚s učedník a + D výrobky pro ZX Spectrum představovalo NMI-produkující‚magický tlačítko‘.

Na Nintendo Entertainment System je NMI generován během každého vertikálního zatemňovacího intervalu . Protože se tyto NMI (často označované jako „přerušení vblank“) vyskytují v častých pravidelných intervalech, kód, který manipuluje s grafikou a zvukem hry, se často spouští uvnitř rutiny obsluhy NMI. Vymazáním 7. bitu registru $ 2000 PPU se deaktivuje přerušení vblank a jejich nastavení je povolí.

Viz také

Poznámky

externí odkazy