TGViewer
Univerbity Univerbity @univerbity · 362 subscribers
Post #276 598
تو پست قبلی قرار شد درباره یکی از مشکلات branch predictor، سایکل و پایپلاین ها صحبت بنویسم.
این روزا شدیدا درگیر توسعه Devchan هستم واسه همین خیلی وقت نمیکنم چیزی بنویسم 🙂

کد زیر رو در نظر بگیرید:
if(x < array_size)
{
    value= array[x];
}

سی پی یو نمیخاد منتظر بمونه که نتیجه x < array_size بیاد برای همین نتیجه رو حدس میزنه (true) و وارد بدنه شرط میشه. اینجا عملا دیتای array[x] رو خونده.
حالا نتیجه اومد و دست بر قضا نتیجه false بوده. حالا سی پی یو فهمیده اشتباه کرده و دیتایی که خونده رو اصطلاحا rollback میکنه.
اما معمولا همیشه همه چی صد در صد رول بک نمیشه، مخصوصا اثراتی که روی Cache مونده. 🧹
اینجا مهاجم میتونه با Cache timingattack میتونه به دیتا دسترسی داشته باشه.

سایکل ها (Cycles) ها توی سی پی یو مثل واحد زمانی عمل میکنن.
این سایکل ها مثل ضربان قلب یا ساعت کار میکنن. بهتر بگم هر سایکل از سی پی یو مثل یه تیک تیک ساعت میمونه. 🫀
سی پی یو باید کلی کار انجام بده و هر کدوم این کار ها مدتی زمان میبرن.
البته این به معنی نیست که هر کار = یه سایکل
بلکه هر کار میتونه چند سایکل طول بکشه.
مثلا اگر یه CPU داشته باشی که فرکانس اجراییش 3GHz باشه ینی 3,000,000,000 تا سایکل در یک ثانیه میزنه، که هر سایکل میشه تقریبا 0.33 نانوثانیه.⏰

اگر پایپلاین نداشته باشیم سی پی یو مجبوره هر پروسه رو کامل انجام بده. ینی اگر مثلا دو تا پروسه P1 و P2 رو داریم.
اگر پایپلاین نباشه پردازنده فقط میتونه فقط اینستراکشن های P1 رو اجرا کنه و P2 باید منتظر بمونه.
پایپلاین کمک میکنه سی پی یو پروسه رو به چند مرحله تقسیم کنه و توی سایکل های مختلف پخشش میکنه تا اجرای پروسه ها همزمان باشه.

یکم تو هم تو هم نوشتم ولی خب :)
  • 🔥 8
  • ❤ 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 →