माइक्रो-संचालनों: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Short description|Low-level instructions used in some designs to implement complex machine instructions}} | {{Short description|Low-level instructions used in some designs to implement complex machine instructions}} | ||
[[File:Micro-operations.svg|thumb|right|upright=2.1|माइक्रो-ऑपरेशन में मशीन निर्देशों के अपघटन को दर्शाने वाला एक उच्च-स्तरीय चित्रण, विशिष्ट [[निर्देश चक्र]] के | [[File:Micro-operations.svg|thumb|right|upright=2.1|माइक्रो-ऑपरेशन में मशीन निर्देशों के अपघटन को दर्शाने वाला एक उच्च-स्तरीय चित्रण, विशिष्ट [[निर्देश चक्र|फ़ेच-डिकोड-निष्पादित चक्र]] के समय किया जाता है।{{r|maine-coa|page=11}}]][[कंप्यूटर]] केंद्रीय प्रसंस्करण इकाइयों में, माइक्रो-ऑपरेशंस (जिसे माइक्रो-ऑप्स या μops के रूप में भी जाना जाता है, ऐतिहासिक रूप से माइक्रो-एक्शन के रूप में भी जाना जाता है)<ref name="Ferranti_1968"/> जटिल मशीन निर्देशों '''को प्रयुक्त करने के लिए कुछ डिज़ाइनों में उपयोग किए जाने वाले विस्तृत निम्न-स्तरीय निर्देश हैं''' (कभी-कभी इस संदर्भ में मैक्रो-निर्देश कहा जाता है) को प्रयुक्त करने के लिए कुछ डिज़ाइनों में उपयोग किए जाने वाले विस्तृत निम्न-स्तरीय निर्देश हैं ।<ref name="agner.org">{{cite web | ||
| url = http://www.agner.org/optimize/microarchitecture.pdf | | url = http://www.agner.org/optimize/microarchitecture.pdf | ||
| title = The microarchitecture of Intel, AMD and VIA CPUs: An optimization guide for assembly programmers and compiler makers | | title = The microarchitecture of Intel, AMD and VIA CPUs: An optimization guide for assembly programmers and compiler makers | ||
Line 7: | Line 7: | ||
| author = Agner Fog | website = agner.org |author-link=Agner Fog | | author = Agner Fog | website = agner.org |author-link=Agner Fog | ||
}}</ref>{{rp|8–9}} | }}</ref>{{rp|8–9}} | ||
सामान्यतः, माइक्रो-ऑपरेशंस एक या एक से अधिक [[प्रोसेसर रजिस्टर|प्रोसेसर रजिस्टरों]] में संग्रहीत डेटा पर मूलभूत संचालन करते हैं, जिसमें रजिस्टरों के बीच या सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) के रजिस्टरों और बाहरी [[बस (कंप्यूटिंग)|बसों (कंप्यूटिंग)]] के बीच डेटा स्थानांतरित करना और रजिस्टरों पर अंकगणितीय या तार्किक संचालन करना सम्मिलित है। एक विशिष्ट फ़ेच-डिकोड-निष्पादन चक्र में, मैक्रो-निर्देश का प्रत्येक चरण इसके निष्पादन के समय विघटित हो जाता है, इसलिए सीपीयू माइक्रो-ऑपरेशन की एक श्रृंखला के माध्यम से निर्धारित करता है और कदम उठाता है। माइक्रो-ऑपरेशन का निष्पादन सीपीयू की नियंत्रण इकाई के नियंत्रण में किया जाता है, जो विभिन्न अनुकूलन जैसे कि पुनर्क्रमित, फ्यूजन और कैशिंग करते समय उनके निष्पादन पर निर्णय लेता है।<ref name="maine-coa">{{cite web | |||
| url = http://umcs.maine.edu/~cmeadow/courses/cos335/COA15.pdf | | url = http://umcs.maine.edu/~cmeadow/courses/cos335/COA15.pdf | ||
| title = Computer Organization and Architecture, Chapter 15. Control Unit Operation | | title = Computer Organization and Architecture, Chapter 15. Control Unit Operation | ||
Line 15: | Line 15: | ||
== अनुकूलन == | == अनुकूलन == | ||
μops के विभिन्न रूप लंबे समय से एक विशेष [[सीपीयू डिजाइन]] के कार्यान्वयन को सरल बनाने के लिए उपयोग किए जाने वाले पारंपरिक [[माइक्रोकोड]] रूटीन का आधार रहे हैं या शायद कुछ मल्टी-स्टेप ऑपरेशंस या एड्रेसिंग मोड्स के अनुक्रमण के लिए। हाल ही में, μops को एक अलग तरीके से नियोजित किया गया है ताकि आधुनिक [[जटिल निर्देश सेट कंप्यूटर]] प्रोसेसर अधिक आसानी से अतुल्यकालिक समानांतर और सट्टा निष्पादन को संभाल सकें: पारंपरिक माइक्रोकोड के साथ, एक या अधिक टेबल लुकअप (या समतुल्य) का पता लगाने के लिए किया जाता है। मशीन इंस्ट्रक्शन (डिकोडिंग या ट्रांसलेशन स्टेप) के एन्कोडिंग और शब्दार्थ के आधार पर उपयुक्त μop-अनुक्रम, हालाँकि, कठोर μop-अनुक्रम होने के बजाय सीधे माइक्रोकोड-[[केवल पढ़ने के लिये मेमोरी]] से | μops के विभिन्न रूप लंबे समय से एक विशेष [[सीपीयू डिजाइन]] के कार्यान्वयन को सरल बनाने के लिए उपयोग किए जाने वाले पारंपरिक [[माइक्रोकोड]] रूटीन का आधार रहे हैं या शायद कुछ मल्टी-स्टेप ऑपरेशंस या एड्रेसिंग मोड्स के अनुक्रमण के लिए। हाल ही में, μops को एक अलग तरीके से नियोजित किया गया है ताकि आधुनिक [[जटिल निर्देश सेट कंप्यूटर]] प्रोसेसर अधिक आसानी से अतुल्यकालिक समानांतर और सट्टा निष्पादन को संभाल सकें: पारंपरिक माइक्रोकोड के साथ, एक या अधिक टेबल लुकअप (या समतुल्य) का पता लगाने के लिए किया जाता है। मशीन इंस्ट्रक्शन (डिकोडिंग या ट्रांसलेशन स्टेप) के एन्कोडिंग और शब्दार्थ के आधार पर उपयुक्त μop-अनुक्रम, हालाँकि, कठोर μop-अनुक्रम होने के बजाय सीधे माइक्रोकोड-[[केवल पढ़ने के लिये मेमोरी]] से सीपीयू को नियंत्रित करने के लिए, μops यहाँ गतिशील रूप से बफर किए गए हैं निष्पादित होने से पहले पुनर्निर्धारण।<ref name="nehalem">{{cite web | ||
|url = http://sc.tamu.edu/systems/eos/nehalem.pdf | |url = http://sc.tamu.edu/systems/eos/nehalem.pdf | ||
|title = The Architecture of the Nehalem Processor and Nehalem-EP SMP Platforms | |title = The Architecture of the Nehalem Processor and Nehalem-EP SMP Platforms | ||
Line 26: | Line 26: | ||
|archivedate = 2014-08-11 | |archivedate = 2014-08-11 | ||
}}</ref>{{rp|6–7, 9–11}} | }}</ref>{{rp|6–7, 9–11}} | ||
इस बफ़रिंग का अर्थ है कि एक अधिक पारंपरिक माइक्रोकोडेड (या हार्ड-वायर्ड) डिज़ाइन में व्यवहार्य होने की तुलना में निष्पादन इकाइयों से फ़ेच और डिकोड चरणों को अधिक अलग किया जा सकता है। चूंकि यह निष्पादन आदेश के संबंध में स्वतंत्रता की एक डिग्री की अनुमति देता है, यह सामान्य सिंगल-थ्रेडेड प्रोग्राम से निर्देश-स्तर समांतरता का कुछ निष्कर्षण संभव बनाता है (बशर्ते निर्भरता की जांच की जाती है)। यह अधिक विश्लेषण के लिए खुलता है और इसलिए मशीन संसाधनों (जैसे [[अंकगणितीय तर्क इकाई]], लोड/स्टोर इकाइयों आदि) पर μops की मैपिंग और शेड्यूलिंग को गतिशील रूप से अनुकूलित करने के लिए कोड अनुक्रमों की पुनर्व्यवस्था के लिए भी खुलता है। जैसा कि यह μop-स्तर पर होता है, विभिन्न मशीन (मैक्रो) निर्देशों के उप-संचालन अक्सर एक विशेष μop-अनुक्रम में रुक-रुक कर हो सकते हैं, कई से सूक्ष्म निर्देशों के आउट-ऑफ-ऑर्डर प्रेषण के प्रत्यक्ष परिणाम के रूप में आंशिक रूप से पुन: व्यवस्थित मशीन निर्देश बनाते हैं। मैक्रो निर्देश। हालाँकि, यह माइक्रो-ऑप फ्यूजन के समान नहीं है, जिसका उद्देश्य इस तथ्य पर है कि एक अधिक जटिल सूक्ष्म निर्देश कुछ मामलों में कुछ सरल सूक्ष्म निर्देशों को बदल सकता है, | इस बफ़रिंग का अर्थ है कि एक अधिक पारंपरिक माइक्रोकोडेड (या हार्ड-वायर्ड) डिज़ाइन में व्यवहार्य होने की तुलना में निष्पादन इकाइयों से फ़ेच और डिकोड चरणों को अधिक अलग किया जा सकता है। चूंकि यह निष्पादन आदेश के संबंध में स्वतंत्रता की एक डिग्री की अनुमति देता है, यह सामान्य सिंगल-थ्रेडेड प्रोग्राम से निर्देश-स्तर समांतरता का कुछ निष्कर्षण संभव बनाता है (बशर्ते निर्भरता की जांच की जाती है)। यह अधिक विश्लेषण के लिए खुलता है और इसलिए मशीन संसाधनों (जैसे [[अंकगणितीय तर्क इकाई]], लोड/स्टोर इकाइयों आदि) पर μops की मैपिंग और शेड्यूलिंग को गतिशील रूप से अनुकूलित करने के लिए कोड अनुक्रमों की पुनर्व्यवस्था के लिए भी खुलता है। जैसा कि यह μop-स्तर पर होता है, विभिन्न मशीन (मैक्रो) निर्देशों के उप-संचालन अक्सर एक विशेष μop-अनुक्रम में रुक-रुक कर हो सकते हैं, कई से सूक्ष्म निर्देशों के आउट-ऑफ-ऑर्डर प्रेषण के प्रत्यक्ष परिणाम के रूप में आंशिक रूप से पुन: व्यवस्थित मशीन निर्देश बनाते हैं। मैक्रो निर्देश। हालाँकि, यह माइक्रो-ऑप फ्यूजन के समान नहीं है, जिसका उद्देश्य इस तथ्य पर है कि एक अधिक जटिल सूक्ष्म निर्देश कुछ मामलों में कुछ सरल सूक्ष्म निर्देशों को बदल सकता है, सामान्यतः राज्य परिवर्तन और कतार के उपयोग और पुन: क्रम को कम करने के लिए बफर स्थान, इसलिए बिजली की खपत को कम करना। कुछ आधुनिक सीपीयू डिजाइनों में माइक्रो-ऑप फ्यूजन का उपयोग किया जाता है।<ref name="agner.org" />{{rp|89–91, 105–106}}<ref name="nehalem" />{{rp|6–7, 9–15}} | ||
निष्पादन अनुकूलन और भी आगे बढ़ गया है; प्रोसेसर न केवल कई मशीन निर्देशों को μops की एक श्रृंखला में अनुवादित करते हैं, बल्कि उपयुक्त होने पर विपरीत भी करते हैं; वे कुछ मशीन निर्देश अनुक्रमों को जोड़ते हैं (जैसे कि एक सशर्त छलांग के बाद की तुलना) एक अधिक जटिल μop में जो निष्पादन मॉडल को बेहतर ढंग से फिट करता है और इस प्रकार इसे तेजी से या कम मशीन संसाधनों के साथ निष्पादित किया जा सकता है। इसे मैक्रो-ऑप फ्यूजन के रूप में भी जाना जाता है।<ref name="agner.org" />{{rp|106–107}}<ref name="nehalem" />{{rp|12–13}} | निष्पादन अनुकूलन और भी आगे बढ़ गया है; प्रोसेसर न केवल कई मशीन निर्देशों को μops की एक श्रृंखला में अनुवादित करते हैं, बल्कि उपयुक्त होने पर विपरीत भी करते हैं; वे कुछ मशीन निर्देश अनुक्रमों को जोड़ते हैं (जैसे कि एक सशर्त छलांग के बाद की तुलना) एक अधिक जटिल μop में जो निष्पादन मॉडल को बेहतर ढंग से फिट करता है और इस प्रकार इसे तेजी से या कम मशीन संसाधनों के साथ निष्पादित किया जा सकता है। इसे मैक्रो-ऑप फ्यूजन के रूप में भी जाना जाता है।<ref name="agner.org" />{{rp|106–107}}<ref name="nehalem" />{{rp|12–13}} | ||
प्रदर्शन को बेहतर बनाने का प्रयास करने का एक अन्य तरीका [[माइक्रो-ऑपरेशन कैश]] में डिकोड किए गए माइक्रो-ऑपरेशन को कैश करना है, ताकि यदि उसी मैक्रोइन्स्ट्रक्शन को फिर से निष्पादित किया जाए, तो प्रोसेसर डीकोड किए गए माइक्रो-ऑपरेशन को डीकोड करने के बजाय सीधे कैश से एक्सेस कर सकता है। दोबारा। [[इंटेल]] [[नेटबर्स्ट (माइक्रोआर्किटेक्चर)]] ([[पेंटियम 4]]) में पाया गया [[निष्पादन ट्रेस कैश]] इस तकनीक का एक व्यापक उदाहरण है।<ref>{{cite web | प्रदर्शन को बेहतर बनाने का प्रयास करने का एक अन्य तरीका [[माइक्रो-ऑपरेशन कैश]] में डिकोड किए गए माइक्रो-ऑपरेशन को कैश करना है, ताकि यदि उसी मैक्रोइन्स्ट्रक्शन को फिर से निष्पादित किया जाए, तो प्रोसेसर डीकोड किए गए माइक्रो-ऑपरेशन को डीकोड करने के बजाय सीधे कैश से एक्सेस कर सकता है। दोबारा। [[इंटेल]] [[नेटबर्स्ट (माइक्रोआर्किटेक्चर)]] ([[पेंटियम 4]]) में पाया गया [[निष्पादन ट्रेस कैश]] इस तकनीक का एक व्यापक उदाहरण है।<ref>{{cite web |
Revision as of 22:24, 4 March 2023
कंप्यूटर केंद्रीय प्रसंस्करण इकाइयों में, माइक्रो-ऑपरेशंस (जिसे माइक्रो-ऑप्स या μops के रूप में भी जाना जाता है, ऐतिहासिक रूप से माइक्रो-एक्शन के रूप में भी जाना जाता है)[2] जटिल मशीन निर्देशों को प्रयुक्त करने के लिए कुछ डिज़ाइनों में उपयोग किए जाने वाले विस्तृत निम्न-स्तरीय निर्देश हैं (कभी-कभी इस संदर्भ में मैक्रो-निर्देश कहा जाता है) को प्रयुक्त करने के लिए कुछ डिज़ाइनों में उपयोग किए जाने वाले विस्तृत निम्न-स्तरीय निर्देश हैं ।[3]: 8–9
सामान्यतः, माइक्रो-ऑपरेशंस एक या एक से अधिक प्रोसेसर रजिस्टरों में संग्रहीत डेटा पर मूलभूत संचालन करते हैं, जिसमें रजिस्टरों के बीच या सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) के रजिस्टरों और बाहरी बसों (कंप्यूटिंग) के बीच डेटा स्थानांतरित करना और रजिस्टरों पर अंकगणितीय या तार्किक संचालन करना सम्मिलित है। एक विशिष्ट फ़ेच-डिकोड-निष्पादन चक्र में, मैक्रो-निर्देश का प्रत्येक चरण इसके निष्पादन के समय विघटित हो जाता है, इसलिए सीपीयू माइक्रो-ऑपरेशन की एक श्रृंखला के माध्यम से निर्धारित करता है और कदम उठाता है। माइक्रो-ऑपरेशन का निष्पादन सीपीयू की नियंत्रण इकाई के नियंत्रण में किया जाता है, जो विभिन्न अनुकूलन जैसे कि पुनर्क्रमित, फ्यूजन और कैशिंग करते समय उनके निष्पादन पर निर्णय लेता है।[1]
अनुकूलन
μops के विभिन्न रूप लंबे समय से एक विशेष सीपीयू डिजाइन के कार्यान्वयन को सरल बनाने के लिए उपयोग किए जाने वाले पारंपरिक माइक्रोकोड रूटीन का आधार रहे हैं या शायद कुछ मल्टी-स्टेप ऑपरेशंस या एड्रेसिंग मोड्स के अनुक्रमण के लिए। हाल ही में, μops को एक अलग तरीके से नियोजित किया गया है ताकि आधुनिक जटिल निर्देश सेट कंप्यूटर प्रोसेसर अधिक आसानी से अतुल्यकालिक समानांतर और सट्टा निष्पादन को संभाल सकें: पारंपरिक माइक्रोकोड के साथ, एक या अधिक टेबल लुकअप (या समतुल्य) का पता लगाने के लिए किया जाता है। मशीन इंस्ट्रक्शन (डिकोडिंग या ट्रांसलेशन स्टेप) के एन्कोडिंग और शब्दार्थ के आधार पर उपयुक्त μop-अनुक्रम, हालाँकि, कठोर μop-अनुक्रम होने के बजाय सीधे माइक्रोकोड-केवल पढ़ने के लिये मेमोरी से सीपीयू को नियंत्रित करने के लिए, μops यहाँ गतिशील रूप से बफर किए गए हैं निष्पादित होने से पहले पुनर्निर्धारण।[4]: 6–7, 9–11 इस बफ़रिंग का अर्थ है कि एक अधिक पारंपरिक माइक्रोकोडेड (या हार्ड-वायर्ड) डिज़ाइन में व्यवहार्य होने की तुलना में निष्पादन इकाइयों से फ़ेच और डिकोड चरणों को अधिक अलग किया जा सकता है। चूंकि यह निष्पादन आदेश के संबंध में स्वतंत्रता की एक डिग्री की अनुमति देता है, यह सामान्य सिंगल-थ्रेडेड प्रोग्राम से निर्देश-स्तर समांतरता का कुछ निष्कर्षण संभव बनाता है (बशर्ते निर्भरता की जांच की जाती है)। यह अधिक विश्लेषण के लिए खुलता है और इसलिए मशीन संसाधनों (जैसे अंकगणितीय तर्क इकाई, लोड/स्टोर इकाइयों आदि) पर μops की मैपिंग और शेड्यूलिंग को गतिशील रूप से अनुकूलित करने के लिए कोड अनुक्रमों की पुनर्व्यवस्था के लिए भी खुलता है। जैसा कि यह μop-स्तर पर होता है, विभिन्न मशीन (मैक्रो) निर्देशों के उप-संचालन अक्सर एक विशेष μop-अनुक्रम में रुक-रुक कर हो सकते हैं, कई से सूक्ष्म निर्देशों के आउट-ऑफ-ऑर्डर प्रेषण के प्रत्यक्ष परिणाम के रूप में आंशिक रूप से पुन: व्यवस्थित मशीन निर्देश बनाते हैं। मैक्रो निर्देश। हालाँकि, यह माइक्रो-ऑप फ्यूजन के समान नहीं है, जिसका उद्देश्य इस तथ्य पर है कि एक अधिक जटिल सूक्ष्म निर्देश कुछ मामलों में कुछ सरल सूक्ष्म निर्देशों को बदल सकता है, सामान्यतः राज्य परिवर्तन और कतार के उपयोग और पुन: क्रम को कम करने के लिए बफर स्थान, इसलिए बिजली की खपत को कम करना। कुछ आधुनिक सीपीयू डिजाइनों में माइक्रो-ऑप फ्यूजन का उपयोग किया जाता है।[3]: 89–91, 105–106 [4]: 6–7, 9–15 निष्पादन अनुकूलन और भी आगे बढ़ गया है; प्रोसेसर न केवल कई मशीन निर्देशों को μops की एक श्रृंखला में अनुवादित करते हैं, बल्कि उपयुक्त होने पर विपरीत भी करते हैं; वे कुछ मशीन निर्देश अनुक्रमों को जोड़ते हैं (जैसे कि एक सशर्त छलांग के बाद की तुलना) एक अधिक जटिल μop में जो निष्पादन मॉडल को बेहतर ढंग से फिट करता है और इस प्रकार इसे तेजी से या कम मशीन संसाधनों के साथ निष्पादित किया जा सकता है। इसे मैक्रो-ऑप फ्यूजन के रूप में भी जाना जाता है।[3]: 106–107 [4]: 12–13 प्रदर्शन को बेहतर बनाने का प्रयास करने का एक अन्य तरीका माइक्रो-ऑपरेशन कैश में डिकोड किए गए माइक्रो-ऑपरेशन को कैश करना है, ताकि यदि उसी मैक्रोइन्स्ट्रक्शन को फिर से निष्पादित किया जाए, तो प्रोसेसर डीकोड किए गए माइक्रो-ऑपरेशन को डीकोड करने के बजाय सीधे कैश से एक्सेस कर सकता है। दोबारा। इंटेल नेटबर्स्ट (माइक्रोआर्किटेक्चर) (पेंटियम 4) में पाया गया निष्पादन ट्रेस कैश इस तकनीक का एक व्यापक उदाहरण है।[5] इस कैश के आकार को माइक्रो-ऑपरेशन के कितने हजारों (या सख्ती से एकाधिक) के संदर्भ में बताया जा सकता है: Kμops।[6]
संदर्भ
- ↑ 1.0 1.1 "Computer Organization and Architecture, Chapter 15. Control Unit Operation" (PDF). umcs.maine.edu. 2010-03-16. Retrieved 2014-12-29.
- ↑ FM1600B Microcircuit Computer Ferranti Digital Systems (PDF). Bracknell, Berkshire, UK: Ferranti Limited, Digital Systems Department. October 1968 [September 1968]. List DSD 68/6. Archived (PDF) from the original on 2020-05-19. Retrieved 2020-05-19.
- ↑ 3.0 3.1 3.2 Agner Fog (2014-02-19). "The microarchitecture of Intel, AMD and VIA CPUs: An optimization guide for assembly programmers and compiler makers" (PDF). agner.org. Retrieved 2014-03-21.
- ↑ 4.0 4.1 4.2 Michael E. Thomadakis (2011-03-17). "The Architecture of the Nehalem Processor and Nehalem-EP SMP Platforms" (PDF). Texas A&M University. Archived from the original (PDF) on 2014-08-11. Retrieved 2014-03-21.
- ↑ "Intel Pentium 4 1.4GHz & 1.5GHz". AnandTech. 2000-11-20. Retrieved 2013-10-06.
- ↑ Baruch Solomon; Avi Mendelson; Doron Orenstein; Yoav Almog; Ronny Ronen (August 2001). "Micro-Operation Cache: A Power Aware Frontend for Variable Instruction Length ISA" (PDF). ISLPED'01: Proceedings of the 2001 International Symposium on Low Power Electronics and Design (IEEE Cat. No.01TH8581). Intel. pp. 4–9. doi:10.1109/LPE.2001.945363. ISBN 1-58113-371-5. S2CID 10934861. Retrieved 2014-03-21.