एक निर्देश पाइपलाइन क्या है?

click fraud protection

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

ऐतिहासिक क्रम में प्रोसेसर

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

बिना पाइपलाइन वाले सबस्केलर प्रोसेसर में, प्रत्येक निर्देश के प्रत्येक भाग को क्रम में निष्पादित किया जाता है।

हालांकि, अगले निर्देश पर आगे बढ़ने में सक्षम होने से पहले एक पूर्ण निर्देश चलाते समय एक समस्या छिपी हुई है। समस्या कैश मिस है। सीपीयू डेटा को स्टोर करता है जिसे वह सक्रिय रूप से रजिस्टर में संसाधित कर रहा है। इसे एक-चक्र विलंबता के साथ एक्सेस किया जा सकता है। समस्या यह है कि रजिस्टर छोटा है क्योंकि यह प्रोसेसर कोर में बनाया गया है। यदि डेटा पहले से लोड नहीं किया गया है तो CPU को बड़े लेकिन धीमे L1 कैश में जाना चाहिए। यदि यह नहीं है, तो इसे फिर से बड़े और धीमे L2 कैश में जाना होगा। अगला चरण L3 कैश है; अंतिम विकल्प सिस्टम रैम है। इनमें से प्रत्येक विकल्प को जांचने के लिए अधिक से अधिक CPU चक्र लगते हैं।

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

क्लासिक आरआईएससी पाइपलाइन

RISC, रिड्यूस्ड इंस्ट्रक्शन सेट कंप्यूटर के लिए खड़ा है. यह प्रोसेसर डिज़ाइन की एक शैली है जो प्रत्येक निर्देश को आसान बनाकर प्रदर्शन को अनुकूलित करती है। यह CISC या कॉम्प्लेक्स इंस्ट्रक्शन सेट कंप्यूटर की तुलना में है, जो समान कार्यों को करने के लिए कम निर्देशों की आवश्यकता के लिए अधिक जटिल निर्देश सेट तैयार करता है।

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

एक स्केलर पाइपलाइन प्रोसेसर में, निर्देश निष्पादन के प्रत्येक चरण को प्रति घड़ी चक्र में एक बार किया जा सकता है। यह प्रति चक्र एक पूर्ण निर्देश के अधिकतम थ्रूपुट की अनुमति देता है।

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

अभी भी अनुक्रमिक

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

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

निष्कर्ष

एक पाइपलाइन प्रत्येक चक्र में प्रोसेसर की सभी विशिष्ट क्षमताओं का उपयोग करने की अनुमति देती है। यह एक साथ विभिन्न निर्देशों के विभिन्न चरणों को चलाकर ऐसा करता है। यह CPU डिज़ाइन में अधिक जटिलता भी नहीं जोड़ता है। यह प्रति चक्र एक चरण में एक से अधिक निर्देशों को निष्पादित करने की अनुमति देने का मार्ग भी प्रशस्त करता है।