متنبئ فروع
المحتويات
بدايةً، في معمارية الحاسوب متنبئ الفروع Branch Predictor هي دارة رقمية تحاول تخمين مسار الخطوة القادمة ضمن كتلة تجري معالجتها قبل ان يتم تحديدها بناء على نتيجة العملية السابقة «كمحاولة تخمين نتيجة حلقة if الشرطية قبل حساب الشرط». وتعرض الأقسام التالية جوانب أخرى من الموضوع.
علاوةً على ذلك، الغاية من متنبئ الفروع هي تسريع معالجة كتلة من الكود وكذلك تحسين تدفق البيانات ضمن انابيب التعليمات، متنبئ الفروع عامل حرج لتحقيق اداء بكفاءة عالية خصوصا لمعالجات x86.
متنبئ فروع عشوائي Branch Predictor
كذلك يمكن ان يكون للمتنبئ بعدة مستويات منها
ومن ناحية أخرى، باستخدام بت زائف عشوائي يعطي كل فرع احتمال صحة 50% وهذه النسبة لاتؤثر سلبا أو ايجابا تماما على الاداء.
متنبئ فروع بمستوى واحد One-Level Branch Predictor
حالة 2 بت إشباع تكافئ 4 حالات آلة.
في هذا الإطار، يسمى كذلك بعداد الإشباع Saturating Counter حيث يستعمل بت إشباع «اساسا مجرد قلاب Flip flop» ليسجل خرج الفرع «أي فرع تم اختياره» وهو ابسط اشكال المتنبئ الديناميكي ولكنه ليس الأكثر دقة.
متنبئ فروع ستاتيكيStatic Branch Predictor
في هذا الإطار، وهو ابسط أنواع التنبؤ، حيث لا يعتمد على المعلومات الديناميكية لتاريخ كود يجري تنفيذه، بدلا من ذلك يقرر قيمة شرط القفز بناء على نوع تعليمة الفرع، كمثال MIPS أحد اوائل المعماريات التجارية اتي تستعملمجموعة تعليمات بنية الحاسب RISC يعطي قيمة تنبؤ " Not Taken" لتعليمة if-else وبالتالي فهو دوما يقوم بجلب محتوى الفرع الثاني وتمريره "جلب التعليمة Fetch Instructions"
متنبئ فروع ديناميكيDynamic Branch Predictor
ومن ناحية أخرى، يعتمد على المعلومات حول الفروع سواء كانت Taken Or Not Taken ليستفيد منها في تقرير قيمة شرط القفز التالية
حالات الآلة الموافقة
ومن ناحية أخرى، جدول التنبؤ يفهرس ويخزن مضمنا مع بتات عناوين التعليمات وبذلك يستطيع المعالج جلب محتوى التعليمات للفروع التي قرر اختيارها حتى قبل مرحلة فك تكويد التعليمات.
ومن ناحية أخرى، عندما يتم تقييم فرع، فأن استجابة حالة الآلة للتقييم هي تحديث قيمة شرط القفز، فإذا تم تقييم فرع Not Taken فأنه يقود إلى حالة Strongly Not Taken ، وتقييم فرع Taken يقود إلى Strongly Taken.
وفي هذا السياق، محاسن جدول عداد ب 2 بت مقارنة بنظيره 1 بت هو انه جعل قيمة شرط اختيار الفرع تنحرف نحو التخمين الصحيح ضعف الانحراف الذي يوفره 1 بت كمثال قفزة الشرط لإغلاق حلقة غير قابلة للتنبؤ بمحاولة تخمين واحدة ولكن بمحاولتين تنخفض الاحتمالات للنصف.
المبدأ
تقنيات متنبئ الفروع
إضافةً إلى ذلك، مسار ذو فرعين يحقق عادة بتعملية شرط قفز، لشرط القفز القيمتين اما "Not Taken"و بالتالي يستمر التنفيذ ضمن الفرع الأول من الكود مع تابعاته مباشرة ضمن خط معالجة جديد أو القيمة "Taken" و بالتالي يقفز مباشرة إلى موقع مختلف من ذاكرة البرنامج حيث يخزن الفرع الثاني من الكود، لا يعرف على وجه الدقة إذا ما كانت نتيجة التنبئ موافقة لنتيجة الشرط الحقيقية حتى الانتهاء من اختبار الشرط، عندها يكون ناتج معالجة شرط القفز قد مرر ضمن انابيب التعليمات.
متنبئ فروع عصبوني Neural Branch Predication
في هذا الإطار، أول تطبيق تجاري للمتنبئ العصبوني كان لمعمارية AMD Piledriver ، الفرق الواضح للتنبؤ العصبوني هي القدرة على تتبع توايخ طويلة باستخدام مورد نمو جبري «ذو تعقيد جبري»، مقارنة بالمتنبئ التقليدي ذو التعقيد الأسي.
وفي هذا الصدد، يتعمد على التعلم الألي Machine Learning هو أحد فروع الذكاء الاصطناعي التي تهتم بتصميم وتطوير خوارزميات وتقنيات تسمح للحواسيب بامتلاك خاصية «التعلم».
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟