وقفه غیرقابل پوشش

در محاسبات، یک وقفه غیرقابل پوشش (NMI ) یک وقفه سخت‌افزاری است که تکنیک‌های پوشاندن وقفه استاندارد در سیستم نمی‌توانند آن را نادیده بگیرند. این معمولاً برای علامت دادن به خطاهای سخت‌افزاری غیرقابل بازیابی رخ می‌دهد. برخی از NMIها ممکن است پوشانده شوند، اما فقط با استفاده از روش‌های اختصاصی مخصوص NMI خاص.

یک NMI اغلب زمانی استفاده می‌شود که زمان پاسخ بحرانی است یا زمانی که یک وقفه هرگز نباید در طول عملکرد عادی سیستم غیرفعال شود. چنین کاربردهایی شامل گزارش خطاهای سخت‌افزاری غیرقابل بازیابی، اشکال زدایی و نمایه سازی سیستم، و رسیدگی به موارد خاص مانند بازنشانی سیستم است.

معماری‌های رایانه‌ای مدرن معمولاً از NMI برای رسیدگی به خطاهای غیرقابل بازیابی استفاده می‌کنند که نیاز به توجه فوری دارند؛ بنابراین، چنین وقفه‌هایی نباید در عملکرد عادی سیستم پوشانده شوند. این خطاها شامل خطاهای چیپست سیستم داخلی غیرقابل بازیابی، خرابی حافظه سیستم مانند خطاهای برابری و ECC و خرابی داده‌های شناسایی شده در گذرگاه‌های سیستم و جانبی است.

در برخی از سیستم‌ها، کاربر کامپیوتر می‌تواند از طریق رابط‌های اشکال‌زدایی سخت‌افزاری و نرم‌افزاری و دکمه‌های بازنشانی سیستم، NMI را راه‌اندازی کند.

برنامه نویسان معمولاً از NMIهای اشکال زدایی برای تشخیص و رفع کدهای معیوب استفاده می‌کنند. در چنین مواردی، یک NMI می‌تواند یک کنترل‌کننده وقفه را اجرا کند که کنترل را به یک برنامه مانیتور ویژه منتقل می‌کند. از این برنامه، یک توسعه دهنده می‌تواند حافظه دستگاه را بررسی کرده و وضعیت داخلی برنامه را در لحظه قطع شدن آن بررسی کند. این همچنین امکان اشکال زدایی یا عیب‌یابی رایانه‌هایی را که آویزان به نظر می‌رسند را می‌دهد.

تاریخ 
در معماری‌های قدیمی‌تر، NMI برای وقفه‌هایی استفاده می‌شد که معمولاً به دلیل زمان پاسخ‌دهی مورد نیاز هرگز غیرفعال نمی‌شدند. آنها سیگنال‌های پنهانی بودند. به عنوان مثال می‌توان به کنترل‌کننده فلاپی دیسک در Amstrad PCW، پردازنده کمکی ۸۰۸۷ در x86 در رایانه شخصی IBM یا دستگاه‌های سازگار با آن (حتی اگر اینتل اتصال آن را به یک وقفه معمولی)، و سیگنال Low Battery در HP. 95LX.

در رایانه شخصی IBM اصلی، اگر یک خطای برابری در حافظه سیستم شناسایی شود یا توسط یک دستگاه خارجی گزارش شود، یک NMI راه اندازی می‌شود. در هر صورت، کامپیوتر پیغام خطا نمایش داده و متوقف می‌شود. برخی از شبیه‌سازی‌های رایانه‌های شخصی بعدی از NMI برای پنهان کردن تفاوت‌های سخت‌افزاری رایانه‌های شخصی استاندارد استفاده کردند. در چنین رایانه‌هایی، زمانی که برنامه ای سعی می‌کند به سخت‌افزار ناسازگار دسترسی پیدا کند، یک NMI ایجاد می‌شود. سپس یک کنترل‌کننده وقفه بایوس درخواست برنامه را برای مطابقت با سخت‌افزاری که واقعاً وجود داشت ترجمه می‌کند. SMM در 386SL راه بهتری برای انجام این کار است.

برخی از رایانه‌های خانگی ۸ بیتی از خط NMI استفاده می‌کردند تا در صورت قفل بودن سیستم، «شروع گرم» را مجاز کنند. به‌طور معمول، این کار رجیسترهای کنترل را به مقادیر خوب شناخته شده ذخیره شده در ROM بازیابی می‌کند، بدون اینکه هر داده‌ای را که کاربر در حال حاضر بارگذاری کرده باشد، از بین ببرد. در ماشین‌های ۸ بیتی Commodore, به‌طور مستقیم یا غیرمستقیم به خط NMI در CPU سری ۶۵۰۲ وصل شده‌است، اما بازنشانی تنها در صورتی انجام می‌شود که روتین NMI handler در ROM تشخیص دهد که نیز متوقف می‌شد زده شد (این ترکیب نسخه Commodore یک سلام سه انگشتی است). Commodore همچنین MOS Technology 6526 CIA #2 در C64 و C128 را به خط NMI پردازنده متصل کرد، که بخشی از ابزاری بود که توسط آن شبیه‌سازی نرم‌افزار 6551 ACIA انجام شد. خط ۸ بیتی آتاری از a برای همین منظور.

NMIs اشکال زدایی در تعدادی از اشکال، از جمله به نظر می‌رسد اپل مکینتاش، «را فشار دهید بازدید کنندگان برنامه نویسان»، و بعضی از کلیدهای ترکیبی در یکشنبه ایستگاه‌های کاری. با معرفی ویندوز ۲۰۰۰، مایکروسافت به استفاده از NMI اجازه داد تا سیستم را به یک دیباگر شکسته یا محتویات حافظه را روی دیسک ریخته و مجدداً راه اندازی کند.

NMIهای اشکال زدایی نیز توسط دستگاه‌هایی استفاده شده‌است که به کاربران اوقات فراغت و گیمرها اجازه می‌دهد برنامه‌های در حال اجرا را دستکاری کنند. دستگاه‌هایی که دکمه‌ای برای تولید NMI اضافه می‌کردند، مانند روبات رومانتیک چند وجهی، لوازم جانبی محبوبی برای رایانه‌های خانگی ۸ بیتی و ۱۶ بیتی دهه ۱۹۸۰ بود. این تجهیزات جانبی دارای مقدار کمی رام و یک دکمه NMI بودند. با فشار دادن دکمه، کنترل به نرم‌افزار موجود در رام دستگاه جانبی منتقل می‌شود و به برنامه تعلیق‌شده اجازه می‌دهد تا روی دیسک ذخیره شود (بسیار مفید برای بازی‌های نواری بدون پشتیبانی از دیسک، اما همچنین برای ذخیره بازی‌های در حال انجام)، اسکرین شات‌ها ذخیره یا چاپ شوند. یا مقادیری در حافظه که باید دستکاری شوند - برای مثال، یک تکنیک تقلب برای به دست آوردن زندگی اضافی.

همه رایانه‌ها مکانیزمی برای راه اندازی NMIها ارائه نمی‌دهند. با این حال، بسیاری از ماشین‌ها (معمولاً سرورهای rackmount) یک دکمه فیزیکی به‌طور خاص برای این منظور ارائه می‌کنند. ماشین‌های دیگر ممکن است این عملکرد را از طریق کارت توسعه نمایش دهند.

محصولات DISCIPLE و +D شرکت Miles Gordon Technology برای ZX Spectrum دارای یک «دکمه جادویی» تولیدکننده NMI بودند.

جستارهای وابسته 
 کنترل‌کننده وقفه قابل برنامه‌ریزی پیشرفته (APIC)
 وقفه بین پردازنده (IPI)
 قطع کنید
 کنترل‌کننده وقفه
 تأخیر را قطع کنید
 کنترل‌کننده وقفه قابل برنامه‌ریزی (PIC)

یادداشت

پیوند به بیرون 
 
 
اشکال‌زدایی
وقفه‌ها