2013-02-05 54 views
5
  • मैं एआरएम प्रोसेसर पर आईआरक विलंबता का अनुमान कैसे लगा सकता हूं?
  • आईआरक विलंबता की परिभाषा क्या है?

उत्तर

3

मैट्स और निमनजा interrupt latency पर कुछ अच्छी जानकारी देते हैं। वहां दो मैट्स द्वारा दिए गए तीनों में एक और मुद्दा है जो मैं जोड़ूंगा।

  1. अन्य एक साथ/एक साथ इंटरप्ट्स के पास।
  2. मास्किंग इंटरप्ट्स के कारण ओएस विलंबता जोड़ा गया। संपादित करें: यह मैट्स उत्तर में है, बस इतना समझाया नहीं गया है।

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

दूसरा मुद्दा तब होता है जब मेनलाइन कोड इंटरप्ट ध्वज को साफ़/सेट करता है।आम तौर पर यह कई मुख्य लाइन कोड के द्वारा प्रयोग किया मैक्रो के लिए लिनक्स स्रोत में कुछ तरह के साथ किया जाता है,

mrs r9, cpsr 
biceq r9, r9, #PSR_I_BIT 

चेक arch/arm/include/asm/irqflags.h। एक typical sequence, इस तरह है

lock interrupts; 
manipulate some flag in struct; 
unlock interrupts; 

एक बहुत बड़ी बाधा विलंबता पेश किया जा सकता है, तो यह है कि struct परिणाम एक पृष्ठ दोष में। पृष्ठ गलती हैंडलर की अवधि के लिए इंटरप्ट्स का मुखौटा लगाया जाएगा।

कॉर्टेक्स-ए 9 में lock free निर्देश हैं जो never masking interrupts द्वारा इसे रोक सकते हैं; swp/swpb से बेहतर असेंबलर निर्देशों के कारण। यह दूसरा मुद्दा आईआरक्यू विलंबता की तरह है एलडीएम/एसटीएम प्रकार के निर्देशों के कारण (ये केवल चलाने के लिए सबसे लंबे निर्देश हैं)।

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

चाहे आपके पास एसएमपी इंटरप्ट हैंडलिंग, प्राथमिकता इंटरप्ट्स, और लॉक फ्री मुख्य लाइन आपके कर्नेल कॉन्फ़िगरेशन और संस्करण पर निर्भर करती है; ये ओएस के लिए समस्याएं हैं। अन्य मुद्दे सीपीयू/एसओसी इंटरप्ट नियंत्रक के लिए आंतरिक हैं, और interrupt code itself पर हैं।

8
  1. बाधा अनुरोध (IRQ) विलंबता समय के लिए बाधा अनुरोध बात करने के लिए बाधा के स्रोत से यात्रा करने के लिए जब यह सेवा प्रदान की जाएगी लेता है।

  2. क्योंकि अलग-अलग स्रोतों से अलग-अलग स्रोतों से विभिन्न इंटरप्ट्स आ रहे हैं, जाहिर है कि उनकी विलंबता बाधा के प्रकार पर निर्भर करती है।

    4,3 व्यवधान विलंबता

    अधिकतम: आप विशेष रूप से बीच में आता है on ARM site

आप ARM9E-S Core Technical Reference Manual में इसके बारे में अधिक जानकारी पा सकते हैं के लिए प्रतीक्षा अवधि के बारे में बहुत अच्छा स्पष्टीकरण (दोनों मूल्य और कारण) के साथ तालिका पा सकते हैं

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

सबसे लंबा एलडीएम निर्देश वह है जो पीसी सहित सभी रजिस्टरों को लोड करता है।

पहले निष्पादन चक्र को 1 के रूप में गिनती, एलडीएम 16 चक्र लेता है।

• एलडीएम द्वारा स्थानांतरित करने वाला अंतिम शब्द चक्र 17 में स्थानांतरित किया जाता है, और इस चक्र में स्थानांतरण के लिए स्थिति को वापस कर दिया जाता है।

• एक डाटा बीच में बंद करें यदि ऐसा होता है, प्रोसेसर चक्र 18 में यह पता लगाता है और के लिए चक्र में डाटा बीच में बंद करें अपवाद प्रवेश को तैयार करता है 19.

• साइकिल 20 और 21 डाटा बीच में बंद करें को लाना और डिकोड चरण हैं क्रमशः प्रविष्टि।

• चक्र 22 के दौरान, प्रोसेसर, FIQ प्रवेश के लिए तैयार करता है लायें और चक्र 23 में चक्र और 24

• इसलिए, व्याख्या करना FIQ दिनचर्या में पहली अनुदेश पाइप लाइन के चरण निष्पादित में प्रवेश करती है जारी करने चरण 25, में 24 चक्र की सबसे खराब स्थिति विलंबता प्रदान करते हैं।

और

न्यूनतम FIQ के लिए विलंबता

न्यूनतम विलंबता बीच में या IRQ कम से कम समय अनुरोध इनपुट रजिस्टर (एक चक्र) द्वारा लिया जा सकता है, के साथ साथ अपवाद प्रविष्टि समय (तीन चक्र)।पहले बाधा निर्देश पाइपलाइन चरण निष्पादित चार चक्र के बाद व्यवधान माँगे

+0

हाय क्या आप जानते हैं कि एआरएम कॉर्टेक्सए 9 (जो आर्मव 7-ए आर्किटेक्चर है) के लिए 4.3 कैसे बदल जाएगा। मुझे कॉर्टेक्स आर्किटेक्चर के लिए किसी भी टीआरएम में यह नहीं मिला है। – Nuetrino

4

है तीन भागों विलंबता बाधित करने के लिए कर रहे हैं प्रवेश करती है:

  1. बाधा नियंत्रक बाधा ही उठा। आधुनिक प्रोसेसर इसे बहुत तेज़ी से करते हैं, लेकिन डिवाइस के बीच कुछ समय अभी भी पिन है और इंटरप्ट कंट्रोलर इसे उठा रहा है - भले ही यह केवल 1ns है, यह समय है [या जो भी इंटरप्ट सिग्नलिंग की विधि है]।
  2. वह समय जब तक प्रोसेसर इंटरप्ट कोड को निष्पादित करना शुरू कर देता है।
  3. उस समय तक जब तक कि अंतराल से निपटने के लिए वास्तविक कोड नहीं चल रहा है - यानी प्रोसेसर ने यह पता लगाया है कि कौन सा बाधा उत्पन्न करती है, और ड्राइवर-कोड या इसी तरह के हिस्से को बाधा से निपटना चाहिए।

आम तौर पर, ऑपरेटिंग सिस्टम 1. पर कोई प्रभाव नहीं होगा ऑपरेटिंग सिस्टम निश्चित रूप से प्रभावित करती है 2. उदाहरण के लिए, एक ऑपरेटिंग सिस्टम कभी कभी निष्क्रिय कर देगा बीच में आता है [कुछ महत्वपूर्ण आपरेशन के साथ दखल दे व्यवधान से बचने के लिए, इस तरह के उदाहरण के लिए इंटरप्ट हैंडलिंग के साथ कुछ करने के लिए संशोधित करना, या जब कोई नया कार्य शेड्यूल करना, या यहां तक ​​कि एक इंटरप्ट हैंडलर में निष्पादित करते समय भी। कुछ ऑपरेटिंग सिस्टम कई मिलीसेकंड के लिए इंटरप्ट्स को अक्षम कर सकते हैं, जहां एक अच्छा रीयलटाइम ओएस माइक्रोसॉंड से अधिक के लिए इंटरप्ट अक्षम नहीं होगा।

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

वास्तविक समय व्यवहार के लिए, यह अक्सर "सबसे खराब मामला" है, जहां गैर-वास्तविक समय ओएस में, समग्र निष्पादन समय अधिक महत्वपूर्ण है, इसलिए यदि कुछ सौ निर्देशों के लिए इंटरप्ट को सक्षम नहीं करना है, क्योंकि यह "इंटरप्ट सक्षम करें, फिर इंटरप्ट अक्षम करें" के कई निर्देश सहेजता है, एक लिनक्स या विंडोज टाइप ओएस ऐसा करने का विकल्प चुन सकता है।

+0

** + 1 ** ** ओएस ** विलंबता के बारे में विशिष्टताओं के लिए। –