MMX
MMX ایک ابتدائی x86 پیکڈ انٹیجر انسٹرکشن ایکسٹینشن ہے جو 64-bit رجسٹرز کا استعمال کرتی ہے جو x87 فلوٹنگ پوائنٹ رجسٹر فائل کے ساتھ آرکیٹیکچرل اسٹوریج کا اشتراک کرتے ہیں۔ کوڈ کو ملاتے وقت یہ مشترکہ حالت اہمیت رکھتی ہے۔
آپ کے لیے جاننا کیا ضروری ہے
MMX ایک ابتدائی x86 پیکڈ انٹیجر انسٹرکشن ایکسٹینشن ہے جو 64-bit رجسٹرز کا استعمال کرتی ہے جو x87 فلوٹنگ پوائنٹ رجسٹر فائل کے ساتھ آرکیٹیکچرل اسٹوریج کا اشتراک کرتے ہیں۔ کوڈ کو ملاتے وقت یہ مشترکہ حالت اہمیت رکھتی ہے۔
یہ کیسے کام کرتا ہے
MMX آپریشنز ایک 64-bit رجسٹر کو پیکڈ انٹیجر عناصر کے طور پر لیتے ہیں۔ MMX رجسٹر کے نام جدید آزاد ویکٹر حالت فراہم کرنے کے بجائے x87 رجسٹر اسٹوریج کو متبادل نام دیتے ہیں۔ EMMS ایم ایم ایکس کے استعمال کے بعد x87 ٹیگ کی حالت کو خالی نشان زد کرتا ہے تاکہ بعد کا x87 کوڈ فلوٹنگ پوائنٹ اسٹیک کو درست طریقے سے استعمال کر سکے۔
یہ کہاں مفید ہے
پرانا ملٹی میڈیا سافٹ ویئر سیچوریٹڈ بائٹ ریاضی کے لیے MMX کا استعمال کر سکتا ہے۔ نیا کوڈ عام طور پر اس کے بجائے XMM یا وسیع تر ویکٹر سہولیات کا استعمال کرتا ہے، جس سے MMX/x87 حالت کے تعامل سے بچا جا سکتا ہے۔ موجودہ بائنریز میں اب بھی بہت نئے پروسیسر پر بھی MMX شامل ہو سکتا ہے۔
سپورٹ اور فعالی کی جانچ کیسے کریں
CPUID.01H:EDX کی bit 23 ایم ایم ایکس کی نشاندہی کرتی ہے۔ پرانے کوڈ کو ڈیبگ کرنے کے لیے، اصل انسٹرکشن تسلسل اور اس کی EMMS/حالت کی ہینڈلنگ دونوں کا معائنہ کریں۔ صلاحیت کا ایک فلیگ یہ قائم نہیں کر سکتا کہ روٹین کالنگ کنونشن پر درست طریقے سے عمل پیرا ہے۔
ایک SIMD فیچر ہدایات کی وضاحت کرتا ہے، نہ کہ اضافی کورز کی۔ انسٹرکشن فارم عنصر کی چوڑائی، سائنڈ پن، راؤنڈنگ، الائنمنٹ اور کن لینز کا تعامل ہوتا ہے، کا تعین کرتا ہے۔ سافٹ ویئر کو لازمی طور پر ABI کی رجسٹر حالت کو محفوظ رکھنا چاہیے اور معاونت یافتہ عمل درآمد کے ماحول کا استعمال کرنا چاہیے۔
یہ خصوصیت کیا ثابت نہیں کرتی
MMX انٹیجر SIMD ہے، 64-bit کا عمومی مقصد کے لیے عمل درآمد یا x86-64 سپورٹ نہیں۔ اس سے SSE یا بعد کی ایکسٹینشنز مراد نہیں ہیں۔ MMX اور x87 کو ملاتے وقت صفائی کی کمی درستی کے مسائل پیدا کر سکتی ہے جن کا اس بات سے کوئی تعلق نہیں کہ آیا CPU ان انسٹرکشنز کو سپورٹ کرتا ہے یا نہیں۔
عملی طور پر مطابقت اور کارکردگی
SSE فیملی کے بعد کے ناموں کے لیے الگ فیچر بٹس ہیں۔ کسی تعینات کردہ بائنری کے لیے، لائبریریوں اور اسٹارٹ اپ کوڈ سمیت مکمل کم از کم فیچر سیٹ کا معائنہ کریں۔ فال بیک صرف اسی صورت میں مفید ہے جب انتخاب کے مرحلے سے پہلے کوئی غیر معاون انسٹرکشن نہ چلے۔
عملی تصدیقی چیک لسٹ
- پروسیسر یا پلیٹ فارم کا اصل ماڈل اور شامل ایپلی کیشن، OS اور رن ٹائم کے ورژنز ریکارڈ کریں۔ اصل خرابی یا ضرورت کے الفاظ کو جوں کا توں محفوظ رکھیں۔
- اس مخصوص ماڈل کے لیے مینوفیکچرر کے حوالے کو چیک کریں، پھر اس ماحول میں مؤثر صلاحیت اور فعال حالت کا معائنہ کریں جہاں پروگرام چلتا ہے۔
- منتخب کردہ بائنری یا بیک اینڈ کی ہر ضرورت کا موازنہ کریں۔ ملتے جلتے نام کی خصوصیت، عرفیت یا وسیع ٹیکنالوجی لیبل کافی نہیں ہے۔
- تصدیق کریں کہ ایپلی کیشن نے مطلوبہ عمل درآمد کا انتخاب کیا ہے۔ اس کی دستاویزی تشخیص اور معاون متبادل کا استعمال کریں جب ضروریات پوری نہ ہوں۔
- ایک وقت میں ایک معاون تبدیلی کریں اور وہی ورک لوڈ دہرائیں۔ اصل کنفیگریشن اور بحالی کا راستہ دستیاب رکھیں۔
اگر خصوصیت درج ہے لیکن سافٹ ویئر اسے استعمال نہیں کر سکتا
فیل ہونے والے اصل جزو سے شروعات کریں۔ ہارڈ ویئر ڈیٹا بیس ریکارڈ شدہ صلاحیت کو بیان کرتا ہے؛ آپریٹنگ سسٹم یا ہائپروائزر ایک مختلف مؤثر ماحول فراہم کر سکتا ہے۔ ایک غیر قانونی ہدایت کی خرابی (illegal-instruction error) میں بھی اصل خرابی پیدا کرنے والی ہدایت اور بائنری بلڈ کی تحقیقات کی ضرورت ہوتی ہے، کیونکہ کرپشن یا ایک غیر متعلقہ غیر معاون ہدایت ایسی ہی علامت پیدا کر سکتی ہے۔
مخصوص پلیٹ فارم کے لیے معاونت یافتہ ایپلی کیشن، ڈرائیور یا رن ٹائم ورژن انسٹال کریں، اور اگر ضرورت ہو تو وینڈر کا دستاویزی بنیادی یا فال بیک بلڈ استعمال کریں۔ سافٹ ویئر اپ ڈیٹ ایسی ہدایت تیار نہیں کر سکتا جس کی پروسیسر میں کمی ہو۔ فرم ویئر اور سیکیورٹی پالیسی کی تبدیلیوں کو عام اصلاحی طریقے کے بجائے سسٹم مینوفیکچرر کے طریقہ کار اور بحالی کے منصوبے پر عمل کرنا چاہیے۔
اس وضاحت کے ذرائع اور دائرہ کار
Intel 64 and IA-32 Architectures Software Developer's Manual · x86-64 psABI: پروسیسر آرکیٹیکچر اور مائیکرو آرکیٹیکچر کی سطحیں
یہ حوالہ جات آرکیٹیکچرل رویے اور سافٹ ویئر کی ضروریات کو قائم کرتے ہیں۔ وہ لنک شدہ ہارڈ ویئر ماڈل کے صفحے پر ہر خصوصیت کی قدر کی آزادانہ طور پر تصدیق نہیں کرتے ہیں۔ ماڈل کی سپورٹ کے لیے، اس صفحے کے مینوفیکچرر کے ثبوت استعمال کریں اور مؤثر سسٹم کنفیگریشن چیک کریں۔ یہ مضمون بینچ مارک، سرٹیفیکیشن یا آزادانہ جائزے کی تاریخ فراہم نہیں کرتا ہے۔
ذرائع اور توثیق
ادارتی ملکیت: Feex۔ آزادانہ جائزے کی کوئی تاریخ ریکارڈ نہیں کی گئی ہے۔ ہم تحقیق کیسے کرتے ہیں.
- Intel 64 and IA-32 Architectures Software Developer's Manual · جلد 1 اور 2 نامزد انسٹرکشن فیملیز اور CPUID کی وضاحت کرتی ہیں؛ جلد 3 اسٹیٹ، پیجنگ، VMX اور پروٹیکشن کنٹرولز کی وضاحت کرتی ہے۔ آرکیٹیکچر کی دستاویزات کسی خاص ماڈل کے لیے سپورٹ کا تعین نہیں کرتیں۔
- x86-64 psABI: پروسیسر آرکیٹیکچر اور مائیکرو آرکیٹیکچر کی سطحیں · مشین انٹرفیس، پروسیسر آرکیٹیکچر: بنیادی اور مجموعی v2/v3/v4 فیچر ٹیبل، OS-اسٹیٹ کی جانچ اور تعیناتی کی سفارشات۔
کیا یہ مضمون مفید تھا؟
ہاں یا نہیں کافی ہے۔ اگر آپ چاہیں تو کوئی وجہ منتخب کریں، یا ایک مختصر نوٹ شامل کریں۔
شکریہ۔ اس سے ہمیں اس صفحے کو بہتر بنانے میں مدد ملتی ہے۔