امروز قراره درمورد یک مفهومی حرف بزنیم که خیلی بهش اشاره نمیشه و خیلیها ازش برداشتهای غلط زیادی دارن. توی این مقاله قراره به IPC در دنیای پردازنده ها بپردازیم، به روش خیلی ساده بیانش کنیم و بفهمیم چرا پردازنده ها رو نمیشه با i3 یا i7 بودن مقایسه کرد و یا اصلاً فرکانس پردازنده چیه؟ برای فهمیدن همه اینا کافیه همراه توییک فا باشین!

فرکانس چیه؟
شاید یه روزی دوستتون بهتون زنگ زده و گفته که بعد سالها تلاش و پول جمع کردن داره یه کامپیوتر جدید میخره. دوستتون بهتون میگه پردازنده سیستمی که خریده i7 ئه که سرعتش 5.6 گیگاهرتزه. یا یه روزی خودتون تسکمنیجر لپتاپتون رو باز میکنین و تو بخش پرفورمنس قسمت CPU میبینین که سرعت پردازندتون رو 3GHz نوشته. اصلاً این فرکانس چیه؟
فرکانس به معنای خودش یعنی انجام یک کار تکراری در ثانیه که واحد اون هرتز ئه. مثلاً توی یک کارخونه یک چرخدنده توی هر ثانیه یک بار میچرخه، پس فرکانس این چرخدنده 1Hz به دست میاد. حالا اگه سرعت این چرخدنده زیاد بشه و در هر ثانیه 2 بار بچرخه فرکانساش میشه 2 هرتز.
فرکانس در پردازنده یعنی چی؟
خب حالا که فهمیدیم فرکانس چیه یه سوال بزرگ وجود داره. پردازنده ما داره چه عمل تکراری رو انجام میده؟ clock cycle کاریه که پردازنده شما میلیاردها بار در ثانیه انجامش میده. مثلاً یک پردازنده 5.6 گیگاهرتز، 5.6 میلیارد clock cycle رو در هر ثانیه انجام میده.
حالا خود clock cycle چیه؟ کلاک سایکل به چرخههایی میگن که توش مقداری اطلاعات و دستورات توسط پردازنده محاسبه میشه که به این دستورات instructions میگن.

حالا IPC چیه و قراره چی رو به ما بگه؟
IPC یا همون Instructions Per Clock/Cycle بهمون میگه که چه تعداد Instructions یا دستورات توی یک clock cycle پردازش میشن. با افزایش IPC پرفورمنس پردازنده بیشتر میشه حتی اگه فرکانس اون ثابت بمونه، چون تعداد پردازشهایی که پردازنده توی یک چرخه انجام میده بیشتر میشه.
IPC به عوامل مختلفی بستگی داره، اما با معرفی و اومدن نسلهای جدید از پردازنده ها، IPC هم افزایش پیدا میکنه و این مهمترین دلیل اهمیت دادن به نسلبندی پردازندههاست، نه صرفاً اهمیت به i7 ،i5 ،i3 و i9 بودن. برای اینکه بهتر متوجه بشیم، بریم سراغ یه مثال ساده.
چرا یه i3 نسل جدید میتونه بهتر از یه i7 قدیمیتر باشه؟
فرض کنید پردازنده اول ما فرکانساش 4 هرتز و پردازنده دوم 5 هرتز ئه (گیگا رو حذف کردیم که محاسبه راحتتر بشه). پس یعنی پردازنده اول 4 تا چرخه در هر ثانیه انجام میده ولی پردازنده دوم 5 چرخه. حالا IPC پردازنده اول برابر با 30 و پردازنده دوم برابر با 20ئه. یعنی پردازنده اول تو هر چرخه خودش 30 تا دستور رو انجام میده و پردازنده دوم 20 تا. حالا کافیه این اعداد رو در هم ضرب کنیم تا به جواب برسیم:
پردازنده اول:
120 = 30 × 4
پردازنده دوم:
100 = 20 × 5
خب همونطور که میبینید خروجی پردازنده اول ما با اینکه سرعت کمتری داشت، بهتر از پردازنده دوم شد. اگه بخوایم این مثال رو به دنیای واقعی ربط بدیم، میتونیم بگیم پردازنده اول یه i3 مثل 12100 که فرکانساش تا 4.3GHz بالا میره و پردازنده دوم که یه i7 نسل قدیمیتر مثل 7700K که با سرعت 4.5GHz کار میکنه. این i3 با اینکه فرکانس کمتری نسبت به i7 داره، اما در نهایت خروجی بهتری بهتون میده. مثلاً i3 12100 توی تست Cinebench R23 Multi-Core امتیاز 8400 رو میگیره، اما i7 7700K توی همین تست امتیاز 6000 رو کسب میکنه.

جمعبندی توییک فا
اگه خیلی خلاصه بخوایم بگیم چی شد، فرکانس میشه تعداد چرخههایی که در ثانیه انجام میشه و IPC یعنی توی اون چرخهها چه تعدادی دستور پردازش میشه. از این به بعد بهتره بجای قضاوت کردن پردازندهها از روی i3 یا i7 بودن، بیشتر به نسلشون دقت کنین و بررسیهای توی اینترنت رو بخونین تا شناختتون نسبت به چیزی که میخرید بیشتر بشه و البته کسی هم نتونه با اسم i7 بودن ازتون کلاهبرداری کنه.
نظرتون راجب به IPC چیه؟ کدوم قسمت از مقاله براتون مفید بوده؟ حتماً نظرات یا سوالاتتون رو توی کامنتها بپرسین. امیدوارم این مقاله براتون مفید بوده باشه.
