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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

 * डेटा निर्भरता
 * स्मृति-स्तर समानता (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