Transactional Synchronization Extensions
ٹرانزیکشنل سنکرونائزیشن ایکسٹینشنز (ٹی ایس ایکس)، جسے ٹرانزیکشنل سنکرونائزیشن ایکسٹینشنز نیو انسٹرکشنز (ٹی ایس ایکس-این آئی) بھی کہا جاتا ہے، x86 انسٹرکشن سیٹ آرکیٹیکچر (آئی ایس اے) کی توسیع ہے جو ہارڈ ویئر ٹرانزیکشنل میموری سپورٹ کا اضافہ کرتی ہے، لاک ایلیژن کے ذریعے ملٹی تھریڈ سافٹ ویئر کے نفاذ کو تیز کرتی ہے۔ مختلف معیارات کے مطابق، ٹی ایس ایکس/ٹی ایس ایکس-این آئی مخصوص کام کے بوجھ میں تقریبا 40 فیصد تیزی سے ایپلی کیشنز پر عمل درآمد، اور 4-5 گنا زیادہ ڈیٹا بیس ٹرانزیکشن فی سیکنڈ (ٹی پی ایس) فراہم کر سکتا ہے۔ ٹی ایس ایکس/ٹی ایس ایکس-این آئی کو انٹیل نے فروری 2012 میں دستاویزی شکل دی تھی، اور جون 2013 میں ہاس ویل مائیکرو آرکیٹیکچر پر مبنی منتخب انٹیل مائکرو پروسیسرز پر اس کا آغاز ہوا۔ 45XX سے نیچے کے ہاس ویل پروسیسرز کے ساتھ ساتھ R-سیریز اور K-سیریز (غیر مقفل ضرب کے ساتھ) SKUs TSX/TSX-NI کی حمایت نہیں کرتے ہیں۔ اگست 2014 میں، انٹیل نے ٹی ایس ایکس/ٹی ایس ایکس-این آئی کے نفاذ میں ہیسویل، ہیسویل-ای، ہیسویل-ای پی اور ابتدائی براڈ ویل سی پی یوز کے موجودہ اقدامات پر ایک بگ کا اعلان کیا، جس کے نتیجے میں مائیکرو کوڈ اپ ڈیٹ کے ذریعے متاثرہ سی پی یوز پر ٹی ایس ایکس/ٹی ایس ایکس-این آئی فیچر کو غیر فعال کر دیا گیا۔ 2016 میں، ٹی ایس ایکس/ٹی ایس ایکس-این آئی کے لین دین کی غلطیوں کو سنبھالنے کے طریقے کا غلط استعمال کرتے ہوئے ایک سائیڈ چینل ٹائمنگ اٹیک پایا گیا (یعنی۔ تمام بڑے آپریٹنگ سسٹمز پر کرنل ایڈریس اسپیس لے آؤٹ رینڈمائزیشن (کے اے ایس ایل آر) کو توڑنے کے لیے۔ 2021 میں، انٹیل نے ایک مائیکرو کوڈ اپ ڈیٹ جاری کیا جس نے دریافت شدہ حفاظتی مسائل کو کم کرنے کے لیے اسکائی لیک سے کافی لیک تک سی پی یو نسلوں پر ٹی ایس ایکس/ٹی ایس ایکس-این آئی فیچر کو غیر فعال کر دیا۔ ٹی ایس ایکس/ٹی ایس ایکس-این آئی ایمولیشن کے لیے سپورٹ انٹیل سافٹ ویئر ڈویلپمنٹ ایمولیٹر کے حصے کے طور پر فراہم کی جاتی ہے۔ کیو ای ایم یو کانٹے میں ٹی ایس ایکس/ٹی ایس ایکس-این آئی ایمولیشن کے لیے تجرباتی سپورٹ بھی ہے۔ خصوصیات ٹی ایس ایکس/ٹی ایس ایکس-این آئی لین دین پر عمل درآمد کے لیے کوڈ کے علاقوں کو نامزد کرنے کے لیے دو سافٹ ویئر انٹرفیس فراہم کرتا ہے۔ ہارڈ ویئر لاک ایلیژن (ایچ ایل ای) ایک انسٹرکشن پریفیکس پر مبنی انٹرفیس ہے جسے ٹی ایس ایکس/ٹی ایس ایکس-این آئی سپورٹ کے بغیر پروسیسرز کے ساتھ بیک ورڈ مطابقت کے لیے ڈیزائن کیا گیا ہے۔ محدود ٹرانزیکشنل میموری (آر ٹی ایم) ایک نیا انسٹرکشن سیٹ انٹرفیس ہے جو پروگرامرز کے لیے زیادہ لچک فراہم کرتا ہے۔ ٹی ایس ایکس/ٹی ایس ایکس-این آئی ٹرانزیکشنل کوڈ کے علاقوں کے پر امید عمل درآمد کو قابل بناتا ہے۔ ہارڈ ویئر متصادم میموری رسائی کے لیے متعدد دھاگوں کی نگرانی کرتا ہے، جبکہ ایسے لین دین کو روکتا اور واپس چلاتا ہے جو کامیابی سے مکمل نہیں ہو سکتے۔ ناکام لین دین کا پتہ لگانے اور اسے سنبھالنے کے لیے سافٹ ویئر کے لیے میکانزم فراہم کیے جاتے ہیں۔ دوسرے لفظوں میں، ٹرانزیکشنل ایگزیکیوشن کے ذریعے لاک ایلیژن جہاں ممکن ہو میموری ٹرانزیکشنز کو تیز راستے کے طور پر استعمال کرتا ہے، جبکہ سلو (فال بیک) راستہ اب بھی ایک نارمل لاک ہے۔ ہارڈ ویئر لاک ایلیژن ہارڈ ویئر لاک ایلیژن (ایچ ایل ای) میں دو نئے انسٹرکشن پریفیکس، XACQUIRE اور XRELEASE شامل کیے گئے ہیں۔ یہ دونوں سابقہ موجودہ REPNE/REPE سابقہ (F2H/F3H) کے اوپکوڈز کو دوبارہ استعمال کرتے ہیں۔ ان پروسیسرز پر جو ایچ ایل ای کی حمایت نہیں کرتے ہیں، REPNE/REPE پریفیکس کو ان ہدایات پر نظر انداز کر دیا جاتا ہے جن کے لیے XACQUIRE/XRELEASE درست ہے، اس طرح پسماندہ مطابقت کو فعال کرتا ہے۔ XACQUIRE سابقہ اشارہ صرف مندرجہ ذیل ہدایات کے ساتھ ایک واضح لاک سابقہ کے ساتھ استعمال کیا جا سکتا ہے: ADD، ADC، AND، BTC، BTR، BTS، CMPXCHG، CMPXCHG8B، DEC، INC، NEG، NOT، OR، SBB، SUV، XOR، XADD، اور XCHG۔ ایکس سی ایچ جی ہدایات کو لاک پریفیکس کے بغیر بھی استعمال کیا جا سکتا ہے۔ XRELEASE پریفیکس اشارہ کو اوپر درج کردہ ہدایات کے ساتھ اور ایم او وی میم، ریگ اور ایم او وی میم، ام ہدایات دونوں کے ساتھ استعمال کیا جا سکتا ہے۔ ایچ ایل ای تحریر کو تالے پر چھوڑ کر ایک اہم حصے کے پر امید عمل درآمد کی اجازت دیتا ہے، تاکہ تالا دوسرے دھاگوں کے لیے آزاد نظر آئے۔ ایک ناکام لین دین کے نتیجے میں XACQUIRE-پہلے سے طے شدہ ہدایت سے عمل دوبارہ شروع ہوتا ہے، لیکن ہدایت کو ایسا ماننا جیسے کہ XACQUIRE سابقہ موجود نہ ہو۔ محدود ٹرانزیکشنل میموری محدود ٹرانزیکشنل میموری (آر ٹی ایم) ایچ ایل ای کا ایک متبادل نفاذ ہے جو پروگرامر کو فال بیک کوڈ کے راستے کی وضاحت کرنے کی لچک دیتا ہے جو اس وقت انجام دیا جاتا ہے جب لین دین کو کامیابی سے انجام نہیں دیا جاسکتا ہے۔ ایچ ایل ای کے برعکس، آر ٹی ایم ان پروسیسرز کے ساتھ پسماندہ مطابقت نہیں رکھتا جو اس کی حمایت نہیں کرتے ہیں۔ پسماندہ مطابقت کے لیے، پروگراموں کو نئی ہدایات استعمال کرنے سے پہلے سی پی یو میں آر ٹی ایم کے لیے سپورٹ کا پتہ لگانے کی ضرورت ہوتی ہے۔ RTM تین نئی ہدایات شامل کرتا ہے: XBEGIN، XEND اور XABORT۔ XBEGIN اور XEND ہدایات ٹرانزیکشنل کوڈ ریجن کے آغاز اور اختتام کو نشان زد کرتی ہیں۔ XABORT ہدایت واضح طور پر ٹرانزیکشن کو روکتی ہے۔ لین دین کی ناکامی پروسیسر کو XBEGIN ہدایت کے ذریعہ مخصوص فال بیک کوڈ کے راستے پر ری ڈائریکٹ کرتی ہے، جس میں اییکس رجسٹر میں اسقاط حمل کی حیثیت واپس آتی ہے۔ ایکس ٹی ای ایس ٹی ہدایت ٹی ایس ایکس/ٹی ایس ایکس-این آئی ایک نئی ایکس ٹی ای ایس ٹی ہدایت فراہم کرتی ہے جو یہ بتاتی ہے کہ آیا پروسیسر لین دین کے علاقے کو انجام دے رہا ہے۔ اگر یہ ایچ ایل ای یا آر ٹی ایم یا دونوں کو سپورٹ کرتا ہے تو یہ ہدایت پروسیسر کے ذریعے سپورٹ کی جاتی ہے۔ ٹی ایس ایکس سسپینڈ لوڈ ایڈریس ٹریکنگ ٹی ایس ایکس/ٹی ایس ایکس-این آئی سسپینڈ لوڈ ایڈریس ٹریکنگ (ٹی ایس ایکس ایل ڈی ٹی آر کے) ایک انسٹرکشن سیٹ ایکسٹینشن ہے جو ٹرانزیکشنل ریجن کے اندر کوڈ کے ایک حصے میں میموری سے ٹریکنگ لوڈ کو عارضی طور پر غیر فعال کرنے کی اجازت دیتی ہے۔ یہ خصوصیت ایچ ایل ای اور آر ٹی ایم میں توسیع کرتی ہے، اور پروسیسر میں اس کی حمایت کا الگ سے پتہ لگانا ضروری ہے۔ ٹی ایس ایکس ایل ڈی ٹی آر کے نے بالترتیب لوڈ ایڈریس ٹریکنگ کو معطل کرنے اور دوبارہ شروع کرنے کے لیے دو نئی ہدایات، ایکس ایس یو ایس ایل ڈی ٹی آر کے اور ایکس آر ای ایس ایل ڈی ٹی آر کے متعارف کرائی ہیں۔ جب کہ ٹریکنگ معطل ہے، میموری سے کوئی بھی بوجھ ٹرانزیکشن ریڈ سیٹ میں شامل نہیں کیا جائے گا۔ اس کا مطلب یہ ہے کہ، جب تک کہ یہ میموری لوکیشنز معطل علاقے سے باہر ٹرانزیکشن ریڈ یا رائٹ سیٹ میں شامل نہیں کیے جاتے، ان مقامات پر دوسرے تھریڈز کے ذریعے لکھنے سے ٹرانزیکشن کا خاتمہ نہیں ہوگا۔ لین دین کے علاقے میں کوڈ کے ایک حصے کے لیے لوڈ ایڈریس ٹریکنگ کو معطل کرنے سے میموری کی مقدار کو کم کرنے کی اجازت ملتی ہے جسے پڑھنے لکھنے کے تنازعات کے لیے ٹریک کرنے کی ضرورت ہوتی ہے اور اس وجہ سے لین دین کے کامیاب ارتکاب کے امکان میں اضافہ ہوتا ہے۔ نفاذ انٹیل کی ٹی ایس ایکس/ٹی ایس ایکس-این آئی تفصیلات بیان کرتی ہیں کہ کس طرح ٹرانزیکشنل میموری پروگرامرز کے سامنے آتی ہے، لیکن اصل ٹرانزیکشنل میموری کے نفاذ کی تفصیلات کو روکتا ہے۔ انٹیل اپنے ڈویلپر اور آپٹیمائزیشن دستی میں وضاحت کرتا ہے کہ ہس ویل کیش لائن کی گرینولرٹی پر ریڈ سیٹ اور رائٹ سیٹ دونوں کو برقرار رکھتا ہے، پروسیسر کے ایل 1 ڈیٹا کیش میں پتے کو ٹریک کرتا ہے۔ انٹیل یہ بھی کہتا ہے کہ ڈیٹا کے تنازعات کا پتہ کیش کوہرینس پروٹوکول کے ذریعے لگایا جاتا ہے۔ ہاس ویل کے ایل 1 ڈیٹا کیش میں آٹھ کی ایسوسی ایٹیویٹی ہے۔ اس کا مطلب یہ ہے کہ اس عمل درآمد میں، ایک لین دین پر عمل درآمد جو ایک ہی کیش سیٹ پر نقشہ سازی کرنے والے نو الگ الگ مقامات پر لکھتا ہے، ختم ہو جائے گا۔ تاہم، مائیکرو آرکیٹیکچرل نفاذ کی وجہ سے، اس کا مطلب یہ نہیں ہے کہ ایک ہی سیٹ تک کم رسائی کی ضمانت ہے کہ وہ کبھی بھی اسقاط نہیں کریں گے۔ مزید برآں، ہائپر تھریڈنگ ٹیکنالوجی کے ساتھ سی پی یو کنفیگریشن میں، ایل 1 کیش کو ایک ہی کور پر دو دھاگوں کے درمیان شیئر کیا جاتا ہے، لہذا ایک ہی کور کے بہن بھائی کے منطقی پروسیسر میں آپریشن بے دخلی کا سبب بن سکتے ہیں۔ آزاد تحقیق ہس ویل کی ٹرانزیکشنل میموری کی طرف اشارہ کرتی ہے جو ممکنہ طور پر ٹرانزیکشنل ڈیٹا اور رجسٹر چیک پوائنٹس کے لیے فی کور کیشز کا استعمال کرتے ہوئے ایک موخر اپ ڈیٹ سسٹم ہے۔ دوسرے لفظوں میں، ہاس ویل کے کیش پر مبنی ٹرانزیکشنل میموری سسٹم استعمال کرنے کا زیادہ امکان ہے، کیونکہ یہ عمل درآمد کا بہت کم خطرناک انتخاب ہے۔ دوسری طرف، انٹیل کا اسکائی لیک یا بعد میں اس کیشے پر مبنی نقطہ نظر کو اسی مقصد کے لیے میموری آرڈرنگ بفر (ایم او بی) کے ساتھ جوڑ سکتا ہے، ممکنہ طور پر ملٹی ورژن ٹرانزیکشنل میموری بھی فراہم کرتا ہے جو قیاس آرائی پر مبنی ملٹی تھریڈنگ کے لیے زیادہ قابل عمل ہے۔ تاریخ اور کیڑے اگست 2014 میں، انٹیل نے اعلان کیا کہ ہیسویل، ہیسویل-ای، ہیسویل-ای پی اور ابتدائی براڈ ویل سی پی یوز پر ٹی ایس ایکس/ٹی ایس ایکس-این آئی کے نفاذ میں ایک بگ موجود ہے، جس کے نتیجے میں مائیکرو کوڈ اپ ڈیٹ کے ذریعے متاثرہ سی پی یوز پر ٹی ایس ایکس/ٹی ایس ایکس-این آئی فیچر کو غیر فعال کر دیا گیا۔ اس بگ کو نومبر 2014 میں وی پرو فعال کور ایم-5 وائی 70 براڈ ویل سی پی یو کے ایف-0 سٹیپنگز میں طے کیا گیا تھا۔ بگ پایا گیا اور پھر ایتھنز کی نیشنل ٹیکنیکل یونیورسٹی کے اسکول آف الیکٹریکل اینڈ کمپیوٹر انجینئرنگ میں ڈپلومہ تھیسس کے دوران اس کی اطلاع دی گئی۔ اکتوبر 2018 میں، انٹیل نے کچھ اسکائی لیک پروسیسرز میں پائے جانے والے ٹی ایس ایکس/ٹی ایس ایکس-این آئی میموری آرڈرنگ کے مسئلے کا انکشاف کیا۔ مائیکرو کوڈ اپ ڈیٹ کے نتیجے میں، متاثرہ سی پی یوز میں ایچ ایل ای سپورٹ کو غیر فعال کر دیا گیا تھا، اور انٹیل ایس جی ایکس موڈ یا سسٹم مینجمنٹ موڈ (ایس ایم ایم) سے باہر استعمال ہونے پر ایک پرفارمنس کاؤنٹر کی قربانی دے کر آر ٹی ایم کو کم کیا گیا تھا۔ سسٹم سافٹ ویئر کو یا تو مؤثر طریقے سے آر ٹی ایم کو غیر فعال کرنا ہوگا یا کارکردگی کی نگرانی کے ٹولز کو اپ ڈیٹ کرنا ہوگا تاکہ متاثرہ پرفارمنس کاؤنٹر کا استعمال نہ کیا جا سکے۔ جون 2021 میں، انٹیل نے ایک مائیکرو کوڈ اپ ڈیٹ شائع کیا جو اسکائی لیک سے کافی لیک اور وسکی لیک کے ذریعے مختلف زیون اور کور پروسیسر ماڈلز پر ٹی ایس ایکس/ٹی ایس ایکس-این آئی کو ٹی ایس ایکس اسنکرونس ابورٹ (ٹی اے اے) کی کمزوری کو کم کرنے کے طور پر مزید غیر فعال کرتا ہے۔ میموری آرڈر کرنے کے مسئلے کے لیے پہلے کی تخفیف کو ہٹا دیا گیا تھا۔ ڈیفالٹ طور پر، اپڈیٹڈ مائیکرو کوڈ کے ساتھ، پروسیسر پھر بھی آر ٹی ایم کے لیے سپورٹ کی نشاندہی کرے گا لیکن ہمیشہ لین دین کو روک دے گا۔ سسٹم سافٹ ویئر سی پی یو آئی ڈی ہدایات سے ٹی ایس ایکس/ٹی ایس ایکس-این آئی کے لیے آپریشن کے اس موڈ اور ماسک سپورٹ کا پتہ لگانے کے قابل ہے، جو ایپلی کیشنز کے ذریعے ٹی ایس ایکس/ٹی ایس ایکس-این آئی کا پتہ لگانے سے روکتا ہے۔ سسٹم سافٹ ویئر "غیر تعاون یافتہ سافٹ ویئر ڈویلپمنٹ موڈ" کو بھی فعال کر سکتا ہے، جہاں آر ٹی ایم مکمل طور پر فعال ہے، لیکن اس صورت میں آر ٹی ایم کا استعمال پہلے بیان کردہ مسائل سے مشروط ہو سکتا ہے، اور اس لیے اس موڈ کو پروڈکشن سسٹمز پر فعال نہیں کیا جانا چاہیے۔ کچھ سسٹمز پر ایس جی ایکس فعال ہونے پر آر ٹی ایم کو دوبارہ فعال نہیں کیا جا سکتا۔ ایچ ایل ای ہمیشہ غیر فعال رہتا ہے۔ مئی 2020 سے انٹیل 64 اور آئی اے-32 آرکیٹیکچرز سافٹ ویئر ڈویلپر کے دستی کے مطابق، جلد 1، باب 2.5 انٹیل انسٹرکشن سیٹ آرکیٹیکچر اور خصوصیات کو ہٹا دیا گیا، ایچ ایل ای کو 2019 اور اس کے بعد ریلیز ہونے والی انٹیل مصنوعات سے ہٹا دیا گیا ہے۔ آر ٹی ایم کو ہٹائے جانے کے طور پر دستاویزی نہیں کیا گیا ہے۔ تاہم، انٹیل کی 10 ویں نسل کے کامیٹ لیک اور آئس لیک کلائنٹ پروسیسرز، جو 2020 میں جاری کیے گئے تھے، ٹی ایس ایکس/ٹی ایس ایکس-این آئی کی حمایت نہیں کرتے، بشمول ایچ ایل ای اور آر ٹی ایم دونوں۔ کامیٹ لیک پروسیسرز کے انجینئرنگ ورژن اب بھی ٹی ایس ایکس/ٹی ایس ایکس-این آئی سپورٹ کو برقرار رکھے ہوئے تھے۔ اکتوبر 2020 سے انٹیل آرکیٹیکچر انسٹرکشن سیٹ ایکسٹینشنز پروگرامنگ ریفرنس ترمیم 41 میں، ایک نئے ٹی ایس ایکس ایل ڈی ٹی آر کے انسٹرکشن سیٹ ایکسٹینشن کو دستاویزی شکل دی گئی۔ اسے پہلی بار جنوری 2023 میں جاری ہونے والے سیفائر ریپڈز پروسیسرز میں شامل کیا گیا تھا۔ ایڈوانسڈ سنکرونائزیشن فیسیلٹی-اے ایم ڈی کی مسابقتی ٹیکنالوجی حوالہ جات مزید پڑھنا بھی دیکھیں۔ انٹیل ٹی ایس ایکس میں ہارڈ ویئر لاک ایلیژن میں سافٹ ویئر پر مبنی بہتری۔ بیرونی روابط آئی ڈی ایف 2012 (پی ڈی ایف) سے پریزنٹیشن لینکس میں لاک ایلیژن شامل کرنا، لینکس پلمبرز کانفرنس 2012 (پی ڈی ایف) جی این یو سی لائبریری میں لاک ایلیژن، LWN.net، 30 جنوری 2013، اینڈی کلین ٹی ایس ایکس آپٹیمائزیشن گائیڈ، باب 12 (پی ڈی ایف) سافٹ ویئر ڈویلپرز دستی، جلد 1، باب 2.5 (پی ڈی ایف) انٹیل ٹرانزیکشنل سنکرونائزیشن ایکسٹینشنز x86 کے بارے میں ویب وسائل، مائیکرو کوڈ: بی یو جی: مائیکرو کوڈ اپ ڈیٹ جو x86 _ صلاحیت کو تبدیل کرتا ہے، ایل کے ایم ایل، ستمبر 2014 (اسی طرح کی ایک اور بگ رپورٹ بھی ہے) انٹیل مائیکرو کوڈ، جینٹو، ستمبر 19,2015 کمپیوٹر سے متعلق تعارف 2012 X86 ہدایات میں متوازی