Advanced Programmable Interrupt Controller
कम्प्यूटिंग में, इंटेल का एडवांस्ड प्रोग्रामेबल इंटरप्ट कंट्रोलर (एपीआईसी) इंटरप्ट कंट्रोलरों का एक परिवार है। जैसा कि इसके नाम से पता चलता है, एपीआईसी इंटेल के 8259 प्रोग्रामेबल इंटरप्ट कंट्रोलर (पी. आई. सी.) की तुलना में अधिक उन्नत है, विशेष रूप से मल्टीप्रोसेसर सिस्टम के निर्माण को सक्षम करता है। यह मल्टीप्रोसेसर कंप्यूटर प्रणालियों में इंटरप्ट रूटिंग दक्षता के मुद्दों को हल करने के उद्देश्य से कई वास्तुशिल्प डिजाइनों में से एक है। एपीआईसी एक विभाजित वास्तुकला डिजाइन है, जिसमें एक स्थानीय घटक (एलएपीआईसी) आमतौर पर प्रोसेसर में ही एकीकृत होता है, और एक सिस्टम बस पर एक वैकल्पिक आई/ओ एपीआईसी होता है। पहला एपीआईसी 82489डीएक्स था यह एक असतत चिप थी जो स्थानीय और आई/ओ एपीआईसी दोनों के रूप में कार्य करती थी। 82489डीएक्स ने इंटेल 486 और प्रारंभिक पेंटियम प्रोसेसर के साथ सममित मल्टीप्रोसेसर (एसएमपी) प्रणालियों के निर्माण को सक्षम किया; उदाहरण के लिए, संदर्भ दो-तरफा 486 एसएमपी प्रणाली ने तीन 82489डीएक्स चिप्स का उपयोग किया, दो स्थानीय एपीआईसी के रूप में और एक आई/ओ एपीआईसी के रूप में। पी54सी प्रोसेसर से शुरू करते हुए, स्थानीय एपीआईसी कार्यक्षमता को इंटेल प्रोसेसर के सिलिकॉन में एकीकृत किया गया था। पहला समर्पित आई/ओ एपीआईसी इंटेल 82093एए था, जो पी. आई. आई. एक्स. 3-आधारित प्रणालियों के लिए था। अवलोकन इंटेल एपीआईसी प्रणाली में दो घटक हैं, स्थानीय एपीआईसी (एलएपीआईसी) और आई/ओ एपीआईसी। सिस्टम में प्रत्येक सीपीयू में एक एलएपीआईसी होता है। बहुत पहले कार्यान्वयन (82489डीएक्स) में, एलएपीआईसी एक असतत परिपथ था, जैसा कि इंटेल प्रोसेसर के सिलिकॉन में इसके बाद के कार्यान्वयन के विपरीत था। सिस्टम में प्रत्येक परिधीय बस के लिए आम तौर पर एक आई/ओ एपीआईसी होता है। मूल प्रणाली डिजाइन में, एल. ए. पी. आई. सी. और आई/ओ. ए. पी. आई. सी. को एक समर्पित ए. पी. आई. सी. बस द्वारा जोड़ा गया था। नई प्रणालियाँ सभी एपीआईसी घटकों के बीच संचार के लिए सिस्टम बस का उपयोग करती हैं। प्रत्येक ए. पी. आई. सी., चाहे वह एक असतत चिप हो या सी. पी. यू. में एकीकृत, के पास एक संस्करण रजिस्टर होता है जिसमें इसके विशिष्ट ए. पी. आई. सी. कार्यान्वयन के लिए चार-बिट संस्करण संख्या होती है। उदाहरण के लिए, 82489डीएक्स में एपीआईसी संस्करण संख्या 0 है, जबकि संस्करण 1 को पेंटियम 90 और 100 प्रोसेसर में एकीकृत स्थानीय एपीआईसी की पहली पीढ़ी को सौंपा गया था। 8259 पी. आई. सी. वाले सिस्टम में, 8259 को सिस्टम के बूटस्ट्रैप प्रोसेसर (बी. एस. पी.) में एल. ए. पी. आई. सी., सिस्टम के आई/ओ. ए. पी. आई. सी. में से एक, या दोनों से जोड़ा जा सकता है। हालाँकि, तार्किक रूप से, 8259 किसी भी समय केवल एक बार जुड़ा होता है। डिस्क्रीट एपीआईसी पहली पीढ़ी की इंटेल एपीआईसी चिप, 82489डीएक्स, जिसका उपयोग इंटेल 80486 और शुरुआती पेंटियम प्रोसेसर के साथ किया जाना था, वास्तव में एक सर्किट में एक बाहरी स्थानीय और आई/ओ एपीआईसी है। इंटेल एमपी 1.4 विनिर्देशन इसे अधिकांश पेंटियम प्रोसेसरों में पाए जाने वाले "एकीकृत एपीआईसी" के विपरीत "असतत एपीआईसी" के रूप में संदर्भित करता है। 82489डीएक्स में 16 इंटरप्ट लाइनें थीं; इसमें एक विचित्रता भी थी कि यह कुछ आईएसए इंटरप्ट खो सकता है। एक मल्टीप्रोसेसर 486 प्रणाली में, प्रत्येक सीपीयू को अपने स्वयं के 82489डीएक्स के साथ जोड़ा जाना था; इसके अतिरिक्त एक पूरक 82489डीएक्स का उपयोग आई/ओ एपीआईसी के रूप में किया जाना था। 82489डीएक्स 8259ए (एक्सटी-पीआईसी) का अनुकरण नहीं कर सका, इसलिए इन्हें पीछे की ओर संगतता के लिए भौतिक चिप्स के रूप में भी शामिल करना पड़ा। 82489डीएक्स 132-पिन पीक्यूएफपी के रूप में पैक किया गया था। एकीकृत स्थानीय ए. पी. आई. सी. स्थानीय ए. पी. आई. सी. (एल. ए. पी. आई. सी.) एस. एम. पी. प्रणाली में कुछ विशिष्ट प्रोसेसर के लिए सभी बाहरी व्यवधानों का प्रबंधन करते हैं। इसके अलावा, वे एल. ए. पी. आई. सी. के बीच इंटर-प्रोसेसर इंटरप्ट (आई. पी. आई.) को स्वीकार करने और उत्पन्न करने में सक्षम हैं। एल. ए. पी. आई. सी. आई./ओ. ए. पी. आई. सी. से प्रयोग करने योग्य 224 इंटरप्ट वैक्टर तक का समर्थन कर सकते हैं। 0 से 255 में से वेक्टर संख्या 0 से 31, x86 प्रोसेसर द्वारा अपवाद संचालन के लिए आरक्षित हैं। पी5 माइक्रोआर्किटेक्चर (पी54सी) से शुरू होने वाले सभी इंटेल प्रोसेसरों में एक अंतर्निहित स्थानीय एपीआईसी होता है। हालाँकि, यदि स्थानीय एपीआईसी पी5 प्रोसेसर में अक्षम है, तो इसे सॉफ्टवेयर द्वारा फिर से सक्षम नहीं किया जा सकता है; यह सीमा अब पी6 प्रोसेसर और बाद के प्रोसेसर में मौजूद नहीं है। पीसीआई 2.2 और बाद के विनिर्देशों की संदेश संकेतित व्यवधान (एमएसआई) सुविधा का उपयोग स्थानीय एपीआईसी को सक्षम किए बिना नहीं किया जा सकता है। एम. एस. आई. का उपयोग आई/ओ ए. पी. आई. सी. की आवश्यकता को कम करता है। इसके अतिरिक्त, एम. एस. आई. मोड में 224 इंटरप्ट तक समर्थित हैं, और आई. आर. क्यू. साझा करने की अनुमति नहीं है। एपीआईसी टाइमर स्थानीय एपीआईसी का एक अन्य लाभ यह है कि यह एक उच्च-रिज़ॉल्यूशन (एक माइक्रोसेकंड या बेहतर के क्रम पर) टाइमर भी प्रदान करता है जिसका उपयोग अंतराल और एक-बंद दोनों मोड में किया जा सकता है। ए. पी. आई. सी. टाइमर की प्रारंभिक स्वीकृति समस्याएं थीं। 2002 के एक माइक्रोसॉफ्ट दस्तावेज़ (जिसने इसके बजाय उच्च परिशुद्धता कार्यक्रम टाइमर को अपनाने की वकालत की) ने एल. ए. पी. आई. सी. टाइमर की "खराब रिज़ॉल्यूशन" के लिए आलोचना की और कहा कि "घड़ियाँ सिलिकॉन कभी-कभी बहुत खराब होती हैं।" फिर भी, एपीआईसी टाइमर का उपयोग उदाहरण के लिए विंडोज 7 द्वारा किया जाता है जब प्रोफाइलिंग सक्षम होती है, और विंडोज 8 द्वारा सभी परिस्थितियों में किया जाता है। (विंडोज 8 द्वारा इस टाइमर के विशेष अधिकारों का दावा करने से पहले, इसका उपयोग सीपीयू-जेड जैसे कुछ कार्यक्रमों द्वारा भी किया जाता था।) माइक्रोसॉफ्ट विंडोज के तहत एपीआईसी टाइमर साझा करने योग्य संसाधन नहीं है। एपीआईसी टाइमर द्वारा प्रस्तुत अपेरियोडिक इंटरप्ट का उपयोग लिनक्स कर्नेल टिकलेस कर्नेल सुविधा द्वारा किया जाता है। यह वैकल्पिक लेकिन डिफ़ॉल्ट सुविधा 2.6.18 के साथ नई है। ए. पी. आई. सी. टाइमर वाले कंप्यूटर पर सक्षम होने पर, कर्नेल समय-निर्धारण के लिए 8253 प्रोग्राम करने योग्य अंतराल टाइमर का उपयोग नहीं करता है। एक वी. एम. वेयर दस्तावेज़ में कहा गया है कि "सॉफ्टवेयर के पास इसकी आवृत्ति निर्धारित करने का एक विश्वसनीय तरीका नहीं है। आम तौर पर, स्थानीय एपीआईसी टाइमर की आवृत्ति निर्धारित करने का एकमात्र तरीका पीआईटी या सीएमओएस टाइमर का उपयोग करके इसे मापना है, जो केवल एक अनुमानित परिणाम देता है। आई/ओ ए. पी. आई. सी. आई/ओ. ए. पी. आई. सी. में एक पुनर्निर्देशन तालिका होती है, जिसका उपयोग परिधीय बसों से प्राप्त होने वाले व्यवधानों को एक या अधिक स्थानीय ए. पी. आई. सी. तक पहुँचाने के लिए किया जाता है। प्रारंभिक आई/ओ एपीआईसी (जैसे 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 अब CPU को संबोधित करने के लिए 32 बिट्स का उपयोग करता है, जिससे भौतिक गंतव्य मोड का उपयोग करके 232−1 CPU तक को संबोधित करने की अनुमति मिलती है। लॉजिकल डेस्टिनेशन मोड अब अलग तरह से काम करता है और समूहों का परिचय देता है; इस मोड का उपयोग करके, कोई भी 220−16 प्रोसेसर तक संबोधित कर सकता है। बेहतर इंटरफेस इंटर-प्रोसेसर इंटरप्ट (आई. पी. आई.) भेजने के लिए आवश्यक ए. पी. आई. सी. रजिस्टर एक्सेस की संख्या को कम कर देता है। इस लाभ के कारण, केवीएम पुराने प्रोसेसरों के लिए x2APIC का अनुकरण कर सकता है और करता है जो भौतिक रूप से इसका समर्थन नहीं करते हैं, और यह समर्थन क्यूईएमयू से कॉनरो में वापस जाने और यहां तक कि एएमडी ऑप्टेरॉन जी-सीरीज़ प्रोसेसरों के लिए भी उजागर होता है (जिनमें से कोई भी मूल रूप से x2APIC का समर्थन नहीं करता है)। एपीआईसीवी हार्डवेयर वर्चुअलाइजेशन सपोर्ट के लिए इंटेल का ब्रांड नाम है जिसका उद्देश्य मेहमानों में इंटरप्ट ओवरहेड को कम करना है। एपीआईसीवी को आइवी ब्रिज-ईपी प्रोसेसर श्रृंखला में पेश किया गया था, जिसे ज़ीऑन ई 5-26 एक्सएक्स वी2 (2013 के अंत में लॉन्च किया गया) और ज़ीऑन ई 5-46 एक्सएक्स वी2 (2014 की शुरुआत में लॉन्च किया गया) के रूप में बेचा जाता है। एएमडी ने एवीआईसी नामक एक समान तकनीक की घोषणा की, यह उपलब्ध परिवार 15एच मॉडल 6एक्सएच (कैरीजो) प्रोसेसर और नए हैं। एपीआईसी प्रणालियों के कार्यान्वयन में कई ज्ञात बग हैं, विशेष रूप से इस बात की चिंता के साथ कि 8254 कैसे जुड़ा हुआ है। दोषपूर्ण बी. आई. ओ. एस. इंटरप्ट रूटिंग को ठीक से सेट नहीं कर सकते हैं, या गलत ए. सी. पी. आई. टेबल और इंटेल मल्टीप्रोसेसर विनिर्देशन (एम. पी. एस.) टेबल प्रदान नहीं कर सकते हैं। ए. पी. आई. सी. सिस्टम विफलता का कारण भी हो सकता है जब ऑपरेटिंग सिस्टम इसका ठीक से समर्थन नहीं करता है। पुराने ऑपरेटिंग सिस्टम पर, आई/ओ और स्थानीय एपीआईसी को अक्सर अक्षम करना पड़ता था। जबकि सममित मल्टीप्रोसेसर और मल्टी-कोर प्रणालियों के प्रचलन के कारण यह अब संभव नहीं है, फर्मवेयर और ऑपरेटिंग सिस्टम में बग अब एक दुर्लभ घटना है। प्रतिस्पर्धा ए. एम. डी. और साइरिक्स ने एक बार 32 प्रोसेसरों का समर्थन करने वाले कुछ समान-उद्देश्य वाले ओपन. पी. आई. सी. वास्तुकला का प्रस्ताव रखा था; इसे 1995 के आसपास आई. बी. एम. और कॉम्पैक से कम से कम घोषणात्मक समर्थन प्राप्त था। हालाँकि ओपनपीआईसी के साथ कोई x86 मदरबोर्ड जारी नहीं किया गया था। x86 बाजार में ओपनपीआईसी की विफलता के बाद, एएमडी ने अपने एएमडी एथलॉन और बाद के प्रोसेसरों के लिए इंटेल के एपीआईसी को लाइसेंस दिया। हालाँकि आई. बी. एम. ने अपने मल्टीप्रोसेसर इंटरप्ट कंट्रोलर (एम. पी. आई. सी.) को ओपन. पी. आई. सी. रजिस्टर विनिर्देशों के आधार पर विकसित किया। एमपीआईसी का उपयोग पावरपीसी आधारित डिजाइनों में किया गया था, जिसमें आईबीएम भी शामिल था, उदाहरण के लिए कुछ आरएस/6000 प्रणालियों में, लेकिन ऐप्पल द्वारा भी, उनके पावर मैक जी5एस के रूप में देर से। इंटेल 8259 प्रोग्रामेबल इंटरप्ट कंट्रोलर (पी. आई. सी.) इंटर-प्रोसेसर इंटरप्ट (आई. पी. आई.) इंटरप्ट इंटरप्ट हैंडलर इंटरप्ट लेटेंसी मैसेज सिग्नल्ड इंटरप्ट्स (एम. एस. आई.) नॉन-मास्केबल इंटरप्ट (एन. एम. आई.) संदर्भ भी देखें। बाहरी लिंक इंटेल 64 आर्किटेक्चर x2APIC विनिर्देश (PDF) इंटेल x2APIC आर्किटेक्चर के बारे में अधिक जानकारी "इंटेल 64 और IA-32 आर्किटेक्चर सॉफ्टवेयर डेवलपर के मैनुअल मदरबोर्ड इंटरप्ट्स एपिक आर्किटेक्चर IBM PC कम्पेटिबल X86 आर्किटेक्चर" में पाई जा सकती है।