कैश लाइन और मेमोरी पेज के बीच संबंध


9
  1. यदि मैं सही हूं, तो मुख्य मेमोरी और बाहरी मेमोरी डिवाइस, जैसे हार्ड डिस्क, के बीच डेटा ट्रांसफर करने के लिए मुख्य मेमोरी में एक पेज सबसे छोटी इकाई इकाई है। एक मुख्य स्मृति का एक कैश लाइन मुख्य स्मृति और CPU कैश के बीच हस्तांतरण डेटा के लिए सबसे छोटी इकाई है।

  2. मुझे आश्चर्य है कि क्या एक पृष्ठ आकार हमेशा या कैश लाइन आकार की एक प्राकृतिक संख्या होना सबसे अच्छा है? यदि एक कैश लाइन का आकार 64 बाइट है, और एक मेमोरी पेज का आकार 4KB है, तो प्रत्येक पृष्ठ में 4KB / 64 बाइट्स == 64 कैश लाइनें हैं।

  3. क्या कोई पेज और कैशे लाइन एक मेमोरी में दोनों निश्चित ऑब्जेक्ट हैं? या वे केवल निश्चित आकार की एक स्मृति है, जो शुरू करने और स्मृति के भीतर कहीं भी तैर सकते हैं के किसी भी सन्निहित ब्लॉक कर रहे हैं?

  4. यह हमेशा कि एक कैश लाइन एक से अधिक पृष्ठों, अवधि नहीं कर सकता है यानी एक कैश लाइन के हिस्से के एक पेज में है और कैश लाइन के अन्य भाग एक और पेज में है?

धन्यवाद।


2
आपके प्रश्नों के उत्तर अत्यधिक सीपीयू-वास्तुकला-निर्भर हैं।
TMN

जवाबों:


8
  1. एक कैश लाइन सबसे छोटी इकाई है जिसके साथ आप भौतिक मेमोरी को छू सकते हैं। मतलब जब आप 1 बाइट पढ़ते / लिखते हैं, तो इसमें भरी हुई पूरी कैश लाइन को cpu कैश में पढ़ा जाता है और वापस लिखा जाता है। ध्यान दें कि यह भी निर्देश है कि कैश को लिखने के लिए (अल्पकालिक स्ट्रीमिंग निर्देश) कैश लाइन आकारों में लिखें। सीपीयू के आधार पर, कैश लाइन का आकार आमतौर पर 32/64/128 बाइट्स होता है। जब मेमोरी पेज डिस्क पर लिखे जाते हैं, तो वे पूरे में लिखे जाते हैं। यह तब होगा जब मेमोरी का दबाव बहुत अधिक हो या हाइबरनेटिंग प्रक्रियाओं के साथ (और संभवतः अन्य उपयोगों के लिए)। उन्होंने यह भी पूरे पढ़ा जाएगा जब फिर से की जरूरत है। यह मुख्य रूप से है क्योंकि कर्नेल को यह जानने का कोई तरीका नहीं है कि पृष्ठ आंशिक रूप से या पूरी तरह से उपयोग किया गया है। अन्य बाहरी संग्रहण पढ़ने / लिखने के कार्यों में मनमानी ग्रैन्युलैरिटी हो सकती है (जैसे: fwrite (..))।

  2. पृष्ठ का आकार CPU / GPU निर्भर है। अधिकांश सीपीयू के लिए, पृष्ठ का आकार कम से कम 4KB होगा और आम तौर पर 4KB / 64KB / 2MB / 4MB / 16MB / 1GB के मिश्रण का समर्थन करेगा (जरूरी नहीं कि सभी एक ही समय में समर्थित हों)। आकार हमेशा दो की शक्ति होगी।

  3. दोनों एक पृष्ठ और एक कैश लाइन सन्निहित हैं और उनके संबंधित आकार करने के लिए गठबंधन किया जाना आवश्यक है। एक 64 बाइट कैश लाइन हमेशा 64 बाइट संरेखित होती है और एक 2 एमबी पेज हमेशा 2 एमबी संरेखित होता है।

  4. # 3 की वजह से, एक कैश लाइन कभी भी 2 पेज नहीं ले सकती क्योंकि पेज का आकार हमेशा कैश लाइन से बड़ा होगा और हमेशा कैश लाइन के आकार का एक से अधिक होगा।

स्मृति के बारे में जानकारी के लिए यह उत्कृष्ट स्रोत देखें: http://lwn.net/Articles/250967/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.