इंटेल 8259

Intel 8259 एक प्रोग्रामेबल रुकावट डालना  कंट्रोलर (PIC) है जिसे Intel 8085 और Intel 80[[86]] माइक्रोप्रोसेसरों के लिए डिज़ाइन किया गया है। प्रारंभिक भाग 8259 था, बाद में ए प्रत्यय संस्करण 8086 या 8088 प्रोसेसर के साथ ऊपर की ओर संगत और प्रयोग करने योग्य था। 8259 एकाधिक इंटरप्ट इनपुट स्रोतों को होस्ट माइक्रोप्रोसेसर के एकल इंटरप्ट आउटपुट में जोड़ता है, जो सिस्टम में उपलब्ध इंटरप्ट स्तरों को प्रोसेसर चिप पर पाए जाने वाले एक या दो स्तरों से आगे बढ़ाता है। 8259ए मूल आईबीएम पीसी और आईबीएम पीसी एटी में आईएसए बस के लिए इंटरप्ट कंट्रोलर था।

8259 को 1976 में इंटेल के इंटेल 8085#एमसीएस-85 परिवार परिवार के हिस्से के रूप में पेश किया गया था। 8259ए को 1981 में पेश किए गए मूल पीसी में शामिल किया गया था और 1983 में पेश किए जाने पर पीसी/एक्सटी द्वारा रखरखाव किया गया था। परिचय के साथ एक दूसरा 8259ए जोड़ा गया था पीसी/एटी का. सममित मल्टीप्रोसेसर पीसी में अपनी शुरुआत के बाद से 8259 इंटेल एपीआईसी आर्किटेक्चर के साथ सह-अस्तित्व में है। आधुनिक पीसी ने इंटेल एपीआईसी आर्किटेक्चर के पक्ष में 8259ए को चरणबद्ध तरीके से समाप्त करना शुरू कर दिया है। हालाँकि, अब एक अलग चिप नहीं होने पर, 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 निर्देश सेट में कॉल निर्देश के अनुरूप)।

8259ए 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

बाहरी संबंध

 * 8259A Programmable Interrupt Controller