सामग्री पर जाएं

CMPXCHG16B

आर्किटेक्चर संदर्भFeex

CMPXCHG16B एक परिभाषित रजिस्टर-पेयर इंटरफ़ेस का उपयोग करके 16-बाइट मेमोरी मान की तुलना करता है और सशर्त रूप से आदान-प्रदान करता है। समवर्ती उपयोग के लिए सही अलाइनमेंट और एटॉमिकिटी आवश्यकताएं आवश्यक हैं।

आपको क्या जानना चाहिए

CMPXCHG16B एक परिभाषित रजिस्टर-पेयर इंटरफ़ेस का उपयोग करके 16-बाइट मेमोरी मान की तुलना करता है और सशर्त रूप से आदान-प्रदान करता है। समवर्ती उपयोग के लिए सही अलाइनमेंट और एटॉमिकिटी आवश्यकताएं आवश्यक हैं।

यह कैसे काम करता है

यह निर्देश RDX:RAX में अपेक्षित मान के साथ 128-बिट मेमोरी ऑपरेंड की तुलना करता है, फिर सशर्त रूप से RCX:RBX को संग्रहीत करता है या अपेक्षित-मान रजिस्टरों में देखे गए मेमोरी मान को लोड करता है। मेमोरी ऑपरेंड को अपनी 16-बाइट अलाइनमेंट आवश्यकता को पूरा करना चाहिए। साझा-मेमोरी एटॉमिक उपयोग के लिए उपयुक्त LOCK सेमेंटिक्स की आवश्यकता होती है।

यह कहाँ उपयोगी है

एक रनटाइम टैग किए गए पॉइंटर या मशीन वर्ड्स की जोड़ी के एटॉमिक अपडेट के लिए निर्देश का उपयोग कर सकता है। कंपाइलर का एटॉमिक API मेमोरी ऑर्डरिंग, टाइप अलाइनमेंट और फ़ॉलबैक व्यवहार को भी ध्यान में रखता है; हस्तलिखित असेंबली को उन सभी अनुबंधों को पूरा करना होगा।

सपोर्ट और सक्षमता की जांच कैसे करें

CPUID.01H:ECX बिट 13 CMPXCHG16B को इंगित करता है। हार्डवेयर बिट के साथ-साथ ABI और रनटाइम की एटॉमिक गारंटी की जाँच करें। कोई ऑपरेशन लॉक-मुक्त है या नहीं यह तय करते समय भाषा के समर्थित एटॉमिक क्वेरी का उपयोग करें।

पड़ोसी एक्सटेंशन से सपोर्ट का अनुमान लगाने के बजाय सटीक निर्देश और ऑपरेंड फॉर्म की जांच करें। स्केलर पूर्णांक सुविधाएं आम तौर पर सामान्य-उद्देश्य रजिस्टरों का उपयोग करती हैं; वैक्टर से जुड़े एन्कोडिंग का स्वचालित रूप से यह अर्थ नहीं है कि वेक्टर-स्टेट की आवश्यकता है।

यह सुविधा क्या स्थापित नहीं करती है

यह निर्देश कोई सामान्य 128-बिट अंकगणितीय इकाई नहीं है, और इसकी उपस्थिति का मतलब यह नहीं है कि प्रत्येक भाषा का 128-बिट एटॉमिक प्रकार हर बिल्ड में लॉक-मुक्त है। मिसअलाइनमेंट समर्थित CPU पर भी फ़ॉल्ट उत्पन्न कर सकता है।

व्यवहार में अनुकूलता और प्रदर्शन

सटीकता गति के साथ-साथ एज केस पर भी निर्भर करती है। शून्य इनपुट, ओवरफ्लो, कैरी फ्लैग, ऑपरेंड चौड़ाई, संरेखण और मेमोरी ऑर्डरिंग सिमेंटिक्स को बदल सकते हैं। उन कंपाइलर या लाइब्रेरी इंटरफेस को प्राथमिकता दें जो इन विवरणों का दस्तावेजीकरण करते हैं और एक समर्थित फ़ॉलबैक प्रदान करते हैं।

एक व्यावहारिक सत्यापन चेकलिस्ट

  1. शामिल सटीक प्रोसेसर या प्लेटफ़ॉर्म मॉडल और एप्लिकेशन, OS और रनटाइम संस्करणों को रिकॉर्ड करें। वास्तविक त्रुटि या आवश्यकता के शब्दों को सुरक्षित रखें।
  2. उस सटीक मॉडल के लिए निर्माता संदर्भ की जांच करें, फिर उस परिवेश में प्रभावी क्षमता और सक्षम स्थिति का निरीक्षण करें जहां प्रोग्राम चलता है।
  3. चयनित बाइनरी या बैकएंड की प्रत्येक आवश्यकता की तुलना करें। समान नाम वाली सुविधा, उपनाम या व्यापक तकनीक लेबल पर्याप्त नहीं है।
  4. पुष्टि करें कि एप्लिकेशन ने इच्छित कार्यान्वयन का चयन किया है। आवश्यकताएं पूरी न होने पर इसके दस्तावेजीकृत डायग्नोस्टिक्स और समर्थित फ़ॉलबैक का उपयोग करें।
  5. एक समय में एक समर्थित परिवर्तन करें और वही कार्यभार दोहराएं। मूल कॉन्फ़िगरेशन और पुनर्प्राप्ति पथ उपलब्ध रखें।

यदि सुविधा सूचीबद्ध है लेकिन सॉफ़्टवेयर इसका उपयोग नहीं कर सकता है

सटीक रूप से विफल घटक से शुरुआत करें। हार्डवेयर डेटाबेस रिकॉर्ड की गई क्षमता का वर्णन करता है; ऑपरेटिंग सिस्टम या हाइपरवाइज़र एक अलग प्रभावी वातावरण प्रदर्शित कर सकता है। एक अवैध-निर्देश त्रुटि के लिए वास्तविक दोषपूर्ण निर्देश और बाइनरी बिल्ड की जांच की भी आवश्यकता होती है, क्योंकि भ्रष्टाचार या एक असंबंधित असमर्थित निर्देश एक समान लक्षण उत्पन्न कर सकता है।

सटीक प्लेटफ़ॉर्म के लिए समर्थित एप्लिकेशन, ड्राइवर या रनटाइम संस्करण इंस्टॉल करें, और यदि आवश्यक हो तो विक्रेता के दस्तावेजीकृत बेसलाइन या फ़ॉलबैक बिल्ड का उपयोग करें। एक सॉफ़्टवेयर अपडेट ऐसा निर्देश नहीं बना सकता जिसकी प्रोसेसर में कमी है। फ़र्मवेयर और सुरक्षा-नीति परिवर्तनों को सामान्य अनुकूलन नुस्खे के बजाय सिस्टम निर्माता की प्रक्रिया और पुनर्प्राप्ति योजना का पालन करना चाहिए।

इस व्याख्या के स्रोत और दायरा

Intel 64 and IA-32 Architectures Software Developer's Manual · x86-64 psABI: प्रोसेसर आर्किटेक्चर और माइक्रोआर्किटेक्चर स्तर

ये संदर्भ आर्किटेक्चरल व्यवहार और सॉफ़्टवेयर आवश्यकताओं को स्थापित करते हैं। वे किसी लिंक्ड हार्डवेयर मॉडल पेज पर प्रत्येक सुविधा मान को स्वतंत्र रूप से सत्यापित नहीं करते हैं। मॉडल समर्थन के लिए, उस पेज के निर्माता साक्ष्य का उपयोग करें और प्रभावी सिस्टम कॉन्फ़िगरेशन की जांच करें। यह आलेख कोई बेंचमार्क, प्रमाणन या स्वतंत्र समीक्षा तिथि प्रदान नहीं करता है।

स्रोत और सत्यापन

संपादकीय स्वामित्व: Feex। कोई स्वतंत्र समीक्षा तिथि दर्ज नहीं है। हम कैसे शोध करते हैं.

क्या यह लेख उपयोगी था?

हाँ या ना ही काफी है। यदि आप चाहें तो कोई कारण चुनें, या एक संक्षिप्त नोट जोड़ें।

क्या यह लेख उपयोगी था?