इंटरप्ट के बाद हार्डवेयर


3

मैं एम्बेडेड सिस्टम और माइक्रोकंट्रोलर्स का अध्ययन कर रहा हूं और अब मुझे रुकावटों का सामना करना पड़ रहा है। मैंने उनके आसपास की मुख्य अवधारणाओं को समझा और उन्हें सी कोड के अंदर कैसे लागू किया जाए, लेकिन मैं जानना चाहता हूं कि वे हार्डवेयर स्तर पर कैसे काम करते हैं।

मुझे यह योजना इंटरनेट पर मिली:

enter image description here

लेकिन मैं इसे पूरी तरह नहीं समझ सकता। क्या आप मुझे थोड़ा समझा सकते हैं? तकनीकी शब्दों का उपयोग करने की चिंता न करें, मुझे लगता है कि मैं उन्हें समझूंगा। हालाँकि मैं कुछ ऐसे शब्दों को खोजना पसंद करता हूँ जो उत्तर देते समय आपके ज्ञान को सीमित करने के बजाय मैं नहीं जानता।

सब पर अच्छी इंजीनियरिंग!

जवाबों:


3

एक बाधा तब होती है जब प्रोसेसर जाता है और कुछ घटना के आधार पर कुछ पूर्व निर्धारित कोड निष्पादित करता है। ऐसा इसलिए किया जाता है कि, विशेष रूप से निष्पादित कोड के सहयोग से, प्रोसेसर मूल कोड को इस तरह से निष्पादित करने के लिए वापस आ सकता है ताकि इसका संचालन कुछ अतिरिक्त समय के अलावा प्रभावित न हो।

यह सब है, लेकिन इस अपेक्षाकृत कम परिभाषा के पीछे बहुत कुछ है। उदाहरण के लिए, घटना आमतौर पर कुछ हार्डवेयर है जो किसी कार्य को पूरा करते हैं (ताकि सॉफ्टवेयर को अब "सेवा" करने की आवश्यकता है) या बाहरी घटना, लेकिन सीपीयू में आंतरिक रूप से भी इसका कारण हो सकता है। कुछ प्रोसेसरों में उत्तरार्द्ध के उदाहरण तब होते हैं जब किसी गैर-मान्यता वाले ओपेक को निष्पादन के लिए सामना करना पड़ता है, 0 से विभाजित, गैर-मौजूद मेमोरी को संदर्भित करने का प्रयास, या यहां तक ​​कि सॉफ़्टवेयर द्वारा जानबूझकर निर्धारित की गई स्थिति। विवरणों को कैसे संभाला जाता है, इसके विवरण में प्रोसेसर के बीच बहुत भिन्नता है। प्रोग्राम काउंटर के स्टैक पर धकेल दिया गया है और सरलीकृत के रूप में कुछ कहना, कोड को निष्पादित किया गया है, कई महत्वपूर्ण मुद्दों को याद कर रहा है और कुछ प्रोसेसर के लिए बिल्कुल गलत है। उदाहरण के लिए, सभी प्रोसेसरों में स्टैक भी नहीं होता है।

चूंकि बाधा कुछ और निष्पादित करने के लिए मौजूदा कोड को बाधित करती है, और प्रोसेसर को मौजूदा कोड को फिर से शुरू करने में सक्षम होना चाहिए, इसलिए कुछ राज्य को बाधा तंत्र के भाग के रूप में सहेजा जाना चाहिए। बहुत कम से कम, इसके लिए पीसी (प्रोग्राम काउंटर) को बचाने की आवश्यकता है। पीसी को संग्रहीत करने के लिए तंत्र और फिर बाद में इसे मूल कोड के निष्पादन को फिर से शुरू करने के लिए बहाल करना आमतौर पर इसी तरह से किया जाता है कि कैसे उस प्रोसेसर पर सबरूटिन को संभाला जाता है। उदाहरण के लिए, पीसी को एक विशेष स्थान पर रखा जा सकता है, विशेष रजिस्टर, एक ढेर पर धकेल दिया गया, आदि ये सभी और अधिक ऐतिहासिक रूप से किए गए हैं।

चूंकि इंटरप्ट के लिए बाधित कोड (दो निर्देशों के बीच एक देरी के अलावा) के लिए पारदर्शी होना संभव है, इसका मतलब आमतौर पर कुछ अन्य राज्य को बचाया जाना चाहिए और रुकावट दिनचर्या के प्रवेश और निकास पर बहाल होना चाहिए। किस राज्य को पुनर्स्थापित करने की आवश्यकता है, और क्या हार्डवेयर तंत्र को ऐसा करने के लिए प्रदान किया जाता है या इसे सुविधाजनक बनाने के लिए प्रोसेसर आर्किटेक्चर पर अत्यधिक निर्भर है। उदाहरण के लिए, पुराने स्टाइल के PIC आपके लिए हार्डवेयर स्टैक पर PC को सेव करते हैं, और बाकी इंटरप्ट कोड तक होता है। जो भी उपयोग करता है उसे पहले बचाया जाना चाहिए ताकि इसे बाद में बहाल किया जा सके। उदाहरण के लिए, इन PIC पर आप W रजिस्टर का उपयोग किए बिना बहुत कुछ नहीं कर सकते हैं, इसलिए बस किसी भी उपयोगी इंटरप्ट रूटीन के बारे में W रजिस्टर को जल्दी से सहेजने की आवश्यकता होगी और फिर इंटरप्ट कोड से बाहर निकलने से कुछ समय पहले पुनर्स्थापित करना होगा।

अधिक उच्च अंत प्रोसेसर सिर्फ "छाया" का एक पूरा सेट प्रदान कर सकते हैं जो केवल व्यवधान के दौरान उपयोग के लिए पंजीकृत करता है। इन वैकल्पिक रजिस्टरों का उपयोग करने के लिए हार्डवेयर अपने आप ही बाधित हो जाता है और वापस लौटने में बाधित हो जाता है। इस मामले में, बाधित कोड केवल सामान्य रूप से रजिस्टरों का उपयोग कर सकता है, उन्हें बाधित कोड के दृष्टिकोण से उन्हें हटाने के बारे में चिंता किए बिना।

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

कई विवरण हैं और कई योजनाओं को व्यवधानों को लागू करने के लिए तैयार किया गया है, लेकिन वे सभी पहले पैराग्राफ में परिभाषा के अनुरूप हैं।

यह जानने का सबसे अच्छा तरीका है कि एक विशिष्ट मशीन पर उन्हें समझने के लिए काम कैसे बाधित करता है। शुरुआत के लिए, एक मूल PIC 16 की तरह एक साधारण चुनें। एक बार जब आप यह समझ जाते हैं, तो उच्च अंत प्रोसेसर द्वारा जोड़े गए अतिरिक्त झुर्रियों को समझना आसान होगा।


2

हर बार जब प्रोसेसर अगले निर्देश पर जाने वाला होता है, तो यह बाधित मुखौटा की जांच करेगा कि क्या कोई बाधा उत्पन्न हुई है।

यदि ऐसा है तो यह वर्तमान प्रोग्राम काउंटर को स्टैक पर धकेल देगा और वेक्टर में मिलान स्थिति में स्थिति में कूद जाएगा। कर्नेल मोड में परिवर्तन करना और प्रक्रिया में व्यवधान डालना।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.