आउट-ऑफ-ऑर्डर निष्पादन: Difference between revisions

From Vigyanwiki
(text)
Line 27: Line 27:
निष्पादन की व्यावहारिक रूप से प्राप्य प्रति-चक्र दर और अधिक बढ़ गई क्योंकि 1996 में[[सिलिकॉन ग्राफिक्स]]/[[एमआईपीएस टेक्नोलॉजीज]] (आर10000) और [[ हेवलेट पैकर्ड |हेवलेट पैकर्ड]] [[पीए-जोखिम|PA-RISC]] ([[पीए-8000|PA-8000]]) द्वारा पूर्ण आउट-ऑफ-ऑर्डर निष्पादन को अपनाया गया था। उसी वर्ष साइरिक्स 6x86 और [[एएमडी K5|AMD K5]] ने मुख्यधारा के व्यक्तिगत कंप्यूटरों में उन्नत री-ऑर्डरिंग तकनीकें लाईं। चूंकि [[डीईसी अल्फा]] ने 1998 ([[अल्फा 21264]]) में आउट-ऑफ-ऑर्डर निष्पादन प्राप्त किया था, शीर्ष-प्रदर्शन वाले आउट-ऑफ-ऑर्डर प्रोसेसर कोर हेवलेट-पैकार्ड/[[इंटेल]] [[इटेनियम]] 2 और [[आईबीएम]] [[शक्ति6|पावर]] 6 के अलावा इन-ऑर्डर कोर द्वारा बेजोड़ हैं, हालांकि उत्तरार्द्ध में आउट-ऑफ-ऑर्डर [[फ्लोटिंग-पॉइंट यूनिट]] थी।<ref>Le, Hung Q. et al. {{cite journal |title=IBM POWER6 microarchitecture |journal=IBM Journal of Research and Development |date=November 2007 |volume=51 |issue=6 |url=https://course.ece.cmu.edu/~ece742/f12/lib/exe/fetch.php?media=le_power6.pdf}}</ref> अन्य हाई-एंड इन-ऑर्डर प्रोसेसर बहुत पीछे रह गए, अर्थात् [[सन माइक्रोसिस्टम्स]] का [[UltraSPARC III|अल्ट्रास्पार्क III]]/[[UltraSPARC IV|अल्ट्रास्पार्क IV]], और आईबीएम का [[ मेनफ़्रेम कंप्यूटर |मेनफ़्रेम कंप्यूटर]], जो दूसरी बार आउट-ऑफ-ऑर्डर निष्पादन क्षमता खो चुके थे, [[IBM z10|z10]] युग में क्रम में शेष थे। बाद में बड़े इन-ऑर्डर प्रोसेसर मल्टीथ्रेडेड प्रदर्शन पर केंद्रित थे, लेकिन अंततः स्पार्क T सीरीज़ और [[Xeon Phi]] क्रमशः 2011 और 2016 में आउट-ऑफ-ऑर्डर निष्पादन में बदल गए थे।
निष्पादन की व्यावहारिक रूप से प्राप्य प्रति-चक्र दर और अधिक बढ़ गई क्योंकि 1996 में[[सिलिकॉन ग्राफिक्स]]/[[एमआईपीएस टेक्नोलॉजीज]] (आर10000) और [[ हेवलेट पैकर्ड |हेवलेट पैकर्ड]] [[पीए-जोखिम|PA-RISC]] ([[पीए-8000|PA-8000]]) द्वारा पूर्ण आउट-ऑफ-ऑर्डर निष्पादन को अपनाया गया था। उसी वर्ष साइरिक्स 6x86 और [[एएमडी K5|AMD K5]] ने मुख्यधारा के व्यक्तिगत कंप्यूटरों में उन्नत री-ऑर्डरिंग तकनीकें लाईं। चूंकि [[डीईसी अल्फा]] ने 1998 ([[अल्फा 21264]]) में आउट-ऑफ-ऑर्डर निष्पादन प्राप्त किया था, शीर्ष-प्रदर्शन वाले आउट-ऑफ-ऑर्डर प्रोसेसर कोर हेवलेट-पैकार्ड/[[इंटेल]] [[इटेनियम]] 2 और [[आईबीएम]] [[शक्ति6|पावर]] 6 के अलावा इन-ऑर्डर कोर द्वारा बेजोड़ हैं, हालांकि उत्तरार्द्ध में आउट-ऑफ-ऑर्डर [[फ्लोटिंग-पॉइंट यूनिट]] थी।<ref>Le, Hung Q. et al. {{cite journal |title=IBM POWER6 microarchitecture |journal=IBM Journal of Research and Development |date=November 2007 |volume=51 |issue=6 |url=https://course.ece.cmu.edu/~ece742/f12/lib/exe/fetch.php?media=le_power6.pdf}}</ref> अन्य हाई-एंड इन-ऑर्डर प्रोसेसर बहुत पीछे रह गए, अर्थात् [[सन माइक्रोसिस्टम्स]] का [[UltraSPARC III|अल्ट्रास्पार्क III]]/[[UltraSPARC IV|अल्ट्रास्पार्क IV]], और आईबीएम का [[ मेनफ़्रेम कंप्यूटर |मेनफ़्रेम कंप्यूटर]], जो दूसरी बार आउट-ऑफ-ऑर्डर निष्पादन क्षमता खो चुके थे, [[IBM z10|z10]] युग में क्रम में शेष थे। बाद में बड़े इन-ऑर्डर प्रोसेसर मल्टीथ्रेडेड प्रदर्शन पर केंद्रित थे, लेकिन अंततः स्पार्क T सीरीज़ और [[Xeon Phi]] क्रमशः 2011 और 2016 में आउट-ऑफ-ऑर्डर निष्पादन में बदल गए थे।


फोन और अन्य निम्न-अंत अनुप्रयोगों के लिए लगभग सभी प्रोसेसर c तक क्रम में बने रहे। 2010. सबसे पहले, [[क्वालकॉम]] का [[ बिच्छू (प्रोसेसर) |स्कॉर्पियन]] (32 की री-ऑर्डरिंग दूरी) को[[ कुयल्कोम्म अजगर का चित्र | स्नैपड्रैगन]] में भेज दिया गया,<ref>{{cite web |last1=Mallia |first1=Lou |title=क्वालकॉम हाई परफॉरमेंस प्रोसेसर कोर और मोबाइल एप्लिकेशन के लिए प्लेटफॉर्म|url=http://rtcgroup.com/arm/2007/presentations/253%20-%20ARM_DevCon_2007_Snapdragon_FINAL_20071004.pdf |archive-url=https://web.archive.org/web/20131029193001/http://rtcgroup.com/arm/2007/presentations/253%20-%20ARM_DevCon_2007_Snapdragon_FINAL_20071004.pdf |archive-date=29 October 2013}}</ref> '''और थोड़ी देर बाद आर्म (कंपनी) का [[ARM Cortex-A9|A9]], [[ARM Cortex-A8|A8]] से आगे निकल गया। लो-एंड x86 व्यक्तिगत कंप्यूटरों के लिए [[बोननेल (माइक्रोआर्किटेक्चर)|बोननेल (मा]]'''[[बोननेल (माइक्रोआर्किटेक्चर)|इक्रोआर्किटेक्चर)]] | इन-ऑर्डर अर्ली इंटेल एटम्स को सबसे पहले [[ उन्नत लघु उपकरण | उन्नत लघु उपकरण]] ेस के [[बॉबकैट (माइक्रोआर्किटेक्चर)]] द्वारा चुनौती दी गई थी, और 2013 में एक आउट-ऑफ-ऑर्डर [[सिल्वरमोंट]] द्वारा सफल किया गया था।<ref>{{cite web |url=http://www.anandtech.com/show/6936/intels-silvermont-architecture-revealed-getting-serious-about-mobile/2 |website=AnandTech |title=Intel's Silvermont Architecture Revealed: Getting Serious About Mobile |author=Anand Lal Shimpi |date=2013-05-06}}</ref> क्योंकि आउट-ऑफ-ऑर्डर निष्पादन की जटिलता सबसे कम न्यूनतम बिजली की खपत, लागत और आकार को प्राप्त करने से रोकती है, इन-ऑर्डर निष्पादन अभी भी [[ microcontroller | microcontroller]] और [[ अंतः स्थापित प्रणाली | अंतः स्थापित प्रणाली]] में प्रचलित है, साथ ही फोन-क्लास कोर जैसे आर्म के [[एआरएम कॉर्टेक्स-ए 55]] में भी प्रचलित है। और ARM में [[ARM Cortex-A510]] big.LITTLE|big.LITTLE कॉन्फ़िगरेशन।
फोन और अन्य निम्न-अंत अनुप्रयोगों के लिए लगभग सभी प्रोसेसर c तक क्रम में बने रहे। 2010. सबसे पहले, [[क्वालकॉम]] का [[ बिच्छू (प्रोसेसर) |स्कॉर्पियन]] (32 की री-ऑर्डरिंग दूरी) को[[ कुयल्कोम्म अजगर का चित्र | स्नैपड्रैगन]] में भेज दिया गया,<ref>{{cite web |last1=Mallia |first1=Lou |title=क्वालकॉम हाई परफॉरमेंस प्रोसेसर कोर और मोबाइल एप्लिकेशन के लिए प्लेटफॉर्म|url=http://rtcgroup.com/arm/2007/presentations/253%20-%20ARM_DevCon_2007_Snapdragon_FINAL_20071004.pdf |archive-url=https://web.archive.org/web/20131029193001/http://rtcgroup.com/arm/2007/presentations/253%20-%20ARM_DevCon_2007_Snapdragon_FINAL_20071004.pdf |archive-date=29 October 2013}}</ref> और थोड़ी देर बाद आर्म (कंपनी) का [[ARM Cortex-A9|A9]], [[ARM Cortex-A8|A8]] से आगे निकल गया था। लो-एंड x86 व्यक्तिगत कंप्यूटरों के लिए [[बोननेल (माइक्रोआर्किटेक्चर)|इंटेल एटम्स]]को पहले एएमडी के [[बॉबकैट (माइक्रोआर्किटेक्चर)]] द्वारा चुनौती दी गई थी, और 2013 में आउट-ऑफ-ऑर्डर [[सिल्वरमोंट]] द्वारा सफल किया गया था।<ref>{{cite web |url=http://www.anandtech.com/show/6936/intels-silvermont-architecture-revealed-getting-serious-about-mobile/2 |website=AnandTech |title=Intel's Silvermont Architecture Revealed: Getting Serious About Mobile |author=Anand Lal Shimpi |date=2013-05-06}}</ref> क्योंकि आउट-ऑफ-ऑर्डर निष्पादन की जटिलता सबसे कम न्यूनतम बिजली की खपत, लागत और आकार को प्राप्त करने से रोकती है, इन-ऑर्डर निष्पादन अभी भी [[ microcontroller |माइक्रोकंट्रोलर]] और [[ अंतः स्थापित प्रणाली |एम्बेडेड सिस्टम]] में प्रचलित है, साथ ही फोन-क्लास कोर जैसे आर्म के [[एआरएम कॉर्टेक्स-ए 55|A 55]] और [[ARM Cortex-A510|A510 big.little कॉन्फ़िगरेशन]] में भी प्रचलित है।


== मूल अवधारणा ==
== मूल अवधारणा ==


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


=== इन-ऑर्डर प्रोसेसर ===
=== इन-ऑर्डर प्रोसेसर ===
पहले के प्रोसेसर में, निर्देशों का प्रसंस्करण एक निर्देश चक्र में किया जाता है जिसमें सामान्य रूप से निम्नलिखित चरण होते हैं:
पहले के प्रोसेसर में, निर्देशों का प्रसंस्करण निर्देश चक्र में किया जाता है जिसमें सामान्य रूप से निम्नलिखित चरण होते हैं:
# [[निर्देश (कंप्यूटर विज्ञान)]] [[लाने-निष्पादित चक्र]]।
# [[निर्देश (कंप्यूटर विज्ञान)]] [[लाने-निष्पादित चक्र]]।
# यदि इनपुट [[ ओपेरंड ]] उपलब्ध हैं (उदाहरण के लिए प्रोसेसर रजिस्टरों में), निर्देश उचित [[कार्यात्मक इकाई]] को भेजा जाता है। यदि वर्तमान घड़ी चक्र के दौरान एक या अधिक ऑपरेंड अनुपलब्ध हैं (आमतौर पर क्योंकि वे [[ स्मृति ]] से लाए जा रहे हैं), प्रोसेसर उपलब्ध होने तक स्टाल करता है।
# यदि इनपुट [[ ओपेरंड |ओपेरंड]] उपलब्ध हैं (उदाहरण के लिए प्रोसेसर रजिस्टरों में), निर्देश उचित [[कार्यात्मक इकाई]] को भेजा जाता है। यदि वर्तमान कालद संकेत के दौरान एक या अधिक ऑपरेंड अनुपलब्ध हैं (आमतौर पर क्योंकि वे [[ स्मृति |मेमोरी]] से लाए जा रहे हैं), प्रोसेसर उपलब्ध होने तक स्टाल करता है।
# निर्देश उपयुक्त कार्यात्मक इकाई द्वारा निष्पादित किया जाता है।
# निर्देश उपयुक्त कार्यात्मक इकाई द्वारा निष्पादित किया जाता है।
# कार्यात्मक इकाई परिणाम को वापस [[रजिस्टर फ़ाइल]] में लिखती है।
# कार्यात्मक इकाई परिणाम को [[रजिस्टर फ़ाइल]] में वापस लिखती है।


अक्सर, एक इन-ऑर्डर प्रोसेसर में थोड़ी सदिश रिकॉर्डिंग होती है जो रजिस्टरों को एक पाइपलाइन द्वारा लिखी जाएगी।<ref>{{cite web |url=https://pages.cs.wisc.edu/~swilson/gem5-docs/minor.html#sb |title=Inside the Minor CPU model: Scoreboard |author=<!--Not stated--> |date=2017-06-09 |access-date=2023-01-09}}</ref> यदि किसी इनपुट ऑपरेंड के पास इस वेक्टर में संबंधित बिट सेट है, तो निर्देश रुक जाता है। अनिवार्य रूप से, वेक्टर रजिस्टर खतरों से सुरक्षा की एक बहुत ही सरल भूमिका निभाता है। इस प्रकार आउट-ऑफ-ऑर्डर निष्पादन 2डी मैट्रिसेस का उपयोग करता है जबकि इन-ऑर्डर निष्पादन खतरे से बचाव के लिए 1डी वेक्टर का उपयोग करता है।
अक्सर, इन-ऑर्डर प्रोसेसर में थोड़ी "बिट वेक्टर" रिकॉर्डिंग होती है जो रजिस्टरों को पाइपलाइन द्वारा लिखा जाएगा।<ref>{{cite web |url=https://pages.cs.wisc.edu/~swilson/gem5-docs/minor.html#sb |title=Inside the Minor CPU model: Scoreboard |author=<!--Not stated--> |date=2017-06-09 |access-date=2023-01-09}}</ref> यदि किसी इनपुट ऑपरेंड के पास इस वेक्टर में संबंधित बिट सेट है, तो निर्देश रुक जाता है। अनिवार्य रूप से, वेक्टर रजिस्टर खतरों से सुरक्षा की बहुत ही सरल भूमिका निभाता है। इस प्रकार आउट-ऑफ-ऑर्डर निष्पादन 2D मैट्रिसेस का उपयोग करता है जबकि इन-ऑर्डर निष्पादन खतरे से बचाव के लिए 1D वेक्टर का उपयोग करता है।


=== आउट-ऑफ-ऑर्डर प्रोसेसर ===
=== आउट-ऑफ-ऑर्डर प्रोसेसर ===
Line 46: Line 46:
# निर्देश प्राप्त करें।
# निर्देश प्राप्त करें।
# निर्देश कतार को निर्देश प्रेषण (जिसे निर्देश बफर या आरक्षण स्टेशन भी कहा जाता है)।
# निर्देश कतार को निर्देश प्रेषण (जिसे निर्देश बफर या आरक्षण स्टेशन भी कहा जाता है)।
# निर्देश कतार में तब तक प्रतीक्षा करता है जब तक उसका इनपुट ऑपरेंड उपलब्ध नहीं हो जाता। निर्देश पुराने निर्देशों से पहले कतार छोड़ सकता है।
# निर्देश कतार में तब तक प्रतीक्षा करता है जब तक उसका इनपुट ऑपरेंड उपलब्ध नहीं हो जाता है। निर्देश पुराने निर्देशों से पहले कतार छोड़ सकता है।
# निर्देश उपयुक्त कार्यात्मक इकाई को जारी किया जाता है और उस इकाई द्वारा निष्पादित किया जाता है।
# निर्देश उपयुक्त कार्यात्मक इकाई को जारी किया जाता है और उस इकाई द्वारा निष्पादित किया जाता है।
# परिणाम कतारबद्ध हैं।
# परिणाम कतारबद्ध हैं।
# सभी पुराने निर्देशों के बाद ही उनके परिणाम वापस रजिस्टर फ़ाइल में लिखे जाते हैं, तब यह परिणाम वापस रजिस्टर फ़ाइल में लिखा जाता है। इसे ग्रेजुएशन या रिटायर स्टेज कहा जाता है।
# सभी पुराने निर्देशों के बाद ही उनके परिणाम वापस रजिस्टर फ़ाइल में लिखे जाते हैं, तब यह परिणाम वापस रजिस्टर फ़ाइल में लिखा जाता है। इसे ग्रेजुएशन या रिटायर स्टेज कहा जाता है।


ओओओई प्रसंस्करण की मुख्य अवधारणा प्रोसेसर को स्टालों की एक श्रेणी से बचने की अनुमति देना है जो तब होती है जब ऑपरेशन करने के लिए आवश्यक डेटा अनुपलब्ध होता है। ऊपर की रूपरेखा में, OoOE प्रोसेसर इन-ऑर्डर प्रोसेसर के चरण (2) में होने वाले स्टॉल से बचता है जब लापता डेटा के कारण निर्देश पूरी तरह से संसाधित होने के लिए तैयार नहीं होता है।
ओओओई प्रसंस्करण की मुख्य अवधारणा प्रोसेसर को स्टालों की श्रेणी से बचने की अनुमति देना है जो तब होती है जब ऑपरेशन करने के लिए आवश्यक डेटा अनुपलब्ध होता है। ऊपर की रूपरेखा में, ओओओई प्रोसेसर इन-ऑर्डर प्रोसेसर के चरण (2) में होने वाले स्टॉल से बचता है जब लुप्त डेटा के कारण निर्देश पूरी तरह से संसाधित होने के लिए तैयार नहीं होता है।


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


OoOE प्रसंस्करण का लाभ बढ़ता है क्योंकि [[निर्देश पाइपलाइन]] गहराती है और मुख्य मेमोरी (या [[मुख्य स्मृति]]) और प्रोसेसर के बीच गति का अंतर बढ़ता है। आधुनिक मशीनों पर, प्रोसेसर मेमोरी की तुलना में कई गुना तेज चलता है, इसलिए समय के दौरान एक इन-ऑर्डर प्रोसेसर डेटा आने की प्रतीक्षा में खर्च करता है, यह बड़ी संख्या में निर्देशों को संसाधित कर सकता था।
ओओओई प्रसंस्करण का लाभ बढ़ता है क्योंकि [[निर्देश पाइपलाइन]] गहराती है और मुख्य मेमोरी (या [[मुख्य स्मृति|मुख्य मेमोरी]]) और प्रोसेसर के बीच गति का अंतर बढ़ता है। आधुनिक मशीनों पर, प्रोसेसर मेमोरी की तुलना में कई गुना तेज चलता है, इसलिए समय के दौरान इन-ऑर्डर प्रोसेसर डेटा आने की प्रतीक्षा में क्षय करता है, यह बड़ी संख्या में निर्देशों को संसाधित कर सकता था।


== डिकूप्लिंग और डिकूप्लिंग आउट-ऑफ-ऑर्डर इश्यू == की अनुमति देता है
'''<big>डिकूप्लिंग और डिकूप्लिंग आउट-ऑफ-ऑर्डर इश्यू की अनुमति देता है</big>'''
नए प्रतिमान द्वारा बनाए गए अंतरों में से एक कतारों का निर्माण है जो डिस्पैच स्टेप को इशू स्टेप से अलग करने की अनुमति देता है और ग्रेजुएशन स्टेज को एग्जीक्यूट स्टेज से डिकूप किया जाता है। प्रतिमान के लिए एक प्रारंभिक नाम decoupled आर्किटेक्चर था। पहले के इन-ऑर्डर प्रोसेसर में, ये चरण काफी हद तक [[लॉकस्टेप (कंप्यूटिंग)]] | लॉक-स्टेप, पाइपलाइन्ड फैशन में संचालित होते थे।


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


बफर का उद्देश्य [[मेमोरी एक्सेस पैटर्न]] को विभाजित करना और कंप्यूटर प्रोग्राम में कार्यों को निष्पादित करना और दोनों के बीच ठीक अनाज [[समानांतर कंप्यूटिंग]] का शोषण करके उच्च प्रदर्शन प्राप्त करना है।<ref>{{cite journal |author-last=Smith |author-first1=J. E. |title=Decoupled access/execute computer architectures |journal= ACM Transactions on Computer Systems|date=1984 |volume=2 |issue=4 |pages=289–308 |citeseerx=10.1.1.127.4475 |doi=10.1145/357401.357403|s2cid=13903321 }}</ref> ऐसा करने में, यह प्रभावी ढंग से प्रोसेसर के नजरिए से सभी मेमोरी विलंबता को छुपाता है।
प्रोग्राम के निर्देश मूल रूप से निर्दिष्ट क्रम में नहीं चलाए जा सकते हैं, जब तक कि अंतिम परिणाम सही न हो। यह [[डेटा बफ़र]] का उपयोग करके निर्देश चक्र को [[पाइपलाइन (कंप्यूटिंग)]] प्रोसेसर में निष्पादन चरण से अलग करता है।


एक बड़ा बफर, सिद्धांत रूप में, थ्रूपुट बढ़ा सकता है। हालाँकि, यदि प्रोसेसर में शाखा की गलत भविष्यवाणी है, तो पूरे बफर को फ्लश करने की आवश्यकता हो सकती है, बहुत सारे [[घड़ी चक्र]] बर्बाद कर सकते हैं और प्रभावशीलता कम कर सकते हैं। इसके अलावा, बड़े बफ़र अधिक गर्मी पैदा करते हैं और अधिक डाई (एकीकृत सर्किट) स्थान का उपयोग करते हैं। इस कारण से प्रोसेसर डिजाइनर आज बहु-थ्रेडेड डिज़ाइन दृष्टिकोण का समर्थन करते हैं।
बफर का उद्देश्य [[मेमोरी एक्सेस पैटर्न]] को विभाजित करना और कंप्यूटर प्रोग्राम में कार्यों को निष्पादित करना और दोनों के बीच बारीक-बारीक समानता का दोहन करके उच्च-प्रदर्शन हासिल करना है।<ref>{{cite journal |author-last=Smith |author-first1=J. E. |title=Decoupled access/execute computer architectures |journal= ACM Transactions on Computer Systems|date=1984 |volume=2 |issue=4 |pages=289–308 |citeseerx=10.1.1.127.4475 |doi=10.1145/357401.357403|s2cid=13903321 }}</ref> ऐसा करने में, यह प्रभावी ढंग से प्रोसेसर के नजरिए से सभी मेमोरी विलंबता को छुपाता है।


अलग-अलग आर्किटेक्चर को आम तौर पर सामान्य प्रयोजन कंप्यूटिंग के लिए उपयोगी नहीं माना जाता है क्योंकि वे नियंत्रण गहन कोड को अच्छी तरह से संभाल नहीं पाते हैं।<ref>{{cite journal |author-last1=Kurian |author-first1=L. |author-last2=Hulina |author-first2=P. T. |author-last3=Coraor |author-first3=L. D. |title=डिकूपल्ड आर्किटेक्चर में मेमोरी लेटेंसी इफेक्ट|journal=[[IEEE Transactions on Computers]] |volume=43 |issue=10 |date=1994 |pages=1129–1139 |doi=10.1109/12.324539 |s2cid=6913858 |url=https://pdfs.semanticscholar.org/6aa3/18cce633e3c2d86d970d6d50104d818d9407.pdf |archive-url=https://web.archive.org/web/20180612141055/https://pdfs.semanticscholar.org/6aa3/18cce633e3c2d86d970d6d50104d818d9407.pdf |url-status=dead |archive-date=2018-06-12 }}</ref> नियंत्रण गहन कोड में नेस्टेड शाखाएं शामिल हैं जो [[ऑपरेटिंग सिस्टम]] [[कर्नेल (ऑपरेटिंग सिस्टम)]] में अक्सर होती हैं। डिकूप्ड आर्किटेक्चर [[ बहुत लंबा निर्देश शब्द ]] (VLIW) आर्किटेक्चर में शेड्यूलिंग में महत्वपूर्ण भूमिका निभाते हैं।<ref>{{cite journal |author-first1=M. N. |author-last1=Dorojevets |author-first2=V. |author-last2=Oklobdzija |title=मल्टीथ्रेडेड डिकूप्ड आर्किटेक्चर|journal=International Journal of High Speed Computing |volume=7 |issue=3 |pages=465–480 |date=1995 |doi=10.1142/S0129053395000257 |url=https://www.researchgate.net/publication/220171480}}</ref>
बड़ा बफर, सिद्धांत रूप में, थ्रूपुट बढ़ा सकता है। हालाँकि, यदि प्रोसेसर में शाखा की गलत अनुमान है, तो पूरे बफर को फ्लश करने की आवश्यकता होती है, बहुत सारे [[घड़ी चक्र|कालद संकेत]] बर्बाद कर सकते हैं और प्रभावशीलता कम कर सकते हैं। इसके अलावा, बड़े बफ़र अधिक गर्मी पैदा करते हैं और अधिक डाई (एकीकृत सर्किट) स्थान का उपयोग करते हैं। इस कारण से प्रोसेसर डिजाइनर आज बहु-थ्रेडेड डिज़ाइन दृष्टिकोण का समर्थन करते हैं।
झूठे ऑपरेंड निर्भरता से बचने के लिए, जो आवृत्ति को कम कर देगा जब निर्देशों को क्रम से जारी किया जा सकता है, एक तकनीक जिसे रजिस्टर रीनेमिंग कहा जाता है, का उपयोग किया जाता है। इस योजना में, आर्किटेक्चर द्वारा परिभाषित की तुलना में अधिक भौतिक रजिस्टर हैं। भौतिक रजिस्टरों को टैग किया जाता है ताकि एक ही वास्तुकला रजिस्टर के कई संस्करण एक ही समय में मौजूद हो सकें।


== निष्पादन और राइटबैक डिकूप्लिंग प्रोग्राम को पुनरारंभ करने की अनुमति देता है ==
अलग-अलग आर्किटेक्चर को आम तौर पर सामान्य प्रयोजन कंप्यूटिंग के लिए उपयोगी नहीं माना जाता है क्योंकि वे नियंत्रण गहन कोड को अच्छी तरह से संभाल नहीं पाते हैं।<ref>{{cite journal |author-last1=Kurian |author-first1=L. |author-last2=Hulina |author-first2=P. T. |author-last3=Coraor |author-first3=L. D. |title=डिकूपल्ड आर्किटेक्चर में मेमोरी लेटेंसी इफेक्ट|journal=[[IEEE Transactions on Computers]] |volume=43 |issue=10 |date=1994 |pages=1129–1139 |doi=10.1109/12.324539 |s2cid=6913858 |url=https://pdfs.semanticscholar.org/6aa3/18cce633e3c2d86d970d6d50104d818d9407.pdf |archive-url=https://web.archive.org/web/20180612141055/https://pdfs.semanticscholar.org/6aa3/18cce633e3c2d86d970d6d50104d818d9407.pdf |url-status=dead |archive-date=2018-06-12 }}</ref> नियंत्रण गहन कोड में नेस्टेड शाखाएं शामिल हैं जो [[ऑपरेटिंग सिस्टम]] [[कर्नेल (ऑपरेटिंग सिस्टम)]] में अक्सर होती हैं। डिकूप्ड आर्किटेक्चर[[ बहुत लंबा निर्देश शब्द | वेरी लॉन्ग इंस्ट्रक्शन वर्ड (वीएलआईडब्ल्यू)]] आर्किटेक्चर में समय-निर्धारण में महत्वपूर्ण भूमिका निभाते हैं।<ref>{{cite journal |author-first1=M. N. |author-last1=Dorojevets |author-first2=V. |author-last2=Oklobdzija |title=मल्टीथ्रेडेड डिकूप्ड आर्किटेक्चर|journal=International Journal of High Speed Computing |volume=7 |issue=3 |pages=465–480 |date=1995 |doi=10.1142/S0129053395000257 |url=https://www.researchgate.net/publication/220171480}}</ref>
परिणामों के लिए कतार शाखा की गलत भविष्यवाणी और अपवाद/जाल जैसे मुद्दों को हल करने के लिए आवश्यक है। परिणाम कतार प्रोग्राम को अपवाद के बाद पुनरारंभ करने की अनुमति देती है, जिसके लिए प्रोग्राम क्रम में निर्देशों को पूरा करने की आवश्यकता होती है। कतार पुराने शाखा निर्देशों पर गलत भविष्यवाणियों और पुराने निर्देशों पर लिए गए अपवादों के कारण परिणामों को खारिज करने की अनुमति देती है।


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


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


:आईबीएम [[PowerPC|पावरपीसी]] प्रोसेसर कतारों का उपयोग करते हैं जो विभिन्न कार्यात्मक इकाइयों के बीच वितरित की जाती हैं जबकि अन्य आउट-ऑफ-ऑर्डर प्रोसेसर एक केंद्रीकृत कतार का उपयोग करते हैं। आईबीएम अपनी वितरित कतारों के लिए आरक्षण स्टेशन शब्द का उपयोग करता है।
पिछली शाखाओं को निर्देश जारी करने की क्षमता जो अभी तक हल नहीं हुई है,  [[सट्टा निष्पादन|अपेक्षी निष्पादन]] के रूप में जानी जाती है।


* क्या कोई वास्तविक परिणाम कतार है या क्या परिणाम सीधे रजिस्टर फ़ाइल में लिखे गए हैं? उत्तरार्द्ध के लिए, कतारबद्ध कार्य को रजिस्टर मानचित्रों द्वारा नियंत्रित किया जाता है जो उड़ान में प्रत्येक निर्देश के लिए रजिस्टर का नाम बदलने की जानकारी रखते हैं।
== माइक्रो-आर्किटेक्चरल विकल्प ==
* क्या निर्देश केंद्रीकृत कतार या कई वितरित कतारों को भेजे गए हैं?


:प्रारंभिक इंटेल आउट-ऑफ-ऑर्डर प्रोसेसर एक परिणाम कतार का उपयोग करते हैं जिसे री-ऑर्डर बफर कहा जाता है, जबकि अधिकांश बाद के आउट-ऑफ-ऑर्डर प्रोसेसर रजिस्टर मैप्स का उपयोग करते हैं।
:आईबीएम [[PowerPC|पावरपीसी]] प्रोसेसर कतारों का उपयोग करते हैं जो विभिन्न कार्यात्मक इकाइयों के बीच वितरित की जाती हैं जबकि अन्य आउट-ऑफ-ऑर्डर प्रोसेसर केंद्रीकृत कतार का उपयोग करते हैं। आईबीएम अपनी वितरित कतारों के लिए आरक्षण स्टेशन शब्द का उपयोग करता है।


:अधिक सटीक रूप से: Intel [[P6 (माइक्रोआर्किटेक्चर)]] परिवार के माइक्रोप्रोसेसरों में एक री-ऑर्डर बफर (ROB) और एक रजिस्टर रीनेमिंग (RAT) दोनों होते हैं। आरओबी मुख्य रूप से ब्रांच मिसप्रीडिक्शन रिकवरी से प्रेरित था।
* क्या कोई वास्तविक परिणाम कतार है या क्या परिणाम सीधे रजिस्टर फ़ाइल में लिखे गए हैं? उत्तरार्द्ध के लिए, कतारबद्ध कार्य को रजिस्टर मैप द्वारा नियंत्रित किया जाता है जो उड़ान में प्रत्येक निर्देश के लिए रजिस्टर का नाम बदलने की जानकारी रखते हैं।


: Intel P6 (माइक्रोआर्किटेक्चर) परिवार सबसे प्रारंभिक OoOE माइक्रोप्रोसेसरों में से एक है, लेकिन [[नेटबर्स्ट]] आर्किटेक्चर द्वारा प्रतिस्थापित किया गया था। वर्षों बाद, नेटबर्स्ट अपनी लंबी पाइपलाइन के कारण एक मृत अंत साबित हुआ जिसने बहुत अधिक ऑपरेटिंग आवृत्तियों की संभावना को ग्रहण किया। थर्मल मुद्दों के कारण सामग्री डिजाइन के महत्वाकांक्षी घड़ी लक्ष्यों से मेल नहीं खा पाई और बाद में नेटबर्स्ट, अर्थात् तेजस और जेहॉक पर आधारित डिजाइन रद्द कर दिए गए। Intel, Intel Core (माइक्रोआर्किटेक्चर) और Nehalem (माइक्रोआर्किटेक्चर) माइक्रोआर्किटेक्चर के आधार के रूप में P6 डिज़ाइन पर वापस लौट आया। सफल [[सैंडी ब्रिज]], [[आइवी ब्रिज (माइक्रोआर्किटेक्चर)]], और [[हैसवेल (माइक्रोआर्किटेक्चर)]] माइक्रोआर्किटेक्चर P6 में उपयोग की जाने वाली रीऑर्डरिंग तकनीकों से प्रस्थान हैं और अल्फा 21264 और [[पेंटियम 4]] से री-ऑर्डरिंग तकनीकों को नियोजित करते हैं लेकिन कुछ छोटी पाइपलाइन के साथ।<ref>{{cite web |author-last=Kanter |author-first=David |date=2010-09-25 |title=इंटेल का सैंडी ब्रिज माइक्रोआर्किटेक्चर|url=http://www.realworldtech.com/sandy-bridge/10/}}</ref><ref name="urlThe Haswell Front End - Intels Haswell Architecture Analyzed: Building a New PC and a New Intel">{{cite web |url=https://www.anandtech.com/show/6355/intels-haswell-architecture/6 |title=The Haswell Front End - Intel's Haswell Architecture Analyzed: Building a New PC and a New Intel }}</ref>
:प्रारंभिक इंटेल आउट-ऑफ-ऑर्डर प्रोसेसर परिणाम कतार का उपयोग करते हैं जिसे री-ऑर्डर बफर कहा जाता है, जबकि अधिकांश बाद के आउट-ऑफ-ऑर्डर प्रोसेसर रजिस्टर मैप्स का उपयोग करते हैं।


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


: इंटेल P6 (माइक्रोआर्किटेक्चर) वर्ग सबसे प्रारंभिक ओओओई माइक्रोप्रोसेसरों में से एक है, लेकिन [[नेटबर्स्ट]] आर्किटेक्चर द्वारा प्रतिस्थापित किया गया था। वर्षों बाद, नेटबर्स्ट अपनी लंबी पाइपलाइन के कारण मृत अंत साबित हुआ जिसने बहुत अधिक ऑपरेटिंग आवृत्तियों की संभावना को ग्रहण किया था। थर्मल मुद्दों के कारण सामग्री डिजाइन के महत्वाकांक्षी घड़ी लक्ष्यों से मेल नहीं खा पाई और बाद में नेटबर्स्ट, अर्थात् तेजस और जेहॉक पर आधारित डिजाइन रद्द कर दिए गए। इंटेल, इंटेल कोर (माइक्रोआर्किटेक्चर) और नेहलेम (माइक्रोआर्किटेक्चर) माइक्रोआर्किटेक्चर के आधार के रूप में P6 डिज़ाइन पर वापस लौट आया था। बाद के [[सैंडी ब्रिज]], [[आइवी ब्रिज (माइक्रोआर्किटेक्चर)]], और [[हैसवेल (माइक्रोआर्किटेक्चर)]] माइक्रोआर्किटेक्चर P6 में उपयोग की जाने वाली रीऑर्डरिंग तकनीकों से प्रस्थान हैं और EV6 और [[पेंटियम 4]] से री-ऑर्डरिंग तकनीकों को लेकिन कुछ छोटी पाइपलाइन के साथ नियोजित करते हैं।<ref>{{cite web |author-last=Kanter |author-first=David |date=2010-09-25 |title=इंटेल का सैंडी ब्रिज माइक्रोआर्किटेक्चर|url=http://www.realworldtech.com/sandy-bridge/10/}}</ref><ref name="urlThe Haswell Front End - Intels Haswell Architecture Analyzed: Building a New PC and a New Intel">{{cite web |url=https://www.anandtech.com/show/6355/intels-haswell-architecture/6 |title=The Haswell Front End - Intel's Haswell Architecture Analyzed: Building a New PC and a New Intel }}</ref>
== यह भी देखें ==
== यह भी देखें ==
{{Wikibooks | Microprocessor Design | Out Of Order Execution }}
{{Wikibooks | Microprocessor Design | Out Of Order Execution }}
Line 93: Line 93:
* मेमोरी बाड़
* मेमोरी बाड़
* [[रीप्ले सिस्टम]]
* [[रीप्ले सिस्टम]]
* [[ठंडे बस्ते में डालने वाला बफर]]
* [[ठंडे बस्ते में डालने वाला बफर|शेल्विंग बफर]]


== संदर्भ ==
== संदर्भ ==

Revision as of 15:25, 1 June 2023

कंप्यूटर इंजीनियरिंग में, आउट-ऑफ-ऑर्डर निष्पादन (या अधिक औपचारिक रूप से गतिशील निष्पादन) एक प्रतिमान है जिसका उपयोग अधिकांश उच्च-प्रदर्शन केंद्रीय प्रसंस्करण इकाइयों में निर्देश चक्र का उपयोग करने के लिए किया जाता है जो अन्यथा बर्बाद हो जाता है। इस प्रतिमान में, प्रोसेसर एक प्रोग्राम में उनके मूल आदेश के बजाय इनपुट डेटा और निष्पादन इकाइयों की उपलब्धता[1] द्वारा नियंत्रित क्रम में निर्देश (कंप्यूटिंग) को निष्पादित करता है।[2][3] ऐसा करने से, प्रोसेसर पिछले निर्देशों के पूरा होने की प्रतीक्षा करते हुए निष्क्रिय होने से बच सकता है और इस बीच, अगले निर्देशों को संसाधित कर सकता है जो तुरंत और स्वतंत्र रूप से चलने में सक्षम हैं।[4]

इतिहास

आउट-ऑफ-ऑर्डर निष्पादन डेटाफ्लो आर्किटेक्चर संगणना का एक प्रतिबंधित रूप है, जो 1970 और 1980 के दशक की प्रारंभिक में कंप्यूटर आर्किटेक्चर में प्रमुख शोध क्षेत्र था।

सुपरकंप्यूटर में प्रारंभिक उपयोग

सीडीसी 6600 (1964), ऑर्डर-ऑफ़-ऑर्डर निष्पादन का उपयोग करने वाली पहली मशीन थी, जिसे जेम्स ई. थॉर्नटन द्वारा डिज़ाइन किया गया था, जो संघर्षों से बचने के लिए स्कोरबोर्डिंग का उपयोग करती है। यह एक निर्देश को निष्पादित करने की अनुमति देता है यदि इसके स्रोत ऑपरेंड (रीड) एड्रेस को किसी भी पूर्व निष्पादित निर्देश (वास्तविक निर्भरता) द्वारा नहीं लिखा जाना है और गंतव्य (लिखना) एड्रेस किसी भी पूर्व निष्पादित निर्देश (झूठी निर्भरता) द्वारा उपयोग किया जाने वाला एड्रेस नहीं है ), 6600 में झूठी निर्भरताओं परनिष्पादन इकाई को रोकने से बचने के साधनों का अभाव है (लेखन के बाद लिखना (डब्ल्यूए डब्ल्यू) और पढ़ने के बाद लिखना (डब्ल्यूएआर) संघर्ष, क्रमशः थॉर्नटन द्वारा "प्रथम क्रम संघर्ष" और "तीसरा क्रम संघर्ष" कहा जाता है, जिसे सच्ची निर्भरता कहा जाता है। (लिखने के बाद पढ़ें (रॉ)) "द्वितीय क्रम संघर्ष" के रूप में) क्योंकि प्रत्येक एड्रेस में केवल एक ही स्थान होता है जो इसके द्वारा संदर्भित किया जा सकता है। डब्ल्यूए डब्ल्यू 6600 के लिए डब्ल्यूएआर से भी बदतर है, क्योंकि जब निष्पादन इकाई का सामना डब्ल्यूएआर से होता है, तो अन्य निष्पादन इकाइयां अभी भी निर्देश प्राप्त करती हैं और निष्पादित करती हैं, लेकिन डब्ल्यूएडब्ल्यू पर निष्पादन इकाइयों को निर्देश देना बंद हो जाता है, और वे आगे कोई निर्देश प्राप्त नहीं कर सकते हैं जब तक कि डब्ल्यूएडब्ल्यू-निर्देश के कारण डेस्टिनेशन रजिस्टर को पहले के निर्देश द्वारा लिखा नहीं जाता हैं।[5]

लगभग दो साल बाद, आईबीएम सिस्टम/360 मॉडल 91 (1966) ने टोमासुलो के एल्गोरिथम के साथ नाम बदलने वाले रजिस्टर की प्रारंभिक की,[6] जो झूठी निर्भरता (डब्ल्यूए डब्ल्यू और डब्ल्यूएआर) को भंग कर देता है, जिससे पूर्ण आउट-ऑफ-ऑर्डर निष्पादन संभव हो जाता है। रजिस्टर rn में लिखने के लिए निर्देश रजिस्टर rn का उपयोग करके पहले के निर्देश को निष्पादित करने से पहले निष्पादित किया जा सकता है, वास्तव में वैकल्पिक (बदला हुआ) रजिस्टर alt-rn में लिखकर, जो एक सामान्य ("आर्किटेक्चरल") रजिस्टर rn दिया जाता है। केवल जब rn को संबोधित करने वाले सभी पूर्व निर्देशों को निष्पादित किया गया है, लेकिन तब तक rnपहले के निर्देशों और alt-rn दिया जाता है। मॉडल 91 में रजिस्टर रीनेमिंग को कॉमन डेटा बस (सीडीबी) और मेमोरी सोर्स ऑपरेंड बफ़र्स नामक बायपास द्वारा कार्यान्वित किया जाता है, जिससे कई चक्रों के लिए अप्रयुक्त भौतिक आर्किटेक्चरल रजिस्टरों को छोड़ दिया जाता है क्योंकि किसी भी अनपेक्षित निर्देश द्वारा संबोधित रजिस्टरों की सबसे पुरानी स्थिति सीडीबी पर पाई जाती है। मॉडल 91 का 6600 से अधिक का अन्य लाभ यह है कि वह उसी निष्पादन इकाई पर ऑर्डर-ऑफ़-ऑर्डर के निर्देशों को निष्पादित करने की न कि केवल 6600 जैसी इकाइयों के बीच क्षमता रखता है। यह आरक्षण स्टेशन द्वारा पूरा किया जाता है, जहां से 6600 की प्रत्येक निष्पादन इकाई की फीफो कतार के विपरीत तैयार होने पर निर्देश निष्पादन इकाई को जाते हैं। मॉडल 91 लोड को फिर से ऑर्डर करने में भी सक्षम है और पूर्ववर्ती लोड और स्टोर से पहले निष्पादित करने के लिए स्टोर करता है,[7]6600 के विपरीत, जिसमें केवल लोड के पिछले लोड को स्थानांतरित करने की सीमित क्षमता, और पिछले स्टोर को स्टोर करता है, लेकिन पिछले स्टोर को लोड नहीं करता है और पिछले लोड को स्टोर करता है।[8] मॉडल 91 के केवल फ़्लोटिंग-पॉइंट रजिस्टरों का नाम बदला गया है, जो निश्चित-बिंदु कोड चलाते समय सीडीसी 6600 के समान डब्ल्यूए डब्ल्यू और डब्ल्यूएआर सीमाओं के अधीन है। 91 और 6600 दोनों भी सटीक अपवादों से प्रभावित हैं, जिन्हें आउट-ऑफ-ऑर्डर निष्पादन से पहले हल करने की आवश्यकता होती है, जिसे आम तौर पर लागू किया जा सकता है और सुपर कंप्यूटर के बाहर व्यावहारिक बनाया जा सकता है।

सटीक अपवाद

सटीक अपवादों के लिए, प्रोग्राम के निष्पादन की उचित क्रम में स्थिति अपवाद पर उपलब्ध होनी चाहिए। 1985 तक जेम्स ई. स्मिथ और एंड्रयू आर. प्लेस्ज़कुन द्वारा वर्णित विभिन्न दृष्टिकोण विकसित किए गए थे।[9] सीडीसी साइबर 205 एक अग्रदूत था, क्योंकि वर्चुअल मेमोरी प्रोसेसर की पूरी स्थिति को बाधित करती है (आंशिक रूप से निष्पादित निर्देशों की जानकारी सहित) अदृश्य एक्सचेंज पैकेज में सहेजी जाती है, ताकि यह निष्पादन की उसी स्थिति में फिर से प्रारंभ हो सके।[10] हालाँकि, सभी अपवादों को सटीक बनाने के लिए, निर्देशों के प्रभावों को रद्द करने का तरीका होना चाहिए। सीडीसी साइबर 990 (1984) एक इतिहास बफ़र का उपयोग करके सटीक व्यवधानों को लागू करता है, जो रजिस्टरों के पुराने (अधिलेखित) मूल्यों को रखता है जो अपवाद के निर्देशों को वापस करने की आवश्यकता होने पर बहाल हो जाते हैं।[9] स्मिथ ने अनुकरण किया कि Cray-1S में रीऑर्डर बफ़र (या इतिहास बफ़र या समतुल्य) जोड़ने से पहले 14 लिवरमोर लूप्स (अनवेक्टराइज़्ड) को निष्पादित करने का प्रदर्शन केवल 3% कम हो जाता है।[9]इस विषय में महत्वपूर्ण अकादमिक शोध का नेतृत्व येल पैट ने अपने एचपीएसएम सिम्युलेटर के साथ किया था।[11]

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

डिकूप्लिंग

स्मिथ ने यह भी शोध किया कि विभिन्न निष्पादन इकाइयों को एक दूसरे से और मेमोरी, फ्रंट-एंड और ब्रांचिंग से अधिक स्वतंत्र रूप से कैसे संचालित किया जाए।[12] उन्होंने एस्ट्रोनॉटिक्स कॉर्पोरेशन ऑफ अमेरिका ZS-1 (1988) में उन विचारों को लागू किया, जिसमें फ्लोटिंग-पॉइंट पाइपलाइन से पूर्णांक/लोड/स्टोर पाइपलाइन का डिकूप्लिंग शामिल है, जिससे इंटर-पाइपलाइन री-ऑर्डरिंग की मिलती है। ZS-1 पिछले स्टोर्स के आगे लोड करने में भी सक्षम था। अपने 1984 के पेपर में उन्होंने कहा कि सटीक अपवादों को केवल पूर्णांक/मेमोरी पाइपलाइन पर लागू करना कई उपयोगकेस के लिए पर्याप्त होना चाहिए, क्योंकि यह वर्चुअल मेमोरी की अनुमति भी देता है। फ्रंट-एंड के स्टालिंग को रोकने के लिए, प्रत्येक पाइपलाइन में निर्देश डिकोडर से इसे अलग करने के लिए निर्देश बफर था। निष्पादन से मेमोरी एक्सेस को और कम करने के लिए, दो पाइपलाइनों में से प्रत्येक को दो एड्रेसेबल फीफो (कंप्यूटिंग और इलेक्ट्रॉनिक्स) से जोड़ा गया था, जो प्रभावी रूप से सीमित रजिस्टर रीनेमिंग का प्रदर्शन करते थे।[7] इसी तरह के अलग-अलग आर्किटेक्चर का इस्तेमाल कुछ समय पहले कलेर 7 में किया गया था।[13] ZS-1 का आईएसए, आईबीएम की बाद की पावर की तरह, शाखाओं के प्रारंभिक निष्पादन में सहायता करता है।

अनुसंधान सफल होता है

पावर1 (1990) के साथ आईबीएम आउट-ऑफ़-ऑर्डर निष्पादन पर लौट आया है। यह सटीक अपवादों के साथ रजिस्टर रीनेमिंग (हालांकि फिर से केवल फ्लोटिंग-पॉइंट रजिस्टर) को संयोजित करने वाला पहला प्रोसेसर था। यह डेटाफुल रीऑर्डर बफ़र के बजाय भौतिक रजिस्टर फ़ाइल (अर्थात अप्रतिबंधित और प्रतिबद्ध मान दोनों के साथ गतिशील रूप से रीमैप की गई फ़ाइल) का उपयोग करता है, लेकिन निर्देशों को रद्द करने की क्षमता केवल शाखा इकाई में आवश्यक है, जो इतिहास बफर (प्रोग्राम काउंटर स्टैक नामित) को लागू करता है आईबीएम द्वारा) गिनती, लिंक और स्थिति रजिस्टरों में परिवर्तन पूर्ववत करने के लिए करता है। यहां तक ​​कि फ़्लोटिंग-पॉइंट निर्देशों की पुनर्क्रमित करने की क्षमता अभी भी बहुत सीमित है; फ़्लोटिंग-पॉइंट अंकगणितीय निर्देशों (परिणाम इन-ऑर्डर उपलब्ध हो गए) को पुन: व्यवस्थित करने में पावर1 की अक्षमता के कारण, उनके गंतव्य रजिस्टरों का नाम नहीं बदला गया है। पावर1 में समान निष्पादन इकाई के आउट-ऑफ-ऑर्डर उपयोग के लिए आवश्यक आरक्षण स्टेशन भी नहीं हैं।[14][15] अगले वर्ष आईबीएम के ईएस/9000 मॉडल 900 में सामान्य-उद्देश्य वाले रजिस्टरों के लिए भी नाम बदलने का पंजीकरण किया गया था। इसमें दोहरे पूर्णांक इकाई के लिए छह प्रविष्टियों के साथ आरक्षण स्टेशन भी हैं (प्रत्येक चक्र, छह निर्देशों से लेकर दो तक का चयन किया जा सकता है और फिर निष्पादित किया जा सकता है) और एफपीयू के लिए छह प्रविष्टियाँ का चयन किया जाता है। अन्य इकाइयों में सरल फीफो कतारें होती हैं। री-ऑर्डरिंग दूरी 32 निर्देशों तक है।[16] मेनफ्रेम की यूनिसिस की ए-श्रृंखला का ए19 भी 1991 में जारी किया गया था और दावा किया गया था कि यह क्रम से बाहर है, और एक विश्लेषक ने ए19 की तकनीक को प्रतियोगिता से तीन से पांच साल पहले कहा था।[17][18]

व्यापक रूप से अपनाना

पहला सिंगल-चिप प्रोसेसर (1989 में इंटेल i960CA) ने सीडीसी 6600 की तरह साधारण स्कोरबोर्डिंग शेड्यूलिंग का इस्तेमाल किया था, जो एक सदी पहले का चौथाई था, लेकिन 1992-1996 में तकनीक की तेजी से उन्नति, ट्रांजिस्टर की संख्या में वृद्धि के कारण, प्रसार व्यक्तिगत कम्प्यूटर्स को नीचे देखा गया था। मोटोरोला 88110 (1992) ने निर्देशों को वापस करने के लिए इतिहास बफ़र का उपयोग किया था।[19] भार पूर्ववर्ती स्टोर के आगे निष्पादित किया जा सकता है। जबकि स्टोर और शाखाएं निष्पादन प्रारंभ करने की प्रतीक्षा कर रही थीं, अन्य प्रकार के बाद के निर्देश राइटबैक सहित सभी पाइपलाइन चरणों के माध्यम से प्रवाहित हो सकते हैं। इतिहास बफ़र की 12-प्रवेश क्षमता ने पुनःक्रमित दूरी पर सीमा लगा दी।[20][21][22] पावरपीसी_601 (1993) आरआईएससी सिंगल चिप का विकास था, जो स्वयं पावर1 का सरलीकरण था। 601 अनुमत शाखा और फ़्लोटिंग-पॉइंट निर्देश पहले से ही प्राप्त-निर्देश-कतार में पूर्णांक निर्देशों से आगे निकलने के लिए, जिनमें से सबसे कम चार प्रविष्टियाँ प्रेषण के लिए स्कैन की गई थीं। कैश मिस होने की स्थिति में, लोड और स्टोर को फिर से व्यवस्थित किया जा सकता है। केवल लिंक और काउंट रजिस्टर का नाम बदला जा सकता है।[28] 1994 के पतन में नेक्सजेन और आईबीएम ने सिंगल-चिप सीपीयू के लिए सामान्य-उद्देश्य रजिस्टरों का नाम बदलना शुरू कर दिया था। नेक्सजेन का Nx586 पहला x86 प्रोसेसर था जो आउट-ऑफ़-ऑर्डर निष्पादन में सक्षम था, जिसे माइक्रो-ऑप्स के साथ पूरा किया गया था। री-ऑर्डरिंग दूरी 14 माइक्रो-ओपी तक है।[29] पावरपीसी_603 ने सामान्य-उद्देश्य और एफपी दोनों रजिस्टरों का नाम बदल दिया था।। चार गैर-शाखा निष्पादन इकाइयों में से प्रत्येक के पास अन्य इकाइयों के निर्देश प्रवाह को अवरुद्ध किए बिना इसके सामने निर्देश प्रतीक्षा हो सकती है। पांच-एंट्री री-ऑर्डर बफर अनपेक्षित निर्देश को उन्नति करने के लिए चार से अधिक निर्देशों की अनुमति नहीं देता है। स्टोर बफ़र के कारण, लोड पिछले स्टोर के आगे कैश तक पहुँच सकता है।[30][31]

पावरपीसी_604 (1995) यूनिट-लेवल री-ऑर्डरिंग के साथ पहला सिंगल-चिप प्रोसेसर था, क्योंकि इसकी छह इकाइयों में से तीन में दो-एंट्री रिजर्वेशन स्टेशन था, जो नई एंट्री को पुराने से पहले निष्पादित करने की अनुमति देता था। री-ऑर्डर बफर क्षमता 16 निर्देश है। एक चार-प्रविष्टि लोड कतार और छह-प्रविष्टि स्टोर कतार कैश मिस होने पर लोड और स्टोर के पुन: क्रम को ट्रैक करती है।[32] HAL SPARC64 (1995) ने ईएस/9000 मॉडल 900 की री-ऑर्डरिंग क्षमता को पार कर लिया है, जिसमें पूर्णांक, फ्लोटिंग-पॉइंट और एड्रेस जनरेशन यूनिट के लिए तीन 8-एंट्री रिजर्वेशन स्टेशन और 12-एंट्री रिजर्वेशन स्टेशन है। जो पिछले प्रोसेसर की तुलना में कैश/मेमोरी एक्सेस की अधिक पुनर्व्यवस्था की अनुमति देता है। एक बार में 64 निर्देश तक पुनः क्रमित स्थिति में हो सकते हैं[33][34] पेंटियम प्रो (1995) ने एकीकृत आरक्षण स्टेशन की प्रारंभिक की, जो 20 माइक्रो-ओपी क्षमता पर बहुत ही नम्य री-ऑर्डरिंग की अनुमति देता है, जो 40-एंट्री री-ऑर्डर बफर द्वारा समर्थित है। लोड और स्टोर दोनों के आगे लोड को फिर से ऑर्डर किया जा सकता है।[35]

निष्पादन की व्यावहारिक रूप से प्राप्य प्रति-चक्र दर और अधिक बढ़ गई क्योंकि 1996 मेंसिलिकॉन ग्राफिक्स/एमआईपीएस टेक्नोलॉजीज (आर10000) और हेवलेट पैकर्ड PA-RISC (PA-8000) द्वारा पूर्ण आउट-ऑफ-ऑर्डर निष्पादन को अपनाया गया था। उसी वर्ष साइरिक्स 6x86 और AMD K5 ने मुख्यधारा के व्यक्तिगत कंप्यूटरों में उन्नत री-ऑर्डरिंग तकनीकें लाईं। चूंकि डीईसी अल्फा ने 1998 (अल्फा 21264) में आउट-ऑफ-ऑर्डर निष्पादन प्राप्त किया था, शीर्ष-प्रदर्शन वाले आउट-ऑफ-ऑर्डर प्रोसेसर कोर हेवलेट-पैकार्ड/इंटेल इटेनियम 2 और आईबीएम पावर 6 के अलावा इन-ऑर्डर कोर द्वारा बेजोड़ हैं, हालांकि उत्तरार्द्ध में आउट-ऑफ-ऑर्डर फ्लोटिंग-पॉइंट यूनिट थी।[36] अन्य हाई-एंड इन-ऑर्डर प्रोसेसर बहुत पीछे रह गए, अर्थात् सन माइक्रोसिस्टम्स का अल्ट्रास्पार्क III/अल्ट्रास्पार्क IV, और आईबीएम का मेनफ़्रेम कंप्यूटर, जो दूसरी बार आउट-ऑफ-ऑर्डर निष्पादन क्षमता खो चुके थे, z10 युग में क्रम में शेष थे। बाद में बड़े इन-ऑर्डर प्रोसेसर मल्टीथ्रेडेड प्रदर्शन पर केंद्रित थे, लेकिन अंततः स्पार्क T सीरीज़ और Xeon Phi क्रमशः 2011 और 2016 में आउट-ऑफ-ऑर्डर निष्पादन में बदल गए थे।

फोन और अन्य निम्न-अंत अनुप्रयोगों के लिए लगभग सभी प्रोसेसर c तक क्रम में बने रहे। 2010. सबसे पहले, क्वालकॉम का स्कॉर्पियन (32 की री-ऑर्डरिंग दूरी) को स्नैपड्रैगन में भेज दिया गया,[37] और थोड़ी देर बाद आर्म (कंपनी) का A9, A8 से आगे निकल गया था। लो-एंड x86 व्यक्तिगत कंप्यूटरों के लिए इंटेल एटम्सको पहले एएमडी के बॉबकैट (माइक्रोआर्किटेक्चर) द्वारा चुनौती दी गई थी, और 2013 में आउट-ऑफ-ऑर्डर सिल्वरमोंट द्वारा सफल किया गया था।[38] क्योंकि आउट-ऑफ-ऑर्डर निष्पादन की जटिलता सबसे कम न्यूनतम बिजली की खपत, लागत और आकार को प्राप्त करने से रोकती है, इन-ऑर्डर निष्पादन अभी भी माइक्रोकंट्रोलर और एम्बेडेड सिस्टम में प्रचलित है, साथ ही फोन-क्लास कोर जैसे आर्म के A 55 और A510 big.little कॉन्फ़िगरेशन में भी प्रचलित है।

मूल अवधारणा

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

इन-ऑर्डर प्रोसेसर

पहले के प्रोसेसर में, निर्देशों का प्रसंस्करण निर्देश चक्र में किया जाता है जिसमें सामान्य रूप से निम्नलिखित चरण होते हैं:

  1. निर्देश (कंप्यूटर विज्ञान) लाने-निष्पादित चक्र
  2. यदि इनपुट ओपेरंड उपलब्ध हैं (उदाहरण के लिए प्रोसेसर रजिस्टरों में), निर्देश उचित कार्यात्मक इकाई को भेजा जाता है। यदि वर्तमान कालद संकेत के दौरान एक या अधिक ऑपरेंड अनुपलब्ध हैं (आमतौर पर क्योंकि वे मेमोरी से लाए जा रहे हैं), प्रोसेसर उपलब्ध होने तक स्टाल करता है।
  3. निर्देश उपयुक्त कार्यात्मक इकाई द्वारा निष्पादित किया जाता है।
  4. कार्यात्मक इकाई परिणाम को रजिस्टर फ़ाइल में वापस लिखती है।

अक्सर, इन-ऑर्डर प्रोसेसर में थोड़ी "बिट वेक्टर" रिकॉर्डिंग होती है जो रजिस्टरों को पाइपलाइन द्वारा लिखा जाएगा।[39] यदि किसी इनपुट ऑपरेंड के पास इस वेक्टर में संबंधित बिट सेट है, तो निर्देश रुक जाता है। अनिवार्य रूप से, वेक्टर रजिस्टर खतरों से सुरक्षा की बहुत ही सरल भूमिका निभाता है। इस प्रकार आउट-ऑफ-ऑर्डर निष्पादन 2D मैट्रिसेस का उपयोग करता है जबकि इन-ऑर्डर निष्पादन खतरे से बचाव के लिए 1D वेक्टर का उपयोग करता है।

आउट-ऑफ-ऑर्डर प्रोसेसर

यह नया प्रतिमान इन चरणों में निर्देशों के प्रसंस्करण को तोड़ता है:

  1. निर्देश प्राप्त करें।
  2. निर्देश कतार को निर्देश प्रेषण (जिसे निर्देश बफर या आरक्षण स्टेशन भी कहा जाता है)।
  3. निर्देश कतार में तब तक प्रतीक्षा करता है जब तक उसका इनपुट ऑपरेंड उपलब्ध नहीं हो जाता है। निर्देश पुराने निर्देशों से पहले कतार छोड़ सकता है।
  4. निर्देश उपयुक्त कार्यात्मक इकाई को जारी किया जाता है और उस इकाई द्वारा निष्पादित किया जाता है।
  5. परिणाम कतारबद्ध हैं।
  6. सभी पुराने निर्देशों के बाद ही उनके परिणाम वापस रजिस्टर फ़ाइल में लिखे जाते हैं, तब यह परिणाम वापस रजिस्टर फ़ाइल में लिखा जाता है। इसे ग्रेजुएशन या रिटायर स्टेज कहा जाता है।

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

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

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

डिकूप्लिंग और डिकूप्लिंग आउट-ऑफ-ऑर्डर इश्यू की अनुमति देता है

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

प्रोग्राम के निर्देश मूल रूप से निर्दिष्ट क्रम में नहीं चलाए जा सकते हैं, जब तक कि अंतिम परिणाम सही न हो। यह डेटा बफ़र का उपयोग करके निर्देश चक्र को पाइपलाइन (कंप्यूटिंग) प्रोसेसर में निष्पादन चरण से अलग करता है।

बफर का उद्देश्य मेमोरी एक्सेस पैटर्न को विभाजित करना और कंप्यूटर प्रोग्राम में कार्यों को निष्पादित करना और दोनों के बीच बारीक-बारीक समानता का दोहन करके उच्च-प्रदर्शन हासिल करना है।[40] ऐसा करने में, यह प्रभावी ढंग से प्रोसेसर के नजरिए से सभी मेमोरी विलंबता को छुपाता है।

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

अलग-अलग आर्किटेक्चर को आम तौर पर सामान्य प्रयोजन कंप्यूटिंग के लिए उपयोगी नहीं माना जाता है क्योंकि वे नियंत्रण गहन कोड को अच्छी तरह से संभाल नहीं पाते हैं।[41] नियंत्रण गहन कोड में नेस्टेड शाखाएं शामिल हैं जो ऑपरेटिंग सिस्टम कर्नेल (ऑपरेटिंग सिस्टम) में अक्सर होती हैं। डिकूप्ड आर्किटेक्चर वेरी लॉन्ग इंस्ट्रक्शन वर्ड (वीएलआईडब्ल्यू) आर्किटेक्चर में समय-निर्धारण में महत्वपूर्ण भूमिका निभाते हैं।[42]

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

निष्पादन और राइटबैक डिकूप्लिंग प्रोग्राम को पुनरारंभ करने की अनुमति

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

पिछली शाखाओं को निर्देश जारी करने की क्षमता जो अभी तक हल नहीं हुई है, अपेक्षी निष्पादन के रूप में जानी जाती है।

माइक्रो-आर्किटेक्चरल विकल्प

  • क्या निर्देश केंद्रीकृत कतार या कई वितरित कतारों को भेजे गए हैं?
आईबीएम पावरपीसी प्रोसेसर कतारों का उपयोग करते हैं जो विभिन्न कार्यात्मक इकाइयों के बीच वितरित की जाती हैं जबकि अन्य आउट-ऑफ-ऑर्डर प्रोसेसर केंद्रीकृत कतार का उपयोग करते हैं। आईबीएम अपनी वितरित कतारों के लिए आरक्षण स्टेशन शब्द का उपयोग करता है।
  • क्या कोई वास्तविक परिणाम कतार है या क्या परिणाम सीधे रजिस्टर फ़ाइल में लिखे गए हैं? उत्तरार्द्ध के लिए, कतारबद्ध कार्य को रजिस्टर मैप द्वारा नियंत्रित किया जाता है जो उड़ान में प्रत्येक निर्देश के लिए रजिस्टर का नाम बदलने की जानकारी रखते हैं।
प्रारंभिक इंटेल आउट-ऑफ-ऑर्डर प्रोसेसर परिणाम कतार का उपयोग करते हैं जिसे री-ऑर्डर बफर कहा जाता है, जबकि अधिकांश बाद के आउट-ऑफ-ऑर्डर प्रोसेसर रजिस्टर मैप्स का उपयोग करते हैं।
अधिक सटीक रूप से: इंटेल P6 (माइक्रोआर्किटेक्चर) वर्ग के माइक्रोप्रोसेसरों में एक री-ऑर्डर बफर (आरओबी) और रजिस्टर रीनेमिंग (आरएटी) दोनों होते हैं। आरओबी मुख्य रूप से ब्रांच मिसप्रीडिक्शन रिकवरी से प्रेरित था।
इंटेल P6 (माइक्रोआर्किटेक्चर) वर्ग सबसे प्रारंभिक ओओओई माइक्रोप्रोसेसरों में से एक है, लेकिन नेटबर्स्ट आर्किटेक्चर द्वारा प्रतिस्थापित किया गया था। वर्षों बाद, नेटबर्स्ट अपनी लंबी पाइपलाइन के कारण मृत अंत साबित हुआ जिसने बहुत अधिक ऑपरेटिंग आवृत्तियों की संभावना को ग्रहण किया था। थर्मल मुद्दों के कारण सामग्री डिजाइन के महत्वाकांक्षी घड़ी लक्ष्यों से मेल नहीं खा पाई और बाद में नेटबर्स्ट, अर्थात् तेजस और जेहॉक पर आधारित डिजाइन रद्द कर दिए गए। इंटेल, इंटेल कोर (माइक्रोआर्किटेक्चर) और नेहलेम (माइक्रोआर्किटेक्चर) माइक्रोआर्किटेक्चर के आधार के रूप में P6 डिज़ाइन पर वापस लौट आया था। बाद के सैंडी ब्रिज, आइवी ब्रिज (माइक्रोआर्किटेक्चर), और हैसवेल (माइक्रोआर्किटेक्चर) माइक्रोआर्किटेक्चर P6 में उपयोग की जाने वाली रीऑर्डरिंग तकनीकों से प्रस्थान हैं और EV6 और पेंटियम 4 से री-ऑर्डरिंग तकनीकों को लेकिन कुछ छोटी पाइपलाइन के साथ नियोजित करते हैं।[43][44]

यह भी देखें

संदर्भ

  1. Kukunas, Jim (2015). Power and Performance: Software Analysis and Optimization. Morgan Kaufman. p. 37. ISBN 9780128008140.
  2. "आउट-ऑफ-ऑर्डर निष्पादन" (PDF). cs.washington.edu. 2006. Retrieved 2014-01-17. यदि यह निर्देश उन पर निर्भर नहीं करता है तो पिछले निर्देशों के निष्पादन की प्रतीक्षा न करें
  3. "शताब्दी समारोह". Regis High School. 2011-03-14. Retrieved 2022-06-25. The algorithm "allows sequential instructions that would normally be stalled due to certain dependencies to execute non-sequentially" (also known as out of order execution).
  4. "आउट-ऑफ-ऑर्डर निष्पादन". pcguide.com. Retrieved 2014-01-17. यह लचीलापन प्रदर्शन में सुधार करता है क्योंकि यह कम 'प्रतीक्षा' समय के साथ निष्पादन की अनुमति देता है।
  5. Thornton (1970, p. 125-127)
  6. Tomasulo, Robert Marco (1967), "An Efficient Algorithm for Exploiting Multiple Arithmetic Units" (PDF), IBM Journal of Research and Development, 11 (1): 25–33, CiteSeerX 10.1.1.639.7540, doi:10.1147/rd.111.0025, S2CID 8445049, archived from the original (PDF) on 2018-06-12
  7. 7.0 7.1 Smith, James E. (July 1989). "डायनेमिक इंस्ट्रक्शन शेड्यूलिंग और एस्ट्रोनॉटिक्स ZS-1" (PDF). Computer. 22 (7): 21–35. doi:10.1109/2.30730. S2CID 329170.
  8. Thornton (1970, p. 48-50)
  9. 9.0 9.1 9.2 Smith, James E.; Pleszkun, Andrew R. (June 1985). "पाइपलाइन किए गए प्रोसेसरों में सटीक व्यवधानों का कार्यान्वयन". 12th ISCA.
    (Expanded version published in May 1988 as Implementing Precise Interrupts in Pipelined Processors.)
  10. Moudgill, Mayan; Vassiliadis, Stamatis (January 1996). "सटीक रुकावटों पर". p. 18. CiteSeerX 10.1.1.33.3304. Archived from the original (pdf) on 13 October 2022.
  11. Hwu, W.; Patt, Yale N. (1986). HPSm, एक उच्च प्रदर्शन प्रतिबंधित डेटा प्रवाह आर्किटेक्चर जिसमें न्यूनतम कार्यक्षमता है. pp. 297–306. ISBN 978-0-8186-0719-6. Retrieved 2013-12-06. {{cite book}}: |work= ignored (help)
  12. Smith, James E. (November 1984). "Decoupled Access/Execute Computer Architectures" (PDF). ACM Transactions on Computer Systems. 2 (4): 289–308. doi:10.1145/357401.357403. S2CID 13903321.
  13. Smotherman, Mark. "Culler-7". Clemson University.
  14. Grohoski, Gregory F. (January 1990). "Machine organization of the IBM RISC System/6000 processor" (PDF). IBM Journal of Research and Development. 34 (1): 37–58. doi:10.1147/rd.341.0037. Archived from the original (PDF) on January 9, 2005.
  15. Smith, James E.; Sohi, Gurindar S. (December 1995). "सुपरस्केलर प्रोसेसर का माइक्रोआर्किटेक्चर" (PDF). Proceedings of the IEEE. 83 (12): 1617. doi:10.1109/5.476078.
  16. Liptay, John S. (July 1992). "Design of the IBM Enterprise System/9000 high-end processor" (PDF). IBM Journal of Research and Development. 36 (4): 713–731. doi:10.1147/rd.364.0713. Archived from the original (PDF) on January 17, 2005.
  17. Ziegler, Bart (March 7, 1991). "यूनिसिस ने 'टॉप गन' मेनफ्रेम कंप्यूटर का अनावरण किया". AP News.
  18. "यूनिसिस का नया मेनफ्रेम धूल में बड़ा नीला छोड़ देता है". Bloomberg. March 25, 1991. The new A19 relies on "super-scalar" techniques from scientific computers to execute many instructions concurrently. The A19 can overlap as many as 140 operations, more than 10 times as many as conventional mainframes can.
  19. Ullah, Nasr; Holle, Matt (March 1993). "The MC88110 Implementation of Precise Exceptions in a Superscalar Architecture" (pdf). ACM Sigarch Computer Architecture News. Motorola Inc. 21: 15–25. doi:10.1145/152479.152482. S2CID 7036627.
  20. Smotherman, Mark (29 April 1994). "Motorola MC88110 Overview".
  21. Diefendorff, Keith; Allen, Michael (April 1992). "Organization of the Motorola 88110 superscalar RISC microprocessor" (PDF). IEEE Micro. 12 (2): 40–63. doi:10.1109/40.127582. S2CID 25668727. Archived from the original (PDF) on 2022-10-21.
  22. Smotherman, Mark; Chawla, Shuchi; Cox, Stan; Malloy, Brian (December 1993). "Instruction scheduling for the Motorola 88110". MICRO 26: Proceedings of the 26th Annual International Symposium on Microarchitecture: 257–262. doi:10.1109/MICRO.1993.282761. ISBN 0-8186-5280-2. S2CID 52806289.
  23. "PowerPC™ 601 RISC Microprocessor Technical Summary" (PDF). Retrieved 23 October 2022.
  24. Moore, Charles R.; Becker, Michael C. et al. "The PowerPC 601 microprocessor". IEEE Micro. 13 (5). September 1993.
  25. Diefendorff, Keith (August 1993). "PowerPC 601 Microprocessor" (PDF). Hot Chips.
  26. Smith, James E.; Weiss, Shlomo (June 1994). "PowerPC 601 and Alpha 21064: A Tale of Two RISCs" (PDF). IEEE Computer. 27 (6): 46–58. doi:10.1109/2.294853. S2CID 1114841.
  27. Sima, Dezsö (September–October 2000). "The design space of register renaming techniques". IEEE Micro. 20 (5): 70–83. CiteSeerX 10.1.1.387.6460. doi:10.1109/40.877952.
  28. [23][24][25][26][27]
  29. Gwennap, Linley (28 March 1994). "NexGen Enters Market with 66-MHz Nx586" (PDF). Microprocessor Report. Archived from the original (PDF) on 2 December 2021.
  30. Burgess, Brad; Ullah, Nasr; Van Overen, Peter; Ogden, Deene (June 1994). "The PowerPC 603 microprocessor" (pdf). Communications of the ACM. 37 (6): 34–42. doi:10.1145/175208.175212. S2CID 34385975.
  31. "PowerPC™ 603 RISC Microprocessor Technical Summary" (PDF). Retrieved 27 October 2022.
  32. Song, S. Peter; Denman, Marvin; Chang, Joe (October 1994). "The PowerPC 604 RISC microprocessor" (PDF). IEEE Micro. 14 (5): 8. doi:10.1109/MM.1994.363071. S2CID 11603864.
  33. "SPARC64+: HAL's Second Generation 64-bit SPARC Processor" (PDF). Hot Chips.
  34. "Le Sparc64". Research Institute of Computer Science and Random Systems (in French).{{cite web}}: CS1 maint: unrecognized language (link)
  35. Gwennap, Linley (16 February 1995). "Intel's P6 Uses Decoupled Superscalar Design" (PDF). Microprocessor Report.
  36. Le, Hung Q. et al. "IBM POWER6 microarchitecture" (PDF). IBM Journal of Research and Development. 51 (6). November 2007.
  37. Mallia, Lou. "क्वालकॉम हाई परफॉरमेंस प्रोसेसर कोर और मोबाइल एप्लिकेशन के लिए प्लेटफॉर्म" (PDF). Archived from the original (PDF) on 29 October 2013.
  38. Anand Lal Shimpi (2013-05-06). "Intel's Silvermont Architecture Revealed: Getting Serious About Mobile". AnandTech.
  39. "Inside the Minor CPU model: Scoreboard". 2017-06-09. Retrieved 2023-01-09.
  40. Smith, J. E. (1984). "Decoupled access/execute computer architectures". ACM Transactions on Computer Systems. 2 (4): 289–308. CiteSeerX 10.1.1.127.4475. doi:10.1145/357401.357403. S2CID 13903321.
  41. Kurian, L.; Hulina, P. T.; Coraor, L. D. (1994). "डिकूपल्ड आर्किटेक्चर में मेमोरी लेटेंसी इफेक्ट" (PDF). IEEE Transactions on Computers. 43 (10): 1129–1139. doi:10.1109/12.324539. S2CID 6913858. Archived from the original (PDF) on 2018-06-12.
  42. Dorojevets, M. N.; Oklobdzija, V. (1995). "मल्टीथ्रेडेड डिकूप्ड आर्किटेक्चर". International Journal of High Speed Computing. 7 (3): 465–480. doi:10.1142/S0129053395000257.
  43. Kanter, David (2010-09-25). "इंटेल का सैंडी ब्रिज माइक्रोआर्किटेक्चर".
  44. "The Haswell Front End - Intel's Haswell Architecture Analyzed: Building a New PC and a New Intel".


अग्रिम पठन