कैश सुसंगतता

From alpha
Jump to navigation Jump to search
कुछ मेमोरी के कई कैश दिखाते हुए एक चित्रण, जो एक साझा संसाधन के रूप में कार्य करता है
असंगत कैश: कैश में एक ही पता स्थान के अलग-अलग मान होते हैं।

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

दाईं ओर के चित्रण में, विचार करें कि दोनों क्लाइंट के पास पिछले रीड से किसी विशेष मेमोरी ब्लॉक की कैश्ड कॉपी है। मान लीजिए कि नीचे का क्लाइंट उस मेमोरी ब्लॉक को अपडेट/बदलता है, शीर्ष पर मौजूद क्लाइंट को बिना किसी सूचना के मेमोरी के अमान्य कैश के साथ छोड़ा जा सकता है। कैश सुसंगतता का उद्देश्य कई कैश में डेटा मानों के सुसंगत दृश्य को बनाए रखते हुए ऐसे विरोधों का प्रबंधन करना है।

सुसंगत कैश: सभी कैश प्रतियों में मान समान है।

सिंहावलोकन

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


परिभाषा

जुटना एक पते के स्थान पर पढ़ने और लिखने के व्यवहार को परिभाषित करता है।[2]

अलग-अलग कैश मेमोरी में एक साथ होने वाले एक प्रकार के डेटा को कैश कोहेरेंस या कुछ सिस्टम में ग्लोबल मेमोरी कहा जाता है।

मल्टीप्रोसेसर सिस्टम में, विचार करें कि एक से अधिक प्रोसेसर ने मेमोरी लोकेशन X की कॉपी को कैश कर लिया है। कैश सुसंगतता प्राप्त करने के लिए निम्नलिखित शर्तें आवश्यक हैं:[4]

  1. एक प्रोसेसर P द्वारा एक स्थान X पर किए गए रीड में जो उसी प्रोसेसर P से X के लिए एक राइट का अनुसरण करता है, बिना किसी अन्य प्रोसेसर द्वारा X को लिखने और P द्वारा किए गए रीड निर्देशों के बीच होने वाले एक्स को हमेशा वापस करना चाहिए। पी द्वारा लिखित मूल्य।
  2. एक प्रोसेसर P1 द्वारा लोकेशन X पर किए गए रीड में, जो दूसरे प्रोसेसर P2 से X के लिए राइट का अनुसरण करता है, दो एक्सेस के बीच होने वाले किसी भी प्रोसेसर द्वारा X को कोई अन्य राइट्स नहीं दिया जाता है और रीड और राइट को पर्याप्त रूप से अलग किया जाता है, X को अवश्य ही हमेशा P2 द्वारा लिखा गया मान लौटाएं। यह स्थिति स्मृति के सुसंगत दृष्टिकोण की अवधारणा को परिभाषित करती है। साझा स्मृति स्थान पर लिखने का प्रचार करना सुनिश्चित करता है कि सभी कैशों में स्मृति का एक सुसंगत दृश्य है। यदि प्रोसेसर P1 X के पुराने मान को पढ़ता है, P2 द्वारा लिखे जाने के बाद भी, हम कह सकते हैं कि मेमोरी असंगत है।

उपरोक्त शर्तें कैश सुसंगतता के लिए आवश्यक लेखन प्रसार मानदंड को पूरा करती हैं। हालाँकि, वे पर्याप्त नहीं हैं क्योंकि वे लेन-देन क्रमांकन की स्थिति को पूरा नहीं करते हैं। इसे बेहतर ढंग से समझाने के लिए, निम्नलिखित उदाहरण पर विचार करें:

एक मल्टी-प्रोसेसर सिस्टम में चार प्रोसेसर होते हैं - P1, P2, P3 और P4, सभी में एक साझा चर S की कैश्ड कॉपी होती है जिसका प्रारंभिक मान 0 होता है। प्रोसेसर P1 S के मान (इसकी कैश्ड कॉपी में) को 10 में बदल देता है जिसके बाद प्रोसेसर P2 अपनी स्वयं की कैश्ड कॉपी में S के मान को 20 में बदल देता है। यदि हम सुनिश्चित करते हैं कि केवल प्रचार प्रसार करें, तो P3 और P4 निश्चित रूप से P1 और P2 द्वारा S में किए गए परिवर्तनों को देखेंगे। हालाँकि, P3 P1 द्वारा किए गए परिवर्तन को P2 द्वारा किए गए परिवर्तन को देखने के बाद देख सकता है और इसलिए S को पढ़ने पर 10 लौटाता है। दूसरी ओर P4 P1 और P2 द्वारा किए गए परिवर्तनों को उसी क्रम में देख सकता है जिसमें वे किए गए हैं और इसलिए S को पढ़ने पर 20 लौटाएं। प्रोसेसर P3 और P4 में अब मेमोरी का एक असंगत दृश्य है।

इसलिए, लेन-देन क्रमांकन को पूरा करने के लिए, और इसलिए कैश सुसंगतता प्राप्त करने के लिए, इस खंड में उल्लिखित पिछली दो शर्तों के साथ निम्नलिखित शर्तों को पूरा किया जाना चाहिए:

  • एक ही स्थान पर लिखे गए को अनुक्रमित किया जाना चाहिए। दूसरे शब्दों में, यदि स्थान X को दो अलग-अलग मान A और B प्राप्त होते हैं, इस क्रम में, किसी भी दो प्रोसेसर से, प्रोसेसर कभी भी स्थान X को B के रूप में नहीं पढ़ सकते हैं और फिर इसे A के रूप में पढ़ सकते हैं। स्थान X को मान A और के साथ देखा जाना चाहिए इसी क्रम में बी.[5]

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

एक और परिभाषा है: एक मल्टीप्रोसेसर कैश सुसंगत है यदि सभी एक ही स्मृति स्थान पर लिखते हैं कुछ अनुक्रमिक क्रम में किए जाते हैं।[6] शायद ही कभी, लेकिन विशेष रूप से एल्गोरिदम में, सुसंगतता इसके बजाय संदर्भ के इलाके को संदर्भित कर सकती है। एक ही डेटा की कई प्रतियां अलग-अलग कैश में एक साथ मौजूद हो सकती हैं और यदि प्रोसेसर को अपनी स्वयं की प्रतियों को स्वतंत्र रूप से अपडेट करने की अनुमति दी जाती है, तो मेमोरी का एक असंगत दृश्य परिणाम हो सकता है।

सुसंगत तंत्र

सुसंगतता सुनिश्चित करने के दो सबसे आम तंत्र हैं बस सूँघना और निर्देशिका-आधारित कैश सुसंगतता | निर्देशिका-आधारित, प्रत्येक के अपने लाभ और कमियाँ हैं। स्नूपिंग आधारित प्रोटोकॉल तेजी से होते हैं, यदि पर्याप्त मेमोरी बैंडविड्थ उपलब्ध हो, क्योंकि सभी लेनदेन सभी प्रोसेसर द्वारा देखे गए अनुरोध/प्रतिक्रिया हैं। दोष यह है कि स्नूपिंग स्केलेबल नहीं है। प्रत्येक अनुरोध को सिस्टम में सभी नोड्स पर प्रसारित किया जाना चाहिए, जिसका अर्थ है कि जैसे-जैसे सिस्टम बड़ा होता जाता है, (तार्किक या भौतिक) बस का आकार और इसके द्वारा प्रदान की जाने वाली बैंडविड्थ में वृद्धि होनी चाहिए। दूसरी ओर, निर्देशिकाओं में अधिक विलंबता होती है (3 हॉप अनुरोध/फॉरवर्ड/प्रतिक्रिया के साथ) लेकिन बहुत कम बैंडविड्थ का उपयोग करती हैं क्योंकि संदेश पॉइंट टू पॉइंट होते हैं और प्रसारित नहीं होते हैं। इस कारण से, कई बड़े सिस्टम (>64 प्रोसेसर) इस प्रकार के कैश सुसंगतता का उपयोग करते हैं।

स्नूपिंग

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


निर्देशिका आधारित

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

वितरित साझा मेमोरी सिस्टम शिथिल युग्मित सिस्टम में मेमोरी के ब्लॉक के बीच निरंतरता बनाए रखने के प्रयास में इन तंत्रों की नकल करते हैं।[9]


जुटना प्रोटोकॉल

जुटना प्रोटोकॉल मल्टीप्रोसेसर सिस्टम में कैश सुसंगतता लागू करते हैं। आशय यह है कि दो ग्राहकों को एक ही साझा किए गए डेटा के लिए कभी भी अलग-अलग मान नहीं देखना चाहिए।

प्रोटोकॉल को सुसंगतता के लिए बुनियादी आवश्यकताओं को लागू करना चाहिए। यह लक्ष्य प्रणाली या अनुप्रयोग के लिए दर्जी बनाया जा सकता है।

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

स्नूपी प्रोटोकॉल में प्रसार लिखें को निम्न विधियों में से किसी एक द्वारा कार्यान्वित किया जा सकता है:

लिखें-अमान्य करें
जब किसी ऐसे स्थान पर लिखने का ऑपरेशन देखा जाता है, जहां कैश की एक प्रति होती है, तो कैश कंट्रोलर स्नूप्ड मेमोरी लोकेशन की अपनी प्रति को अमान्य कर देता है, जो इसके अगले एक्सेस पर नए मूल्य की मुख्य मेमोरी से पढ़ने को बाध्य करता है। .[4]राइट-अपडेट: जब किसी ऐसे स्थान पर राइट ऑपरेशन देखा जाता है, जहां कैश की कॉपी होती है, तो कैश कंट्रोलर नए डेटा के साथ स्नूप्ड मेमोरी लोकेशन की अपनी कॉपी अपडेट करता है।

यदि प्रोटोकॉल डिज़ाइन बताता है कि जब भी साझा किए गए डेटा की कोई प्रति बदली जाती है, तो परिवर्तन को दर्शाने के लिए अन्य सभी प्रतियों को अद्यतन किया जाना चाहिए, तो यह एक राइट-अपडेट प्रोटोकॉल है। यदि डिज़ाइन बताता है कि किसी प्रोसेसर द्वारा कैश की गई प्रतिलिपि को लिखने के लिए अन्य प्रोसेसर को अपनी कैश की गई प्रतियों को त्यागने या अमान्य करने की आवश्यकता होती है, तो यह एक लेखन-अमान्य प्रोटोकॉल है।

हालाँकि, स्केलेबिलिटी प्रसारण प्रोटोकॉल की एक कमी है।

सामंजस्य बनाए रखने के लिए विभिन्न मॉडल और प्रोटोकॉल तैयार किए गए हैं, जैसे MSI प्रोटोकॉल, MESI प्रोटोकॉल (उर्फ इलिनोइस), MOSI प्रोटोकॉल, MOESI प्रोटोकॉल, MERSI प्रोटोकॉल, MESIF प्रोटोकॉल, राइट-वन्स (कैश सुसंगतता) | राइट-वन्स, सिनैप्स, बर्कले , जुगनू (कैश जुटना प्रोटोकॉल) और ड्रैगन प्रोटोकॉल।[1]2011 में, ARM Ltd ने AMBA 4 ACE का प्रस्ताव रखा[10] एक चिप पर सिस्टम में सुसंगतता को संभालने के लिए। AMBA CHI (सुसंगत हब इंटरफ़ेस) विनिर्देश[11] आर्म लिमिटेड से, जो AMBA5 विनिर्देशों के समूह से संबंधित है, पूरी तरह से सुसंगत प्रोसेसर के कनेक्शन के लिए इंटरफेस को परिभाषित करता है।

यह भी देखें

  • संगति मॉडल
  • निर्देशिका आधारित सुसंगतता
  • स्मृति बाधा
  • गैर-समान मेमोरी एक्सेस (NUMA)
  • झूठा बंटवारा

संदर्भ

  1. 1.0 1.1 E. Thomadakis, Michael (2011). नेहलेम प्रोसेसर और नेहलेम-ईपी एसएमपी प्लेटफॉर्म का आर्किटेक्चर (PDF). Texas A&M University. p. 30. Archived from the original (PDF) on 2014-08-11.
  2. 2.0 2.1 Yan, Solihin. समानांतर मल्टीकोर आर्किटेक्चर के मूल तत्व. OCLC 884540034.
  3. 3.0 3.1 Sorin, Daniel J.; Hill, Mark D.; Wood, David Allen (2011-01-01). मेमोरी स्थिरता और कैश सुसंगतता पर एक प्राइमर. Morgan & Claypool Publishers. OCLC 726930429.
  4. 4.0 4.1 4.2 Patterson and Hennessy. कंप्यूटर संगठन और डिजाइन - चौथा संस्करण. ISBN 978-0-12-374493-7.
  5. Neupane, Mahesh (April 16, 2004). "Cache Coherence" (PDF). Archived from the original (PDF) on 20 June 2010.
  6. Steinke, Robert C.; Nutt, Gary J. (2004-09-01). "साझा मेमोरी संगति का एक एकीकृत सिद्धांत". J. ACM. 51 (5): 800–849. arXiv:cs/0208027. doi:10.1145/1017460.1017464. ISSN 0004-5411. S2CID 3206071.
  7. "रविशंकर, चिन्या; गुडमैन, जेम्स (28 फरवरी, 1983)। "एकाधिक माइक्रोप्रोसेसरों के लिए कैश कार्यान्वयन"" (PDF). Proceedings of IEEE COMPCON: 346–350.
  8. Rasmus Ulfsnes (June 2013). "Design of a Snoop Filter for Snoop-Based Cache Coherency Protocols" Archived 2014-02-01 at the Wayback Machine (PDF). diva-portal.org. Norwegian University of Science and Technology. Retrieved 2014-01-20.
  9. https://people.eecs.berkeley.edu/~pattrsn/252F96/Lecture18.pdf[bare URL PDF]
  10. Kriouile (16 September 2013). कैश सुसंगत सिस्टम-ऑन-चिप के लिए ACE विशिष्टता का औपचारिक विश्लेषण। इन फॉर्मल मेथड्स फॉर इंडस्ट्रियल क्रिटिकल सिस्टम्स. Springer Berlin Heidelberg. ISBN 978-3-642-41010-9.
  11. Ltd, Arm. "अंबा | अंबा 5". Arm Developer. Retrieved 2021-04-27.


इस पेज में लापता आंतरिक लिंक की सूची

आगे की पढाई

श्रेणी:कैश सुसंगतता श्रेणी: समानांतर कंप्यूटिंग श्रेणी: समवर्ती कंप्यूटिंग श्रेणी: संगति मॉडल