क्या ARM प्रोसेसर जैसे कोर्टेक्स-ए 9 माइक्रोकोड का उपयोग करते हैं?


12

क्या एआरएम प्रोसेसर (हाल ही में और पुराने) माइक्रोकोड का उपयोग करते हैं? यदि हां, तो किसलिए? क्या उनके निर्देश सरल नहीं हैं जिन्हें सीधे माइक्रो-ऑप्स में अनुवादित किए बिना निष्पादित किया जा सकता है?

जवाबों:


14

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

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


एआरएम वास्तुकला ही है, वहीं नहीं पारंपरिक अर्थों में microcoded, अलग-अलग निर्देश रहे हैं छोटे सूक्ष्म संचालन में डीकोड । एक आधुनिक एआरएम प्रोसेसर "सरल" से बहुत दूर है - हालांकि निर्देश खुद बहुत ही ऑर्थोगोनल हैं, बहुत सारी आधुनिक तकनीक है (जैसे कि पाइपलाइनिंग, सुपरस्लेकर निर्देश, आउट-ऑफ-ऑर्डर निष्पादन, कैशिंग, फ्लोटिंग-पॉइंट यूनिट जैसे विस्तारित जटिल निर्देश। या नीयन निर्देश) जो एक आधुनिक ए 9 कोर है। वास्तव में कोई भी प्रोसेसर इतना आसान हो सकता है कि बिना अनुवाद के माइक्रो-ऑपरेशंस पर अमल कर सके, लेकिन यह अनिवार्य रूप से "आपके सभी अंडे एक टोकरी में" डाल रहा है - आप निर्देश सेट में किसी भी संभावित इरेटा को सही नहीं कर सकते हैं, न ही उत्पादन के बाद इसे बढ़ा / संशोधित कर सकते हैं।

हालांकि, अगर हम केवल निर्देश डिकोड चरण के बारे में बात कर रहे हैं , तो वास्तव में कई एआरएम प्रोसेसर एक तरह से माइक्रोकोड नहीं होते हैं , जो इस तथ्य के बाद संशोधन की अनुमति देता है, हालांकि ऐसा इसलिए हो सकता है क्योंकि एआरएम प्रौद्योगिकी को लाइसेंस देने वाले अधिकांश निर्माताओं को वास्तविक पहुंच दी जाती है। हार्डवेयर स्रोत कोड (एक एचडीएल में लिखा गया है)। यह बिजली की खपत को कम करता है क्योंकि एक माइक्रोकोड चरण की आवश्यकता नहीं होती है, लेकिन व्यक्तिगत निर्देश वास्तविक हार्डवेयर ब्लॉकों में "संकलित" होते हैं। यह भी प्रत्येक निर्माता द्वारा इरेटा सुधार के लिए अनुमति देता है।

दरअसल, CISC- आधारित CPU (जैसे x86) में भी, माइक्रोकोड के उपयोग की कोई आवश्यकता नहीं है । व्यवहार में, हालांकि, निर्देश सेट की जटिलता, लाइसेंसिंग, बिजली की खपत और अनुप्रयोगों में विभिन्न अंतरों के साथ मिलकर, x86 के मामले के लिए माइक्रोकोड की पसंद को आदर्श बनाती है। एआरएम के मामले में, हालांकि, यह कम उपयोगी है क्योंकि निर्देश सेट (डिकोडर) में बदलाव खुद हार्डवेयर के संदर्भ में लागू करने और नियंत्रित करने के लिए बहुत आसान है (क्योंकि यह निर्माता द्वारा अनुकूलित किया जा सकता है)।


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

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


आप एआरएम स्रोत कोड के "विचार" को इस मामले में एक प्रकार के माइक्रोकोडिंग के रूप में कर सकते हैं, हालांकि एक रोम में प्रत्येक माइक्रो-ऑपरेशन / माइक्रो-प्रोग्राम को संग्रहीत करने के बजाय जिसे बाद में संशोधित किया जा सकता है, उन्हें सीधे में लागू किया जाता है। निर्देश डिकोडर में हार्डवेयर। निर्देश डिकोडर को देखते हुए ही VHDL / Verilog में लिखा गया है, मौजूदा निर्देशों में परिवर्तन करना उतना ही सरल है जितना कि स्रोत कोड को संशोधित करना, नए हार्डवेयर (जैसे FPGA या एक सिम्युलेटर पर) नए हार्डवेयर का परीक्षण करना। यह आधुनिक x86 हार्डवेयर की जटिलता के विपरीत है, जो विकास के दौरान परीक्षण / अनुकरण करने के लिए बहुत अधिक कठिन है, और उत्पादन के बाद संशोधित करने के लिए और भी अधिक कठिन है (चूंकि ट्रांजिस्टर के आकार में दूर से अधिक है जो कि सबसे महंगी आधुनिक के अंदर भी चल सकता है) FPGAs, इस प्रकार एक microcode दुकान का उपयोग करने के लिए एक लाभ जोड़ने)।एक FPGA का उपयोग कर भौतिक हार्डवेयर।


तो, ARM का माइक्रोकोड हार्डवेयर पर रहता है, है ना?
क्रक

1
@ एक मायने में टूटा, हाँ; एक माइक्रोडेंसेन्सर का उपयोग करने के बजाय , प्रत्येक निर्देश को निर्देश डिकोडर द्वारा सीधे उस माइक्रोकोड के लिए व्यक्तिगत माइक्रो-ऑपरेशंस / माइक्रो-निर्देश (एक या अधिक घड़ी चक्र) में अनुवादित किया जाता है। निर्देश डिकोडर लेख माइक्रोप्रोसेसर डिजाइन Wikibook से भी ठेठ RISC और CISC अनुदेश डिकोडर के बीच मतभेदों को समझाने में उपयोगी है।
ब्रेकथ्रू

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