[एनबी: यह उत्तर विशेष रूप से हाल के संपादन को संबोधित करने के लिए है और अन्यथा पहले से ही पोस्ट किए गए कई ध्वनि उत्तरों को नहीं जोड़ता है।]
तो, पुनरावृत्ति करने के लिए: माइक्रोकोड (कम से कम पहले सन्निकटन) एक विशेष प्रकार का फर्मवेयर है।
"माइक्रोकोड" इस संदर्भ में है "प्रोसेसर फ़र्मवेयर से अधिक मार्केटिंग।"
खैर, यह विपणन नहीं है। मार्केटिंग ने इसे 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: माइक्रोकोड एक विशेष प्रकार का फर्मवेयर है, जो ट्यूरिंग कम्प्लीट इंस्ट्रक्शन सेट को लागू करने में हार्डवेयर की मदद करता है।