पाइप लाइनिंग: आर्किटेक्चर, फायदे और नुकसान

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





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

पाइपलाइनिंग क्या है?

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




निर्देश निष्पादन अनुक्रम

निर्देश निष्पादन अनुक्रम

  • IF: इंस्ट्रक्शन रजिस्टर में इंस्ट्रक्शन को फेट करता है।
  • ID: निर्देश डिकोड, opcode के लिए निर्देश को डिकोड करता है।
  • एजी: एड्रेस जेनरेटर, एड्रेस जेनरेट करता है।
  • DF: Data Fetch, ऑपरेंड को डेटा रजिस्टर में लाते हैं।
  • EX: निष्पादन, निर्दिष्ट ऑपरेशन निष्पादित करता है।
  • WB: वापस लिखें, परिणाम को वापस लिखता है रजिस्टर।

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



निर्देश पाइपलाइन

आइए हम पाइपलाइनिंग में जिस तरह से निर्देश संसाधित होते हैं, उसे देखते हैं। इसे नीचे दिए गए आरेख द्वारा आसानी से समझा जा सकता है।

निर्देश पाइपलाइन

निर्देश पाइपलाइन

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

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


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

पाइप लाइनिंग आर्किटेक्चर

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

पाइपलाइज़्ड प्रोसेसर यूनिट

पाइपलाइज़्ड प्रोसेसर यूनिट

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

आरआईएससी प्रोसेसर्स में पाइपलाइनिंग

सबसे लोकप्रिय RISC वास्तुकला एआरएम प्रोसेसर 3-स्टेज और 5-स्टेज पाइपलाइनिंग का अनुसरण करता है। 3-चरण में पाइपलाइनिंग के चरण हैं: Fetch, Decode, और Execute। इस पाइपलाइनिंग में 3 चक्र विलंबता है, क्योंकि एक व्यक्तिगत निर्देश पूरा करने के लिए 3 घड़ी चक्र लेता है।

एआरएम 3 चरण पाइपलाइनिंग

एआरएम 3 चरण पाइपलाइनिंग

पाइपलाइनिंग के उचित कार्यान्वयन के लिए हार्डवेयर आर्किटेक्चर को भी उन्नत किया जाना चाहिए। 3 चरण पाइपलाइनिंग के लिए हार्डवेयर में एक रजिस्टर बैंक, ALU, बैरल शिफ्टर, एड्रेस जनरेटर, एक इंक्रीमेंटर, इंस्ट्रक्शन डिकोडर और डेटा रजिस्टर शामिल हैं।

एआरएम 3 चरण पाइपलाइनिंग डाटापथ

एआरएम 3 चरण पाइपलाइनिंग डाटापथ

5 चरणों में पाइपलाइनिंग के चरण हैं: फ़ॉच, डिकोड, एक्स्यूट्यूट, बफर / डेटा और राइट बैक।

पाइपलाइन का खतरा

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

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

लिखने के बाद पढ़ें पाइपलाइन को खतरा

लिखने के बाद पढ़ें पाइपलाइन को खतरा

शाखा निर्देशों का निष्पादन भी एक पाइपलाइनिंग खतरे का कारण बनता है। निष्पादित करते समय शाखा के निर्देश पाइप लाइनिंग में अगले निर्देशों के लाने के चरणों को प्रभावित करता है।

पाइप लाइन शाखा व्यवहार

पाइप लाइन शाखा व्यवहार

पाइपलाइनिंग के लाभ

  • निर्देश थ्रूपुट बढ़ता है।
  • पाइपलाइन चरणों की संख्या में वृद्धि एक साथ निष्पादित निर्देशों की संख्या को बढ़ाती है।
  • जब पाइपलाइनिंग का उपयोग किया जाता है तो तेज़ ALU डिज़ाइन किया जा सकता है।
  • पिपेलिनेटेड सीपीयू रैम की तुलना में अधिक क्लॉक फ्रीक्वेंसी पर काम करता है।
  • Pipelining CPU के समग्र प्रदर्शन को बढ़ाता है।

पाइपलाइनिंग के नुकसान

  • पाइपलाइज्ड प्रोसेसर का डिजाइनिंग जटिल है।
  • पाइपलाइन किए गए प्रोसेसर में निर्देश विलंबता बढ़ जाती है।
  • एक पाइपलाइन किए गए प्रोसेसर के थ्रूपुट का अनुमान लगाना मुश्किल है।
  • पाइप लाइन जितनी लंबी होगी, शाखा के निर्देशों के लिए उतनी ही ख़तरनाक समस्या होगी।

पाइपलाइनिंग उन सभी निर्देशों को लाभ देता है जो निष्पादन के लिए चरणों के समान अनुक्रम का पालन करते हैं। ऐसे प्रोसेसर जिनके पास जटिल निर्देश हैं, जहां हर निर्देश दूसरे से अलग व्यवहार करता है, पाइपलाइन के लिए कठिन हैं। प्रोसेसर में पाइप लाइन के 3 या 5 चरणों के साथ उचित उपकरण हैं क्योंकि पाइप लाइन की गहराई बढ़ने से इससे संबंधित खतरे बढ़ जाते हैं। अपने पाइपलाइन चरण के साथ कुछ पाइपलाइन किए गए प्रोसेसर का नाम बताएं?