التنفيذ خارج الترتيب
يتيح التنفيذ خارج الترتيب للمعالج تنفيذ التعليمات بمجرد أن تصبح معاملاتها جاهزة بدلاً من الالتزام الصارم بترتيب البرنامج، وذلك باستخدام إعادة تسمية السجلات والتخزين المؤقت لإظهار التوازي مع الاستمرار في إنتاج نتائج مرتبة.
Definition
التنفيذ خارج الترتيب هو تقنية معمارية دقيقة يقوم فيها المعالج بإعادة ترتيب تنفيذ التعليمات ديناميكيًا لتشغيل التعليمات المستقلة كلما توفرت معاملاتها، مع استخدام التخزين المؤقت وإعادة التسمية للحفاظ على مظهر الإكمال المتسلسل والمرتب.
Scope
يغطي هذا الموضوع الجدولة الديناميكية: محطات الحجز، وإعادة تسمية السجلات لإزالة التبعيات الزائفة، ومخزن إعادة الترتيب الذي يفرض الالتزام بالترتيب، واستعادة التنفيذ التخميني. وهو يعتمد بشكل مباشر على خوارزمية توماسولو. ويستبعد التنبؤ باتجاه التفرع (التنبؤ بالتفرع) والمفهوم الأوسع لمدى وجود التوازي (التوازي على مستوى التعليمات)، مع التركيز على آلية إعادة الترتيب نفسها.
Core questions
- كيف يمكن للمعالج تنفيذ التعليمات خارج ترتيب البرنامج ومع ذلك ينتج نتائج صحيحة ومرتبة؟
- كيف تزيل إعادة تسمية السجلات التبعيات من نوع الكتابة بعد القراءة والكتابة بعد الكتابة؟
- ماذا تضيف محطات الحجز ومخزن إعادة الترتيب؟
- كيف يتم استرداد الاستثناءات والأخطاء في التنبؤ بدقة في نواة تعمل خارج الترتيب؟
Key concepts
- الجدولة الديناميكية
- محطات الحجز
- إعادة تسمية السجلات
- ناقل البيانات المشترك
- مخزن إعادة الترتيب
- الالتزام بالترتيب
- استثناءات دقيقة
- استعادة التنفيذ التخميني
Key theories
- خوارزمية توماسولو
- يستخدم مخطط توماسولو محطات الحجز وناقل بيانات مشترك لإعادة تسمية السجلات وإرسال التعليمات إلى الوحدات الوظيفية عندما تصبح معاملاتها متاحة، مما يسمح بالتنفيذ خارج الترتيب الذي يحترم فقط التبعيات الحقيقية للبيانات.
- الاستثناءات الدقيقة عبر الالتزام بالترتيب
- يحتفظ مخزن إعادة الترتيب بنتائج التعليمات غير المرتبة ويلتزم بها بترتيب البرنامج، بحيث يمكن التعامل مع الاستثناءات والأخطاء في التنبؤ بدقة كما لو كان التنفيذ تسلسليًا تمامًا.
Mechanisms
يتم إعادة تسمية التعليمات التي تم فك تشفيرها إلى سجلات فعلية وتوضع في محطات الحجز أو قائمة الإصدار، حيث تنتظر المعاملات التي يتم بثها عبر ناقل النتائج. وعندما تصبح جاهزة، يتم تنفيذها على وحدات وظيفية متاحة بأي ترتيب. يتتبع مخزن إعادة الترتيب ترتيب البرنامج الأصلي ويلتزم بالنتائج بشكل تسلسلي، ويتخلص من النتائج التخمينية عند حدوث خطأ في التنبؤ أو استثناء بحيث تكون الحالة المعمارية دقيقة دائمًا.
Clinical relevance
يُعد التنفيذ خارج الترتيب المحرك الأساسي لوحدات المعالجة المركزية عالية الأداء، حيث يخفي زمن الوصول للذاكرة والتنفيذ من خلال إيجاد عمل مستقل للقيام به. وله أيضًا آثار أمنية: نظرًا لأن العمل التخميني وغير المرتب يمكنه الوصول مؤقتًا إلى البيانات قبل إلغائه، فقد أتاح ذلك فئات هجمات القنوات الجانبية المعمارية الدقيقة مثل Spectre و Meltdown.
History
قدم توماسولو الجدولة الديناميكية في نظام IBM System/360 Model 91 في عام 1967. وقد جعل الجمع بينها وبين مخزن إعادة الترتيب للاستثناءات الدقيقة، الذي تم تطويره في الثمانينيات، التنفيذ خارج الترتيب عمليًا للمعالجات ذات الأغراض العامة، وأصبح معيارًا في التصميمات عالية الأداء منذ منتصف التسعينيات فصاعدًا.
Debates
- الأداء مقابل التعقيد والطاقة والأمان
- يوفر التنفيذ خارج الترتيب أداءً قويًا للخيط الواحد ولكن بتكلفة كبيرة من حيث تعقيد الأجهزة والطاقة، وقد ثبت أن تخمينه قابل للاستغلال؛ وهذا يغذي النقاش حول مدى عدوانية التخمين مقابل تفضيل تصميمات أبسط أو أكثر كفاءة أو أكثر أمانًا.
Key figures
- Robert Tomasulo
- Yale Patt
- James E. Smith
- John L. Hennessy
Related topics
Seminal works
- tomasulo1967
- hennessy2019
Frequently asked questions
- إذا تم تنفيذ التعليمات خارج الترتيب، فكيف يظل البرنامج صحيحًا؟
- يقوم المعالج فقط بإعادة ترتيب التنفيذ، وليس النتائج. تضمن إعادة تسمية السجلات احترامها للتبعيات الحقيقية للبيانات، ويلتزم مخزن إعادة الترتيب بالنتائج بترتيب البرنامج الأصلي، لذا فإن الحالة المعمارية المرئية هي بالضبط ما سينتجه التنفيذ المتسلسل.
- ما هي إعادة تسمية السجلات؟
- تعمل إعادة تسمية السجلات على تعيين السجلات المعمارية المذكورة في التعليمات إلى مجموعة أكبر من السجلات الفعلية. وهذا يزيل التبعيات الزائفة (الاسمية) التي تنشأ عن إعادة استخدام أسماء السجلات، مما يسمح بتنفيذ المزيد من التعليمات المستقلة بالتوازي دون تعارض حول تخزين السجلات.