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

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

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



पृष्ठभूमि
कंप्यूटर और इलेक्ट्रॉनिक चिप के विकास के इतिहास में, समय था जब सीपीयू की गति में वृद्धि ने मेमोरी एक्सेस गति में सुधार को पीछे छोड़ दिया था। सीपीयू और मेमोरी की गति के मध्य के अंतर का तात्पर्य है कि सीपीयू प्रायः निष्क्रिय रहेगा। सीपीयू निश्चित समय में बड़ी मात्रा में निर्देशों को चलाने और क्रियान्वित करने में तीव्रता से सक्षम थे, किन्तु मेन मेमोरी से डेटा तक पहुंचने के लिए आवश्यक समय ने प्रोग्राम को इस क्षमता से पूर्ण रूप से लाभान्वित होने से रोक दिया। इस उद्देश्य ने तीव्र प्रोसेसर की क्षमता का एहसास करने के लिए उच्च पहुंच दर वाले मेमोरी मॉडल के निर्माण को प्रेरित किया।

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

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

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

मेन मेमोरी के लिए एएटी हिट समयmain memory. द्वारा दिया जाता है कैच के लिए एएटी किसके द्वारा दिया जा सकता है


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

कैच के लिए हिट समय मेन मेमोरी के हिट समय से अल्प है, इसलिए मेन मेमोरी के अतिरिक्त कैच के माध्यम से डेटा एक्सेस करते समय डेटा पुनर्प्राप्ति के लिए एएटी अधिक अल्प है।

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

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

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

उदाहरण: मेन मेमोरी = 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 kB प्रति कोर हैं।
 * L3 कैच - 2MB से 6 एमबी शेयर्ड किया।
 * L4 कैच - 128 MB eDRAM (केवल आइरिस प्रो प्रारूप) हैं।

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

 * L1 कैच (निर्देश और डेटा) - 64 kB प्रति कोर हैं।
 * L2 कैच – 256 kB प्रति कोर हैं।
 * L3 कैच - 2 MB से 8 MB शेयर्ड किया गया।

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

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

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

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

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

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

यह भी देखें

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