2012-05-04 28 views
19

क्या कोई व्यक्ति किसी टीएलबी (अनुवाद लुकसाइड बफर) मिस और कैश मिस के बीच अंतर को समझा सकता है?टीएलबी याद आती है कैश याद आती है?

मुझे विश्वास है कि मुझे पता चला है कि टीएलबी कुछ प्रकार के वर्चुअल मेमोरी एड्रेस को संदर्भित करता है लेकिन मुझे वास्तव में यह स्पष्ट नहीं था कि इसका वास्तव में क्या अर्थ है?

मुझे लगता है कि कैश मिस परिणाम तब होता है जब स्मृति का एक ब्लॉक (कैश लाइन का आकार) (एल 3?) कैश में लोड होता है और यदि वर्तमान कैश लाइनों में कोई आवश्यक पता नहीं होता है- यह एक कैश मिस है ।

+1

पेजिंग को समझना http://stackoverflow.com/a/18431262/895245, और टीएलबी अनुभाग देखें। –

उत्तर

26

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

दूसरी ओर एल 1, एल 2, एल 3 कैश मुख्य स्मृति सामग्री कैश करते हैं।

एक टीएलबी मिस तब होती है जब एक CPU अनुरोधित वर्चुअल एड्रेस के लिए virtual memory address => physical memory address का मानचित्रण टीएलबी में नहीं होता है। फिर उस प्रविष्टि को पृष्ठ तालिका से टीएलबी में लाया जाना चाहिए।

एक कैश मिस तब होती है जब CPU को कैश में नहीं होने की आवश्यकता होती है। तब डेटा को प्राथमिक मेमोरी (रैम) में देखा जाता है। यदि यह वहां नहीं है, तो डेटा को माध्यमिक स्मृति (हार्ड डिस्क) से प्राप्त किया जाना चाहिए।

+0

वर्चुअल मेमोरी एड्रेस का उद्देश्य क्या है और यह वास्तव में मुख्य स्मृति (रैम) का क्या संदर्भ देता है? – mezamorphic

+5

ठीक है, पहले 32 बिट CPUs 32 बिट पते ~ 4 जीबी एड्रेस करने योग्य मेमोरी उत्पन्न करने के लिए प्रयुक्त होते थे। लेकिन राम राशि अक्सर 4 जीबी से कम थी। अब, यदि आपके पास 1 जीबी रैम है, तो आप एक प्रोग्राम नहीं चला सकते हैं जिसे 1 जीबी से अधिक एड्रेसेबल मेमोरी चाहिए। तो इस कार्यक्रम को मूर्ख बनाने के लिए क्यों न करें कि आपके पास 4 जीबी रैम है? जहां प्रोग्राम डेटा का केवल एक अंश रैम में रहता है और शेष हार्ड ड्राइव में रहता है। यही वर्चुअल मेमोरी करता है। आप इस [विकिपीडिया लेख] (http://en.wikipedia.org/wiki/Virtual_memory) में इसके बारे में सब कुछ पढ़ सकते हैं। वर्तमान 64 बिट सीपीयू वर्चुअल मेमोरी का भी उपयोग करते हैं। केवल आभासी पता लंबाई केवल 48 बिट है। – Hindol

2

पीसी में पहला निर्देश पता (यानी आभासी पता) लोड करने के बाद निम्न अनुक्रम टीएलबी मिस और कैश की अवधारणा को बहुत स्पष्ट बनाता है।

पहले निर्देश पहले निर्देश

  • शुरू कर पीसी
  • वीपीएन iTLBwith पहुँच पीसी से निकाला लो एक्सेस करना •: iTLBmiss
  • आह्वान iTLBmiss हैंडलर
  • गणना PTE पता
  • यदि एलटीई डेटा और एल 2 कैश में पीटीईएसएयर कैश किया गया है, तो उन्हें पीटीई एड्रेस के साथ देखें: आप वहां भी
  • मुख्य स्मृति में
  • पहुँच पृष्ठ तालिका: PTE अमान्य है: पृष्ठ दोष
  • आह्वान पृष्ठ दोष हैंडलर
  • पेज फ्रेम का आवंटन, डिस्क से पृष्ठ को पढ़ने, अद्यतन पीटीई, iTLB में लोड पीटीई, लाने • अब आप पुनः आरंभ भौतिक पता

  • पहुँच Icache: याद आती है

  • उच्च स्तर पर संदेश रीफिल अनुरोध: आप हर जगह याद आती है स्मृति नियंत्रक (उत्तर पुल)
  • को
  • संदेश अनुरोध
  • पहुँच मुख्य स्मृति
  • पढ़ें कैश लाइन
  • रीफिल कैश के रूप में कैश लाइन प्रोसेसर
  • ब्लॉक के साथ कैश लाइन से उचित अनुदेश निकालें रिटर्न सभी स्तरों ऑफसेट • इस में सबसे लंबे समय तक संभव विलंबता है एक अनुदेश/डेटा का उपयोग

स्रोत https://software.intel.com/en-us/articles/recap-virtual-memory-and-cache

0

दोनों प्रक्रियाओं के कैसे के रूप में उल्लेख कर रहे हैं। प्रदर्शन के नोट पर, कैश मिस आवश्यक रूप से सीपीयू को रोक नहीं देती है। एल्गोरिदमिक प्री-फ़ेचिंग तकनीकों का उपयोग करके कैश मिस की एक छोटी संख्या को सहन किया जा सकता है। एक टीएलबी मिस हालांकि सीपीयू को तब तक रोक देती है जब तक कि टीएलबी को नए पते से अद्यतन नहीं किया जाता है। दूसरे शब्दों में prefetching एक कैश मिस मुखौटा कर सकते हैं लेकिन एक टीएलबी मिस नहीं।

+0

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

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^