Advanced Programmable Interrupt Controller
کمپیوٹنگ میں، انٹیل کا ایڈوانسڈ پروگرام ایبل انٹرپٹ کنٹرولر (اے پی آئی سی) انٹرپٹ کنٹرولرز کا ایک خاندان ہے۔ جیسا کہ اس کے نام سے پتہ چلتا ہے، اے پی آئی سی انٹیل کے 8259 پروگرام ایبل انٹرپٹ کنٹرولر (پی آئی سی) سے زیادہ جدید ہے، خاص طور پر ملٹی پروسیسر سسٹمز کی تعمیر کو قابل بناتا ہے۔ یہ متعدد آرکیٹیکچرل ڈیزائنوں میں سے ایک ہے جس کا مقصد ملٹی پروسیسر کمپیوٹر سسٹمز میں انٹرپٹ روٹنگ کی کارکردگی کے مسائل کو حل کرنا ہے۔ اے پی آئی سی ایک تقسیم شدہ فن تعمیر کا ڈیزائن ہے، جس میں ایک مقامی جزو (ایل اے پی آئی سی) عام طور پر خود پروسیسر میں ضم ہوتا ہے، اور سسٹم بس پر ایک اختیاری آئی/او اے پی آئی سی ہوتا ہے۔ پہلا اے پی آئی سی 82489 ڈی ایکس تھا۔ یہ ایک مجرد چپ تھی جو مقامی اور آئی/او اے پی آئی سی دونوں کے طور پر کام کرتی تھی۔ 82489 ڈی ایکس نے انٹیل 486 اور ابتدائی پینٹیم پروسیسرز کے ساتھ سمیٹرک ملٹی پروسیسر (ایس ایم پی) سسٹم کی تعمیر کو فعال کیا۔ مثال کے طور پر، حوالہ دو طرفہ 486 ایس ایم پی سسٹم میں تین 82489 ڈی ایکس چپس کا استعمال کیا گیا، دو مقامی اے پی آئی سی کے طور پر اور ایک آئی/او اے پی آئی سی کے طور پر۔ P54C پروسیسر سے شروع کرتے ہوئے، مقامی APIC فعالیت کو انٹیل پروسیسرز کے سلکان میں ضم کیا گیا تھا۔ پہلا وقف شدہ I/O APIC انٹیل 82093AA تھا، جس کا مقصد PIIX3 پر مبنی سسٹمز کے لیے تھا۔ جائزہ انٹیل اے پی آئی سی سسٹم میں دو اجزاء ہیں، مقامی اے پی آئی سی (ایل اے پی آئی سی) اور آئی/او اے پی آئی سی۔ سسٹم میں ہر سی پی یو میں ایک ایل اے پی آئی سی ہوتا ہے۔ بہت پہلے نفاذ (82489 ڈی ایکس) میں، ایل اے پی آئی سی ایک مجرد سرکٹ تھا، جیسا کہ انٹیل پروسیسرز کے سلکان میں اس کے بعد کے نفاذ کے برخلاف تھا۔ سسٹم میں ہر پردیی بس کے لیے عام طور پر ایک I/O APIC ہوتا ہے۔ اصل نظام کے ڈیزائن میں، ایل اے پی آئی سی اور آئی/او اے پی آئی سی کو ایک مخصوص اے پی آئی سی بس کے ذریعے جوڑا گیا تھا۔ نئے نظام تمام اے پی آئی سی اجزاء کے درمیان مواصلات کے لیے سسٹم بس کا استعمال کرتے ہیں۔ ہر اے پی آئی سی، چاہے وہ ایک مجرد چپ ہو یا سی پی یو میں مربوط ہو، اس کے مخصوص اے پی آئی سی کے نفاذ کے لیے ایک ورژن رجسٹر ہوتا ہے جس میں چار بٹ ورژن نمبر ہوتا ہے۔ مثال کے طور پر، 82489 ڈی ایکس کا اے پی آئی سی ورژن نمبر 0 ہے، جبکہ ورژن 1 پینٹیم 90 اور 100 پروسیسرز میں مربوط مقامی اے پی آئی سی کی پہلی نسل کو تفویض کیا گیا تھا۔ 8259 پی آئی سی والے سسٹمز میں، 8259 سسٹم کے بوٹسٹریپ پروسیسر (بی ایس پی)، سسٹم کے آئی/او اے پی آئی سیز میں سے ایک، یا دونوں میں ایل اے پی آئی سی سے منسلک ہو سکتا ہے۔ منطقی طور پر، تاہم، 8259 کسی بھی وقت صرف ایک بار منسلک ہوتا ہے۔ ڈسکرٹ اے پی آئی سی پہلی نسل کی انٹیل اے پی آئی سی چپ، 82489 ڈی ایکس، جسے انٹیل 80486 اور ابتدائی پینٹیم پروسیسرز کے ساتھ استعمال کیا جانا تھا، دراصل ایک سرکٹ میں ایک بیرونی مقامی اور آئی/او اے پی آئی سی ہے۔ انٹیل ایم پی 1.4 تفصیلات اسے زیادہ تر پینٹیم پروسیسرز میں پائے جانے والے "مربوط اے پی آئی سی" کے برعکس "مجرد اے پی آئی سی" کے طور پر حوالہ دیتی ہیں۔ 82489 ڈی ایکس میں 16 انٹرپٹ لائنیں تھیں ؛ اس میں یہ بھی عجیب و غریب تھا کہ یہ کچھ آئی ایس اے انٹرپٹ کھو سکتا ہے۔ ملٹی پروسیسر 486 سسٹم میں، ہر سی پی یو کو اس کے اپنے 82489 ڈی ایکس کے ساتھ جوڑا بنانا پڑتا تھا ؛ اس کے علاوہ ایک اضافی 82489 ڈی ایکس کو آئی/او اے پی آئی سی کے طور پر استعمال کرنا پڑتا تھا۔ 82489 ڈی ایکس 8259 اے (ایکس ٹی-پی آئی سی) کی تقلید نہیں کر سکا اس لیے انہیں بیک ورڈ مطابقت کے لیے فزیکل چپس کے طور پر بھی شامل کرنا پڑا۔ 82489 ڈی ایکس 132 پن پی کیو ایف پی کے طور پر پیک کیا گیا تھا۔ مربوط مقامی اے پی آئی سی مقامی اے پی آئی سی (ایل اے پی آئی سی) ایس ایم پی سسٹم میں کچھ مخصوص پروسیسر کے لیے تمام بیرونی رکاوٹوں کا انتظام کرتے ہیں۔ اس کے علاوہ، وہ ایل اے پی آئی سی کے درمیان انٹر پروسیسر انٹرپٹس (آئی پی آئی) کو قبول کرنے اور پیدا کرنے کے قابل ہیں۔ ایل اے پی آئی سی آئی/او اے پی آئی سی سے استعمال کے قابل 224 انٹرپٹ ویکٹرز تک کی حمایت کر سکتے ہیں۔ ویکٹر نمبر 0 سے 31، 0 سے 255 میں سے، x86 پروسیسرز کے ذریعہ مستثنی ہینڈلنگ کے لیے مخصوص ہیں۔ پی 5 مائیکرو آرکیٹیکچر (پی 54 سی) سے شروع ہونے والے تمام انٹیل پروسیسرز میں بلٹ ان مقامی اے پی آئی سی ہوتا ہے۔ تاہم، اگر مقامی اے پی آئی سی پی 5 پروسیسر میں غیر فعال ہے، تو اسے سافٹ ویئر کے ذریعے دوبارہ فعال نہیں کیا جا سکتا ؛ یہ حد اب پی 6 پروسیسرز اور بعد کے پروسیسرز میں موجود نہیں ہے۔ پی سی آئی 2 کی میسج سگنلڈ انٹرپٹس (ایم ایس آئی) خصوصیت اور اس کے بعد کی وضاحتیں مقامی اے پی آئی سی کو فعال کیے بغیر استعمال نہیں کی جا سکتی ہیں۔ ایم ایس آئی کا استعمال آئی/او اے پی آئی سی کی ضرورت کو ختم کرتا ہے۔ مزید برآں، ایم ایس آئی موڈ میں 224 تک رکاوٹوں کی حمایت کی جاتی ہے، اور آئی آر کیو شیئرنگ کی اجازت نہیں ہے۔ اے پی آئی سی ٹائمر مقامی اے پی آئی سی کا ایک اور فائدہ یہ ہے کہ یہ ایک ہائی ریزولوشن (ایک مائیکرو سیکنڈ یا اس سے بہتر کی ترتیب پر) ٹائمر بھی فراہم کرتا ہے جسے وقفہ اور ون آف موڈ دونوں میں استعمال کیا جا سکتا ہے۔ اے پی آئی سی ٹائمر کو قبولیت کی ابتدائی پریشانیاں تھیں۔ 2002 سے مائیکروسافٹ کی ایک دستاویز (جس نے اس کے بجائے ہائی پریسیژن ایونٹ ٹائمر کو اپنانے کی وکالت کی تھی) نے ایل اے پی آئی سی ٹائمر کو "ناقص ریزولوشن" پر تنقید کا نشانہ بنایا اور کہا کہ "گھڑیاں سلکان بعض اوقات بہت بگی ہوتی ہیں"۔ بہر حال، اے پی آئی سی ٹائمر مثال کے طور پر ونڈوز 7 کے ذریعے استعمال کیا جاتا ہے جب پروفائلنگ فعال ہوتی ہے، اور ونڈوز 8 کے ذریعے تمام حالات میں۔ (ونڈوز 8 کے اس ٹائمر کے خصوصی حقوق کا دعوی کرنے سے پہلے، یہ سی پی یو-زیڈ جیسے کچھ پروگراموں کے ذریعہ بھی استعمال ہوتا تھا۔) مائیکروسافٹ ونڈوز کے تحت اے پی آئی سی ٹائمر قابل اشتراک وسیلہ نہیں ہے۔ اے پی آئی سی ٹائمر کی طرف سے پیش کردہ اپریوڈک انٹرپٹس لینکس کرنل ٹک لیس کرنل فیچر کے ذریعے استعمال ہوتے ہیں۔ یہ اختیاری لیکن ڈیفالٹ خصوصیت 2.6.18 کے ساتھ نئی ہے۔ جب اے پی آئی سی ٹائمر والے کمپیوٹر پر فعال کیا جاتا ہے، تو دانا ٹائم کیپنگ کے لیے 8253 پروگرام کے قابل وقفہ ٹائمر کا استعمال نہیں کرتا ہے۔ ایک وی ایم ویئر دستاویز نوٹ کرتی ہے کہ "سافٹ ویئر کے پاس اس کی تعدد کا تعین کرنے کا قابل اعتماد طریقہ نہیں ہے۔ عام طور پر، مقامی اے پی آئی سی ٹائمر کی تعدد کا تعین کرنے کا واحد طریقہ پی آئی ٹی یا سی ایم او ایس ٹائمر کا استعمال کرتے ہوئے اس کی پیمائش کرنا ہے، جس سے صرف ایک تخمینہ نتیجہ ملتا ہے۔ I/O APICs I/O APICs میں ایک ری ڈائریکشن ٹیبل ہوتا ہے، جو پردیی بسوں سے موصول ہونے والی رکاوٹوں کو ایک یا زیادہ مقامی APICs تک پہنچانے کے لیے استعمال ہوتا ہے۔ ابتدائی آئی/او اے پی آئی سیز (جیسے 82489 ڈی ایکس، SIO.A اور پی سی ای بی/ای ایس سی) میں صرف 16 انٹرپٹ لائنوں کے لیے سپورٹ تھی، لیکن بعد میں 82093 اے اے (پی آئی آئی ایکس 3/پی آئی آئی ایکس 4 کے لیے علیحدہ چپ) میں 24 انٹرپٹ لائنوں کے لیے سپورٹ تھی۔ اسے 64-پن پی کیو ایف پی کے طور پر پیک کیا گیا تھا۔ 82093 اے اے عام طور پر پی آئی آئی ایکس 3/پی آئی آئی ایکس 4 سے منسلک ہوتا ہے اور اس نے اپنی مربوط میراث 8259 پی آئی سی کا استعمال کیا۔ ICH1 اور انٹیل 815 نے I/O APIC کو مربوط کیا۔ لینکس کا استعمال کرتے ہوئے 2009 کے انٹیل بینچ مارک کے مطابق، آئی/او اے پی آئی سی نے 8259 ایمولیشن (ایکس ٹی-پی آئی سی) کے مقابلے میں تقریبا تین فیکٹر کے ذریعے انٹرپٹ لیٹینسی کو کم کیا، جبکہ ایم ایس آئی کا استعمال کرتے ہوئے لیٹینسی کو اور بھی کم کر دیا، ایکس ٹی-پی آئی سی بیس لائن کے مقابلے میں تقریبا سات فیکٹر کے ذریعے۔ متغیرات xAPIC کو پینٹیم 4 کے ساتھ متعارف کرایا گیا تھا، جبکہ x2APIC انٹیل کے پروگرام کے قابل انٹرپٹ کنٹرولر کی تازہ ترین نسل ہے، جسے نومبر 2008 میں نیہلم مائیکرو آرکیٹیکچر کے ساتھ متعارف کرایا گیا تھا۔ x2APIC کی بڑی بہتری معاون CPU کی تعداد اور انٹرفیس کی کارکردگی کو حل کرتی ہے۔ x2APIC اب سی پی یوز کو ایڈریس کرنے کے لیے 32 بٹس کا استعمال کرتا ہے، جس سے فزیکل ڈیسٹینیشن موڈ کا استعمال کرتے ہوئے 232−1 سی پی یوز تک کو ایڈریس کرنے کی اجازت ملتی ہے۔ منطقی منزل کا موڈ اب مختلف طریقے سے کام کرتا ہے اور کلسٹرز متعارف کراتا ہے۔ اس موڈ کا استعمال کرتے ہوئے، کوئی بھی 220−16 پروسیسرز کو ایڈریس کر سکتا ہے۔ بہتر انٹرفیس انٹر پروسیسر انٹرپٹس (آئی پی آئی) بھیجنے کے لیے ضروری اے پی آئی سی رجسٹر رسائی کی تعداد کو کم کر دیتا ہے۔ اس فائدے کی وجہ سے، کے وی ایم پرانے پروسیسرز کے لیے x2APIC کی تقلید کر سکتا ہے اور کرتا ہے جو اسے جسمانی طور پر سپورٹ نہیں کرتے ہیں، اور یہ سپورٹ کیو ای ایم یو سے کونرو میں واپس جانے اور یہاں تک کہ اے ایم ڈی اوپٹرون جی سیریز پروسیسرز کے لیے بھی بے نقاب ہوتا ہے (جن میں سے کوئی بھی مقامی طور پر x2APIC کو سپورٹ نہیں کرتا ہے)۔ اے پی آئی سی وی ہارڈ ویئر ورچوئلائزیشن سپورٹ کے لیے انٹیل کا برانڈ نام ہے جس کا مقصد مہمانوں میں رکاوٹ اوور ہیڈ کو کم کرنا ہے۔ اے پی آئی سی وی کو آئیوی برج-ای پی پروسیسر سیریز میں متعارف کرایا گیا تھا، جسے زیون ای 5-26 ایکس ایکس وی 2 (2013 کے آخر میں لانچ کیا گیا) اور زیون ای 5-46 ایکس ایکس وی 2 (2014 کے اوائل میں لانچ کیا گیا) کے طور پر فروخت کیا جاتا ہے۔ اے ایم ڈی نے اے وی آئی سی نامی اسی طرح کی ٹیکنالوجی کا اعلان کیا، یہ فیملی 15 ایچ ماڈل 6 ایکس ایچ (کیریزو) پروسیسرز اور نئے دستیاب ہیں۔ مسائل اے پی آئی سی سسٹم کے نفاذ میں متعدد معروف کیڑے ہیں، خاص طور پر اس تشویش کے ساتھ کہ 8254 کیسے جڑا ہوا ہے۔ عیب دار بائیوس انٹرپٹ روٹنگ کو صحیح طریقے سے سیٹ نہیں کر سکتے ہیں، یا غلط اے سی پی آئی ٹیبلز اور انٹیل ملٹی پروسیسر اسپیسیفیکیشن (ایم پی ایس) ٹیبلز فراہم نہیں کر سکتے ہیں۔ اے پی آئی سی سسٹم کی ناکامی کا سبب بھی بن سکتا ہے جب آپریٹنگ سسٹم اسے مناسب طریقے سے سپورٹ نہیں کرتا ہے۔ پرانے آپریٹنگ سسٹمز پر، I/O اور مقامی APICs کو اکثر غیر فعال کرنا پڑتا تھا۔ اگرچہ سمیٹرک ملٹی پروسیسر اور ملٹی کور سسٹمز کے پھیلاؤ کی وجہ سے اب یہ ممکن نہیں ہے، لیکن فرم ویئر اور آپریٹنگ سسٹمز میں موجود کیڑے اب ایک نایاب واقعہ ہیں۔ مسابقتی اے ایم ڈی اور سائریکس نے ایک بار 32 پروسیسرز تک کی حمایت کرنے والے کسی حد تک اسی طرح کے اوپن پی آئی سی فن تعمیر کی تجویز پیش کی تھی۔ اسے 1995 کے آس پاس آئی بی ایم اور کمپیک کی طرف سے کم از کم اعلانیہ حمایت حاصل تھی۔ تاہم اوپن پی آئی سی کے ساتھ کوئی x86 مدر بورڈ جاری نہیں کیا گیا تھا۔ ایکس 86 مارکیٹ میں اوپن پی آئی سی کی ناکامی کے بعد، اے ایم ڈی نے اپنے اے ایم ڈی ایتھلون اور بعد کے پروسیسرز کے لیے انٹیل کے اے پی آئی سی کو لائسنس دیا۔ تاہم آئی بی ایم نے اوپن پی آئی سی رجسٹر کی خصوصیات کی بنیاد پر اپنا ملٹی پروسیسر انٹرپٹ کنٹرولر (ایم پی آئی سی) تیار کیا۔ ایم پی آئی سی کو پاور پی سی پر مبنی ڈیزائنوں میں استعمال کیا گیا تھا، بشمول آئی بی ایم کے، مثال کے طور پر کچھ آر ایس/6000 سسٹمز میں، بلکہ ایپل کے ذریعے بھی، ان کے پاور میک جی 5 ایس تک۔ انٹیل 8259 پروگرام ایبل انٹرپٹ کنٹرولر (پی آئی سی) انٹر پروسیسر انٹرپٹ (آئی پی آئی) انٹرپٹ انٹرپٹ ہینڈلر انٹرپٹ لیٹینسی میسج سگنلڈ انٹرپٹس (ایم ایس آئی) نان ماسکیبل انٹرپٹ (این ایم آئی) حوالہ جات مزید پڑھنے کے لیے آئی اے-32 انٹیل آرکیٹیکچر سافٹ ویئر ڈویلپر کا دستی، جلد 3 اے: سسٹم پروگرامنگ گائیڈ، حصہ 1، باب 10 دیکھیں۔ بیرونی روابط انٹیل 64 آرکیٹیکچر x2APIC تفصیلات (PDF) انٹیل x2APIC آرکیٹیکچر کے بارے میں مزید معلومات انٹیل 64 اور IA-32 آرکیٹیکچر سافٹ ویئر ڈویلپر کے دستی مدر بورڈ انٹرپٹس ایپک آرکیٹیکچر IBM PC مطابقت پذیر X86 فن تعمیر میں مل سکتی ہیں۔