] अखंडता और सिंक्रनाइज़ेशन। इंटेल की इंट्रिंसिक्स लाइब्रेरी x86 आर्किटेक्चर में मेमोरी ऑर्डर को नियंत्रित करने के लिए _mm_sfence, _mm_lfence, और _mm_mfence सहित कई कार्य प्रदान करती है। मेमोरी मॉडल का आदेश दिया, लेकिन सी और सी में कमजोर हैं। इसलिए, उचित मेमोरी ऑर्डर करने और डेटा भ्रष्टाचार या दौड़ की स्थिति को रोकने के लिए अतिरिक्त सावधानियों की आवश्यकता होती है। (_MM_STREAM_*) सट्टा पुनर्विचार को रोकने के लिए। एनटी स्टोर्स को कमजोर रूप से ऑर्डर किया जाता है, जिसका अर्थ है कि वे अन्य मेमोरी ऑपरेशन के सापेक्ष क्रम से बाहर हो सकते हैं। _MM_SFENCE एक बाधा बनाता है जो यह सुनिश्चित करता है कि बाद में मेमोरी ऑपरेशन विश्व स्तर पर दिखाई दे रहे हैं, क्योंकि NT स्टोर मेमोरी के लिए प्रतिबद्ध होने के बाद वैश्विक रूप से दिखाई देते हैं।
यह केवल प्रासंगिकता होती है जब वीडियो रैम जैसे राइट-कॉम्बिनिंग (डब्ल्यूसी) मेमोरी क्षेत्रों से लोड किया जाता है। _mm_lfence बाद के निर्देशों के निष्पादन को रोक सकता है जब तक कि यह सेवानिवृत्त नहीं हो सकता है, जो कि माइक्रोबेनचमार्किंग के लिए उपयोगी हो सकता है।
पूर्ववर्ती स्टोर विश्व स्तर पर दिखाई देते हैं। यह उपयोगी हो सकता है यदि आप STD के अपने कस्टम संस्करण को लागू करते हैं :: परमाणु या संचालन के लिए मेमोरी ऑर्डर को स्पष्ट रूप से नियंत्रित करने की आवश्यकता है जो अन्यथा सट्टा होगा।
सारांश
&&& &] डेटा भ्रष्टाचार और दौड़ की स्थिति को रोकने के लिए NT स्टोर के बाद _mm_sfence का उपयोग करें।
लोड ऑर्डर के लिए _mm_lfence से बचें जब तक कि विशेष रूप से WC मेमोरी क्षेत्रों के साथ काम करना। लॉक किए गए परमाणु रीड-मॉडिफाई-राइट ऑपरेशंस।c 11 std :: परमाणु या C11 stdatomic मेमोरी सिंक्रनाइज़ेशन के लिए उपयोग करने पर विचार करें, क्योंकि वे एक अधिक सुविधाजनक और अनुकूलित दृष्टिकोण प्रदान करते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3