पाइपलाइन व सदिश प्रक्रमण, तथा बहु-प्रक्रमक

GATE का उधार लिया पाइपलाइनन अध्याय अनुदेश-पाइपलाइनन, संकट व त्वरण को GATE की गहराई पर ढकता है। NET का पाठ्यक्रम उससे आगे दो वस्तुएँ नामित करता है: पाइपलाइनन से भिन्न समांतरता-शैली के रूप में सदिश/सरणी प्रक्रमक, तथा बहु-प्रक्रमक तंत्र — उनकी अंतर्संबंधन संरचनाएँ, वरीयता-निर्धारण, संचार/तुल्यकालन व कैश संगति — जिनमें से कोई भी GATE CS परीक्ष्य सामग्री नहीं। यह अध्याय दोनों को ढकता है।

समांतर प्रक्रमण व सदिश/सरणी प्रक्रमक

फ्लिन का वर्गीकरण मशीनों को अनुदेश व आँकड़ा प्रवाहों से क्रमबद्ध करता है: SISD (पारंपरिक एकल-प्रक्रमक), SIMD (अनेक आँकड़ा-अवयवों पर एक साथ लागू एकल अनुदेश — सदिश/सरणी प्रक्रमक का अपना वर्ग), MISD (विरल; एक ही आँकड़ा-प्रवाह पर अनेक अनुदेश, मुख्यतः दोष-सह्य पाइपलाइनों में देखा गया) व MIMD (स्वतंत्र आँकड़ों पर स्वतंत्र अनुदेश-प्रवाह — सामान्य बहु-प्रक्रमक)। सदिश प्रक्रमक एकल अनुदेशों से संपूर्ण सदिशों (संख्याओं की सरणी) पर संक्रिया करता है (उदा० ADD V1, V2, V3 दो सदिशों के संगत अवयवों को जोड़ता है), प्रति अवयव एक अनुदेश जारी करने के बजाय सदिश के अवयवों को एक अंकगणितीय पाइपलाइन से होकर पाइपलाइन करते हुए; सरणी प्रक्रमक इसके बजाय अनेक समांतर प्रक्रमण-अवयवों (वास्तविक रूप से समांतर, पाइपलाइनित नहीं, SIMD संरचना) का प्रयोग करता है जिनमें प्रत्येक एक साझा नियंत्रण इकाई के सामान्य अनुदेश के अधीन अपने आँकड़े पर संक्रिया करता है।

🎯 सदिश पाइपलाइनन सरणी समांतरता से भिन्न त्वरण-क्रियाविधि है
सदिश प्रक्रमक अभी भी अवयवों को एक-एक कर, ठीक ONE पाइपलाइन से प्रक्रमित करता है, पर उनके चरणों को अतिव्यापी करता है (अतः एक बार पाइपलाइन भर जाने पर हर चक्र एक परिणाम निकलता है, भले ही हर अवयव को आरंभ से अंत तक कई चक्र लगें)। सरणी प्रक्रमक वास्तव में उसी चक्र में MANY अवयवों पर, प्रति प्रक्रमण-अवयव एक, गणना करता है। दोनों फ्लिन के अर्थ में SIMD हैं, पर उनके हार्डवेयर व त्वरण-सीमाएँ भिन्न हैं — सदिश-पाइपलाइन का त्वरण पाइपलाइन-गहराई व सदिश-लंबाई से संतृप्त होता है, सरणी-प्रक्रमक का प्रक्रमण-अवयवों की संख्या से।

बहु-प्रक्रमक अभिलक्षण व अंतर्संबंधन संरचनाएँ

अंतर्संबंधन संरचनाएँ, स्केलेबिलिटी बनाम लागत से क्रमित
संरचनायह प्रक्रमकों व स्मृति को कैसे जोड़ती हैव्यापार
समय-साझा साझा बससभी प्रक्रमक व स्मृति-मॉड्यूल एक बस साझा करते हैं, वरीयता-निर्धारित ताकि एक समय एक ही स्थानांतरण हो।सबसे सस्ती, पर बस एकल अवरोध व एकल विफलता-बिंदु है।
क्रॉसबार स्विचप्रत्येक प्रक्रमक अपने स्वयं के स्विच-बिंदु से हर स्मृति-मॉड्यूल से जुड़ता है।पूर्ण एक साथ संयोजकता, पर स्विच-गिनती (प्रक्रमक × स्मृति) के रूप में बढ़ती है — स्केल करना महँगा।
बहु-चरण अंतर्संबंधन नेटवर्कछोटे स्विचों (उदा० 2x2) के कई चरण किसी भी प्रक्रमक से किसी भी स्मृति तक अनुरोध मार्गित करते हैं।मध्य मार्ग: पूर्ण क्रॉसबार से कम स्विच, अनुरोधों के बीच संभावित अवरोधन/स्पर्धा की कीमत पर।
  • अंतर-प्रक्रमक वरीयता-निर्धारण: जब दो या अधिक प्रक्रमक उसी साझा संसाधन (बस, स्मृति-मॉड्यूल) हेतु स्पर्धा करें, वरीयता-निर्धारण योजना (स्थिर प्राथमिकता, चक्रानुक्रम, या वितरित प्रोटोकॉल) एक समय ठीक एक को पहुँच देती है, दो एक साथ स्थानांतरणों को एक-दूसरे को भ्रष्ट करने से रोकते हुए।
  • अंतर-प्रक्रमक संचार व तुल्यकालन: साझा-स्मृति तंत्र आपसी-अपवर्जन हेतु ताले/सेमाफ़ोर द्वारा रक्षित, साझा स्मृति-स्थानों से होकर सीधे संचार करते हैं; संदेश-प्रेषण तंत्रों में कोई साझा स्मृति नहीं होती और वे शुद्ध रूप से स्पष्ट संदेश भेजकर/प्राप्त करके संचार करते हैं — साझा आँकड़े पर किसी दौड़-स्थिति के बिना एक मौलिक रूप से भिन्न प्रोग्रामन प्रतिरूप, क्योंकि साझा आँकड़ा है ही नहीं।

कैश संगति

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

⚠️ संगति एक स्मृति-स्थान की बात है; संगतता स्थानों के आर-पार क्रम की बात है
कैश संगति किसी भी एकल स्थान के मान पर सहमति की गारंटी देती है। स्मृति संगतता प्रतिरूप (क्रमिक संगतता, शिथिल प्रतिरूप) इससे आगे भिन्न प्रक्रमकों को दिखने वाली भिन्न स्थानों पर संक्रियाओं के अनुमत क्रम को निर्दिष्ट करते हैं — एक सर्वथा पृथक व कठिन गारंटी जो अकेली संगति नहीं देती। NET-स्तर के प्रश्न सामान्यतः संगतता-प्रतिरूपों के बजाय संगति-परिभाषा व स्नूपिंग-बनाम-निर्देशिका भेद परखते हैं।

बहु-क्रोड प्रक्रमक

  • बहु-क्रोड प्रक्रमक एकल चिप पर दो या अधिक स्वतंत्र प्रक्रमण-क्रोड रखता है, सामान्यतः चिप-अंतर्गत अंतिम-स्तर कैश व स्मृति-अंतरापृष्ठ साझा करते हुए जबकि प्रत्येक क्रोड का अपना निजी L1 (व प्रायः L2) कैश होता है — यह चिप-मापक्रम पर साझा-स्मृति MIMD तंत्र है, अतः कैश संगति चिप-अंतर्गत ठीक वैसे ही आवश्यक है जैसे पृथक चिपों के बीच।
  • एकल क्रोड की घड़ी को और तेज़ धकेलने की तुलना में बहु-क्रोड की प्रेरणा: शक्ति-क्षय घड़ी-आवृत्ति के साथ अति-रैखिक रूप से बढ़ता है, अतः एक बिंदु से आगे निम्न प्रति-क्रोड आवृत्ति पर क्रोड जोड़ना एक बहुत तेज़ क्रोड की तुलना में प्रति वाट अधिक कुल थ्रूपुट देता है — वही सुपरिचित 'शक्ति-दीवार' जिसने अकेले आवृत्ति-स्केलिंग के युग को समाप्त किया।

मुख्य बिंदु

  • फ्लिन का वर्गीकरण: SISD, SIMD (सदिश/सरणी प्रक्रमक), MISD (विरल), MIMD (सामान्य बहु-प्रक्रमक) — अनुदेश व आँकड़ा प्रवाह-गिनतियों से क्रमित।
  • सदिश प्रक्रमक अवयवों को एक अंकगणितीय इकाई से पाइपलाइन करता है; सरणी प्रक्रमक अनेक प्रक्रमण-अवयवों में वास्तव में समांतर रूप से अनेक अवयवों पर गणना करता है — दोनों SIMD, भिन्न हार्डवेयर व भिन्न त्वरण-सीमाएँ।
  • साझा बस सस्ती है पर अवरोध है; क्रॉसबार द्विघाती स्विच-लागत पर पूर्ण संयोजकता देता है; बहु-चरण नेटवर्क व्यावहारिक मध्य मार्ग है।
  • कैश संगति कैशों के आर-पार प्रत्येक स्मृति-स्थान के संगत दृश्य की गारंटी देती है; स्नूपिंग प्रोटोकॉल को साझा, सर्व-दृश्य बस चाहिए, निर्देशिका-आधारित प्रोटोकॉल उससे आगे स्केल करते हैं।
  • बहु-क्रोड प्रक्रमक चिप-अंतर्गत साझा-स्मृति MIMD तंत्र हैं, उस शक्ति-दीवार से प्रेरित जिसने क्रोड जोड़ने को एक क्रोड की घड़ी और बढ़ाने से अधिक दक्ष बना दिया।

अभ्यास प्रश्न (8)

उत्तर खोलने से पहले प्रत्येक प्रश्न हल करें। हर व्याख्या सही विकल्प के साथ लुभावना गलत विकल्प भी बताती है, क्योंकि अंक वहीं जाते हैं।

  1. फ्लिन के वर्गीकरण में, अनेक आँकड़ा-अवयवों पर एक अनुदेश लागू करने वाला सदिश प्रक्रमक है:

    1. SIMD
    2. SISD
    3. MISD
    4. MIMD
    उत्तर देखें

    उत्तर: A — SIMD

    एकल अनुदेश, बहु आँकड़ा — अनेक आँकड़ा-अवयवों पर लागू एक अनुदेश-प्रवाह — ठीक SIMD है, वह वर्ग जिसमें सदिश व सरणी दोनों प्रक्रमक आते हैं।
  2. सदिश प्रक्रमक व सरणी प्रक्रमक के बीच मुख्य हार्डवेयर-भेद यह है कि:

    1. सदिश प्रक्रमक अवयवों को एक अंकगणितीय इकाई से पाइपलाइन करता है; सरणी प्रक्रमक उसी चक्र में संक्रिया करते अनेक प्रक्रमण-अवयव प्रयोग करता है
    2. सदिश प्रक्रमक के पास कोई अंकगणितीय पाइपलाइन ही नहीं है
    3. सरणी प्रक्रमक MIMD का उपवर्ग है
    4. दोनों में कोई सार्थक भेद नहीं है
    उत्तर देखें

    उत्तर: A — सदिश प्रक्रमक अवयवों को एक अंकगणितीय इकाई से पाइपलाइन करता है; सरणी प्रक्रमक उसी चक्र में संक्रिया करते अनेक प्रक्रमण-अवयव प्रयोग करता है

    दोनों SIMD हैं, पर सदिश मशीन ONE पाइपलाइन के अवयवों को क्रमिक रूप से प्रक्रमित करते चरणों को अतिव्यापित कर थ्रूपुट पाती है, जबकि सरणी मशीन वास्तव में समांतर प्रक्रमण-अवयवों से जो एक साथ गणना करते हैं, वह पाती है।
  3. समय-साझा साझा बस की तुलना में, क्रॉसबार स्विच अंतर्संबंधन:

    1. पूर्ण एक साथ संयोजकता देता है पर उसकी स्विच-गिनती प्रक्रमक गुणा स्मृति के रूप में बढ़ती है
    2. बनाना सदा सस्ता है
    3. एक से अधिक एक साथ स्थानांतरण का समर्थन नहीं कर सकता
    4. इसकी कोई भी स्केलिंग-लागत नहीं
    उत्तर देखें

    उत्तर: A — पूर्ण एक साथ संयोजकता देता है पर उसकी स्विच-गिनती प्रक्रमक गुणा स्मृति के रूप में बढ़ती है

    क्रॉसबार प्रत्येक प्रक्रमक को हर स्मृति-मॉड्यूल हेतु अपना स्विच-बिंदु देता है, अतः अनेक स्थानांतरण एक साथ चलते हैं — इस लागत पर कि स्विच-गिनती प्रक्रमक व स्मृति-गिनतियों के गुणनफल के रूप में बढ़ती है, जो बड़े मापक्रम पर महँगी हो जाती है।
  4. साझा-स्मृति बहु-प्रक्रमक में कैश संगति मुख्यतः इसकी गारंटी देती है कि:

    1. प्रत्येक प्रक्रमक अंततः किसी भी एकल स्मृति-स्थान हेतु संगत मान देखता है
    2. भिन्न स्थानों पर सभी स्मृति-पहुँच एक वैश्विक रूप से सहमत क्रम में होती हैं
    3. कोई भी प्रक्रमक कभी किसी आँकड़े को कैश नहीं कर सकता
    4. एक समय केवल एक प्रक्रमक चल सकता है
    उत्तर देखें

    उत्तर: A — प्रत्येक प्रक्रमक अंततः किसी भी एकल स्मृति-स्थान हेतु संगत मान देखता है

    संगति एक प्रति-स्थान गारंटी है; भिन्न स्थानों के आर-पार क्रम की गारंटी स्मृति संगतता-प्रतिरूप की पृथक, प्रबलतर चिंता है।
  5. स्नूपिंग कैश-संगति प्रोटोकॉल को आवश्यकता है:

    1. साझा बस या माध्यम जिस पर हर कैश समस्त यातायात देख सके
    2. हर कैश की विषय-वस्तु ट्रैक करती केंद्रीय निर्देशिका
    3. प्रक्रमकों के बीच किसी भी अंतर्संबंधन का न होना
    4. ठीक दो प्रक्रमक, कभी अधिक नहीं
    उत्तर देखें

    उत्तर: A — साझा बस या माध्यम जिस पर हर कैश समस्त यातायात देख सके

    स्नूपिंग इस पर निर्भर करता है कि हर कैश हर दूसरे कैश का बस-यातायात देखकर लेखन पहचान सके व अपनी प्रतिलिपि अमान्य/अद्यतन कर सके; यह तभी तक स्केल करता है जब तक साझा, सर्व-दृश्य बस विद्यमान हो, इसीलिए उससे आगे निर्देशिका-आधारित योजनाएँ प्रयुक्त होती हैं।
  6. चिप अभिकल्पकों के एकल क्रोड की घड़ी-आवृत्ति और बढ़ाने के बजाय बहु-क्रोड प्रक्रमकों की ओर जाने का मुख्य कारण है:

    1. शक्ति-क्षय घड़ी-आवृत्ति के साथ अति-रैखिक रूप से बढ़ता है (शक्ति-दीवार)
    2. अनेक क्रोड बनाना सदा सस्ता है
    3. एकल क्रोड 1 GHz से तेज़ कोई अनुदेश निष्पादित नहीं कर सकते
    4. बहु-क्रोड कैश की आवश्यकता को पूर्णतः समाप्त कर देता है
    उत्तर देखें

    उत्तर: A — शक्ति-क्षय घड़ी-आवृत्ति के साथ अति-रैखिक रूप से बढ़ता है (शक्ति-दीवार)

    एक बिंदु से आगे, घड़ी-आवृत्ति और बढ़ाना अतिरिक्त प्रदर्शन की प्रति इकाई असमानुपातिक रूप से अधिक शक्ति लेता है, अतः कार्य को अनेक निम्न-आवृत्ति क्रोड में बाँटना प्रति वाट अधिक थ्रूपुट देता है — शक्ति-दीवार।
  7. साझा-स्मृति तंत्रों से भिन्न, संदेश-प्रेषण बहु-प्रक्रमक तंत्रों के विषय में निम्नलिखित में कौन सत्य हैं? (एक से अधिक विकल्प सही हो सकते हैं।)

    1. प्रक्रमक शुद्ध रूप से स्पष्ट संदेश भेजकर व प्राप्त करके संचार करते हैं
    2. दो प्रक्रमकों के दौड़ने हेतु कोई साझा स्मृति-स्थान नहीं है
    3. उन्हें ठीक साझा-स्मृति तंत्रों की भाँति साझा चरों पर सेमाफ़ोर चाहिए
    4. कैश संगति प्रोटोकॉल उनके मूल संचार-प्रतिरूप के लिए अप्रासंगिक हैं
    उत्तर देखें

    उत्तर: A — प्रक्रमक शुद्ध रूप से स्पष्ट संदेश भेजकर व प्राप्त करके संचार करते हैं; B — दो प्रक्रमकों के दौड़ने हेतु कोई साझा स्मृति-स्थान नहीं है; D — कैश संगति प्रोटोकॉल उनके मूल संचार-प्रतिरूप के लिए अप्रासंगिक हैं

    संदेश-प्रेषण एक मौलिक रूप से भिन्न प्रतिरूप है जिसमें कोई साझा पता-समष्टि नहीं, अतः दौड़ने हेतु कुछ नहीं और साझा-स्मृति के अर्थ में सेमाफ़ोर चाहने वाला कोई साझा चर नहीं — संगति प्रोटोकॉल, जो साझा स्मृति की कैश की गई प्रतिलिपियों को संगत रखने हेतु हैं, इस पर बस लागू ही नहीं होते।
  8. उस परिघटना का नाम बताइए जिसमें शक्ति-क्षय घड़ी-आवृत्ति के साथ अति-रैखिक रूप से बढ़ता है, जो प्रक्रमक अभिकल्प के निरंतर बढ़ती एकल-क्रोड घड़ी के बजाय अनेक क्रोड की ओर जाने का मुख्य कारण है।

    संख्यात्मक उत्तर — मान टाइप करें।

    उत्तर देखें

    उत्तर: power wall

    'शक्ति-दीवार' इस सीमा का मानक नाम है; यह, स्मृति-दीवार व अनुदेश-स्तरीय-समांतरता-दीवार के साथ, उन तीन दीवारों में से एक है जिन्हें सामान्यतः इस कारण उद्धृत किया जाता है कि एकल-थ्रेड प्रदर्शन-स्केलिंग क्यों धीमी हुई और बहु-क्रोड अभिकल्पों ने स्थान ले लिया।