تخطى إلى المحتوى الرئيسي

دومانس يكشف أبطأ تعليمات x86: 198 مليار دورة في 62 ثانية

فريق جلتش
منذ ساعة4 مشاهدة4 دقائق
دومانس يكشف أبطأ تعليمات x86: 198 مليار دورة في 62 ثانية

اكتشف الباحث كريستوفر دومانس تعليمة `fxrstor64` من x86 تستغرق 198 مليار دورة، أي 62 ثانية، لتنفيذها عبر استغلال ضعف بنية PCIe.

مقدمة تحليلية

استغرقت تعليمة `fxrstor64` من بنية x86 ما مجموعه 198,002,498,236 دورة تنفيذية، وهو ما يعادل 62 ثانية، لتُسجّل كأبطأ تعليمة فردية تم رصدها حتى الآن. هذا الكشف جاء ضمن مشروع "CPU Deoptimization" الذي أطلقه الباحث كريستوفر دومانس، المعروف بـ@xoreaxeaxeax على GitHub، بهدف غير تقليدي يتمثل في تحديد التعليمات البرمجية ذات أدنى كفاءة ضمن المعالجات. بينما تركز الصناعة بشكل مستمر على تسريع الأداء، يسعى دومانس إلى إنشاء "قائمة العار" (hall of shame) للتعليمات الأبطأ، ما يمثل تحولاً مثيراً للاهتمام في منهجية تحليل الأداء. لا يتعلق الأمر بكسر سجلات السرعة، بل بتحديد العوائق الخفية.

يوفر المشروع بيانات حاسمة حول نقاط الضعف المعمارية التي عادة ما تُتجاهل في سعي لا نهاية له نحو زيادة سرعة المعالجة. هذه الأرقام، التي تبدو خارج السياق العملي اليومي، تحمل دلالات تقنية أعمق.

التحليل التقني

لتحقيق هذا المستوى غير المسبوق من التباطؤ، اتبع دومانس منهجية هندسية دقيقة لا تستهدف التعليمة نفسها بقدر ما تستهدف التفاعل بينها وبين مكونات النظام. تعليمة `fxrstor64` مسؤولة عن استعادة حالة سجلات حسابات SIMD إلى موقع ذاكرة بحجم 512 بايت. بدأت العملية باستخدام أداة `mmiotic` الخاصة بدومانس لتحديد منطقة ذات زمن وصول عالٍ (high-latency) ضمن نسيج PCIe الداخلي للمعالج. أدى هذا الاستغلال الأولي، من خلال إجبار وحدة المعالجة المركزية على تحميل حالة 512 بايت من Memory-Mapped I/O (MMIO)، إلى تباطؤ التعليمة لتستهلك 74 مليار دورة، أو ما يزيد قليلاً عن 23 ثانية.

استنزاف نسيج PCIe

تصعيدًا للتباطؤ، طبق دومانس تقنية "استنزاف النسيج" (starving the fabric)، وذلك بتنفيذ سلسلة من عمليات القراءة بحجم 4 بايت من سجل MMIO آخر عالي زمن الوصول. أدى ذلك إلى إغراق وحدة التحكم الرئيسية في PCIe (PCIe root complex) ودفع عملية استعادة الحالة الخاصة بـ`fxrstor64` للانتظار خلف هذه العمليات القراءة غير الضرورية، ما نتج عنه التأخير النهائي البالغ 198 مليار دورة على مدى 62 ثانية. يخطط دومانس لتوسيع نطاق هذا التباطؤ باستخدام تعليمات AMX المتاحة في معالجات Intel Sapphire Rapids مع `xrstore64`، ما سيزيد منطقة الحالة من 512 بايت إلى 8KB، ومن المحتمل أن يؤدي إلى تعليق التعليمة لأكثر من 1 تريليون دورة. أُجريت الاختبارات الأولية على معالجات Intel Core i7-8559U وAMD Ryzen 7 5800H ضمن جهاز Trigkey S5. بالإضافة إلى ذلك، استخدم دومانس شريحة VIA Eden من أوائل الألفينيات لاختبار تعليمة `rdmsr`، التي تستخدم لقراءة سجل خاص بالنموذج (MSR). كشفت الشريحة عن سجل غير موثق عند 0x133 قدم زمن استجابة مرتفعًا بشكل استثنائي، حيث استغرقت التعليمة 202 ميكروثانية، أو 161,602 دورة تنفيذية.

تتضمن قواعد لوحة الصدارة التي أطلقها دومانس، والمتوفرة على GitHub:

  • احتساب تنفيذ تعليمة واحدة فقط.
  • عدم السماح بالتعليمات القابلة للمقاطعة.
  • عدم احتساب التعليمات المحاكاة التي تعمل على المعالج.
  • تطبيع جميع الأوقات بناءً على سرعة ساعة المعالج الأساسية.
  • عدم إجراء أي تعديلات على الأجهزة.

يهدف المشروع لتوسيع نطاقه ليشمل معماريات ARM وRISC-V مستقبلاً.

السياق وتأثير السوق

تتجاهل الصناعة عمومًا هذه السيناريوهات المتطرفة، حيث تُصمم المعالجات وتُحسن لتشغيل التعليمات بأقصى سرعة ممكنة، عادةً في نطاق النانو ثانية. كشفت أبحاث دومانس، رغم طابعها النظري، عن ثغرات معمارية محتملة لا تتعلق بتصميم التعليمات الأساسي، بل بكيفية تفاعلها مع البيئة المحيطة، خاصة نظام PCIe الفرعي. هذا قد يوفر رؤى غير متوقعة لشركات مثل Intel وAMD، اللتين تستثمران مليارات الدولارات في تحسين كل جزء من الثانية. ففي حين أن مطوري البرمجيات لن يتعمدوا أبدًا استغلال هذه التلاعبات، فإن اكتشاف أن تعليمة فردية يمكن أن تعطل نظامًا لمدة دقيقة كاملة يثير تساؤلات حول مرونة الجدولة في أنظمة التشغيل وحماية العمليات الحرجة.

تاريخياً، كان التركيز ينصب على تقليل زمن الوصول (latency) للتعليمات إلى الحد الأدنى لزيادة الأداء العام، وهو ما تمثله آلاف عمليات التحسين التي تجريها Intel وAMD في كل جيل من المعالجات. مشروع دومانس يعكس هذا الاتجاه تماماً، مبرزاً ما يمكن أن يحدث عند تخريب هذه التحسينات بشكل منهجي. بالنسبة للشركات المصنعة للمعالجات المضمنة مثل VIA، التي أظهرت تعليمة `rdmsr` لديها زمن استجابة مقداره 202 ميكروثانية بسبب سجل غير موثق عند 0x133، فإن هذا النوع من البحث قد يكشف عن نقاط ضعف في التصميمات القديمة التي قد تكون عرضة لهجمات حجب الخدمة (DoS) الموجهة، رغم أن هذا السيناريو قد يكون نظرياً للغاية. التوسع المستقبلي للمشروع ليشمل معماريات ARM وRISC-V يؤكد أن هذه المشكلات ليست حصرية لـx86، ما قد يؤثر على تصميم الرقائق عبر طيف واسع من المنصات.

رؤية Glitch4Techs

مشروع "CPU Deoptimization" لدومانس هو بلا شك إنجاز تقني مثير للإعجاب يبرهن على الفهم العميق لهندسة المعالجات الدقيقة، لكن قيمته العملية المباشرة للمطورين ومستخدمي أنظمة التشغيل محدودة. بينما يكشف عن ثغرات نظرية ضمن التفاعلات المعقدة بين التعليمات وبنية النظام، فإن السيناريوهات المتطرفة اللازمة لإحداث تأخير يبلغ 198 مليار دورة في 62 ثانية مع تعليمة `fxrstor64` تقع خارج نطاق التشغيل العادي لأي برنامج. تعتمد هذه الأرقام على تلاعبات مقصودة واستغلال هندسي دقيق لضغوط غير اعتيادية على نسيج PCIe، ولا تمثل ضعفًا جوهريًا يمكن استغلاله بسهولة في التطبيقات اليومية. على الرغم من أن هذا العمل قد يوفر رؤى لأبحاث الأمان المتخصصة في نقاط الضعف منخفضة المستوى، فإن الإشارة إلى هذه التعليمات بـ"قائمة العار" مبالغ فيها، حيث أنها لا تعكس قصورًا في تصميم التعليمات بحد ذاتها، بل هشاشة النظام عند استغلاله بطرق غير متوقعة ومكلفة حسابياً، ولا يمكن اعتبارها تهديدًا واقعيًا للأداء العام أو استقرار النظام في الظروف العادية.

أعجبك المقال؟ شاركه

النشرة البريدية

كن أول من يعرف بمستقبل التقنية

أهم الأخبار والتحليلات التقنية مباشرة في بريدك.

مقالات قد تهمك