x86

2013-02-08 44 views
5

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

मुझे विशेष रूप से नेहलेम, सैंडी ब्रिज और वेस्टमेरे में रूचि है।

+0

अपडेट: IvyBridge पृष्ठ सीमाओं में एचडब्ल्यू प्रीफेच करता है। https://stackoverflow.com/a/20758769/224132। यह आईवीबी में एक नई सुविधा है, और मैंने जो कुछ पढ़ा है, उससे मुझे लगता है कि यह कहना सही है कि एसएनबी और पहले इंटेल अगले पृष्ठ में प्रीफेच नहीं करते हैं। अटकलें टीएलबी लोड एक चीज हैं, हालांकि, कम से कम जब लोड/स्टोर निर्देश के सट्टा निष्पादन द्वारा ट्रिगर किया जाता है। –

उत्तर

2

इंटेल के Optimization Reference Manual के अनुसार, यह प्रोसेसर पर निर्भर करता है। सेक्शन 7.4.3:

ऐसे मामले हैं जहां एक प्रीफ़ेच डेटा प्रीफेच नहीं करेगा। इनमें शामिल हैं:

  • PREFETCH एक डीटीएलबी (डेटा अनुवाद लुकसाइड बफर) मिस का कारण बनता है। यह CPUID हस्ताक्षर परिवार 15, मॉडल 0, 1, या 2. प्रीफ़ेच DTLB छूट जाए हल करता है और CPUID हस्ताक्षर परिवार 15 के लिए इसी के साथ 4 प्रोसेसर पेंटियम पर डेटा को हासिल करेगा, मॉडल 3.
  • करने के लिए इसी के साथ 4 प्रोसेसर पेंटियम पर लागू होता है निर्दिष्ट पते तक पहुंच जो गलती/अपवाद का कारण बनती है।

सॉफ्टवेयर प्रीफेचिंग या TLB से बचने के नहीं हो सकता है, याद करते हैं प्रोसेसर पर निर्भर करता है। यदि डेटा पेज गलती का कारण बनता है तो यह डेटा नहीं लाएगा।

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

+0

ओपी द्वारा वर्णित सीपीयू के परिवार पेंटियम 4 कक्षा सीपीयू नहीं हैं। – didierc

+0

@didierc मुझे नहीं पता, लेकिन मैंने सीधे इंटेल के मैनुअल से कॉपी किया है, और [विकिपीडिया] (http://en.wikipedia.org/wiki/List_of_Intel_Pentium_4_microprocessors) उनमें से सभी को सूची 0 को पेंटियम 4 के अलावा सूचीबद्ध करता है। – ughoavgfhw

+0

अच्छा सूचक। आईपी ​​64 सीपीयू की नवीनतम पीढ़ियों में रुचि रखते हैं (इंटेल i5 और i7 वर्ग, afaik)। मैं बस थोड़ा सा जवाब देने में मदद करने की कोशिश कर रहा था। मेरा बुरा अगर यह कठोर लगता है, यह मेरा इरादा नहीं था। – didierc

2

आधुनिक प्रोसेसर (नेहलेम, सैंडी ब्रिज और वेस्टमेरे) में सॉफ्टवेयर प्रीफेचिंग वास्तव में एक टीएलबी लुकअप ट्रिगर करता है।

इंटेल अनुकूलन गाइड से: (खंड 7.3.3)

बड़े माइक्रोआर्किटेक्चर में, प्रीफ़ेच के कारण एक डाटा अनुवाद lookaside बफर (DTLB) याद आती है गिरा दिया जाएगा। पर आधारित प्रोसेसर में नेहलेम, वेस्टमेरे, सैंडी ब्रिज, और नए माइक्रोएर-चैटेक्चर, इंटेल कोर 2 प्रोसेसर, और इंटेल एटम प्रोसेसर, प्रीफेट एक डीटीएलबी मिस के कारण पृष्ठ की सीमा में लाया जा सकता है।

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

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