2011-03-28 18 views
10

मैं वर्तमान में एआरएम आर्किटेक्चर के बारे में पढ़ रहा/पढ़ रहा हूं ... और मैं सोच रहा था कि (FIQ, उपयोगकर्ता, सिस्टम, पर्यवेक्षक, आईआरक्यू, ...) इतने सारे तरीके क्यों हैं।एआरएम मोड और इतने सारे क्यों हैं?

मेरा सवाल है कि हमें इतने सारे तरीकों की आवश्यकता क्यों है? क्या उपयोगकर्ता और सिस्टम पर्याप्त नहीं होंगे?

अग्रिम धन्यवाद।

उत्तर

11

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

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

विशेष रूप से FIQ मोड में अन्य अपवाद मोड की तुलना में अधिक बैंकिंग रजिस्टरों हैं। वे अतिरिक्त रजिस्ट्रार एफआईक्यू के "एफ" हिस्से को ध्यान में रखते हुए हैं - यह "फास्ट" के लिए है। सॉफ़्टवेयर में अधिक प्रोसेसर संदर्भ को सहेजने और पुनर्स्थापित करने के लिए आपके इंटरप्ट हैंडलर को तेज़ी से बढ़ाया जाएगा।

5

कार्ल के उत्तर में जोड़ने के लिए बहुत कुछ नहीं है। सुनिश्चित नहीं है कि आप एआरएम प्रोसेसर के बारे में किस परिवार/वास्तुकला के बारे में बात कर रहे हैं, इसलिए मैं केवल आपके प्रश्न (FIQ, IRQ, आदि) के आधार पर मान लेगा कि आप एआरएम 7/9/11 के बारे में बात कर रहे हैं। मैं प्रत्येक एआरएम आर्किटेक्चर संस्करण में हर मोड के बीच हर अंतर की गणना नहीं करूंगा।

क्या कार्ल ने कहा, विभिन्न परिस्थितियों के लिए अलग प्रकार के होने के कुछ ही अन्य लाभ के अलावा:,

  • उदाहरण के लिए

    FIQ में, तो आप तुरंत बंद शाखा, आप कर सकते हैं की जरूरत नहीं है बस निष्पादन पर रखें। अन्य अपवादों के साथ आपको

  • अलग-अलग मोड के साथ तुरंत शाखा बनाना होगा, आपके पास अलग-अलग ढेर के लिए प्राकृतिक समर्थन है। यदि आप मल्टीटास्किंग (उदाहरण के लिए, आरटीओएस) हैं और जब आप किसी इंटरप्ट मोड में हों, तो आपके पास अलग-अलग स्टैक नहीं है, आपको सबसे खराब स्थिति में बाधा डालने के लिए प्रत्येक कार्य स्टैक पर अतिरिक्त स्थान बनाना होगा

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

संबंधित मुद्दे