कैच हायरार्की

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

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



पृष्ठभूमि
कंप्यूटर और इलेक्ट्रॉनिक चिप के विकास के इतिहास में, एक समय था जब सीपीयू की गति में वृद्धि ने मेमोरी एक्सेस गति में सुधार को पीछे छोड़ दिया था। सीपीयू और मेमोरी की गति के बीच के अंतर का मतलब है कि सीपीयू अक्सर निष्क्रिय रहेगा। सीपीयू एक निश्चित समय में बड़ी मात्रा में निर्देशों को चलाने और क्रियान्वित करने में तेजी से सक्षम थे, लेकिन मुख्य मेमोरी से डेटा तक पहुंचने के लिए आवश्यक समय ने प्रोग्राम को इस क्षमता से पूरी तरह लाभान्वित होने से रोक दिया। इस मुद्दे ने तेज प्रोसेसर की क्षमता का एहसास करने के लिए उच्च पहुंच दर वाले मेमोरी मॉडल के निर्माण को प्रेरित किया। इसका परिणाम कैश मैमोरी की अवधारणा के रूप में सामने आया, जिसे पहली बार 1965 में कैम्ब्रिज विश्वविद्यालय के एक ब्रिटिश कंप्यूटर वैज्ञानिक मौरिस विल्क्स द्वारा प्रस्तावित किया गया था। उन्होंने ऐसे मेमोरी मॉडल को स्लेव मेमोरी कहा। मोटे तौर पर 1970 और 1990 के बीच, अनंत अग्रवाल, एलन जे स्मिथ, मार्क डी. हिल, थॉमस आर. पुज़क और अन्य के पत्रों और लेखों ने बेहतर कैश मेमोरी डिज़ाइनों पर चर्चा की। पहले कैश मेमोरी मॉडल उस समय लागू किए गए थे, लेकिन जब शोधकर्ता बेहतर डिजाइनों की जांच और प्रस्ताव कर रहे थे, तब भी तेज मेमोरी मॉडल की आवश्यकता बनी रही। यह आवश्यकता इस तथ्य से उत्पन्न हुई कि हालांकि शुरुआती कैश मॉडल ने लागत और तकनीकी सीमाओं के संबंध में डेटा एक्सेस लेटेंसी में सुधार किया, यह कंप्यूटर सिस्टम के कैश के लिए मुख्य मेमोरी के आकार तक पहुंचने के लिए संभव नहीं था। 1990 के बाद से, पहले स्तर के कैश के बैकअप के रूप में एक और कैश स्तर (द्वितीय स्तर) जोड़ने जैसे विचार प्रस्तावित किए गए थे। जीन लूप बेयर, वेन-हैन वांग, एंड्रयू डब्ल्यू विल्सन और अन्य ने इस मॉडल पर शोध किया है। जब कई सिमुलेशन और कार्यान्वयन ने दो-स्तरीय कैश मॉडल के लाभों का प्रदर्शन किया, तो बहु-स्तरीय कैश की अवधारणा को कैश मेमोरी के एक नए और आम तौर पर बेहतर मॉडल के रूप में पकड़ा गया। 2000 के बाद से, बहु-स्तरीय कैश मॉडल ने व्यापक रूप से ध्यान आकर्षित किया है और वर्तमान में कई प्रणालियों में लागू किया गया है, जैसे कि तीन-स्तरीय कैश जो कि इंटेल के कोर i7 उत्पादों में मौजूद हैं।

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

औसत पहुंच समय (एएटी)
कैश, आकार में छोटा होने के कारण, बार-बार मिस हो सकता है - जब कैश की खोज वांछित जानकारी प्रदान नहीं करती है - जिसके परिणामस्वरूप डेटा प्राप्त करने के लिए मुख्य मेमोरी को कॉल किया जाता है। इसलिए, एएटी प्रत्येक संरचना की मिस दर से प्रभावित होता है जिससे वह डेटा की खोज करता है।
 * $$ \text{AAT} = \text{hit time}+((\text{miss rate})\times(\text{miss penalty}))$$

मुख्य मेमोरी के लिए AAT हिट टाइम द्वारा दिया जाता है main memory. कैश के लिए AAT किसके द्वारा दिया जा सकता है


 * हिट टाइमcache + (मिस दरcache × मिस पेनल्टीtime taken to go to main memory after missing cache).

कैश के लिए हिट समय मुख्य मेमोरी के हिट समय से कम है, इसलिए मुख्य मेमोरी के बजाय कैश के माध्यम से डेटा एक्सेस करते समय डेटा पुनर्प्राप्ति के लिए एएटी काफी कम है।

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

विकास
कैश मिस होने की स्थिति में, इस तरह की संरचना का उपयोग करने का उद्देश्य बेकार हो जाएगा और कंप्यूटर को आवश्यक डेटा लाने के लिए मुख्य मेमोरी में जाना होगा। हालाँकि, एक मेमोरी पदानुक्रम के साथ। बहु-स्तरीय कैश, यदि कंप्यूटर प्रोसेसर के निकटतम कैश को याद करता है (स्तर-एक कैश या L1) तो यह कैश के अगले-निकटतम स्तर (स्तरों) के माध्यम से खोज करेगा और मुख्य मेमोरी में जाएगा केवल अगर ये तरीके विफल हो जाते हैं। सामान्य प्रवृत्ति L1 कैश को प्रोसेसर से 1-2 CPU घड़ी चक्रों की दूरी पर रखने के लिए है, L1 की तुलना में अधिक डेटा स्टोर करने के लिए कैश के निचले स्तर के आकार में वृद्धि के साथ, इसलिए अधिक दूर होने पर कम मिस के साथ दर। इसका परिणाम बेहतर AAT में होता है। लागत, एएटी और आकार के बीच व्यापार-बंद की जांच के बाद कैश स्तरों की संख्या आर्किटेक्ट द्वारा उनकी आवश्यकताओं के अनुसार डिज़ाइन की जा सकती है।

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

उदाहरण: मुख्य स्मृति = 50ns, L1 = 1 ns 10% मिस रेट के साथ, L2 = 5 ns 1% मिस रेट के साथ, L3 = 10 ns 0.2% मिस रेट के साथ।
 * कोई कैश नहीं, AAT = 50 ns
 * L1 कैश, AAT = 1 ns + (0.1 × 50 ns) = 6 ns
 * L1–2 संचय, AAT = 1 ns + (0.1 × [5 ns + (0.01 × 50 ns)]) = 1.55 ns
 * L1–3 संचय, AAT = 1 ns + (0.1 × [5 ns + (0.01 × [10 ns + (0.002 × 50 ns)])]) = 1.5101 ns

नुकसान

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

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

आधुनिक प्रोसेसर में विभाजित कैश होते हैं, और बहुस्तरीय कैश वाले सिस्टम में उच्च स्तर के कैश एकीकृत हो सकते हैं जबकि निचले स्तर विभाजित होते हैं।

समावेशन नीतियां
क्या ऊपरी कैश परत में मौजूद कोई ब्लॉक निचले कैश स्तर में भी मौजूद हो सकता है, यह मेमोरी सिस्टम की समावेशन नीति द्वारा नियंत्रित होता है, जो समावेशी, अनन्य या गैर-समावेशी गैर-अनन्य (नौ) हो सकता है। एक समावेशी नीति के साथ, ऊपरी स्तर के कैश में मौजूद सभी ब्लॉक को निचले स्तर के कैश में भी मौजूद होना चाहिए। प्रत्येक ऊपरी-स्तरीय कैश घटक निम्न-स्तरीय कैश घटक का एक सबसेट है। इस मामले में, चूंकि ब्लॉकों का दोहराव होता है, स्मृति का कुछ अपव्यय होता है। हालाँकि, जाँच तेज़ है।

एक विशेष नीति के तहत, सभी कैश पदानुक्रम घटक पूरी तरह से अनन्य हैं, ताकि ऊपरी स्तर के कैश में कोई भी तत्व किसी भी निचले कैश घटक में मौजूद न हो। यह कैश मेमोरी के पूर्ण उपयोग को सक्षम बनाता है। हालाँकि, एक उच्च मेमोरी-एक्सेस विलंबता है। उपरोक्त नीतियों को लागू करने के लिए नियमों के एक समूह का पालन करने की आवश्यकता है। यदि इनमें से किसी को भी मजबूर नहीं किया जाता है, तो परिणामी समावेशन नीति को गैर-समावेशी गैर-अनन्य (नौ) कहा जाता है। इसका मतलब है कि ऊपरी स्तर का कैश निचले स्तर के कैश में मौजूद हो भी सकता है और नहीं भी।

नीतियां लिखें
दो नीतियां हैं जो मुख्य मेमोरी में एक संशोधित कैश ब्लॉक को अपडेट करने के तरीके को परिभाषित करती हैं: राइट थ्रू और राइट बैक।

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

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

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

निजी बनाम साझा
एक निजी कैश एक प्रोसेसर में एक विशेष कोर को सौंपा गया है, और किसी अन्य कोर द्वारा एक्सेस नहीं किया जा सकता है। कुछ आर्किटेक्चर में, प्रत्येक कोर का अपना निजी कैश होता है; यह सिस्टम के कैश आर्किटेक्चर में डुप्लिकेट ब्लॉक का जोखिम पैदा करता है, जिसके परिणामस्वरूप क्षमता का उपयोग कम हो जाता है। हालाँकि, मल्टी-लेयर कैश आर्किटेक्चर में इस प्रकार का डिज़ाइन विकल्प कम डेटा-एक्सेस लेटेंसी के लिए भी अच्छा हो सकता है। एक साझा कैश एक कैश है जिसे कई कोर द्वारा एक्सेस किया जा सकता है। चूंकि इसे साझा किया जाता है, कैश में प्रत्येक ब्लॉक अद्वितीय होता है और इसलिए इसकी बड़ी हिट दर होती है क्योंकि कोई डुप्लिकेट ब्लॉक नहीं होगा। हालाँकि, डेटा-एक्सेस विलंबता बढ़ सकती है क्योंकि कई कोर एक ही कैश तक पहुँचने का प्रयास करते हैं। मल्टी-कोर प्रोसेसर में, कैश को साझा या निजी बनाने के लिए डिज़ाइन का विकल्प प्रोसेसर के प्रदर्शन को प्रभावित करता है। व्यवहार में, ऊपरी-स्तरीय कैश L1 (या कभी-कभी L2) निजी के रूप में लागू किया जाता है और निचले स्तर के कैश को साझा के रूप में लागू किया जाता है। यह डिज़ाइन उच्च-स्तरीय कैश के लिए उच्च पहुँच दर और निम्न-स्तरीय कैश के लिए कम मिस रेट प्रदान करता है।

इंटेल ब्रॉडवेल माइक्रोआर्किटेक्चर (2014)

 * L1 कैश (निर्देश और डेटा) - 64kB प्रति कोर
 * L2 कैश – 256 केबी प्रति कोर
 * L3 कैश - 2MB से 6 एमबी साझा किया
 * L4 कैश - 128 MB eDRAM (केवल आइरिस प्रो मॉडल)

इंटेल कैबी लेक माइक्रोआर्किटेक्चर (2016)

 * एल1 कैश (निर्देश और डेटा) - 64 केबी प्रति कोर
 * L2 कैश – 256 केबी प्रति कोर
 * L3 कैश - 2 MB से 8 MB साझा किया गया

एएमडी ज़ेन माइक्रोआर्किटेक्चर (2017)

 * एल1 कैश - 32 केबी डेटा और 64 केबी निर्देश प्रति कोर, 4-वे
 * L2 कैश - 512 kB प्रति कोर, 4-वे समावेशी
 * एल3 कैश - 4 एमबी लोकल और रिमोट प्रति 4-कोर सीसीएक्स, 2 सीसीएक्स प्रति चिपलेट, 16-वे नॉन-इनक्लूसिव। डेस्कटॉप सीपीयू पर 16 एमबी और सर्वर सीपीयू पर 64 एमबी तक

एएमडी ज़ेन 2 माइक्रोआर्किटेक्चर (2019)

 * एल1 कैश - 32 केबी डेटा और 32 केबी निर्देश प्रति कोर, 8-वे
 * L2 कैश – 512 kB प्रति कोर, 8-वे समावेशी
 * एल3 कैश - 16 एमबी लोकल प्रति 4-कोर सीसीएक्स, 2 सीसीएक्स प्रति चिपलेट, 16-वे नॉन-इनक्लूसिव। डेस्कटॉप सीपीयू पर 64 एमबी और सर्वर सीपीयू पर 256 एमबी तक

आईबीएम पावर7 (2010)

 * L1 कैश (निर्देश और डेटा) - प्रत्येक 64-बैंक्ड, प्रत्येक बैंक में 2rd+1wr पोर्ट 32 kB, 8-वे एसोसिएटिव, 128B ब्लॉक, राइट थ्रू हैं
 * L2 कैश - 256 kB, 8-वे, 128B ब्लॉक, राइट बैक, L1 सहित, 2 ns एक्सेस लेटेंसी
 * L3 कैश - 4 एमबी के 8 क्षेत्र (कुल 32 एमबी), स्थानीय क्षेत्र 6 एनएस, रिमोट 30 एनएस, प्रत्येक क्षेत्र 8-वे सहयोगी, डीआरएएम डेटा सरणी, एसआरएएम टैग सरणी

यह भी देखें

 * शक्ति7 7
 * ब्रॉडवेल (माइक्रोआर्किटेक्चर)
 * केबी झील
 * सीपीयू कैश
 * मेमोरी पदानुक्रम
 * कैस विलंबता
 * कैश (कंप्यूटिंग)

संदर्भ
fa: سلسله مراتب حافظه نهان