वास्तव में माइक्रोकोड क्या है और यह फर्मवेयर से कैसे भिन्न होता है?


50

शब्दावली के रूप में नासमझ, वास्तव में "माइक्रोकोड" क्या है और यदि इसे अपडेट किया जा सकता है, तो यह फर्मवेयर से कैसे भिन्न होता है?

यह प्रश्न इस प्रश्न का डुप्लिकेट नहीं है (जहाँ तक मैं बता सकता हूँ) जो मैंने माइक्रोकोड को संशोधित करने के बारे में भी पूछा है। यहाँ मैं ये जानना चाहता हूँ कि इन शब्दों का सही इस्तेमाल कैसे किया जाए।

अपडेट करें

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

  1. "प्रोसेसर माइक्रोकोड प्रोसेसर फर्मवेयर के समान है।" जैसा कि मैंने इसे अधिक से अधिक पढ़ा है, कि मैं इसे कैसे लेता हूं। "माइक्रोकोड" इस संदर्भ में है "प्रोसेसर फ़र्मवेयर से अधिक मार्केटिंग।" धैर्य रखने के लिए अनुरोध,..
  2. या, मैं गलत हूं, और मुझे पता है कि ऐसा होता है! इस मामले में, मुझे और अधिक गहन विचार की आवश्यकता है कि मैं गलत क्यों हूं। उस उत्तर में जो मुझे गलत होने के लिए इंगित करने के लिए पढ़ा, मैं उन्हें समझने में संघर्ष कर रहा हूं,
    • "निष्पादन बनाम डेटा" बहुत सारे उत्तर इस प्रतिमान का उपयोग करते हैं, लेकिन सीपीयू के लिए जो मेरे लिए बहुत मायने नहीं रखता है। कुछ मुखर फर्मवेयर को निष्पादित किया जाता है, लेकिन किसके द्वारा? जब सीपीयू की बात आती है, तो प्रोग्राम निर्देश या डेटा होते हैं?
    • यदि फर्मवेयर सॉफ्टवेयर और हार्डवेयर को पाटता है (पढ़ें: देवताओं का इलेक्ट्रिकल इंजीनियरिंग सामान), तो माइक्रोकोड भी उस अंतर को कैसे नहीं करता है।
    • समय के साथ "व्याख्या" करना, यह भी कम और कम समझ में आता है। माइक्रोकोड के साथ "हार्डवेयर निर्देशों की व्याख्या की जाती है" कहने का क्या मतलब है। अगर यह सच था, तो क्या कुछ ऐसा होगा जो अलग-अलग हार्डवेयर निर्देशों और केवल "निष्पादित" होने के कारण पहले से व्याख्या नहीं किया गया था? इसके अलावा, जनरल मिडी को एक ही प्रकाश में कैसे व्याख्या नहीं की जाती है? यह एक ऐसी भाषा है जो "मिडी माइक्रोकोड" द्वारा व्याख्या की जाती है और हार्डवेयर पर चलती है। या, गूंगा टर्मिनल जो दृश्य प्रदर्शन के लिए टेलीप्रिंटर निर्देशों की व्याख्या करता है?
    • क्या "माइक्रोकोड" साउंड कार्ड और वीडियो कार्ड (जीपीयू) पर चलने वाले कोड पर लागू होता है ?

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

Microcode शब्द इस तथ्य को संदर्भित करता है कि यह CPU uses कोड ”के कई निर्देशों का उपयोग करता / करती है। यह मूल रूप से सीपीयू को निर्देश और सुविधाओं का अनुकरण करने का तरीका बताता है। इसलिए यह नाम है। कंप्यूटर के मालिक के बिंदु से यह हार्डवेयर विक्रेता द्वारा कोडित कोड का एक और सेट है, इसलिए इसे वैकल्पिक रूप से फर्मवेयर के रूप में संक्षेपित किया जा सकता है।
e

IMO, सबसे सरल उत्तर है, "हर बार जब कोई प्रोसेसर किसी निर्देश को निष्पादित करता है, तो यह वास्तव में एक माइक्रोकोड प्रोग्राम निष्पादित कर रहा है।" आपको लगता है कि एक एकल प्रोसेसर निर्देश माइक्रोकोड निर्देशों का एक विशेष अनुक्रम है, एक 'माइक्रोकोड प्रोग्राम'। प्रत्येक निर्देश का अपना माइक्रोकोड प्रोग्राम है। अलग-अलग माइक्रोकोड निर्देश प्रोसेसर के विभिन्न आंतरिक बिट्स को निष्क्रिय / निष्क्रिय करते हैं।
एतान रीसोर

जवाबों:


57

फर्मवेयर शब्द की उत्पत्ति हार्डवेयर और सॉफ़्टवेयर के बीच एक मध्य-बिंदु है - सॉफ़्टवेयर हार्डवेयर पर एम्बेडेड है। यह सॉफ्टवेयर को संदर्भित करता है कि यह हार्डवेयर डिवाइस पर गैर-वाष्पशील मेमोरी में संग्रहीत होता है। उदाहरण EEPROM और फ्लैश मेमोरी हार्डवेयर उपकरणों में एम्बेडेड हैं, जब उन्हें कोड को स्टोर करने के लिए उपयोग किया जाता है जो डिवाइस द्वारा ही चलाया जाता है।

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

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

माइक्रोकोड इस बाद वाले प्रकार के "फर्मवेयर" का एक सबसेट है। माइक्रोकोड सभी "फर्मवेयर" के लिए एक सामान्य शब्द नहीं है जिसे बूट पर एक उपकरण पर लोड किया गया है। इसके बजाय, यह सीपीयू के लिए विशिष्ट है, जहां माइक्रोकोड मूल रूप से उच्च स्तर के मानक सीपीयू निर्देशों और उस सीपीयू के लिए निचले स्तर के संचालन के बीच अनुवाद की परत बनाता है। यह सीपीयू पर बूट पर, BIOS द्वारा लोड किया जाता है, लेकिन बाद में ओएस द्वारा बूट चरण में बदल दिया जा सकता है।

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

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


आपके संपादन के बाद से आपके कुछ विशिष्ट सवालों के जवाब देने के लिए:

  1. हां, माइक्रोकोड मूल रूप से फर्मवेयर है जो प्रोसेसर पर चलता है। विशेष शब्द "माइक्रोकोड" विशेष रूप से एक प्रोसेसर पर फर्मवेयर को संदर्भित करता है जिसमें मानक मशीन भाषा से निम्न स्तर के प्रोसेसर निर्देशों का अनुवाद करने का खाका होता है। तो यह फर्मवेयर की तुलना में अधिक विशिष्ट शब्द है।

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

  2. मुझे नहीं लगता कि आप गलत हैं। फर्मवेयर को एक निश्चित मशीन की भाषा में लिखना नहीं पड़ता है और इसके निष्पादन को एक निश्चित तरीके से ट्रिगर नहीं करना पड़ता है। एक निश्चित निम्न स्तर पर सभी मशीन कोड "डेटा" है जो एक प्रोसेसर द्वारा "पढ़ा" जाता है और एक निश्चित तरीके से व्याख्या की जाती है।

    "माइक्रोकोड" शब्द का उपयोग आमतौर पर केवल मुख्य सीपीयू के लिए किया जाता है, न कि ग्राफिक्स कार्ड या अन्य हार्डवेयर के लिए, भले ही उन अन्य उपकरणों में कोड उसी तरह लोड किए गए हों।


1
आपका दूसरा वाक्य गलत है; फर्मवेयर में ROM में संग्रहीत सॉफ्टवेयर शामिल है। एक बार जब अधिकांश फर्मवेयर रोम में था, इससे पहले कि विकल्प सस्ती हो गए।
हैरी जॉन्सटन

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

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

"अधिकांश उपकरणों में फर्मवेयर चलाने वाले कुछ प्रकार का एक एम्बेडेड सीपीयू होता है, और सीपीयू का अपना माइक्रोकोड हो सकता है" यही मेरा मतलब है। तो एक साउंड कार्ड पर मिडी स्ट्रीम को संसाधित करने वाला कोड "माइक्रोकोड" भी है? या कोड जो ड्रॉ / रेंडर करता है वह एक डंब टर्मिनल पर वर्ण प्रदर्शित करता है?
इवान कैरोल

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

23

https://wiki.debian.org/Microcode

सीपीयू माइक्रोकोड

प्रोसेसर माइक्रोकोड प्रोसेसर फर्मवेयर के समान है। कर्नेल एक BIOS अपडेट के माध्यम से इसे अपडेट करने की आवश्यकता के बिना प्रोसेसर के फर्मवेयर को अपडेट करने में सक्षम है। एक माइक्रोकोड अपडेट को वाष्पशील मेमोरी में रखा जाता है, इस प्रकार BIOS / UEFI या कर्नेल हर बूट के दौरान माइक्रोकोड को अपडेट करता है।

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

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

उदाहरण:

https://www.win-raid.com/t3355f47-Intel-AMD-amp-VIA-CPU-Microcode-Repositories.html


9
यह इतना आसान नहीं है: माइक्रोकोड "एक तकनीक है जो हार्डवेयर और कंप्यूटर के वास्तुशिल्प स्तर के बीच एक दुभाषिया लगाता है"। जैसे, माइक्रोकोड हार्डवेयर-स्तर के निर्देशों की एक परत है जो उच्च-स्तरीय मशीन कोड निर्देशों या आंतरिक राज्य मशीन अनुक्रमण को कई महत्वपूर्ण प्रसंस्करण तत्वों में लागू करता है। स्रोत: en.wikipedia.org/wiki/Microcode

17
तो रुको ... एक "नाव" सिर्फ एक विशेष प्रकार का "वाहन" है? क्या बेकार शब्द है! :-)
हैरी जॉनसन

4
@HarryJohnston खैर, मैं इसे कुछ संदर्भों में अन्य प्रकार के वाहनों से "एक नाव" को अलग करने के लिए उपयोगी मानता हूं ... और "माइक्रोकोड" एक बहुत विशिष्ट प्रकार का "कुछ" है जो कई आधुनिक सीपीयू में मौजूद है ... ( इस प्रकार इसके लिए एक शब्द होना वांछनीय है)।
राडोवन गारबिक

4
@ RadovanGarabík: यह बिल्कुल हैरी की बात है, व्यंग्य के साथ बनाया गया है।
पीटर कॉर्डेस

4
मुझे नहीं मिला। यदि "कर्नेल प्रोसेसर के फर्मवेयर को BIOS अपडेट के माध्यम से अपडेट करने की आवश्यकता के बिना अपडेट करने में सक्षम है", तो यह तथ्य क्यों है कि "मदरबोर्ड विक्रेता लगातार BIOS / यूईएफआई अपडेट जारी नहीं करेगा" का अर्थ है कि "सिस्टम प्रोसेसर है" बड़ी संख्या में सिस्टम पर पुराने माइक्रोकोड के साथ चलने की संभावना है "? कर्नेल सिर्फ माइक्रोकोड को पैच क्यों नहीं करता है? अगर BIOS कभी अपडेट नहीं हुआ, तो BIOS पर भरोसा क्यों करें, और अधिक बार उपलब्ध वैकल्पिक विकल्प उपलब्ध है?
Ajedi32

6

ठीक है, इंटेल "माइक्रोकोड अपडेट" वास्तव में "फर्मवेयर" अपडेट इस अर्थ में है कि वे प्रोसेसर के माइक्रोकोड ट्रांसलेशन यूनिट की तुलना में बहुत अधिक अपडेट करते हैं।

ये एकीकृत प्रोसेसर पैकेज अपडेट जिन्हें हम इंटेल के लिए "माइक्रोकोड अपडेट" कहते हैं, अन्य ऑन-डाई माइक्रोकंट्रोलर (जैसे कि पीएमयू और पावर मैनेजमेंट कोर) के साथ-साथ विभिन्न ऑन-डाई प्रोसेसर सबसिस्टम के लिए कई पैरामीटर टेबल भी अपडेट करते हैं। वे बल्कि जटिल हैं।

यह जानकारी माइक्रोकोड और माइक्रोकोड अपडेट से संबंधित कई इंटेल पेटेंट पर उपलब्ध है।


4

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

संयोग से, माइक्रोकोड का विचार 1951 में मौरिस विल्क्स पर वापस जाता है, दशकों पहले कंप्यूटर प्रोसेसर सिलिकॉन में एम्बेडेड थे।


3

फर्मवेयर आमतौर पर उन उपकरणों के लिए कोड को संदर्भित करता है जिनमें सीपीयू नहीं होता है सीपीयू ही नहीं जैसे कि एंड्रॉइड फोन के लिए फर्मवेयर।

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


लेकिन, यह सभी फर्मवेयर का सच नहीं है। निर्देश ABI जिन्हें सिलिकॉन में लागू किया जा सकता है लेकिन वे सॉफ्टवेयर के माध्यम से अन्यथा अपडेट नहीं हैं?
इवान कैरोल

1
इंटेल के "माइक्रोकोड अपडेट" बहुत कुछ कर सकते हैं कि माइक्रोकोड निर्देश कैसे डीकोड करते हैं । उदाहरण के लिए, वे लूप बफर (SKL150 इरेटा को ठीक करने के लिए स्काइलेक में) को निष्क्रिय कर सकते हैं क्योंकि जब संभव हो तो सीपीयू को डिज़ाइन किए जाने की स्थिति में हार्डवेयर बग की खोज की जाती है।
पीटर कॉर्डेस

3

"माइक्रोकोड" मूल शब्द था, और निर्देश के लिए संदर्भित किया जाता था जो प्रोसेसर के "सार्वजनिक" निर्देश सेट के लिए दुभाषिया को लागू करने के लिए उपयोग किया जाता था।

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

लेकिन कई बार ये पहले भेद किए गए थे, लेकिन कई बार चीज़ों को जोड़ दिया गया है, और अब किसी भी प्रोसेसर और OS वातावरण के भीतर किसी भी परिशुद्धता के साथ शर्तें निश्चित हैं।


+1, यहां कुंजी यह है कि "माइक्रोकोड" शब्द के कई अर्थ हैं, और मुझे लगता है कि ओपी वास्तव में "माइक्रोकोड अपडेट" के बारे में जानना चाहता है, अन्य अर्थ नहीं।
पीटर कॉर्डेस

3

[एनबी: यह उत्तर विशेष रूप से हाल के संपादन को संबोधित करने के लिए है और अन्यथा पहले से ही पोस्ट किए गए कई ध्वनि उत्तरों को नहीं जोड़ता है।]

तो, पुनरावृत्ति करने के लिए: माइक्रोकोड (कम से कम पहले सन्निकटन) एक विशेष प्रकार का फर्मवेयर है।

"माइक्रोकोड" इस संदर्भ में है "प्रोसेसर फ़र्मवेयर से अधिक मार्केटिंग।"

खैर, यह विपणन नहीं है। मार्केटिंग ने इसे XBoost Pro (TM) या कुछ और कहा होगा। बल्कि, यह एक इंजीनियरिंग शब्द है; यदि आप सीपीयू डिज़ाइन करते हैं, तो माइक्रोकोड और सीपीयू के अन्य फर्मवेयर (और अन्य उपकरणों के लिए फर्मवेयर के प्रकार) के बीच का अंतर आपके लिए महत्वपूर्ण है। यदि नहीं, तो यह शायद नहीं है।

यदि आप मदरबोर्ड डिज़ाइन करते हैं या ऑपरेटिंग सिस्टम लिखते हैं, तो आप संभवतः "माइक्रोकोड अपडेट" का उपयोग अधिक अनकहे और कम परिचित "सीपीयू फर्मवेयर अपडेट" के लिए शॉर्टहैंड के रूप में करते हैं। अधिकांश CPU फर्मवेयर अपडेट मुख्य रूप से माइक्रोकोड को प्रभावित करते हैं, इसलिए यह एक ही चीज़ के काफी करीब है। आप शायद अंतर जानते हैं, लेकिन आपको इसकी परवाह करने की आवश्यकता नहीं है।

अंतिम उपयोगकर्ता को अंतर के बारे में जानने या देखभाल करने की आवश्यकता नहीं है, और एक आदर्श दुनिया में शब्द "माइक्रोकोड" कभी नहीं सुना होगा।

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


इसलिए, यहां तक ​​कि यह जानकर कि आपको शायद जानने या देखभाल करने की आवश्यकता नहीं है, आप अभी भी शुद्ध जिज्ञासा से बाहर हो सकते हैं: आप अन्य फर्मवेयर से अलग माइक्रोकोड के बारे में कैसे जा सकते हैं?

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

  • माइक्रोकोड आमतौर पर सीपीयू के बजाय सीपीयू के अंदर चलता है। यह उच्च-स्तरीय दृश्य है।

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

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

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


"निष्पादन बनाम डेटा" बहुत सारे उत्तर इस प्रतिमान का उपयोग करते हैं

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

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

सीपीयू कंप्यूटर का प्रभारी है। एक बार इसे शुरू करने के बाद यह मदरबोर्ड द्वारा प्रदान किए गए निर्देशों ("मशीन कोड") को चलाता है (BIOS, एक अन्य प्रकार का फर्मवेयर) जो इसे ऑपरेटिंग सिस्टम द्वारा प्रदान किए गए मशीन कोड को चलाने के लिए निर्देशित करता है जो इसे प्रदान किए गए मशीन कोड को चलाने के लिए निर्देशित करता है। आवेदन विक्रेताओं द्वारा। CPU स्वयं EEPROM (BIOS के मामले में) या RAM (ऑपरेटिंग सिस्टम और अनुप्रयोगों के मामले में) से मशीन कोड को पुनः प्राप्त करता है। विशेष रूप से, मशीन कोड में नियंत्रण का प्रवाह होता है: मशीन कोड सीपीयू को बताता है कि आगे क्या करने के लिए मशीन कोड। आप एक ही मशीन कोड पर बार-बार लूप कर सकते हैं, जिस कोड पर काम कर रहे हैं, उसके आधार पर आप कोड के विभिन्न बिट्स चला सकते हैं - डिवाइस इंटरफ़ेस भाषा में निर्देश जैसे SATA कोड सरल कार्यों का एक सीमित सेट कर सकते हैं, लेकिन मशीन कोड कर सकते हैं करनाकुछ भी । ( ट्यूरिंग कम्प्लीटनेस भी देखें ।)

हम उस अंतिम बुलेट बिंदु को फिर से लिख सकते हैं: माइक्रोकोड आमतौर पर एक ट्यूरिंग पूरी भाषा को लागू करता है; साधारण फर्मवेयर आमतौर पर नहीं है।


"हार्डवेयर निर्देश की व्याख्या की जाती है" को माइक्रोकोड के साथ कहने का क्या मतलब है।

सच है, लेकिन शायद भ्रमित; महत्वपूर्ण बिंदु मशीन कोड के बीच का अंतर है, जिसमें नियंत्रण का प्रवाह है और ट्यूरिंग कम्प्लीट है, और SATA जैसे डिवाइस इंटरफ़ेस द्वारा परिभाषित निर्देश हैं, जो नहीं और नहीं करता है।


क्या "माइक्रोकोड" साउंड कार्ड पर चलने वाले कोड पर लागू होता है

नहीं, साउंड कार्ड को SATA ड्राइव की तरह ही निर्देश प्राप्त होते हैं, कोड नहीं। निर्देश "प्ले ए शार्प" या "इस डेटा को वेवफॉर्म के रूप में व्याख्या करें और इसे प्ले करें" जैसे हो सकते हैं। अभी भी बहुत सरल है।

और वीडियो कार्ड (GPU)?

पुराने जमाने के वीडियो कार्ड (GPU के बिना) SATA ड्राइव के समान हैं। निर्देश "इस पिक्सेल को इस रंग पर सेट करें" या "इस स्थिति के लिए A लिखें" जैसे हैं।

... GPU जटिल हैं और ऊपर वर्णित दो दुनियाओं के बीच कहीं बैठते हैं। मुख्य कंप्यूटर के अंदर बैठे एक विशेष कंप्यूटर के रूप में उनके बारे में सोचना सबसे सरल है, जिसके पास अपना स्वयं का सीपीयू है। यह सच है कि SATA ड्राइव जैसे उपकरणों में भी CPU होता है, लेकिन अंतर यह है कि SATA ड्राइव में एम्बेडेड CPU केवल ड्राइव निर्माता द्वारा प्रदान किया गया कोड चलाता है, जबकि GPU भी ऑपरेटिंग सिस्टम और / या एप्लिकेशन विक्रेता द्वारा प्रदान किया गया कोड चलाते हैं। वास्तव में यह एक अलग प्रश्न है।


TL; DR: माइक्रोकोड एक विशेष प्रकार का फर्मवेयर है, जो ट्यूरिंग कम्प्लीट इंस्ट्रक्शन सेट को लागू करने में हार्डवेयर की मदद करता है।


1

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

आधुनिक माइक्रोप्रोसेसरों में एक सामान्य "मशीन कोड" इंटरफ़ेस के साथ एक अधिक सामान्य वास्तुकला परिवार के लिए भौतिक सिलिकॉन माइक्रोआर्किटेक्चर को सार करने के लिए आवश्यक माइक्रोकोड / अनुक्रमण इकाइयों का एक पदानुक्रम हो सकता है। उदाहरण के लिए अनुदेश डिकोडर और फ्लोटिंग पॉइंट इकाइयों को लागू करने के लिए माइक्रोकोड / अनुक्रमण की कई परतें हो सकती हैं।

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

फर्मवेयर / फर्मवेयर में माइक्रोकोड लागू किया जा सकता है जिसमें माइक्रोकोड हो सकता है, लेकिन वे समान नहीं हैं।


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

@PeterCordes 1) x86 आर्किटेक्चर माइक्रोकोड 2 की अवधारणा को प्रस्तुत करने के लिए अप्रासंगिक है) क्या आपने मेरे जवाब को समझ लिया था कि हम सहमति में होंगे कि यह संकेतों को नियंत्रित करता है, जैसा कि आप अलाइड करते हैं

1
नहीं, Intel uops वास्तव में संकेतों को नियंत्रित नहीं करता है। वे क्लासिक MIPS पाइपलाइन में तर्क इकाइयों की तरह सीधे कार्यक्रम नहीं करते हैं। यूओपी को आउट-ऑफ-ऑर्डर शेड्यूलर द्वारा यह पता लगाने के लिए पढ़ा जाता है कि किन यूओपीएस पर डेटा निर्भरता है। यह 6502 जैसी किसी चीज से बहुत अलग आंतरिक मॉडल है, जहां एक निर्देश को निष्पादित करने के कई चरणों को एक डिकोड रोम से पढ़ा जाता है। आप जो वर्णन करते हैं वह माइक्रोकोड शब्द का एक ऐतिहासिक अर्थ है, लेकिन यह आधुनिक सीपीयू के लिए "माइक्रोकोड अपडेट" नहीं है।
पीटर कॉर्डेस

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

1
तो आप सही ढंग से "एक माइक्रोकोड निर्देश क्या है" सवाल का जवाब दे रहे हैं , लेकिन सीपीयू के लिए एक "माइक्रोकोड अपडेट" शब्द का एक ही तकनीकी अर्थ नहीं है "माइक्रोकोड"। यह एक महत्वपूर्ण बिंदु है जिसे स्पष्ट रूप से बनाया जाना चाहिए, क्योंकि यह ओपी के भ्रम के मूल में है जो मुझे लगता है।
पीटर कॉर्डेस

0

फर्मवेयर एक ROM या अन्य गैर-वाष्पशील मेमोरी में रखा गया निष्पादन योग्य कोड है।

फर्मवेयर का मूल और प्राथमिक उद्देश्य तब होता है जब सीपीयू शुरू होता है, इसलिए इसमें सीपीयू का हिस्सा होने पर जो भी सिस्टम शुरू करने या बूट करने के लिए कोड होता है। पीसी के मामले में, फर्मवेयर का उपयोग रनिंग ऑपरेटिंग सिस्टम को सेवाएं प्रदान करने के लिए भी किया जाता है और यह एम्बेडेड कंट्रोलर के लिए कोड भी रखता है जो प्रशंसकों, बिजली, और कुछ अन्य चीजों को नियंत्रित करता है, और पृष्ठभूमि में चलने वाले ME / PSP के लिए कोड ।

परिधीय उपकरण जो फर्मवेयर लेते हैं, जैसे हार्ड ड्राइव, यूएसबी डिवाइस, आदि में एक एम्बेडेड सीपीयू है।


माइक्रोकोड निष्पादन योग्य कोड नहीं है, बल्कि एक डिवाइस की आंतरिक सुविधाओं द्वारा उपयोग किया जाने वाला कोड है।

यह WRMSR निर्देश के साथ Intel या AMD CPU में लोड किया गया है। डिवाइस में फर्मवेयर लोड करने में एक ROM या फ्लैश माध्यम की प्रोग्रामिंग शामिल होती है, या फर्मवेयर को स्वीकार करने के लिए डिवाइस में मौजूद रहने के लिए एक छोटे लोडर प्रोग्राम पर निर्भर होती है।

फर्मवेयर और माइक्रोकोड अपडेट एक समान श्रेणी में हैं - हार्डवेयर काम करने के लिए आपको जिन चीजों की आवश्यकता होती है और समय-समय पर अपडेट करने की आवश्यकता हो सकती है - लेकिन वे बहुत अलग चीजें हैं।

कई सीपीयू में जटिल निर्देश सीधे हार्डवेयर में वायर्ड नहीं होते हैं, लेकिन मुख्य सीपीयू में एक छोटी सी सीपीयू जैसी सुविधा द्वारा "निष्पादित" होते हैं। माइक्रोकोड इन ऑपरेशनों को नियंत्रित करता है। यह कम से कम मोटोरोला 68000 में वापस चला जाता है जिसमें माइक्रोकोड युक्त "माइक्रोम" था।

इंटेल या एएमडी प्रोसेसर के अलावा कोई भी नहीं जानता कि माइक्रोकोड वास्तव में क्या नियंत्रित या करता है, क्योंकि वे विवरण जारी नहीं करते हैं। इसे हैक करने के प्रयास हैं। संदर्भ

व्यावहारिक रूप से, माइक्रोकोड अपडेट अनिवार्य रूप से उन निर्देशों को अक्षम करने के लिए उपयोग किया जाता है जो सीपीयू के ज्ञात मॉडल / स्टेपिंग पर समस्या पैदा करते हैं, और इंटेल से नवीनतम सीपीयू अक्सर मज़बूती से काम करने से पहले कम से कम एक माइक्रोकोड अपडेट की आवश्यकता होती है।


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


1
इंटेल के "माइक्रोकोड अपडेट" बहुत कुछ कर सकते हैं कि माइक्रोकोड निर्देश कैसे डीकोड करते हैं । उदाहरण के लिए, वे लूप बफर (SKL150 इरेटा को ठीक करने के लिए स्काइलेक में) को निष्क्रिय कर सकते हैं क्योंकि जब संभव हो तो सीपीयू को डिज़ाइन किए जाने की स्थिति में हार्डवेयर बग की खोज की जाती है।
पीटर कॉर्डेस

1
6502 पीएलए के बारे में दिलचस्प बिंदु, लेकिन पाइपलाइन किए गए सीपीयू की तुलना में अधिक हार्ड-वायर्ड होना चाहिए। क्लासिक MIPS ने अनुदेश-शब्द के विभिन्न क्षेत्रों का उपयोग आंतरिक तर्क को सीधे कुछ हद तक उसी तरह से नियंत्रित करने के लिए किया था, लेकिन निश्चित रूप से एक pipelined CPU के पास उड़ान में कई निर्देश हैं, संभवतः प्रत्येक पाइपलाइन चरण के लिए यदि स्टाल नहीं हैं। (या प्रत्येक पाइपलाइन चरण में 2 या अधिक सुपरसेलकर के लिए, और आउट-ऑफ-ऑर्डर के लिए यह और भी जटिल है।) आधुनिक सीपीयू के बहुत सारे इंटर्नल हार्ड-वायर्ड हैं, लेकिन उन knobs के साथ जो माइक्रोकोड अपडेट ट्वीक कर सकते हैं।
पीटर कॉर्डेस

0

शब्दावली

मैं इस पीडीऍफ़ में केवल उपयोग-प्रसंग का उपयोग करके स्वयं इसका उत्तर दूंगा ।

  • फर्मवेयर - सीपीयू के फर्मवेयर द्वारा प्रदान किए गए मार्ग के माध्यम से माइक्रोकोड को अपडेट किया जाता है।

    "आमतौर पर, मदरबोर्ड फर्मवेयर (जैसे, BIOS या UEFI) या शुरुआती बूट प्रक्रिया के दौरान ऑपरेटिंग सिस्टम द्वारा सीपीयू पर एक माइक्रोकोड पैच अपलोड किया जाता है।"

  • माइक्रोकोड - स्वयं "इंस्ट्रक्शन डिकोड यूनिट (IDU)" द्वारा उपयोग किया जाने वाला डेटा है। एक आईडीयू या तो हार्डवेयर्ड या माइक्रोकोड हो सकता है । इस संदर्भ में माइक्रोकैप्ड का अर्थ है क्रमादेशित। ALSO का अर्थ है "माइक्रोकोड की बहुलता।" आईडीयू

    आईडीयू नियंत्रण इकाई के भीतर एक केंद्रीय भूमिका निभाता है और निर्देश रजिस्टर की सामग्री के आधार पर नियंत्रण संकेत उत्पन्न करता है।

  • मैक्रो-निर्देश एक निर्देश जिसे IDU को डिकोड किया जाना है, माइक्रो-निर्देश की किसी भी राशि को वापस कर सकता है ।

  • माइक्रो-इंस्ट्रक्शंस एक प्री - कॉम्प्लेक्टेड "कंट्रोल वर्ड", जो सभी राज्य और एक घड़ी चक्र के लिए निष्पादित करने के निर्देश हैं। नियंत्रण संकेतों को उत्पन्न करने के लिए सीपीयू को भेजा ।

तो इस संदर्भ में, आप फर्मवेयर के साथ माइक्रोकोड को अपडेट करेंगे। आप मैक्रो-अनुदेश को सीपीयू पर निष्पादन के लिए एक "माइक्रो-इंस्ट्रक्शन" में मैक्रो-इंस्ट्रक्शन को हल करने के लिए मैक्रोकोड निर्देश भेजेंगे, जो उन्हें नियंत्रण संकेतों में बदल देता है।

मेरा यह पढ़ना

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

ऐसा लगता है कि हमारे पास सीपीयू के भीतर इन प्रक्रियाओं और घटकों के लिए एक विशेष नाम है: सीपीयू पर "आईडीयू", और विशिष्ट इनपुट तालिका के लिए एक नाम आईडीयू कार्यरत है जो सभी "माइक्रोइंस्ट्रक्शन" रखता है: "माइक्रोकोड।" उस प्रक्रिया की जानकारी मालिकाना और बंद है। मैं मान सकता हूँ कि यह किसी भी अन्य तकनीक के अनुरूप है (ATDT और जैसे हेस मॉडेम के साथ), MIDI कार्ड के लिए, लेकिन हम विशिष्ट लुकअप टेबल "माइक्रोकोड" का नाम नहीं देते हैं, और इसके लिए छाता शब्द "फर्मवेयर" का उपयोग करते हैं चमकती प्रक्रिया और चिप पर संग्रहीत पूरे पेलोड।


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

2
साथ ही, सभी x86 मैक्रो निर्देशों को माइक्रोकोड सीक्वेंसर रोम में देखकर अपघटित नहीं किया जाता है। इंटेल सीपीयू पर, निर्देश जो 4 या उससे कम यूओपी (माइक्रो-ऑप्स) को डिकोड करते हैं, उन्हें डिकोडर्स में हार्ड-कोड किया जाता है। अधिकांश निर्देश शब्द के इस अर्थ में "सूक्ष्म-कोडित" नहीं हैं। पूर्णांक विभाजन ( divऔर idiv) है, लेकिन यहां तक ​​कि एफपी डिवीजन एकल यूओपी है (क्योंकि यह अधिक प्रदर्शन महत्वपूर्ण है, मल्टी-स्टेप पुनरावृत्ति तर्क को माइक्रोकोड किए गए यूओपीएस के बजाय डिवाइड यूनिट के अंदर किया जाता है)।
पीटर कॉर्डेस

@PeterCordes आप इस उत्तर को लिखने वाले व्यक्ति हैं, इसे और अधिक तकनीकी रूप से सही बनाने के लिए मेरे किसी भी उत्तर को संपादित करने का अनुभव करें। आपको कार्टे ब्लैंच मिल गया है। हालांकि मैं आज रात उन परिवर्तनों को रोल करने की कोशिश करूँगा, अगर आप समय पर कम हैं।
इवान कैरोल

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

0

मैंने बेसिक ISA डिज़ाइन में एक कोर्स लिया है, मुख्य रूप से MIS अवधारणाओं से संबंधित RISC प्रोसेसर के अध्ययन और डिज़ाइन में। यहाँ मैं याद करने आया हूँ

मेरी समझ में, एक प्रोसेसर के बुनियादी ब्लॉक जैसे कि रजिस्टर, ALU, मल्टीप्लेक्सर्स और मेमोरी मॉड्यूल को उनके काम करने के लिए कुछ संकेतों की आवश्यकता होती है। आप इन संकेतों को अपने "जोर" के संकेतों को कहेंगे, क्योंकि वे इन ब्लॉकों को संचालित करने के लिए आवश्यक संकेत हैं। संक्षेप में सीपीयू, एएलयू, मेमोरी मॉड्यूल, रजिस्टर और अन्य हार्डवेयर का एक स्पेगेटी ब्लॉक है। मतलब प्रत्येक सीपीयू को अपने काम करने के लिए नियंत्रण संकेतों के एक निश्चित अनुक्रम का दावा करना चाहिए (मेरा मतलब है कि बुनियादी निर्देश जैसे कि ANDI, ORI, JMP, BNE, BEQ, आदि)। मुझे इसके बारे में मिली-जुली भावनाएँ हैं, जब मुझे अपने आप में संकेतों को मुखर करना पड़ता था (शाब्दिक रूप से सभी एमआइपी निर्देशों के माध्यम से) एक अनुदेश सेट के परीक्षण और डिबगिंग के दौरान क्योंकि पाठ्यक्रम की गति ने मुझे उस समय नियंत्रण इकाइयों के बारे में कुछ भी नहीं सिखाया था।

दूसरी ओर, असेंबलर भाषा निर्देश शब्द (मूल रूप से आपके डेटा बस की चौड़ाई) में opcodes और उनके ऑपरेंड को उबालती है। MIPS के संदर्भ में, आपके निर्देश शब्द के पहले 6 बिट्स आपके ओपकोड हैं। अकेले गणितीय निरीक्षण द्वारा, आप अपने ALU, रजिस्टर, मेमोरी, muxes को "मुखर" नहीं कर सकते हैं। मूल रूप से 6 बिट्स के साथ आपके बाकी हार्डवेयर अकेले।

जब तक आपके पास नहीं ... AN INSTRUCTION DECODER। अनुदेश डिकोडर मूल रूप से आपका ओपकोड लेता है और आपके हार्डवेयर को संचालित करने के लिए आपके सभी "जोर" संकेतों को उत्पन्न करता है। हालांकि, अनुदेश डिकोडर आर्किटेक्चर और कुछ मामलों के बीच कार्यान्वयन में भिन्न हैं, यह प्रोग्राम करने योग्य है। माइक्रोकोड निर्देश डिकोडर के प्रोग्रामेबल सेक्शन को प्रभावित करता है।

मुझे विश्वास है कि फर्मवेयर हार्डवेयर में एम्बेडेड किसी भी जानकारी के लिए एक सामान्य शब्द है। कुछ मामलों में यह माइक्रोकोड को भी संदर्भित करेगा क्योंकि इसकी बिटस्ट्रीम को एन्कोड किया जा सकता है और इसे EEPROM और फ्लैश मेमोरी जैसे हार्डवेयर में संग्रहीत किया जा सकता है। हालाँकि, अधिकांश समय, यह FPGAs में प्रयुक्त कोड, asm, या यहां तक ​​कि VHDL / Verilog बिटस्ट्रीम संकलित किया जाता है। मुझे लगता है कि पसंद के प्रोसेसर में "जोर संकेतों" को निर्दिष्ट करने के लिए उपयोग किए जाने वाले शब्दार्थ की तरह माइक्रोकोड मुझे लगता है।


-2

माइक्रोकोड उप-एएसएम स्तर, सीपीयू-एकीकृत फर्मवेयर है।

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