2009-12-24 11 views
6

कम विलंबता कंप्यूटिंग पर कुछ महान प्रस्तुतियों के माध्यम से पढ़ना। उनके पास cell कंपाइलर के लिए आईबीएम के एक्सएल सी/सी ++ कंपाइलर डेटा कैश ऑपरेशन __dcbt (डेटा कैश ब्लॉक टच) का संदर्भ था। ऑपरेशन एल 1 कैश में स्मृति का एक ब्लॉक लोड करता है।क्या विजुअल स्टूडियो डेटा कैश ऑपरेशंस का समर्थन करता है?

क्या विजुअल स्टूडियो (या जी ++ या इंटेल) में इंटेल प्रोसेसर के लिए समान कार्यक्षमता है? यदि ऐसा है और समाधान प्लेटफॉर्म विशिष्ट है (यानी केवल विंडोज या * निक्स) तो कृपया ऐसा कहें।

+1

ब्लॉक को लोड होने के बाद क्या होता है, इस धारणा को शामिल करने के लिए मैं इस प्रश्न को विशेषज्ञ बनाना चाहता हूं। क्या यह एक ही सेवानिवृत्ति तर्क के अधीन है, या यह सीपीयू में स्पष्ट रूप से अनलोड किए जाने तक रहेगा? –

+1

वर्तमान-दिन इंटेल हार्डवेयर के मामले में, एक प्रीफ़ेटेड ब्लॉक किसी भी अन्य ब्लॉक के समान सेवानिवृत्ति के अधीन है। यह कैश में बंद नहीं है। – Crashworks

उत्तर

4

हां, विजुअल स्टूडियो सभी एसएसई और एमएमएक्स आंतरिक संचालन का समर्थन करता है। कैश नियंत्रण संचालन को संक्षेप में यहां वर्णित किया गया है: http://www.tommesani.com/SSECacheabilityControl.html और Intel's instruction set reference में लंबाई में समझाया गया।

माइक्रोसॉफ्ट documents their intrinsics for cache control at MSDN। हालांकि वे कार्यों की तरह दिखते हैं, संकलक वास्तव में उन्हें उपयुक्त हार्डवेयर निर्देश के लिए उबालता है। अपने एसएसई 1 और एसएसई 2 कैश नियंत्रण निर्देशों को देखना सुनिश्चित करें, जिन्हें वे अलग-अलग श्रेणियों के अंतर्गत सूचीबद्ध करते हैं (उनके पृष्ठ के बाईं ओर विस्तारित पेड़ देखें)।

x86 समकक्ष dcbt_mm_prefetch है। dcbz के लिए कोई प्रत्यक्ष समतुल्य नहीं है, लेकिन निकटतम एनालॉग _mm_stream_si128 है।

मेरा मानना ​​है कि जीसीसी एक ही आंतरिक नाम का उपयोग करता है (क्योंकि उन्हें इंटेल कंपाइलर से लिया जाता है)।