Branch Prediction
ব্র্যাঞ্চ প্রেডিকশন
Branch resolve হওয়ার আগেই CPU-র একটা শিক্ষিত অনুমান — নেওয়া হবে নাকি হবে না — যাতে fetch থামাতে না হয়; ভুল হলে speculatively করা কাজ বাতিল হয়।
2-bit saturating counter সবচেয়ে প্রচলিত সরল predictor — prediction বদলাতে টানা দুইবার বিপরীত ফলাফল লাগে (একবার না), যা loop-এর “মূলত এক দিকে, মাঝেমধ্যে ব্যতিক্রম” প্যাটার্নে ৯০%+ accuracy দেয়।
গভীর pipeline (Pentium 4-এর ~২০+ stage) উচ্চ clock speed দেয়, কিন্তু misprediction-এ বিশাল penalty — একটা বাস্তব কারণ কেন Intel পরবর্তী প্রজন্মে pipeline ছোট করেছিল।
Branch Target Buffer (BTB) predicted target address আগে থেকে cache করে রাখে, তাই fetch stage-ই সঠিক জায়গা থেকে speculatively পড়া শুরু করতে পারে, decode পর্যন্ত অপেক্ষা না করে।