کنترل‌گر وقفه برنامه‌پذیر

در محاسبات، کنترل‌گر وقفه برنامه‌پذیر (PIC) یک مدار مجتمع است که به یک ریزپردازنده (یا CPU) کمک می‌کند تا درخواست‌های وقفه (IRQ) را که از چندین منبع مختلف (مانند دستگاه‌های ورودی و خروجی خارجی) ناشی می‌شود، کنترل کند. این به اولویت بندی IRQها کمک می‌کند تا CPU پس از ارزیابی PIC از اولویت‌های نسبی IRQ، اجرا را به مناسب‌ترین کنترل‌کننده وقفه (ISR) تغییر دهد. حالت‌های معمول اولویت وقفه شامل اولویت‌های سخت، اولویت‌های چرخشی و اولویت‌های آبشار است. PICها معمولاً اجازه می‌دهند ورودی‌ها را به روش قابل تنظیم برای خروجی‌ها ترسیم کنند. PIC به‌طور معمول در تراشه‌های Southbridge تعبیه شده‌است که معماری داخلی آنها با استانداردهای فروشنده چیپست تعریف شده‌است.

ویژگی‌های مشترک 
PICها معمولاً مجموعه مشترکی از ثبات‌ها ثبت درخواست درخواست وقفه (IRR)، ثبت سرویس (ISR)، ثبت ماسک قطع (IMR) دارند. IRR مشخص می‌کند که کدام وقفه‌ها در انتظار تأیید است و به‌طور معمول یک ثبت نمادین است که دسترسی مستقیم به آن امکان‌پذیر نیست. رجیستر ISR مشخص می‌کند که کدام وقفه‌ها تأیید شده‌اند، اما هنوز منتظر پایان دادن به وقفه (EOI) هستند. IMR مشخص می‌کند که کدام وقفه‌ها باید نادیده گرفته شوند و تأیید نشوند. یک طرح ثبت ساده مانند این اجازه می‌دهد تا حداکثر دو درخواست متناوب برای قطع وقفه همزمان، یکی در انتظار تأیید و دیگری منتظر EOI.

تعدادی از طرح‌های اولویت بندی مشترک در PIC وجود دارد که شامل اولویت‌های سخت، اولویت‌های خاص و اولویت‌های چرخشی است.

وقفه‌ها ممکن است به صورت لبه ای فعال شده یا به صورت هم سطح ایجاد شوند.

تعدادی از روش‌های معمول وجود دارد که تصدیق می‌کند در هنگام صدور EOI وقفه کامل شده‌است. اینها شامل تعیین اینکه کدام وقفه تمام شده‌است، استفاده از وقفه ضمنی که به اتمام رسیده‌است (معمولاً بالاترین اولویت در ISR است) و تصویب وقفه به عنوان EOI تلقی می‌شود.

انواع شناخته شده 
یکی از معروف‌ترین PICها، 8259A، در کامپیوتر x86 گنجانده شده‌است. در دوران مدرن، این به عنوان یک تراشه جداگانه در یک کامپیوتر x86 لحاظ نمی‌شود، بلکه به عنوان بخشی از چیپست Southbridge مادربرد است. در موارد دیگر، با کنترل‌کننده‌های وقفه پیشرفته برنامه‌ریزی شده جدیدتر جایگزین شده‌اند که از خروجی‌های وقفه بیشتر و طرح‌های اولویت دار انعطاف پذیرتر پشتیبانی می‌کنند.

جستارهای وابسته 
 Intel 8259 - PIC قابل توجه از اینتل
 کنترل‌کننده وقفه قابل برنامه‌ریزی پیشرفته (APIC)
 OpenPIC و IBM MPIC
 وقفه بین پردازنده (IPI)
 قطع کردن
 کنترل‌کننده وقفه
 درخواست وقفه (IRQ)
 تأخیر را قطع کنید
 وقفه غیرقابل پوشاندن (NMI)
 IRQL (ویندوز)

خواندن بیشتر 
اطلاعات بیشتر در مورد Intel APIC را می‌توان در کتابچه راهنمای توسعه دهنده نرم‌افزار IA-32 Intel Architecture، جلد 3A: راهنمای برنامه‌نویسی سیستم، قسمت ۱، فصل ۱۰ یافت، که به صورت رایگان در وب سایت اینتل موجود است.

منابع

پیوند به بیرون 
 راهنمای توسعه دهنده نرم‌افزار IA-32 Intel Architecture، جلد 3A
 کنترل‌کننده و ثبت‌های مرتبط را قطع کنید.
وقفه‌ها
الکترونیک دیجیتال
مادربورد