TGViewer
Univerbity Univerbity @univerbity · 362 subscribers
Post #272 554
یه چیز خیلی باحال پیدا کردم به نام Branch Predictor!

اولش که پیداش کردم فک کردم چرته و حقیقت نداره ولی بعد از تحقیقات متوجه شدم که کاملا واقعیه 🤯

قضیه از این قراره که CPU قبل از اینکه بفهمه به چه مسیری باید بره شروع به اجرای اون کرده باشه!
کد زیر رو در نظر بگیرید:
if(x < 10)
{
    A();
}
else
{
    B();
}

پردازنده نمیخاد منتظر بمونه که بفهمه باید کدوم مسیر رو بره. چون اینجا pipeline خالی میمونه و کلی سایکل بیکار میمونه.
پس Branch predictor حدس میزنه برای مثال احتمالا سرط True میشه. و Cpu شروع میکنه دستورات A رو به صورت especulative execution (جلو جلو اجرا کردن) اجرا کردن در صورتی که مطمئن نیست مسیری که انتخاب کرده درست هست یا نه!

حالا نتیجه مشخص میشه که ایا شرط True بوده یا نه. اگر درست بود که نتیجه کار حفظ میشه اگرم نبود CPU خروجی تولید شده رو دور میریزه (اصطلاحا pipeline flush میکنه) و مسیر درست رو اجرا میکنه!

شاید بپرسی چرا این کار رو انجام میده؟
چون CPU های مدرن خیلی pipeline های عمیقی دارن. اگر هر بار بخوان برای فهمیدن نتیجه یه برنچ صبر کنن pipeline خالی میمونه و کلی cycle هدر میره.

یکی از دلایلی که پردازنده های امروزی انقد سریعن و روز به روز هم سریعتر میشن همین روش های عجیب غریبه😭😂
(Branch predictor یکی از این روش هاست)


البته این غلط حدس زدنه هم یه ایرادی داره که توی پست بعدی میگمش.
یادم باشه درباره pipeline و cycle هم بنویسم!
  • 🔥 12
  • 🤯 2
More from @univerbity
  1. Oct 9, 2026سیستم عامل به سبکِ تِرِد فصل پراسس ها قسمت پایانی 🔥 با کمی تاخیر منتشر شد 🎉 (مطالعه کنید…
  2. Oct 7, 2026همونطور که گفتیم اولین مرحله کامپایل(C) Preprocessing هستش. این مرحله توسط پری پراسسور (Pr…
  3. Sep 27, 2026چند وقتیه دارم کتاب Pointers on C رو میخونم. در حین خوندن کانسپت های مهم و عمیق رو هایلایت…
  4. Sep 26, 2026دیروز به یه چیز خیلی باحالی برخوردم ✨ میخواستم یه پروژه ای رو بیارم بالا و تستش کنم. پروژه…
  5. Sep 20, 2026سیستم عامل به سبکِ تِرِد فصل دوم قسمت اول 🔥 با کمی تاخیر منتشر شد 🎉 (مطالعه کنید) نویسند…
  6. Sep 15, 2026همه معمولا کامپایل شدن یه کد (C) رو در یک مرحله واحد میبینن. در صورتی که کامپایل از چندین…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →