متنبئ فروع
في معمارية الحاسوب متنبئ الفروع Branch Predictor  هي دارة رقمية تحاول تخمين مسار الخطوة القادمة ضمن كتلة تجري معالجتها قبل ان يتم تحديدها بناء على نتيجة العملية السابقة «كمحاولة تخمين نتيجة حلقة if الشرطية قبل حساب الشرط».

الغاية من متنبئ الفروع هي تسريع معالجة كتلة من الكود وكذلك تحسين تدفق البيانات ضمن انابيب التعليمات، متنبئ الفروع عامل حرج لتحقيق اداء بكفاءة عالية خصوصا لمعالجات x86.

المبدأ 
مسار ذو فرعين يحقق عادة بتعملية شرط قفز، لشرط القفز القيمتين اما "Not Taken"و بالتالي يستمر التنفيذ ضمن الفرع الأول من الكود مع تابعاته مباشرة ضمن خط معالجة جديد أو القيمة "Taken"  و بالتالي يقفز مباشرة إلى موقع مختلف من ذاكرة البرنامج حيث يخزن الفرع الثاني من الكود، لا يعرف على وجه الدقة إذا ما كانت نتيجة التنبئ موافقة لنتيجة الشرط الحقيقية حتى الانتهاء من اختبار الشرط، عندها يكون ناتج معالجة شرط القفز قد مرر ضمن انابيب التعليمات.

تقنيات متنبئ الفروع

متنبئ فروع ستاتيكيStatic Branch Predictor 
وهو ابسط أنواع التنبؤ، حيث لا يعتمد على المعلومات الديناميكية لتاريخ كود يجري تنفيذه، بدلا من ذلك يقرر قيمة شرط القفز بناء على نوع تعليمة الفرع، كمثال MIPS أحد اوائل المعماريات التجارية اتي تستخدممجموعة تعليمات بنية الحاسب RISC يعطي قيمة تنبؤ " Not Taken" لتعليمة if-else وبالتالي فهو دوما يقوم بجلب محتوى الفرع الثاني وتمريره "جلب التعليمة Fetch Instructions"

متنبئ فروع ديناميكيDynamic Branch Predictor 
يعتمد على المعلومات حول الفروع سواء كانت Taken Or Not Taken ليستفيد منها في تقرير قيمة شرط القفز التالية

متنبئ فروع  عشوائي Branch Predictor 
باستخدام بت زائف عشوائي يعطي كل فرع احتمال صحة 50% وهذه النسبة لاتؤثر سلبا أو ايجابا تماما على الاداء.

أيضا يمكن ان يكون للمتنبئ بعدة مستويات منها

متنبئ فروع بمستوى واحد One-Level Branch Predictor 
يسمى أيضا بعداد الإشباع Saturating Counter حيث يستخدم بت إشباع «اساسا مجرد قلاب Flip flop» ليسجل خرج الفرع «أي فرع تم اختياره» وهو ابسط اشكال المتنبئ الديناميكي ولكنه ليس الأكثر دقة.

حالة 2 بت إشباع تكافئ 4 حالات آلة.

حالات الآلة الموافقة

عندما يتم تقييم فرع، فأن استجابة حالة الآلة للتقييم هي تحديث قيمة شرط القفز، فإذا تم تقييم فرع Not Taken فأنه يقود إلى حالة Strongly Not Taken ، وتقييم فرع Taken  يقود إلى Strongly Taken.

محاسن جدول عداد ب 2 بت مقارنة بنظيره 1 بت هو انه جعل قيمة شرط اختيار الفرع تنحرف نحو التخمين الصحيح ضعف الانحراف الذي يوفره 1 بت كمثال قفزة الشرط لإغلاق حلقة غير قابلة للتنبؤ بمحاولة تخمين واحدة ولكن بمحاولتين تنخفض الاحتمالات للنصف.

جدول التنبؤ يفهرس ويخزن مضمنا مع بتات عناوين التعليمات وبذلك يستطيع المعالج جلب محتوى التعليمات للفروع التي قرر اختيارها حتى قبل مرحلة فك تكويد التعليمات.

متنبئ فروع عصبوني Neural Branch Predication 
يتعمد على التعلم الألي Machine Learning هو أحد فروع الذكاء الاصطناعي التي تهتم بتصميم وتطوير خوارزميات وتقنيات تسمح للحواسيب بامتلاك خاصية «التعلم».

أول تطبيق تجاري للمتنبئ العصبوني كان لمعمارية AMD Piledriver ، الفرق الواضح للتنبؤ العصبوني هي القدرة على تتبع توايخ طويلة باستخدام مورد نمو جبري «ذو تعقيد جبري»، مقارنة بالمتنبئ التقليدي ذو التعقيد الأسي.

المراجع 

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