आउट-ऑफ-ऑर्डर निष्पादन
आउट-ऑफ-ऑर्डर निष्पादन एक प्रोसेसर को निर्देशों को उनके ऑपरेंड तैयार होते ही निष्पादित करने की अनुमति देता है, बजाय इसके कि वे सख्ती से प्रोग्राम क्रम में हों। यह रजिस्टर नाम बदलने और बफरिंग का उपयोग करके समानांतरता को उजागर करता है, जबकि अभी भी क्रमबद्ध परिणाम उत्पन्न करता है।
Definition
आउट-ऑफ-ऑर्डर निष्पादन एक माइक्रोआर्किटेक्चरल तकनीक है जिसमें एक प्रोसेसर निर्देशों के निष्पादन को गतिशील रूप से पुनर्व्यवस्थित करता है ताकि स्वतंत्र निर्देशों को उनके ऑपरेंड उपलब्ध होते ही चलाया जा सके, जबकि अनुक्रमिक, इन-ऑर्डर पूर्णता की उपस्थिति को बनाए रखने के लिए बफरिंग और नाम बदलने का उपयोग किया जाता है।
Scope
यह विषय गतिशील शेड्यूलिंग को शामिल करता है: आरक्षण स्टेशन, गलत निर्भरताओं को दूर करने के लिए रजिस्टर का नाम बदलना, रीऑर्डर बफर जो इन-ऑर्डर कमिट को लागू करता है, और सट्टा निष्पादन रिकवरी। यह सीधे टोमासुलो के एल्गोरिथम पर आधारित है। इसमें ब्रांच दिशा की भविष्यवाणी (ब्रांच प्रेडिक्शन) और समानांतरता की व्यापक धारणा (इंस्ट्रक्शन-लेवल पैरेललिज्म) शामिल नहीं है, बल्कि यह पुनर्व्यवस्था तंत्र पर केंद्रित है।
Core questions
- एक प्रोसेसर प्रोग्राम क्रम से बाहर निर्देशों को कैसे निष्पादित कर सकता है फिर भी सही, क्रमबद्ध परिणाम उत्पन्न कर सकता है?
- रजिस्टर का नाम बदलना राइट-आफ्टर-रीड और राइट-आफ्टर-राइट निर्भरताओं को कैसे समाप्त करता है?
- आरक्षण स्टेशन और रीऑर्डर बफर क्या योगदान करते हैं?
- आउट-ऑफ-ऑर्डर कोर में अपवादों और गलत भविष्यवाणियों को सटीक रूप से कैसे पुनर्प्राप्त किया जाता है?
Key concepts
- गतिशील शेड्यूलिंग
- आरक्षण स्टेशन
- रजिस्टर का नाम बदलना
- सामान्य डेटा बस
- रीऑर्डर बफर
- इन-ऑर्डर कमिट
- सटीक अपवाद
- सट्टा निष्पादन रिकवरी
Key theories
- टोमासुलो का एल्गोरिथम
- टोमासुलो की योजना आरक्षण स्टेशनों और एक सामान्य डेटा बस का उपयोग करके रजिस्टरों का नाम बदलती है और निर्देशों को कार्यात्मक इकाइयों में भेजती है जैसे ही उनके ऑपरेंड उपलब्ध होते हैं, जिससे आउट-ऑफ-ऑर्डर निष्पादन की अनुमति मिलती है जो केवल वास्तविक डेटा निर्भरताओं का सम्मान करता है।
- इन-ऑर्डर कमिट के माध्यम से सटीक अपवाद
- एक रीऑर्डर बफर आउट-ऑफ-ऑर्डर निर्देशों के परिणामों को रखता है और उन्हें प्रोग्राम क्रम में कमिट करता है, ताकि अपवादों और गलत भविष्यवाणियों को सटीक रूप से संभाला जा सके जैसे कि निष्पादन सख्ती से अनुक्रमिक रहा हो।
Mechanisms
डिकोड किए गए निर्देशों का भौतिक रजिस्टरों में नाम बदला जाता है और उन्हें आरक्षण स्टेशनों या एक इश्यू क्यू में रखा जाता है, जहाँ वे परिणाम बस पर प्रसारित होने वाले ऑपरेंड की प्रतीक्षा करते हैं। तैयार होने पर, वे किसी भी क्रम में उपलब्ध कार्यात्मक इकाइयों पर निष्पादित होते हैं। एक रीऑर्डर बफर मूल प्रोग्राम क्रम को ट्रैक करता है और परिणामों को क्रमिक रूप से कमिट करता है, गलत भविष्यवाणी या अपवाद पर सट्टा परिणामों को त्याग देता है ताकि आर्किटेक्चरल स्थिति हमेशा सटीक रहे।
Clinical relevance
आउट-ऑफ-ऑर्डर निष्पादन उच्च-प्रदर्शन वाले सीपीयू का मुख्य इंजन है, जो स्वतंत्र कार्य ढूंढकर मेमोरी और निष्पादन विलंबता को छिपाता है। इसके सुरक्षा निहितार्थ भी हैं: क्योंकि सट्टा, आउट-ऑफ-ऑर्डर कार्य अस्थायी रूप से डेटा तक पहुँच सकता है इससे पहले कि उसे स्क्वैश किया जाए, इसने स्पेक्ट्रे और मेल्टडाउन जैसे माइक्रोआर्किटेक्चरल साइड-चैनल हमलों को सक्षम किया।
History
टोमासुलो ने 1967 में आईबीएम सिस्टम/360 मॉडल 91 में गतिशील शेड्यूलिंग की शुरुआत की। 1980 के दशक में विकसित सटीक अपवादों के लिए रीऑर्डर बफर के साथ इसका संयोजन, सामान्य-उद्देश्य वाले प्रोसेसर के लिए आउट-ऑफ-ऑर्डर निष्पादन को व्यावहारिक बना दिया, और यह 1990 के दशक के मध्य से उच्च-प्रदर्शन डिजाइनों में मानक बन गया।
Debates
- प्रदर्शन बनाम जटिलता, शक्ति और सुरक्षा
- आउट-ऑफ-ऑर्डर निष्पादन मजबूत सिंगल-थ्रेड प्रदर्शन प्रदान करता है, लेकिन हार्डवेयर जटिलता और शक्ति में महत्वपूर्ण लागत पर, और इसकी अटकलें शोषण योग्य साबित हुई हैं; यह इस बात पर बहस को बढ़ावा देता है कि सरल, अधिक कुशल, या अधिक सुरक्षित डिजाइनों के पक्ष में कितनी आक्रामक रूप से अटकलें लगाई जाएं।
Key figures
- Robert Tomasulo
- Yale Patt
- James E. Smith
- John L. Hennessy
Related topics
Seminal works
- tomasulo1967
- hennessy2019
Frequently asked questions
- यदि निर्देश क्रम से बाहर निष्पादित होते हैं, तो भी प्रोग्राम सही कैसे होता है?
- प्रोसेसर केवल निष्पादन को पुनर्व्यवस्थित करता है, परिणामों को नहीं। रजिस्टर का नाम बदलना यह सुनिश्चित करता है कि यह वास्तविक डेटा निर्भरताओं का सम्मान करता है, और एक रीऑर्डर बफर मूल प्रोग्राम क्रम में परिणामों को कमिट करता है, ताकि दृश्यमान आर्किटेक्चरल स्थिति बिल्कुल वही हो जो अनुक्रमिक निष्पादन उत्पन्न करेगा।
- रजिस्टर का नाम बदलना क्या है?
- रजिस्टर का नाम बदलना निर्देशों में नामित आर्किटेक्चरल रजिस्टरों को भौतिक रजिस्टरों के एक बड़े पूल पर मैप करता है। यह गलत (नाम) निर्भरताओं को हटाता है जो रजिस्टर नामों के पुन: उपयोग से उत्पन्न होती हैं, जिससे अधिक स्वतंत्र निर्देशों को रजिस्टर स्टोरेज पर संघर्ष किए बिना समानांतर में निष्पादित करने की अनुमति मिलती है।