इंटेल 8259

इंटेल 8259 प्रोग्रामेबल इंटरप्ट कंट्रोलर (पीआईसी) है जिसे इंटेल 8085 और इंटेल 8086 माइक्रोप्रोसेसर के लिए डिज़ाइन किया गया है। जिसका प्रारंभिक भाग 8259 था, जो कुछ समय पश्चात A सफिक्स वर्जन 8086 या 8088 प्रोसेसर के साथ अपवर्ड कम्पेटिबल और प्रयोग करने योग्य था। 8259 मल्टिपल इंटरप्ट इनपुट सोर्सेज को होस्ट माइक्रोप्रोसेसर के सिंगल इंटरप्ट आउटपुट में जोड़ता है, जो सिस्टम में उपलब्ध इंटरप्ट लेवल को प्रोसेसर चिप पर पाए जाने वाले एक या दो लेवल से आगे एक्सटेंड करता है। 8259A ओरिजिनल आईबीएम पीसी और आईबीएम पीसी एटी में आईएसए बस के लिए इंटरप्ट कंट्रोलर था।

8259 को 1976 में इंटेल के एमसीएस 85 सदस्य के रूप में प्रस्तुत किया गया था। 8259A को 1981 में प्रस्तुत किए गए ओरिजिनल पीसी में सम्मिलित किया गया था और 1983 में प्रस्तुत किए जाने पर पीसी/एक्सटी द्वारा मेन्टेन किया गया था। पीसीएटी के प्रारम्भ के साथ दूसरा 8259A भी ऐड किया गया था। सिमेट्रिक मल्टीप्रोसेसर पीसी में अपने प्रारम्भ के पश्चात से 8259 इंटेल एपीआईसी आर्किटेक्चर के साथ सह-अस्तित्व में है। आधुनिक पीसी ने इंटेल एपीआईसी आर्किटेक्चर के पक्ष में 8259A को चरणबद्ध रूप से समाप्त करना प्रारम्भ कर दिया है। यद्यपि, अब यह सेपरेट चिप नहीं है, 8259A इंटरफ़ेस अभी भी आधुनिक x86 मदरबोर्ड पर प्लेटफार्म कंट्रोलर हब या साउथब्रिज (कंप्यूटिंग) द्वारा प्रोवाइड किया जाता है।

कार्यात्मक विवरण
8259 पर मुख्य सिग्नल पिन इस प्रकार हैं: आईआरक्यू0 से आईआरक्यू7 नामक आठ इंटरप्ट इनपुट अनुरोध लाइनें, आईएनटीआर नामक इंटरप्ट अनुरोध आउटपुट लाइन, इंटरप्ट स्तर या वेक्टर ऑफसेट को संचार करने के लिए आईएनटीए, डी0 से डी7 नामक इंटरप्ट पावती लाइन। अन्य कनेक्शनों में 8259 के बीच कैस्केडिंग के लिए CAS0 से CAS2 सम्मिलित हैं।

अधिकतम 64 आईआरक्यू प्रदान करने के लिए आठ स्लेव 8259 को मास्टर 8259 में कैस्केड किया जा सकता है। 8259 को स्लेव 8259 की INT लाइन को मास्टर 8259 की IRQ लाइन से जोड़कर कैस्केड किया जाता है।

इंटरप्ट का अंत (ईओआई) संचालन विशिष्ट ईओआई, गैर-विशिष्ट ईओआई और ऑटो-ईओआई का समर्थन करता है। विशिष्ट ईओआई उस आईआरक्यू स्तर को निर्दिष्ट करता है जिसे वह आईएसआर में स्वीकार कर रहा है। गैर-विशिष्ट ईओआई आईएसआर में आईआरक्यू स्तर को रीसेट करता है। ऑटो-ईओआई रुकावट स्वीकार होने के तुरंत बाद आईएसआर में आईआरक्यू स्तर को रीसेट करता है।

एज और लेवल इंटरप्ट ट्रिगर मोड 8259A द्वारा समर्थित हैं। निश्चित प्राथमिकता और घूर्णन प्राथमिकता मोड समर्थित हैं।

8259 को 8080/8085 या 8086/8088 के साथ काम करने के लिए कॉन्फ़िगर किया जा सकता है। 8086/8088 पर, व्यवधान उत्पन्न होने पर इंटरप्ट नियंत्रक डेटा बस पर इंटरप्ट नंबर प्रदान करेगा। 8080/8085 का व्यवधान चक्र डेटा बस पर तीन बाइट्स जारी करेगा (8080/8085 निर्देश सेट में कॉल निर्देश के अनुरूप)।

8259A 8259 (विशेष रूप से बफ़र मोड और लेवल-ट्रिगर मोड में) की तुलना में अतिरिक्त कार्यक्षमता प्रदान करता है और इसके साथ ऊपर की ओर संगत है।

डॉस और विंडोज़
डॉस और माइक्रोसॉफ़्ट विंडोज़ के संयोजन में 8259 प्रोग्रामिंग ने बैकवर्ड संगतता के लिए कई भ्रमित करने वाले मुद्दे प्रस्तुत किए हैं, जो 1981 में प्रस्तुत किए गए ओरिजिनल पीसी तक फैले हुए हैं।

पहला मुद्दा ही कमोबेश दूसरे मुद्दे की जड़ है। डॉस डिवाइस ड्राइवरों से अपेक्षा की जाती है कि जब वे अपने डिवाइस की सर्विसिंग पूरी कर लें तो वे 8259 पर गैर-विशिष्ट ईओआई भेजें। यह डॉस में 8259 के किसी भी अन्य ईओआई मोड के उपयोग को रोकता है, और मास्टर 8259 से स्लेव 8259 तक पुन: रूट किए गए डिवाइस इंटरप्ट के बीच अंतर को बाहर करता है।

दूसरा मुद्दा पीसी/एटी में स्लेव 8259 की प्रारम्भआत से आईआरक्यू2 और आईआरक्यू9 के उपयोग से संबंधित है। स्लेव 8259 का INT आउटपुट मास्टर के IR2 से जुड़ा है। ISA बस की IRQ2 लाइन, जो मूल रूप से इस IR2 से जुड़ी थी, को दास के IR1 पर पुनः भेजा गया था। इस प्रकार पुरानी IRQ2 लाइन अब CPU में IRQ9 उत्पन्न करती है। DOS डिवाइस ड्राइवरों के साथ बैकवर्ड संगतता की अनुमति देने के लिए जो अभी भी IRQ2 के लिए सेट हैं, IRQ9 के लिए BIOS द्वारा हैंडलर स्थापित किया गया है जो मूल IRQ2 हैंडलर पर इंटरप्ट को रीडायरेक्ट करता है।

पीसी पर, BIOS (और इस प्रकार DOS भी) पारंपरिक रूप से मास्टर 8259 इंटरप्ट रिक्वेस्ट (IRQ0-IRQ7) को वेक्टर ऑफसेट 8 (INT08-INT0F) और स्लेव 8259 (PC/AT और बाद में) इंटरप्ट रिक्वेस्ट (IRQ8) को मैप करता है। -IRQ15) वेक्टर ऑफसेट 112 (INT70-INT77) को बाधित करने के लिए। ऐसा पहले 32 (INT00-INT1F) इंटरप्ट वैक्टर को प्रोसेसर द्वारा आंतरिक अपवादों के लिए आरक्षित किए जाने के बावजूद किया गया था (किसी कारण से पीसी के डिजाइन के लिए इसे नजरअंदाज कर दिया गया था)। अपवादों के लिए आरक्षित वैक्टर के कारण अधिकांश अन्य ऑपरेटिंग सिस्टम (कम से कम मास्टर) 8259 आईआरक्यू (यदि प्लेटफॉर्म पर उपयोग किया जाता है) को दूसरे इंटरप्ट वेक्टर बेस ऑफसेट पर मैप करते हैं।

अन्य ऑपरेटिंग सिस्टम
चूंकि अधिकांश अन्य ऑपरेटिंग सिस्टम डिवाइस ड्राइवर अपेक्षाओं में बदलाव की अनुमति देते हैं, इसलिए ऑपरेशन के अन्य 8259 मोड, जैसे ऑटो-ईओआई, का उपयोग किया जा सकता है। यह आधुनिक x86 हार्डवेयर के लिए विशेष रूप से महत्वपूर्ण है जिसमें 8259 के साथ संचार करते समय I/O एड्रेस स्पेस विलंब पर काफी समय व्यतीत हो सकता है। यह 8259s के साथ मल्टीप्रोसेसर x86 सिस्टम में सिंक्रोनाइज़ेशन में कई अन्य अनुकूलन की भी अनुमति देता है, जैसे महत्वपूर्ण अनुभाग।

एज और लेवल ट्रिगर मोड
चूंकि आईएसए बस स्तर ट्रिगर रुकावट का समर्थन नहीं करती है, इसलिए लेवल ट्रिगर मोड का उपयोग आईएसए उपकरणों से जुड़े इंटरप्ट के लिए नहीं किया जा सकता है। इसका मतलब है कि पीसी एक्सटी, पीसी/एटी और संगत सिस्टम पर 8259 को किनारे से उत्पन्न व्यवधान मोड के लिए प्रोग्राम किया जाना चाहिए। एमसीए सिस्टम पर, डिवाइस लेवल ट्रिगर्ड इंटरप्ट का उपयोग करते हैं और इंटरप्ट कंट्रोलर हमेशा लेवल ट्रिगर मोड में काम करने के लिए हार्डवेयर्ड होता है। नए ईआईएसए, पीसीआई और बाद के सिस्टम पर एज/लेवल कंट्रोल रजिस्टर (ईएलसीआर) प्रति आईआरक्यू लाइन के मोड को नियंत्रित करते हैं, जिससे आईएसए बसों के साथ ऐसे सिस्टम के लिए 8259 का मोड प्रभावी रूप से अप्रासंगिक हो जाता है। ELCR को सही संचालन के लिए सिस्टम स्टार्टअप पर BIOS द्वारा प्रोग्राम किया जाता है।

ELCRs x86 I/O एड्रेस स्पेस में 0x4d0 और 0x4d1 स्थित हैं। वे 8-बिट चौड़े हैं, प्रत्येक बिट 8259 से आईआरक्यू के अनुरूप है। जब बिट सेट किया जाता है, तो IRQ लेवल ट्रिगर मोड में होता है; अन्यथा, IRQ एज ट्रिगर मोड में है।

नकली व्यवधान
8259 कई स्थितियों के जवाब में नकली व्यवधान उत्पन्न करता है।

पहली आईआरक्यू लाइन है जिसे स्वीकार किए जाने से पहले डीज़र्स किया जा रहा है। ऐसा आईआरक्यू लाइनों पर शोर के कारण हो सकता है। एज ट्रिगर मोड में, शोर को 100 एनएस तक निम्न स्थिति में लाइन को बनाए रखना चाहिए। जब शोर कम हो जाता है, तो पुल-अप अवरोधक आईआरक्यू लाइन को उच्च पर लौटा देता है, इस प्रकार गलत व्यवधान उत्पन्न होता है। लेवल ट्रिगर मोड में, शोर सिस्टम INTR लाइन पर उच्च सिग्नल स्तर का कारण बन सकता है। यदि सिस्टम पावती अनुरोध भेजता है, तो 8259 के पास हल करने के लिए कुछ नहीं है और इस प्रकार प्रतिक्रिया में IRQ7 भेजता है। यह पहला मामला नकली IRQ7 उत्पन्न करेगा।

इसी तरह का मामला तब घटित हो सकता है जब 8259 अनमास्क और आईआरक्यू इनपुट डी-एसेरशन ठीक से सिंक्रनाइज़ नहीं होते हैं। कई प्रणालियों में, IRQ इनपुट को I/O राइट द्वारा डीअसेर्ट किया जाता है, और प्रोसेसर तब तक प्रतीक्षा नहीं करता है जब तक राइट I/O डिवाइस तक नहीं पहुंच जाता है। यदि प्रोसेसर जारी रहता है और आईआरक्यू इनपुट डीअसर्टेड होने से पहले 8259 आईआरक्यू को अनमास्क करता है, तो 8259 फिर से आईएनटीआर पर जोर देगा। जब तक प्रोसेसर इस INTR को पहचानता है और 8259 से IRQ को पढ़ने के लिए पावती जारी करता है, तब तक IRQ इनपुट डीज़र्स हो सकता है, और 8259 नकली IRQ7 लौटाता है।

दूसरा यह है कि मास्टर 8259 का IRQ2 तब सक्रिय होता है जब स्लेव 8259 की IRQ लाइनें इंटरप्ट पावती के गिरते किनारे पर निष्क्रिय होती हैं। यह दूसरा मामला नकली IRQ15 उत्पन्न करेगा, लेकिन यह दुर्लभ है।

पीसी एक्सटी और पीसी/एटी
पीसी एक्सटी उद्योग मानक वास्तुकला सिस्टम में 8259 नियंत्रक था, जबकि पीसी/एटी और बाद के सिस्टम में दो 8259 नियंत्रक, मास्टर और स्लेव थे। IRQ0 से IRQ7 मास्टर 8259 की इंटरप्ट लाइनें हैं, जबकि IRQ8 से IRQ15 स्लेव 8259 की इंटरप्ट लाइनें हैं। 8259 पर पिन पर लेबल IR0 से IR7 तक हैं। IRQ0 से IRQ15 तक ISA बस की लाइनों के नाम हैं जिनसे 8259 जुड़े हुए हैं।

यह भी देखें

 * एडवांस्ड प्रोग्रामेबल इंटरप्ट कंट्रोलर (एपीआईसी)
 * आईएफ (x86 फ्लैग)
 * इंटरप्ट हैंडलर
 * इंटरप्ट लेटेंसी
 * नॉन-मासकेबल इंटरप्ट (एनएमआई)

संदर्भ

 * Gilluwe, Frank van. The Undocumented PC. A-W Developers Press, 1997. ISBN 0-201-47950-8
 * McGivern, Joseph. Interrupt-Driven PC System Design. Annabooks, 1998. ISBN 0-929392-50-7
 * IBM Personal System/2 Hardware Interface Technical Reference – Architectures. IBM, 1990. IBM Publication 84F8933