निर्देश स्तर समांतरता

निर्देश स्तर समांतरता (ILP) एक अभिकलित्र क्रमादेश में सेट किए गए निर्देश के अनुक्रम का समानांतर अभिकलन या एक साथ निष्पादन है। अधिक विशेष रूप से निर्देश स्तर समांतरता इस समानांतर निष्पादन के प्रति चरण चलने वाले निर्देशों की औसत संख्या को संदर्भित करता है।

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

अनुदेश-स्तर समानता के दो दृष्टिकोण हैं: कंप्यूटर हार्डवेयर और सॉफ़्टवेयर ।

हार्डवेयर स्तर गतिशील समानता पर काम करता है, जबकि सॉफ्टवेयर स्तर स्थिर समानता पर काम करता है। गतिशील समानांतरता का मतलब है कि संसाधित्र कार्यावधि पर तय करता है कि कौन से निर्देश समानांतर में निष्पादित किए जाएं, जबकि स्थैतिक समानांतरता का मतलब है कि संकलक  तय करता है कि कौन से निर्देश समानांतर में निष्पादित किए जाएं।  पेंटियम संसाधित्र समांतर निष्पादन के गतिशील अनुक्रम पर काम करता है, लेकिन इटेनियम संसाधित्र स्थिर स्तर समानांतरता पर काम करता है।

निम्नलिखित कार्यक्रम पर विचार करें: संक्रिया 3 संक्रिया 1 और 2 के परिणामों पर निर्भर करता है, इसलिए इसकी गणना तब तक नहीं की जा सकती जब तक कि दोनों पूरे नहीं हो जाते। हालाँकि, संक्रिया 1 और 2 किसी अन्य संक्रिया पर निर्भर नहीं हैं, इसलिए उनकी गणना एक साथ की जा सकती है। यदि हम मानते हैं कि प्रत्येक संक्रिया को एक इकाई समय में पूरा किया जा सकता है, तो इन तीन निर्देशों को 3/2 का निर्देश स्तर समांतरता देते हुए कुल दो इकाइयों में पूरा किया जा सकता है।

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

कार्यक्रमों में कितना निर्देश स्तर समांतरता मौजूद है, यह बहुत ही विशिष्ट अनुप्रयोग है। कुछ क्षेत्रों में, जैसे कि आलेखी और वैज्ञानिक अभिकलन में राशि बहुत बड़ी हो सकती है। हालाँकि, कूटलेखन जैसे कार्यभार बहुत कम समानता प्रदर्शित कर सकते हैं।

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

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

डेटाफ्लो आर्किटेक्चर आर्किटेक्चर का एक अन्य वर्ग है जहां निर्देश स्तर समांतरता स्पष्ट रूप से निर्दिष्ट है, हाल के उदाहरण के लिए TRIPS आर्किटेक्चर देखें।

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

यह भी देखें

 * डेटा निर्भरता
 * स्मृति-स्तर समानता (MLP)

अग्रिम पठन

 * (276 pages)

बाहरी संबंध

 * Approaches to addressing the Memory Wall
 * Wired magazine article that refers to the above paper
 * https://www.scribd.com/doc/33700101/Instruction-Level-Parallelism#scribd
 * http://www.hpl.hp.com/techreports/92/HPL-92-132.pdf