बस की जासूसी

From alpha
Jump to navigation Jump to search

बस स्नूपिंग या बस स्नीफिंग एक ऐसी योजना है जिसके द्वारा कैश (कंप्यूटिंग) (एक स्नूपी कैश) में एक सुसंगतता नियंत्रक (स्नूपर) बस लेनदेन की निगरानी या स्नूपिंग करता है, और इसका लक्ष्य वितरित साझा मेमोरी में कैश सुसंगतता बनाए रखना है। यह योजना रविशंकर और गुडमैन द्वारा 1983 में राइट-वन्स कैश कोहेरेंसी नाम से शुरू की गई थी।[1] एक सुसंगतता नियंत्रक (स्नूपर) युक्त कैश को स्नूपी कैश कहा जाता है।

यह कैसे काम करता है

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


स्नूपिंग प्रोटोकॉल के प्रकार

राइट ऑपरेशन की स्थानीय प्रतिलिपि को प्रबंधित करने के तरीके के आधार पर स्नूपिंग प्रोटोकॉल दो प्रकार के होते हैं:

लिखें-अमान्य करें

जब एक प्रोसेसर एक साझा कैश ब्लॉक पर लिखता है, तो अन्य कैश में सभी साझा प्रतियां बस स्नूपिंग के माध्यम से कैश अमान्य होती हैं। यह विधि यह सुनिश्चित करती है कि प्रोसेसर द्वारा किसी डेटाम की केवल एक प्रति को विशेष रूप से पढ़ा और लिखा जा सकता है। अन्य कैश में अन्य सभी प्रतियां अमान्य हैं। यह सबसे अधिक इस्तेमाल किया जाने वाला स्नूपिंग प्रोटोकॉल महीने का प्रोटोकॉल, MESI प्रोटोकॉल, MOSI प्रोटोकॉल, MOESI प्रोटोकॉल और MESIF प्रोटोकॉल प्रोटोकॉल इस श्रेणी से संबंधित हैं।

लिखें-अद्यतन

जब एक प्रोसेसर एक साझा कैश ब्लॉक पर लिखता है, तो अन्य कैश की सभी साझा प्रतियां बस स्नूपिंग के माध्यम से अपडेट की जाती हैं। यह विधि एक बस में सभी कैश में एक लिखित डेटा प्रसारित करती है। इसमें राइट-अमान्य प्रोटोकॉल की तुलना में बड़ा बस ट्रैफ़िक शामिल है। इसीलिए यह विधि असामान्य है। ड्रैगन प्रोटोकॉल और फ़ायरफ़्लाई (कैश कोहेरेंस प्रोटोकॉल) प्रोटोकॉल इस श्रेणी के हैं।[3][4]


कार्यान्वयन

संभावित कार्यान्वयनों में से एक इस प्रकार है:

कैश में तीन अतिरिक्त अंश होंगे:

  • वी – वैध
  • डी – गंदा बिट, यह दर्शाता है कि कैश में डेटा मेमोरी के समान नहीं है
  • एस – साझा किया गया

प्रत्येक कैश लाइन निम्नलिखित स्थितियों में से एक में है: गंदा (स्थानीय प्रोसेसर द्वारा अद्यतन किया गया है), वैध, अमान्य या साझा। कैश लाइन में एक मान होता है, और इसे पढ़ा या लिखा जा सकता है। कैश लाइन पर लिखने से मान बदल जाता है। प्रत्येक मान या तो मुख्य मेमोरी में है (जिस तक पहुंच बहुत धीमी है), या एक या अधिक स्थानीय कैश में है (जो तेज़ है)। जब किसी ब्लॉक को पहली बार कैश में लोड किया जाता है, तो इसे वैध के रूप में चिह्नित किया जाता है।

स्थानीय कैश में रीड मिस होने पर, रीड अनुरोध बस पर प्रसारित किया जाता है। सभी कैश कंट्रोलर बस की निगरानी करते हैं। यदि किसी ने उस पते को कैश किया है और वह गंदी स्थिति में है, तो यह स्थिति को वैध में बदल देता है और अनुरोधित नोड को प्रतिलिपि भेज देता है। वैध स्थिति का मतलब है कि कैश लाइन चालू है। स्थानीय राइट मिस पर (उस मान को लिखने का प्रयास किया गया है, लेकिन वह कैश में नहीं है), बस स्नूपिंग यह सुनिश्चित करती है कि अन्य कैश में कोई भी प्रतिलिपि अमान्य पर सेट है। अमान्य का मतलब है कि एक प्रति कैश में मौजूद थी, लेकिन अब वह चालू नहीं है।

उदाहरण के लिए, प्रारंभिक स्थिति इस तरह दिख सकती है:

टैग | आईडी | वी | डी | एस
----------------------
1111 | 00 | 1 | 0 | 0
0000 | 01 | 0 | 0 | 0
0000 | 10 | 1 | 0 | 1
0000 | 11 | 0 | 0 | 0

पता 111100 लिखने के बाद, यह इस में बदल जाएगा:

टैग | आईडी | वी | डी | एस
----------------------
1111 | 00 | 1 | 1 | 0
0000 | 01 | 0 | 0 | 0
0000 | 10 | 1 | 0 | 1
0000 | 11 | 0 | 0 | 0

कैशिंग लॉजिक बस की निगरानी करता है और पता लगाता है कि क्या किसी कैश्ड मेमोरी का अनुरोध किया गया है। यदि कैश गंदा और साझा किया गया है और उस मेमोरी के लिए बस में एक अनुरोध है, तो एक गंदा स्नूपिंग तत्व अनुरोधकर्ता को डेटा की आपूर्ति करेगा। उस समय या तो अनुरोधकर्ता डेटा की ज़िम्मेदारी ले सकता है (डेटा को गंदे के रूप में चिह्नित करना), या मेमोरी एक प्रतिलिपि ले सकती है (कहा जाता है कि मेमोरी ने डेटा को छीन लिया है) और दोनों तत्व साझा स्थिति में चले जाते हैं। [5] गंदे के रूप में चिह्नित पते को अमान्य करते समय (यानी एक कैश में गंदा पता होगा और दूसरा कैश लिख रहा है) तो कैश उस अनुरोध को अनदेखा कर देगा। नए कैश को गंदे, वैध और विशिष्ट के रूप में चिह्नित किया जाएगा और वह कैश अब पते की जिम्मेदारी लेगा।[1]


लाभ

बस स्नूपिंग का उपयोग करने का लाभ यह है कि यह निर्देशिका-आधारित कैश सुसंगतता से तेज़ है। साझा किया जा रहा डेटा एक सामान्य निर्देशिका में रखा जाता है जो निर्देशिका-आधारित सिस्टम में कैश के बीच सामंजस्य बनाए रखता है। यदि पर्याप्त बैंडविड्थ (कंप्यूटिंग) है तो बस स्नूपिंग आम तौर पर तेज़ होती है, क्योंकि सभी लेनदेन सभी प्रोसेसर द्वारा देखे गए अनुरोध/प्रतिक्रिया होते हैं।[2]


दोष

बस जासूसी का नुकसान सीमित मापनीयता है। कैश पर बार-बार ताक-झांक करने से प्रोसेसर से एक्सेस की होड़ मच जाती है, इस प्रकार यह कैश एक्सेस समय और बिजली की खपत को बढ़ा सकता है। प्रत्येक अनुरोध को सिस्टम में सभी नोड्स पर प्रसारित किया जाना है। इसका मतलब है कि (भौतिक या तार्किक) बस का आकार और उसके द्वारा प्रदान की जाने वाली बैंडविड्थ (कंप्यूटिंग) बढ़नी चाहिए, क्योंकि सिस्टम बड़ा हो जाता है।[2]चूँकि बस स्नूपिंग अच्छी तरह से स्केल नहीं करती है, बड़े कैश सुसंगत NUMA (ccNUMA) सिस्टम निर्देशिका-आधारित सुसंगत प्रोटोकॉल का उपयोग करते हैं।

स्नूप फ़िल्टर

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

अनावश्यक जासूसी को कम करने का एक तरीका स्नूप फ़िल्टर का उपयोग करना है। एक स्नूप फ़िल्टर यह निर्धारित करता है कि एक स्नूपर को अपने कैश टैग की जाँच करने की आवश्यकता है या नहीं। स्नूप फ़िल्टर एक निर्देशिका-आधारित संरचना है और कैश ब्लॉक की सुसंगतता स्थितियों पर नज़र रखने के लिए सभी सुसंगत ट्रैफ़िक की निगरानी करता है। इसका मतलब है कि स्नूप फ़िल्टर उन कैश को जानता है जिनमें कैश ब्लॉक की एक प्रति है। इस प्रकार यह उन कैश को अनावश्यक जासूसी करने से रोक सकता है जिनके पास कैश ब्लॉक की प्रतिलिपि नहीं है। स्नूप फ़िल्टर के स्थान के आधार पर तीन प्रकार के फ़िल्टर होते हैं। एक एक स्रोत फ़िल्टर है जो कैश साइड पर स्थित होता है और सुसंगत ट्रैफ़िक के साझा बस तक पहुंचने से पहले फ़िल्टरिंग करता है। दूसरा एक गंतव्य फ़िल्टर है जो रिसीवर कैश पर स्थित है और रिसीवर कोर पर अनावश्यक कैश-टैग लुक-अप को रोकता है, लेकिन इस प्रकार का फ़िल्टरिंग स्रोत से प्रारंभिक सुसंगतता संदेश को रोकने में विफल रहता है। अंत में, इन-नेटवर्क साझा बस के अंदर गतिशील रूप से सुसंगत ट्रैफ़िक को फ़िल्टर करता है।[6] स्नूप फ़िल्टर को समावेशी और विशिष्ट के रूप में भी वर्गीकृत किया गया है। समावेशी स्नूप फ़िल्टर कैश में कैश ब्लॉक की उपस्थिति पर नज़र रखता है। हालाँकि, विशेष स्नूप फ़िल्टर कैश में कैश ब्लॉक की अनुपस्थिति की निगरानी करता है। दूसरे शब्दों में, समावेशी स्नूप फ़िल्टर में हिट का मतलब है कि संबंधित कैश ब्लॉक कैश द्वारा आयोजित किया जाता है। दूसरी ओर, एक्सक्लूसिव स्नूप फ़िल्टर में हिट का मतलब है कि किसी भी कैश में अनुरोधित कैश ब्लॉक नहीं है।[7]


संदर्भ

  1. 1.0 1.1 Ravishankar, Chinya; Goodman, James (February 28, 1983). एकाधिक माइक्रोप्रोसेसरों के लिए कैश कार्यान्वयन (PDF). pp. 346–350.
  2. 2.0 2.1 2.2 Yan Solihin (2016). समानांतर कंप्यूटर वास्तुकला के मूल सिद्धांत. pp. 239–246.
  3. Hennessy, John L; Patterson, David A. (2011). Computer Architecture: A Quantitative Approach. Elsevier. pp. 355–356. ISBN 978-0123838728.[dead link]
  4. Patterson, David A.; Hennessy, John L. (1990). कंप्यूटर आर्किटेक्चर एक मात्रात्मक दृष्टिकोण. Morgan Kaufmann Publishers. pp. 469–471. ISBN 1-55860-069-8.
  5. Siratt, Adrem. "What is Cache Coherence?". EasyTechJunkie. Retrieved 2021-12-01.
  6. Agarwal, N.; Peh, L.; Jha, N. K. (December 2009). "In-network coherence filtering". Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture. pp. 232–243. doi:10.1145/1669112.1669143. hdl:1721.1/58870. ISBN 9781605587981. S2CID 6626465.
  7. Ulfsnes, Rasmus (June 2013). स्नूप-आधारित कैश सुसंगतता प्रोटोकॉल के लिए स्नूप फ़िल्टर का डिज़ाइन. Norwegian University of Science and Technology.


बाहरी संबंध