不可遮罩式中斷

在計算領域,不可遮罩式中斷( 英語:non-maskable interrupt, NMI )是指無法以系統中的標準中斷遮罩來忽略的硬體中斷。通常用於提醒使用者注意無法復原的硬體錯誤。某些NMI也可被遮罩,但只能使用針對特定NMI的專用方法。至於SPARC架構,雖然不可遮罩式中斷(NMI)是優先程度最高的中斷,但還是可以由中斷遮罩來防止其發生。

不可遮罩式中斷(NMI)通常用於回應時間非常重要,或是系統正常運作時永遠不應停用的情況。例如回報無法復原的硬體錯誤、系統除錯與效能分析,以及處理系統重設等特殊狀況。

現代計算機系統結構通常將 NMI 用於處理需要立即注意的不可復原錯誤,因此這類中斷在系統正常運作時不應被遮罩。這類錯誤包含無法復原的內部系統晶片組錯誤、系統記憶體損壞(如同位位元和錯誤更正碼出錯),以及在系統和周邊匯流排偵測到的資料損壞。

在某些系統中,電腦的使用者可以用硬體和軟體的除錯介面及系統重設按鈕來觸發 NMI。

程式設計師通常會使用除錯NMI來判斷並修正錯誤代碼。在這種用途中,NMI可以執行一個中斷處理程式,把控制權轉移給一個特殊的監控程式。開發人員可以用這個程式來查看機器的記憶體、檢查中斷當下的程式內部狀態。這也有助於除錯或判斷電腦假當機的問題。

歷史
在較舊的架構中,不可遮罩式中斷(NMI)用於必須快速回應而通常不可停用的中斷,是隱藏的訊號。例如 Amstrad PCW 上的磁片控制器、IBM PC 或其相容機使用的 x86 架構中的 8087 輔助處理器(儘管 Intel 建議連接到普通的中斷 ),以及 HP 95LX 上的低電量訊號。

在原版的 IBM PC,如果系統記憶體中檢測到、或是外部設備回報同位位元錯誤,就會觸發 NMI。在這兩種狀況,電腦都會顯示錯誤訊息並停止運作。後來的某些 IBM 相容機使用 NMI 來掩蓋和原版 IBM PC 之間的硬體差異。這些電腦中的程式試圖存取不相容的硬體時,就會生成 NMI。接著 BIOS 的中斷處理程式會將程式的請求轉換成符合實際硬體的請求。386SL 中的 SMM(系統管理模式)則是另一種更好的實作方式。

某些 8 位元家用電腦會用 NMI 線路來實現系統鎖定時的「暖開機」。一般來說,這可以把控制暫存器回復為 ROM 中儲存的已知正確值,不會破壞使用者目前可能已載入的任何資料。在 Commodore 8 位元電腦上, 鍵直接或間接地連接到 6502 系列 CPU 的 NMI 線路;但只會在 ROM 裡的 NMI 處理程式偵測到 也被按住時,按下 才會觸發重設(這個組合鍵是 Commodore 版的 Ctrl+Alt+Del)。Commodore 也將 C64 和 C128 中的 MOS Technology 6526 CIA #2 連接到處理器的 NMI 線路,這是實作 6551 ACIA 軟體仿真的手段之一。Atari 的 8 位元產品線則是使用 按鈕來達成同樣目的。

除錯 NMI 有許多不同形式,包含 Macintosh 的「工程師按鈕」和 Sun 工作站的特定組合鍵。微軟則是在 Windows 2000 允許用 NMI 使系統跳至除錯工具或是將記憶體內容傾印到硬碟並重新啟動。

除錯 NMI 也會用在一些休閒用的裝置上,讓使用者可以操控執行中的程式。1980 年代的 8 位元和 16 位元家用電腦非常流行加上可以生成 NMI 的按鈕,例如 Romantic Robot 的 Multiface 等設備。這些周邊設備配有少量的 ROM 和一個 NMI 按鈕。按下該按鈕就能將控制權轉移到周邊設備的 ROM 裡的軟體,藉此完成各種任務。包含將停止的程式儲存到硬碟(這對不支援硬碟的磁帶遊戲而言特別實用,也可用於保存遊戲進度)、儲存或列印螢幕截圖,或是操作記憶體中的數值——例如作為一種取得額外生命的作弊方式。

並不是所有的電腦都提供觸發 NMI 的機制,但許多機器(尤其是機櫃式伺服器)都會提供一個專用於此用途的實體按鈕。其他機器可以用擴充卡來增加此功能。

Miles Gordon Technology 為 ZX Spectrum 開發的產品 DISCiPLE 和 +D 就配備了可以產生 NMI 的「魔法按鈕」。

在任天堂的 FC 遊戲機中,每個垂直空白間隙都會生成一個 NMI。這些 NMI(常稱為「垂直空白中斷」(英語:vblank interrupt))會以固定的頻率和間隔出現,因此操作遊戲圖形和音訊的程式碼通常會在 NMI 控制程式中執行。清除圖形處理單元(英語:Picture Processing Unit, PPU) 暫存器的第 7 位元會停用垂直空白中斷,反之則會啟用。這能讓 CPU 完成必要的任務,而代價是造成延遲。
相關條目

  • 處理器間中斷(IPI)
  • 中斷

參考文獻
外部連結
*

*

评论 (0)

  • 还没有评论,来抢沙发吧。