ScholarGate
सहायक

पाइपलाइनिंग और खतरे

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

PaperMind से विषय खोजेंजल्द हीFind papers & topics
Tools & resources
स्लाइड डाउनलोड करें
Learn & explore
वीडियोजल्द ही

Definition

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

Scope

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

Core questions

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

Key concepts

  • पाइपलाइन चरण (प्राप्त करना, डीकोड करना, निष्पादित करना, मेमोरी, राइटबैक)
  • थ्रूपुट बनाम विलंबता
  • संरचनात्मक खतरे
  • डेटा खतरे
  • नियंत्रण खतरे
  • फॉरवर्डिंग और बाईपासिंग
  • पाइपलाइन स्टॉल और बुलबुले
  • शाखा दंड

Key theories

पाइपलाइन थ्रूपुट और खतरे
एक k-चरण पाइपलाइन आदर्श रूप से भरने के बाद प्रति चक्र एक निर्देश पूरा करती है, लेकिन संरचनात्मक, डेटा और नियंत्रण खतरे स्टॉल पेश करते हैं जो थ्रूपुट को आदर्श से कम करते हैं; पाइपलाइन डिजाइन इन स्टॉलों को कम करने पर केंद्रित है।

Mechanisms

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

Clinical relevance

पाइपलाइनिंग वस्तुतः हर प्रोसेसर में मूलभूत प्रदर्शन तकनीक है, और खतरों को समझने से यह पता चलता है कि निर्देश क्रम और शाखा व्यवहार गति को क्यों प्रभावित करते हैं। कंपाइलर निर्देश शेड्यूलिंग और निर्भरताओं और शाखा पैटर्न के बारे में प्रोग्रामर की जागरूकता पाइपलाइन वाले हार्डवेयर पर प्रदर्शन में काफी सुधार कर सकती है।

History

पाइपलाइनिंग 1960 के दशक की शुरुआत में IBM Stretch और CDC 6600 जैसी शुरुआती उच्च-प्रदर्शन मशीनों में दिखाई दी। 1980 के दशक के RISC प्रोसेसर के साथ सरल पांच-चरण पाइपलाइन एक विहित शिक्षण और डिजाइन मॉडल बन गई, और खतरों और उनके उपचारों का व्यवस्थित वर्गीकरण हेनेसी-पैटर्सन ग्रंथों में संहिताबद्ध किया गया था।

Key figures

  • John L. Hennessy
  • David A. Patterson
  • Seymour Cray

Related topics

Seminal works

  • hennessy2019
  • patterson2020

Frequently asked questions

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

Methods for this concept

Related concepts