निर्देश स्तर समांतरता: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Ability of computer instructions to be executed simultaneously with correct results}} {{Use American English|date = March 2019}} File:Atanasoff-Berry Com...")
 
No edit summary
Line 1: Line 1:
{{Short description|Ability of computer instructions to be executed simultaneously with correct results}}
{{Short description|Ability of computer instructions to be executed simultaneously with correct results}}
{{Use American English|date = March 2019}}
{{Use American English|date = March 2019}}
[[File:Atanasoff-Berry Computer at Durhum Center.jpg|thumb|अटानासॉफ़-बेरी कंप्यूटर, समानांतर प्रसंस्करण वाला पहला कंप्यूटर<ref>{{Cite web|url=http://mason.gmu.edu/~montecin/computer-hist-web.htm|title=कंप्यूटिंग का इतिहास|website=mason.gmu.edu|access-date=2019-03-24}}</ref>]]इंस्ट्रक्शन-लेवल पैरेललिज्म (ILP) एक [[कंप्यूटर प्रोग्राम]] में सेट किए गए निर्देश के अनुक्रम का [[समानांतर कंप्यूटिंग]] या एक साथ निष्पादन है। अधिक विशेष रूप से ILP इस समानांतर निष्पादन के प्रति चरण चलने वाले निर्देशों की औसत संख्या को संदर्भित करता है।<ref>{{cite journal |last1=Goossens |first1=Bernard |last2=Langlois |first2=Philippe |last3=Parello |first3=David |last4=Petit |first4=Eric |title=PerPI: A Tool to Measure Instruction Level Parallelism |journal=Applied Parallel and Scientific Computing |series=Lecture Notes in Computer Science |date=2012 |volume=7133 |pages=270–281 |doi=10.1007/978-3-642-28151-8_27|isbn=978-3-642-28150-1 |s2cid=26665479 |url=https://hal-lirmm.ccsd.cnrs.fr/lirmm-01349703/document}}</ref>{{rp|5}}
[[File:Atanasoff-Berry Computer at Durhum Center.jpg|thumb|अटानासॉफ़-बेरी कंप्यूटर, समानांतर प्रसंस्करण वाला पहला कंप्यूटर<ref>{{Cite web|url=http://mason.gmu.edu/~montecin/computer-hist-web.htm|title=कंप्यूटिंग का इतिहास|website=mason.gmu.edu|access-date=2019-03-24}}</ref>]]निर्देश स्तर समांतरता (ILP) एक [[Index.php?title=अभिकलित्र क्रमादेश|अभिकलित्र क्रमादेश]] में सेट किए गए निर्देश के अनुक्रम का [[Index.php?title=समानांतर अभिकलन|समानांतर अभिकलन]] या एक साथ निष्पादन है। अधिक विशेष रूप से निर्देश स्तर समांतरता इस समानांतर निष्पादन के प्रति चरण चलने वाले निर्देशों की औसत संख्या को संदर्भित करता है।<ref>{{cite journal |last1=Goossens |first1=Bernard |last2=Langlois |first2=Philippe |last3=Parello |first3=David |last4=Petit |first4=Eric |title=PerPI: A Tool to Measure Instruction Level Parallelism |journal=Applied Parallel and Scientific Computing |series=Lecture Notes in Computer Science |date=2012 |volume=7133 |pages=270–281 |doi=10.1007/978-3-642-28151-8_27|isbn=978-3-642-28150-1 |s2cid=26665479 |url=https://hal-lirmm.ccsd.cnrs.fr/lirmm-01349703/document}}</ref>{{rp|5}}


== चर्चा ==
== चर्चा ==


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


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


हार्डवेयर स्तर गतिशील समानता पर काम करता है, जबकि सॉफ्टवेयर स्तर स्थिर समानता पर काम करता है। डायनेमिक पैरेललिज्म का मतलब है कि प्रोसेसर रन टाइम पर तय करता है कि कौन से निर्देश समानांतर में निष्पादित किए जाएं, जबकि स्टैटिक पैरेललिज्म का मतलब है कि [[ संकलक ]] तय करता है कि कौन से निर्देश समानांतर में निष्पादित किए जाएं।<ref>{{cite book |title=Computer Architecture: A Quantitative Approach|url=https://archive.org/details/computerarchitec00patt|url-access=registration|first1=John L.|last1=Hennessy|first2=David A.|last2=Patterson}}</ref>{{clarify|date=January 2015}} [[पेंटियम]] प्रोसेसर समांतर निष्पादन के गतिशील अनुक्रम पर काम करता है, लेकिन [[इटेनियम]] प्रोसेसर स्थिर स्तर समानांतरता पर काम करता है।
हार्डवेयर स्तर गतिशील समानता पर काम करता है, जबकि सॉफ्टवेयर स्तर स्थिर समानता पर काम करता है। गतिशील समानांतरता का मतलब है कि संसाधित्र कार्यावधि पर तय करता है कि कौन से निर्देश समानांतर में निष्पादित किए जाएं, जबकि स्थैतिक समानांतरता का मतलब है कि [[ संकलक ]] तय करता है कि कौन से निर्देश समानांतर में निष्पादित किए जाएं।<ref>{{cite book |title=Computer Architecture: A Quantitative Approach|url=https://archive.org/details/computerarchitec00patt|url-access=registration|first1=John L.|last1=Hennessy|first2=David A.|last2=Patterson}}</ref>{{clarify|date=January 2015}} [[पेंटियम]] संसाधित्र समांतर निष्पादन के गतिशील अनुक्रम पर काम करता है, लेकिन [[इटेनियम]] संसाधित्र स्थिर स्तर समानांतरता पर काम करता है।


निम्नलिखित कार्यक्रम पर विचार करें:
निम्नलिखित कार्यक्रम पर विचार करें:
Line 17: Line 17:
m = e * f
m = e * f
</syntaxhighlight>
</syntaxhighlight>
ऑपरेशन 3 ऑपरेशन 1 और 2 के परिणामों पर निर्भर करता है, इसलिए इसकी गणना तब तक नहीं की जा सकती जब तक कि दोनों पूरे नहीं हो जाते। हालाँकि, ऑपरेशन 1 और 2 किसी अन्य ऑपरेशन पर निर्भर नहीं हैं, इसलिए उनकी गणना एक साथ की जा सकती है। यदि हम मानते हैं कि प्रत्येक ऑपरेशन को एक इकाई समय में पूरा किया जा सकता है, तो इन तीन निर्देशों को 3/2 का ILP देते हुए कुल दो इकाइयों में पूरा किया जा सकता है।
संक्रिया 3 संक्रिया 1 और 2 के परिणामों पर निर्भर करता है, इसलिए इसकी गणना तब तक नहीं की जा सकती जब तक कि दोनों पूरे नहीं हो जाते। हालाँकि, संक्रिया 1 और 2 किसी अन्य संक्रिया पर निर्भर नहीं हैं, इसलिए उनकी गणना एक साथ की जा सकती है। यदि हम मानते हैं कि प्रत्येक संक्रिया को एक इकाई समय में पूरा किया जा सकता है, तो इन तीन निर्देशों को 3/2 का निर्देश स्तर समांतरता देते हुए कुल दो इकाइयों में पूरा किया जा सकता है।


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


कार्यक्रमों में कितना ILP मौजूद है, यह [[बहु]]त ही विशिष्ट अनुप्रयोग है। कुछ क्षेत्रों में, जैसे कि ग्राफिक्स और [[वैज्ञानिक कंप्यूटिंग]] में राशि बहुत बड़ी हो सकती है। हालाँकि, [[क्रिप्टोग्राफी]] जैसे कार्यभार बहुत कम समानता प्रदर्शित कर सकते हैं।
कार्यक्रमों में कितना निर्देश स्तर समांतरता मौजूद है, यह [[बहु]]त ही विशिष्ट अनुप्रयोग है। कुछ क्षेत्रों में, जैसे कि आलेखी और [[वैज्ञानिक कंप्यूटिंग|वैज्ञानिक अभिकलन]] में राशि बहुत बड़ी हो सकती है। हालाँकि, [[Index.php?title=कूटलेखन|कूटलेखन]] जैसे कार्यभार बहुत कम समानता प्रदर्शित कर सकते हैं।


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


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


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


हाल के वर्षों में, ILP तकनीकों का उपयोग प्रोसेसर ऑपरेटिंग फ़्रीक्वेंसी और मेमोरी एक्सेस समय के बीच बढ़ती असमानता के बावजूद प्रदर्शन में सुधार प्रदान करने के लिए किया गया है (शुरुआती ILP डिज़ाइन जैसे IBM सिस्टम / 360 मॉडल 91 ने ILP तकनीकों का उपयोग ILP तकनीकों का उपयोग किया है। अपेक्षाकृतछोटी रजिस्टर फ़ाइल)। वर्तमान में, मुख्य मेमोरी के लिए एक कैश मिस पेनल्टी में कई सैकड़ों CPU चक्र खर्च होते हैं। जबकि सिद्धांत रूप में इस तरह की स्मृति विलंबता को सहन करने के लिए ILP का उपयोग करना संभव है, संबद्ध संसाधन और बिजली अपव्यय लागत अनुपातहीन हैं। इसके अलावा, जटिलता और अक्सर अंतर्निहित हार्डवेयर संरचनाओं की विलंबता के परिणामस्वरूप ऑपरेटिंग आवृत्ति कम हो जाती है और किसी भी लाभ को कम कर देती है। इसलिए, उपरोक्त तकनीक सीपीयू को ऑफ-चिप डेटा के लिए रुकने से रोकने के लिए अपर्याप्त साबित होती है। इसके बजाय, उद्योग समानांतरता के उच्च स्तर का दोहन करने की ओर बढ़ रहा है जिसका उपयोग मल्टीप्रोसेसिंग और [[मल्टीथ्रेडिंग (कंप्यूटर आर्किटेक्चर)]] जैसी तकनीकों के माध्यम से किया जा सकता है।<ref>[https://web.archive.org/web/20140616035336/http://www.csl.cornell.edu/~sam/papers/cf04.pdf Reflections of the Memory Wall]</ref>
हाल के वर्षों में, निर्देश स्तर समांतरता तकनीकों का उपयोग संसाधित्र ऑपरेटिंग फ़्रीक्वेंसी और मेमोरी एक्सेस समय के बीच बढ़ती असमानता के बावजूद प्रदर्शन में सुधार प्रदान करने के लिए किया गया है (शुरुआती निर्देश स्तर समांतरता डिज़ाइन जैसे IBM सिस्टम / 360 मॉडल 91 ने निर्देश स्तर समांतरता तकनीकों का उपयोग निर्देश स्तर समांतरता तकनीकों का उपयोग किया है। अपेक्षाकृतछोटी रजिस्टर फ़ाइल)। वर्तमान में, मुख्य मेमोरी के लिए एक कैश मिस पेनल्टी में कई सैकड़ों CPU चक्र खर्च होते हैं। जबकि सिद्धांत रूप में इस तरह की स्मृति विलंबता को सहन करने के लिए निर्देश स्तर समांतरता का उपयोग करना संभव है, संबद्ध संसाधन और बिजली अपव्यय लागत अनुपातहीन हैं। इसके अलावा, जटिलता और अक्सर अंतर्निहित हार्डवेयर संरचनाओं की विलंबता के परिणामस्वरूप ऑपरेटिंग आवृत्ति कम हो जाती है और किसी भी लाभ को कम कर देती है। इसलिए, उपरोक्त तकनीक सीपीयू को ऑफ-चिप डेटा के लिए रुकने से रोकने के लिए अपर्याप्त साबित होती है। इसके बजाय, उद्योग समानांतरता के उच्च स्तर का दोहन करने की ओर बढ़ रहा है जिसका उपयोग मल्टीप्रोसेसिंग और [[मल्टीथ्रेडिंग (कंप्यूटर आर्किटेक्चर)]] जैसी तकनीकों के माध्यम से किया जा सकता है।<ref>[https://web.archive.org/web/20140616035336/http://www.csl.cornell.edu/~sam/papers/cf04.pdf Reflections of the Memory Wall]</ref>





Revision as of 11:56, 10 May 2023

अटानासॉफ़-बेरी कंप्यूटर, समानांतर प्रसंस्करण वाला पहला कंप्यूटर[1]

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

चर्चा

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

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

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

निम्नलिखित कार्यक्रम पर विचार करें:

e = a + b
f = c + d
m = e * f

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

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

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

आईएलपी का फायदा उठाने के लिए उपयोग की जाने वाली सूक्ष्म-वास्तुक तकनीकों में शामिल हैं:

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

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

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

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


यह भी देखें

संदर्भ

  1. "कंप्यूटिंग का इतिहास". mason.gmu.edu. Retrieved 2019-03-24.
  2. Goossens, Bernard; Langlois, Philippe; Parello, David; Petit, Eric (2012). "PerPI: A Tool to Measure Instruction Level Parallelism". Applied Parallel and Scientific Computing. Lecture Notes in Computer Science. 7133: 270–281. doi:10.1007/978-3-642-28151-8_27. ISBN 978-3-642-28150-1. S2CID 26665479.
  3. Hennessy, John L.; Patterson, David A. Computer Architecture: A Quantitative Approach.
  4. Reflections of the Memory Wall


अग्रिम पठन

  • Aiken, Alex; Banerjee, Utpal; Kejariwal, Arun; Nicolau, Alexandru (2016-11-30). Instruction Level Parallelism. Professional Computing (1 ed.). Springer. ISBN 978-1-4899-7795-3. ISBN 1-4899-7795-3. (276 pages)


बाहरी संबंध