وقفه پوششناپذیر
در رایانش، یک وقفه پوششناپذیر (به انگلیسی: Non-maskable interrupt) (کوتهنوشت: NMI) یک وقفه سختافزاری است که تکنیکهای پوشاندن وقفه استاندارد در سیستم نمیتوانند آن را نادیده بگیرند. این معمولاً برای علامت دادن به خطاهای سختافزاری بازیابیناپذیر رخ میدهد. برخی از NMIها ممکن است پوشانده شوند، اما فقط با استفاده از روشهای اختصاصی مخصوص وقفه بدون پوشش خاص.
یک وقفه بدون پوشش اغلب زمانی استفاده میشود که زمان پاسخ بحرانی است یا زمانی که یک وقفه هرگز نباید در طول عملکرد عادی سیستم غیرفعال شود. چنین کاربردهایی شامل گزارش خطاهای سختافزاری غیرقابل بازیابی، اشکال زدایی و نمایه سازی سیستم، و رسیدگی به موارد خاص مانند بازنشانی سیستم است.
معماریهای رایانهای مدرن معمولاً از وقفه بدون پوشش برای رسیدگی به خطاهای غیرقابل بازیابی استفاده میکنند که نیاز به توجه فوری دارند؛ بنابراین، چنین وقفههایی نباید در عملکرد عادی سیستم پوشانده شوند. این خطاها شامل خطاهای چیپست سیستم داخلی غیرقابل بازیابی، خرابی حافظه سیستم مانند خطاهای برابری و ECC و خرابی دادههای شناسایی شده در گذرگاههای سیستم و جانبی است.
در برخی از سیستمها، کاربر کامپیوتر میتواند از طریق رابطهای اشکالزدایی سختافزاری و نرمافزاری و دکمههای بازنشانی سیستم، وقفه بدون پوشش را راهاندازی کند.
برنامهنویسان معمولاً از وقفه بدون پوششهای اشکالزدایی برای تشخیص و رفع کدهای معیوب استفاده میکنند. در چنین مواردی، یک وقفه بدون پوشش میتواند یک کنترلکننده وقفه را اجرا کند که کنترل را به یک برنامه مانیتور ویژه منتقل میکند. از این برنامه، یک توسعهدهنده میتواند حافظه دستگاه را بررسی کرده و وضعیت داخلی برنامه را در لحظه قطع شدن آن بررسی کند. این همچنین امکان اشکالزدایی یا عیبیابی رایانههایی را که آویزان به نظر میرسند را میدهد.
تاریخ
در معماریهای قدیمیتر، وقفه بدون پوشش برای وقفههایی استفاده میشد که معمولاً به دلیل زمان پاسخدهی مورد نیاز هرگز غیرفعال نمیشدند. آنها سیگنالهای پنهانی بودند. به عنوان مثال میتوان به کنترلکننده فلاپی دیسک در Amstrad PCW، پردازنده کمکی ۸۰۸۷ در x86 در رایانهٔ شخصی IBM یا دستگاههای سازگار با آن (حتی اگر اینتل اتصال آن را به یک وقفه معمولی)، و سیگنال Low Battery در HP. 95LX.
در رایانه شخصی IBM اصلی، اگر یک خطای برابری در حافظهٔ سیستم شناسایی شود یا توسط یک دستگاه خارجی گزارش شود، یک وقفه بدون پوشش راهاندازی میشود. در هر صورت، کامپیوتر پیغام خطا نمایش داده و متوقف میشود. برخی از شبیهسازیهای رایانههای شخصی بعدی از وقفه بدون پوشش برای پنهان کردن تفاوتهای سختافزاری رایانههای شخصی استاندارد استفاده کردند. در چنین رایانههایی، زمانی که برنامهای تلاش میکند به سختافزار ناسازگار دسترسی پیدا کند، یک وقفه بدون پوشش ایجاد میشود. سپس یک کنترلکننده وقفه بایوس درخواست برنامه را برای مطابقت با سختافزاری که واقعاً وجود داشت ترجمه میکند. SMM در 386SL راه بهتری برای انجام این کار است.
برخی از رایانههای خانگی ۸ بیتی از خط وقفه بدون پوشش استفاده میکردند تا در صورت قفل بودن سیستم، «شروع گرم» را مجاز کنند. بهطور معمول، این کار رجیسترهای کنترل را به مقادیر خوب شناخته شده ذخیره شده در ROM بازیابی میکند، بدون اینکه هر دادهای را که کاربر در حال حاضر بارگذاری کرده باشد، از بین ببرد. در ماشینهای ۸ بیتی Commodore,RESTORE بهطور مستقیم یا غیرمستقیم به خط وقفه بدون پوشش در CPU سری ۶۵۰۲ وصل شده است، اما بازنشانی تنها در صورتی انجام میشود که روتین وقفه بدون پوشش handler در ROM تشخیص دهد کهRUN/STOP نیز متوقف میشدRESTORE زده شد (این ترکیب نسخه Commodore یک سلام سه انگشتی است). Commodore همچنین MOS Technology 6526 CIA #2 در C64 و C128 را به خط NMI پردازنده متصل کرد، که بخشی از ابزاری بود که توسط آن شبیهسازی نرمافزار 6551 ACIA انجام شد. خط ۸ بیتی آتاری از aSYSTEM RESET برای همین منظور.
وقفههای بدون پوشش اشکالزدایی در تعدادی از اشکال، از جمله به نظر میرسد اپل مکینتاش، «را فشار دهید بازدیدکنندگان برنامهنویسان»، و بعضی از کلیدهای ترکیبی در یکشنبه ایستگاههای کاری. با معرفی ویندوز ۲۰۰۰، مایکروسافت به استفاده از وقفه بدون پوشش اجازه داد تا سیستم را به یک دیباگر شکسته یا محتویات حافظه را روی دیسک ریخته و دوباره راهاندازی کند.[۱]
وقفه بدون پوشش اشکالزدایی نیز توسط دستگاههایی استفاده شده است که به کاربران اوقات فراغت و گیمرها اجازه میدهد برنامههای در حال اجرا را دستکاری کنند. دستگاههایی که دکمهای برای تولید وقفه بدون پوشش اضافه میکردند، مانند روبات رومانتیک چندوجهی، لوازم جانبی محبوبی برای رایانههای خانگی ۸ بیتی و ۱۶ بیتی دهه ۱۹۸۰ بود. این تجهیزات جانبی دارای مقدار کمی رام و یک دکمه NMI بودند. با فشار دادن دکمه، کنترل به نرمافزار موجود در رام دستگاه جانبی منتقل میشود و به برنامه تعلیقشده اجازه میدهد تا روی دیسک ذخیره شود (بسیار مفید برای بازیهای نواری بدون پشتیبانی از دیسک، اما همچنین برای ذخیره بازیهای در حال انجام)، اسکرینشاتها ذخیره یا چاپ شوند. یا مقادیری در حافظه که باید دستکاری شوند - برای مثال، یک تکنیک تقلب برای به دست آوردن زندگی اضافی.
همهٔ رایانهها سازوکاری برای راهاندازی وقفه بدون پوشش ارائه نمیدهند. با این حال، بسیاری از ماشینها (معمولاً سرورهای rackmount) یک دکمه فیزیکی بهطور خاص برای این منظور ارائه میکنند. ماشینهای دیگر ممکن است این عملکرد را از طریق کارت توسعه نمایش دهند.[۲]
محصولات DISCIPLE و +D شرکت Miles Gordon Technology برای ZX Spectrum دارای یک «دکمه جادویی» تولیدکننده NMI بودند.
جستارهای وابسته
- کنترلکننده وقفه قابل برنامهریزی پیشرفته (APIC)
- وقفه بین پردازنده (IPI)
- قطع کنید
- کنترلکننده وقفه
- تأخیر را قطع کنید
- کنترلکننده وقفه قابل برنامهریزی (PIC)
پیوند به بیرون
- "Dump Switch Support for Windows". Microsoft Developer Network. 2001-12-04. Archived from the original on 2012-10-26. Retrieved 2013-08-31.
- "CGA Mode CRTC initialization". Amstrad PPC Technical Manual. seasip.info. Retrieved 2013-08-31.
- ↑ "How to generate a complete crash dump file or a kernel crash dump file by using an NMI on a Windows-based system". Microsoft. 2011-06-08. Retrieved 2013-08-31.
- ↑ "PCI Dump Switch Card". Connect Tech Inc. Retrieved 2013-08-31.
- اشکالزدایی
- وقفهها