مخزن إعادة الترتيب

وحدة إعادة ترتيب التعليمات (ROB) هي وحدة عتادية تُستخدم في امتداد لخوارزمية توماسولو لدعم تنفيذ التعليمات خارج الترتيب والتخمين . ويجبر هذا الامتداد التعليمات على الالتزام بالترتيب.

المخزن المؤقت عبارة عن مخزن مؤقت دائري (لتوفير قائمة انتظار ترتيب التعليمات FIFO ) يتم تنفيذه كمصفوفة/متجه (مما يسمح بتسجيل النتائج مقابل التعليمات عند اكتمالها خارج الترتيب).

تتألف خوارزمية توماسولو من ثلاث مراحل: "إصدار"، "تنفيذ"، و"كتابة النتيجة". وفي نسخة مُعدّلة من الخوارزمية، توجد مرحلة "حفظ". خلال هذه المرحلة، تُخزّن نتائج التعليمات في سجل أو ذاكرة. أما مرحلة "كتابة النتيجة" فتُعدّل لوضع النتائج في مخزن إعادة الترتيب. ولهذا الغرض، تُوسم كل تعليمة في محطة الحجز برقمها في مخزن إعادة الترتيب.

تُستخدم محتويات المخزن المؤقت لتحديد تبعيات البيانات للتعليمات الأخرى المُجدولة فيه. يتم تثبيت رأس المخزن المؤقت بمجرد أن تصبح نتيجته صالحة. تكون تبعياته قد حُسبت وتم تثبيتها مسبقًا، إذ يجب أن تسبق التعليمة في المخزن المؤقت، وإن لم تكن بالضرورة مجاورة لها. عادةً ما تؤدي تبعيات البيانات بين التعليمات إلى توقف خط الأنابيب أثناء انتظار إحدى التعليمات لقيمها التابعة. يسمح سجل القراءة (ROB) لخط الأنابيب بمواصلة معالجة التعليمات الأخرى مع ضمان تثبيت النتائج لمنع مخاطر البيانات مثل القراءة بعد الكتابة (RAW)، والكتابة بعد القراءة (WAR)، والكتابة بعد الكتابة (WAW).

توجد حقول إضافية في كل مدخل من مداخل المخزن المؤقت لدعم الخوارزمية الموسعة:

  • نوع التعليمات (قفزة، تخزين في الذاكرة، تخزين في سجل)
  • الوجهة (إما عنوان الذاكرة أو رقم السجل)
  • النتيجة (القيمة التي تصل إلى الوجهة أو مؤشر على نجاح (أو عدم نجاح) القفزة)
  • الصلاحية (هل النتيجة موجودة بالفعل؟)

تتضمن نتائج مخزن إعادة الترتيب معالجة الاستثناءات بدقة وسهولة التحكم في التراجع عن أخطاء التنبؤ بعنوان الهدف (التفرع أو القفز). عندما يكون تنبؤ القفز غير صحيح أو عند مواجهة استثناء غير قابل للاسترداد في تدفق التعليمات، يتم مسح مخزن إعادة الترتيب من جميع التعليمات (عن طريق ضبط ذيل قائمة الانتظار الدائرية على الرأس) وإعادة تهيئة محطات الحجز.

مراجع