हमें कैश मेमोरी के कई स्तरों की आवश्यकता क्यों है?


5

सामान्य तौर पर एक कैश मेमोरी उपयोगी होती है क्योंकि प्रोसेसर की गति रैम की गति से अधिक होती है (वे दोनों गति में वृद्धि कर रहे हैं लेकिन अंतर अभी भी बना हुआ है)। इसलिए मेमोरी एक्सेस की संख्या को कम करना प्रदर्शन को बढ़ाने के लिए वांछनीय है।

मेरा सवाल यह है कि हमें कई स्तरों के कैश (L1, L2, L3) की आवश्यकता क्यों है?

मुझे पता है कि L1 सबसे तेज और सबसे छोटा है, L2 थोड़ा धीमा और थोड़ा बड़ा है और इसी तरह ... लेकिन वे इस तरह से हार्डवेयर क्यों बनाते हैं?


1
कुछ हद तक संबंधित प्रश्न: प्रोसेसर में वास्तव में बहुस्तरीय कैश क्या है? (वहां के जवाब ज्यादा बड़े क्यों नहीं हैं, यह धीमा है, इसलिए सवाल लगभग एक डुप्लिकेट भी नहीं है, लेकिन सवाल संबंधित हैं
Paul A. Clayton

जवाबों:


11

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

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

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

मल्टीकोर प्रोसेसर में, L3 कैश आमतौर पर कोर के बीच साझा किया जाता है। इस तरह के डिजाइन में, एल 1 और एल 2 कैश प्रत्येक कोर की मृत्यु में निर्मित होते हैं, और एल 3 कैश कोर के बीच बैठता है। यह प्रत्येक कोर को उचित स्थानीयता देता है, लेकिन बहुत बड़े कैश के लिए भी अनुमति देता है।

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


अच्छा! क्या आपके पास लिंक करने के लिए कोई स्रोत है?
Thor

बड़ी यादों के लिए भौतिक आकार के प्रभाव का एक दिलचस्प पहलू यह है कि एक डिज़ाइनर प्रत्येक बिट के लिए धीमे भंडारण उपकरणों का उपयोग करने पर विचार कर सकता है और यदि धीमी डिवाइस पर्याप्त रूप से छोटे हैं तो पहुंच की गति बढ़ा सकते हैं। इसका मतलब यह है कि DRAM बहुत बड़े कैश के लिए समझ बना सकता है। (गैर-यूनिफ़ॉर्म कैश आर्किटेक्चर तकनीकें भी हैं जहाँ एल 2 के निकट भागों में विलंबता कम होती है। विभाजित एल 3 कैश, भौतिक [या ऑन-चिप नेटवर्क] निकटता का उपयोग प्रदर्शन में सुधार के लिए प्लेसमेंट विकल्पों द्वारा किया जा सकता है।
Paul A. Clayton

@ यह ज्ञान के उन अजीब बिट्स में से एक है जो मैंने वर्षों से यादृच्छिक पढ़ने और माइक्रोप्रोसेसरों के साथ खेलने के लिए उठाया है, लेकिन विकि लेख बहुत व्यापक है, विशेष रूप से बहु-स्तरीय कैश आर्किटेक्चर के बारे में।
Polynomial
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.