Transactional Synchronization Extensions
ट्रांजैक्शनल सिंक्रोनाइजेशन एक्सटेंशन (टी. एस. एक्स.), जिसे ट्रांजैक्शनल सिंक्रोनाइजेशन एक्सटेंशन न्यू इंस्ट्रक्शंस (टी. एस. एक्स.-एन. आई.) भी कहा जाता है, x86 इंस्ट्रक्शन सेट आर्किटेक्चर (आई. एस. ए.) का एक विस्तार है जो हार्डवेयर ट्रांजैक्शनल मेमोरी सपोर्ट जोड़ता है, लॉक एलिशन के माध्यम से मल्टी-थ्रेडेड सॉफ्टवेयर के निष्पादन को तेज करता है। विभिन्न मानदंडों के अनुसार, टी. एस. एक्स./टी. एस. एक्स.-एन. आई. विशिष्ट कार्यभार में लगभग 40 प्रतिशत तेजी से अनुप्रयोग निष्पादन और प्रति सेकंड 4-5 गुना अधिक डेटाबेस लेनदेन (टी. पी. एस.) प्रदान कर सकता है। टी. एस. एक्स./टी. एस. एक्स.-एन. आई. को फरवरी 2012 में इंटेल द्वारा प्रलेखित किया गया था, और जून 2013 में हैस्वेल माइक्रोआर्किटेक्चर पर आधारित चयनित इंटेल माइक्रोप्रोसेसरों पर शुरू किया गया था। 45x से नीचे के हैस्वेल प्रोसेसर के साथ-साथ आर-सीरीज़ और के-सीरीज़ (अनलॉक्ड मल्टीप्लायर के साथ) एस. के. यू. टी. एस. एक्स./टी. एस. एक्स.-एन. आई. का समर्थन नहीं करते हैं। अगस्त 2014 में, इंटेल ने हैस्वेल, हैस्वेल-ई, हैस्वेल-ईपी और शुरुआती ब्रॉडवेल सीपीयू के वर्तमान चरणों पर टीएसएक्स/टीएसएक्स-एनआई कार्यान्वयन में एक बग की घोषणा की, जिसके परिणामस्वरूप एक माइक्रोकोड अद्यतन के माध्यम से प्रभावित सीपीयू पर टीएसएक्स/टीएसएक्स-एनआई सुविधा को अक्षम कर दिया गया। 2016 में, टी. एस. एक्स./टी. एस. एक्स.-एन. आई. के लेन-देन संबंधी दोषों को संभालने के तरीके का दुरुपयोग करके एक साइड-चैनल टाइमिंग अटैक पाया गया था। सभी प्रमुख ऑपरेटिंग सिस्टम पर कर्नेल एड्रेस स्पेस लेआउट रैंडमाइजेशन (केएएसएलआर) को तोड़ने के लिए। 2021 में, इंटेल ने एक माइक्रोकोड अद्यतन जारी किया जिसने खोज किए गए सुरक्षा मुद्दों के शमन के रूप में स्काईलेक से कॉफी लेक तक सीपीयू पीढ़ियों पर टीएसएक्स/टीएसएक्स-एनआई सुविधा को अक्षम कर दिया। टी. एस. एक्स./टी. एस. एक्स.-एन. आई. अनुकरण के लिए समर्थन इंटेल सॉफ्टवेयर विकास एमुलेटर के हिस्से के रूप में प्रदान किया जाता है। क्यू. ई. एम. यू. कांटे में टी. एस. एक्स./टी. एस. एक्स.-एन. आई. अनुकरण के लिए प्रयोगात्मक समर्थन भी है। विशेषताएँ टी. एस. एक्स./टी. एस. एक्स.-एन. आई. लेन-देन निष्पादन के लिए कोड क्षेत्रों को निर्दिष्ट करने के लिए दो सॉफ्टवेयर इंटरफेस प्रदान करता है। हार्डवेयर लॉक एलिजन (एच. एल. ई.) एक निर्देश उपसर्ग-आधारित इंटरफेस है जिसे टी. एस. एक्स./टी. एस. एक्स.-एन. आई. समर्थन के बिना प्रोसेसर के साथ पिछड़े संगत होने के लिए डिज़ाइन किया गया है। रिस्ट्रिक्टेड ट्रांजैक्शनल मेमोरी (आर. टी. एम.) एक नया निर्देश सेट इंटरफेस है जो प्रोग्रामरों के लिए अधिक लचीलापन प्रदान करता है। टी. एस. एक्स./टी. एस. एक्स.-एन. आई. लेन-देन कोड क्षेत्रों के आशावादी निष्पादन को सक्षम बनाता है। हार्डवेयर परस्पर विरोधी स्मृति अभिगम के लिए कई धागे की निगरानी करता है, जबकि सफलतापूर्वक पूरा नहीं किए जा सकने वाले लेनदेन को निरस्त और वापस करता है। असफल लेन-देन का पता लगाने और उन्हें संभालने के लिए सॉफ्टवेयर के लिए तंत्र प्रदान किए जाते हैं। दूसरे शब्दों में, लेन-देन निष्पादन के माध्यम से लॉक विलोपन जहां संभव हो स्मृति लेनदेन का उपयोग एक तेज मार्ग के रूप में करता है, जबकि धीमा (फॉलबैक) मार्ग अभी भी एक सामान्य लॉक है। हार्डवेयर लॉक एलिजन हार्डवेयर लॉक एलिजन (एच. एल. ई.) दो नए निर्देश उपसर्ग, एक्स. ए. सी. क्यू. आई. आर. ई. और एक्स. आर. ई. एल. ई. ए. एस. ई. जोड़ता है। ये दोनों उपसर्ग मौजूदा आरईपीएनई/आरईपीई उपसर्गों (एफ2एच/एफ3एच) के ऑपकोड का पुनः उपयोग करते हैं। एच. एल. ई. का समर्थन नहीं करने वाले प्रोसेसरों पर, आर. ई. पी. एन. ई./आर. ई. पी. ई. उपसर्गों को उन निर्देशों पर नजरअंदाज कर दिया जाता है जिनके लिए एक्स. ए. सी. क्यू. आई. आर. ई./एक्स. आर. ई. एल. ई. ए. एस. ई. मान्य हैं, इस प्रकार पिछड़े संगतता को सक्षम करता है। XACQUIRE उपसर्ग संकेत का उपयोग केवल एक स्पष्ट लॉक उपसर्ग के साथ निम्नलिखित निर्देशों के साथ किया जा सकता हैः ADD, ADC, AND, BTC, BTR, BTS, CMPXCHG, CMPXCHG8B, DEC, INC, NEG, NOT, OR, SBB, SUV, XOR, XADD, और XCHG। एक्स. सी. एच. जी. निर्देश का उपयोग लॉक उपसर्ग के बिना भी किया जा सकता है। एक्स. आर. ई. एल. ई. ए. एस. ई. उपसर्ग संकेत का उपयोग ऊपर सूचीबद्ध निर्देशों के साथ और एम. ओ. वी. एम. एम., आर. ई. जी. और एम. ओ. वी. एम., आई. एम. एम. निर्देशों के साथ किया जा सकता है। एच. एल. ई. लेखन को एक ताला में छोड़कर एक महत्वपूर्ण खंड के आशावादी निष्पादन की अनुमति देता है, ताकि ताला अन्य धागे के लिए मुक्त प्रतीत हो। एक असफल लेन-देन के परिणामस्वरूप XACQUIRE-पूर्वनिर्धारित निर्देश से निष्पादन फिर से शुरू हो जाता है, लेकिन निर्देश को ऐसा मानते हुए जैसे कि XACQUIRE उपसर्ग मौजूद न हो। रिस्ट्रिक्टेड ट्रांजैक्शनल मेमोरी रिस्ट्रिक्टेड ट्रांजैक्शनल मेमोरी (आर. टी. एम.) एच. एल. ई. का एक वैकल्पिक कार्यान्वयन है जो प्रोग्रामर को एक फॉलबैक कोड पथ निर्दिष्ट करने के लिए लचीलापन देता है जिसे तब निष्पादित किया जाता है जब लेनदेन को सफलतापूर्वक निष्पादित नहीं किया जा सकता है। एच. एल. ई. के विपरीत, आर. टी. एम. उन प्रोसेसरों के साथ पिछड़े संगत नहीं है जो इसका समर्थन नहीं करते हैं। पिछड़े संगतता के लिए, नए निर्देशों का उपयोग करने से पहले CPU में RTM के लिए समर्थन का पता लगाने के लिए कार्यक्रमों की आवश्यकता होती है। आर. टी. एम. तीन नए निर्देश जोड़ता हैः एक्स. बी. ई. जी. आई. एन., एक्स. ई. एन. डी. और एक्स. ए. बी. ओ. टी.। एक्स. बी. ई. जी. आई. एन. और एक्स. ई. एन. डी. निर्देश एक लेन-देन कोड क्षेत्र की शुरुआत और अंत को चिह्नित करते हैं; एक्स. ए. बी. ओ. टी. निर्देश स्पष्ट रूप से एक लेन-देन को समाप्त करता है। लेन-देन विफलता प्रोसेसर को XBEGIN निर्देश द्वारा निर्दिष्ट फॉलबैक कोड पथ पर पुनर्निर्देशित करती है, जिसमें EAX रजिस्टर में गर्भपात की स्थिति वापस आ जाती है। एक्स. टी. ई. एस. टी. निर्देश टी. एस. एक्स./टी. एस. एक्स.-एन. आई. एक नया एक्स. टी. ई. एस. टी. निर्देश प्रदान करता है जो बताता है कि प्रोसेसर एक लेन-देन क्षेत्र को निष्पादित कर रहा है या नहीं। यह निर्देश प्रोसेसर द्वारा समर्थित है यदि यह एच. एल. ई. या आर. टी. एम. या दोनों का समर्थन करता है। टी. एस. एक्स. सस्पेंड लोड एड्रेस ट्रैकिंग टी. एस. एक्स./टी. एस. एक्स.-एन. आई. सस्पेंड लोड एड्रेस ट्रैकिंग (टी. एस. एक्स. एल. डी. टी. आर. के.) एक निर्देश सेट एक्सटेंशन है जो लेनदेन क्षेत्र के भीतर कोड के एक खंड में मेमोरी से ट्रैकिंग लोड को अस्थायी रूप से अक्षम करने की अनुमति देता है। यह सुविधा एच. एल. ई. और आर. टी. एम. का विस्तार करती है, और प्रोसेसर में इसके समर्थन का अलग से पता लगाया जाना चाहिए। टी. एस. एक्स. एल. डी. टी. आर. के. ने लोड एड्रेस ट्रैकिंग को निलंबित करने और फिर से शुरू करने के लिए क्रमशः दो नए निर्देश, एक्स. एस. यू. एस. एल. डी. टी. आर. के. और एक्स. आर. ई. एस. एल. डी. टी. आर. के. पेश किए हैं। जबकि ट्रैकिंग निलंबित है, मेमोरी से कोई भी भार लेनदेन रीड सेट में नहीं जोड़ा जाएगा। इसका मतलब है कि जब तक इन स्मृति स्थानों को निलंबित क्षेत्र के बाहर लेनदेन पढ़ने या लिखने के सेट में नहीं जोड़ा जाता है, तब तक इन स्थानों पर अन्य धागे से लिखने से लेनदेन बंद नहीं होगा। लेन-देन क्षेत्र के भीतर कोड के एक हिस्से के लिए लोड एड्रेस ट्रैकिंग को निलंबित करने से मेमोरी की मात्रा को कम करने की अनुमति मिलती है जिसे पढ़ने-लिखने के संघर्षों के लिए ट्रैक करने की आवश्यकता होती है और इसलिए लेनदेन के सफल होने की संभावना बढ़ जाती है। कार्यान्वयन इंटेल का टी. एस. एक्स./टी. एस. एक्स.-एन. आई. विनिर्देश वर्णन करता है कि कैसे लेन-देन स्मृति प्रोग्रामरों के संपर्क में आती है, लेकिन वास्तविक लेन-देन स्मृति कार्यान्वयन पर विवरण को रोकता है। इंटेल अपने डेवलपर और अनुकूलन नियमावली में निर्दिष्ट करता है कि हैस्वेल एक कैश लाइन की बारीकियों पर रीड-सेट और राइट-सेट दोनों को बनाए रखता है, प्रोसेसर के एल1 डेटा कैश में पतों पर नज़र रखता है। इंटेल का यह भी कहना है कि डेटा संघर्षों का पता कैश कोहेरेन्स प्रोटोकॉल के माध्यम से लगाया जाता है। हैस्वेल के एल1 डेटा कैश में आठ की सहयोगीता है। इसका मतलब है कि इस कार्यान्वयन में, एक लेनदेन निष्पादन जो एक ही कैश सेट पर मानचित्रण करने वाले नौ अलग-अलग स्थानों पर लिखा जाता है, समाप्त हो जाएगा। हालांकि, सूक्ष्म-वास्तुकला कार्यान्वयन के कारण, इसका मतलब यह नहीं है कि एक ही सेट तक कम पहुंच की गारंटी है कि वे कभी भी रद्द नहीं होंगे। इसके अतिरिक्त, हाइपर-थ्रेडिंग प्रौद्योगिकी के साथ सीपीयू विन्यास में, एल1 कैश को एक ही कोर पर दो धागे के बीच साझा किया जाता है, इसलिए एक ही कोर के भाई-बहन तार्किक प्रोसेसर में संचालन निष्कासन का कारण बन सकता है। स्वतंत्र शोध हैस्वेल की लेन-देन स्मृति की ओर इशारा करता है जो संभवतः लेन-देन डेटा और रजिस्टर चेकप्वाइंट के लिए प्रति-कोर कैश का उपयोग करने वाली एक स्थगित अद्यतन प्रणाली है। दूसरे शब्दों में, हैस्वेल के कैश-आधारित लेन-देन स्मृति प्रणाली का उपयोग करने की अधिक संभावना है, क्योंकि यह बहुत कम जोखिम भरा कार्यान्वयन विकल्प है। दूसरी ओर, इंटेल का स्काईलेक या बाद वाला इस कैश-आधारित दृष्टिकोण को उसी उद्देश्य के लिए मेमोरी ऑर्डरिंग बफर (एमओबी) के साथ जोड़ सकता है, संभवतः बहु-संस्करण लेनदेन मेमोरी भी प्रदान करता है जो सट्टा मल्टीथ्रेडिंग के लिए अधिक उपयुक्त है। अगस्त 2014 में, इंटेल ने घोषणा की कि हैस्वेल, हैस्वेल-ई, हैस्वेल-ईपी और शुरुआती ब्रॉडवेल सीपीयू पर टीएसएक्स/टीएसएक्स-एनआई कार्यान्वयन में एक बग मौजूद है, जिसके परिणामस्वरूप एक माइक्रोकोड अद्यतन के माध्यम से प्रभावित सीपीयू पर टीएसएक्स/टीएसएक्स-एनआई सुविधा को अक्षम कर दिया गया। नवंबर 2014 में वीप्रो-सक्षम कोर एम-5वाई70 ब्रॉडवेल सीपीयू के एफ-0 स्टेपिंग्स में बग को ठीक किया गया था। बग पाया गया और फिर एथेंस के राष्ट्रीय तकनीकी विश्वविद्यालय के स्कूल ऑफ इलेक्ट्रिकल एंड कंप्यूटर इंजीनियरिंग में एक डिप्लोमा थीसिस के दौरान रिपोर्ट किया गया। अक्टूबर 2018 में, इंटेल ने कुछ स्काईलेक प्रोसेसरों में पाए जाने वाले टी. एस. एक्स./टी. एस. एक्स.-एन. आई. मेमोरी ऑर्डरिंग मुद्दे का खुलासा किया। एक माइक्रोकोड अद्यतन के परिणामस्वरूप, प्रभावित सीपीयू में एच. एल. ई. समर्थन अक्षम कर दिया गया था, और इंटेल एसजीएक्स मोड या सिस्टम प्रबंधन मोड (एस. एम. एम.) के बाहर उपयोग किए जाने पर एक प्रदर्शन काउंटर का त्याग करके आर. टी. एम. को कम किया गया था। सिस्टम सॉफ्टवेयर को या तो प्रभावी रूप से आर. टी. एम. को अक्षम करना होगा या प्रभावित प्रदर्शन काउंटर का उपयोग न करने के लिए प्रदर्शन निगरानी उपकरणों को अद्यतन करना होगा। जून 2021 में, इंटेल ने एक माइक्रोकोड अद्यतन प्रकाशित किया जो टी. एस. एक्स. एसिंक्रोनस एबॉर्ट (टी. ए. ए.) भेद्यता के लिए एक शमन के रूप में स्काईलेक से कॉफी लेक और व्हिस्की लेक के माध्यम से विभिन्न ज़ीऑन और कोर प्रोसेसर मॉडल पर टी. एस. एक्स./टी. एस. एक्स.-एन. आई. को अक्षम करता है। मेमोरी ऑर्डरिंग समस्या के लिए पहले के शमन को हटा दिया गया था। डिफ़ॉल्ट रूप से, अद्यतन माइक्रोकोड के साथ, प्रोसेसर अभी भी आर. टी. एम. के लिए समर्थन का संकेत देगा लेकिन हमेशा लेनदेन को रद्द कर देगा। सिस्टम सॉफ्टवेयर सी. पी. यू. आई. डी. निर्देश से टी. एस. एक्स./टी. एस. एक्स.-एन. आई. के लिए संचालन और मुखौटा समर्थन के इस तरीके का पता लगाने में सक्षम है, जो अनुप्रयोगों द्वारा टी. एस. एक्स./टी. एस. एक्स.-एन. आई. का पता लगाने से रोकता है। सिस्टम सॉफ्टवेयर "असमर्थित सॉफ्टवेयर विकास मोड" को भी सक्षम कर सकता है, जहां आर. टी. एम. पूरी तरह से सक्रिय है, लेकिन इस मामले में आर. टी. एम. का उपयोग पहले वर्णित मुद्दों के अधीन हो सकता है, और इसलिए इस मोड को उत्पादन प्रणालियों पर सक्षम नहीं किया जाना चाहिए। एस. जी. एक्स. सक्रिय होने पर कुछ प्रणालियों पर आर. टी. एम. को फिर से सक्षम नहीं किया जा सकता है। एच. एल. ई. हमेशा अक्षम रहता है। मई 2020 से इंटेल 64 और आई. ए.-32 आर्किटेक्चर सॉफ्टवेयर डेवलपर मैनुअल, वॉल्यूम 1, चैप्टर 2.5 इंटेल इंस्ट्रक्शन सेट आर्किटेक्चर एंड फीचर्स रिमूव्ड के अनुसार, एच. एल. ई. को 2019 और उसके बाद जारी किए गए इंटेल उत्पादों से हटा दिया गया है। आर. टी. एम. को हटाए जाने के रूप में प्रलेखित नहीं किया गया है। हालाँकि, इंटेल 10वीं पीढ़ी के कॉमेट लेक और आइस लेक क्लाइंट प्रोसेसर, जो 2020 में जारी किए गए थे, एच. एल. ई. और आर. टी. एम. दोनों सहित टी. एस. एक्स./टी. एस. एक्स.-एन. आई. का समर्थन नहीं करते हैं। कॉमेट लेक प्रोसेसर के इंजीनियरिंग संस्करण अभी भी टी. एस. एक्स./टी. एस. एक्स.-एन. आई. समर्थन बनाए हुए थे। अक्टूबर 2020 से इंटेल आर्किटेक्चर इंस्ट्रक्शन सेट एक्सटेंशन प्रोग्रामिंग संदर्भ संशोधन 41 में, एक नए टी. एस. एक्स. एल. डी. टी. आर. के. निर्देश सेट विस्तार का दस्तावेजीकरण किया गया था। इसे पहली बार जनवरी 2023 में जारी सैफायर रैपिड्स प्रोसेसर में शामिल किया गया था। एडवांस्ड सिंक्रोनाइजेशन फैसिलिटी-ए. एम. डी. की प्रतिस्पर्धी प्रौद्योगिकी संदर्भ आगे पढ़ें। इंटेल टी. एस. एक्स. में हार्डवेयर लॉक-एलिशन में सॉफ्टवेयर-आधारित सुधार। बाहरी लिंक आई. डी. एफ. 2012 (पी. डी. एफ.) से प्रस्तुति लिनक्स में ताला विलोपन जोड़ना, लिनक्स प्लंबर सम्मेलन 2012 (पी. डी. एफ.) जी. एन. यू. सी. पुस्तकालय में ताला विलोपन, एंडी क्लेन टी. एस. एक्स. अनुकूलन गाइड द्वारा 30 जनवरी, 2013, अध्याय 12 (पी. डी. एफ.) सॉफ्टवेयर डेवलपर्स मैनुअल, खंड 1, अध्याय 2.5 (पी. डी. एफ.) इंटेल लेनदेन सिंक्रोनाइजेशन एक्सटेंशन x86, माइक्रोकोड के बारे में वेब संसाधनः बी. यू. जी.: माइक्रोकोड अपडेट जो x86 _ क्षमता को बदल देता है, एल. के. एम. एल., सितंबर 2014 (इसी तरह की एक और बग रिपोर्ट भी है) इंटेल माइक्रोकोड, जेंटू, सितंबर 19,2015 2012 X86 निर्देशों में कंप्यूटर से संबंधित परिचय समानांतर