فناوری

معماری رایانه: چطور یک CPU دستورات را پردازش می‌کند؟ (به زبان آدمیزاد!)

حتماً اصطلاحاتی مثل «پردازنده ۳ گیگاهرتزی»، «چند هسته‌ای»، «حافظه کش» و «رم» را شنیده‌اید. ولی شاید هیچ وقت به این فکر نکرده باشید که وقتی روی یک آیکون دبل کلیک می‌کنید، در سطح سخت‌افزار چه اتفاقی می‌افتد. در این مقاله از ساویس گیم بدون یک فرمول یا معادله، فقط با تشبیه، معماری CPU را طوری توضیح می‌دهم که هیچ‌وقت فراموش نکنید.

تشبیه ساده: CPU = آشپز، رم = میز کار، هارد = یخچال

فرض کنید یک آشپز (CPU) قرار است یک غذای پیچیده درست کند.

  • یخچال (هارد دیسک یا SSD) جایی است که همه مواد خام (برنامه‌ها، فیلم‌ها، عکس‌ها) در آن ذخیره شده، حتی وقتی برق نیست. حجم یخچال بزرگ است (۵۰۰ گیگ یا ۱ ترابایت)، اما دسترسی به آن کند است (چند میلی‌ثانیه طول می‌کشد تا درِ یخچال را باز کنید و مواد را پیدا کنید).
  • میز کار (RAM) جایی است که آشپز مواد مورد نیاز برای پخت همین الان را روی آن می‌چیند. میز کار خیلی کوچک‌تر از یخچال است (۸ یا ۱۶ گیگابایت)، اما فوق‌العاده سریع است (نانوثانیه‌ای). وقتی برق می‌رود، میز کار خالی می‌شود.
  • آشپز (CPU) خودش مغز اصلی است. فقط کارهایی را که روی میز کار (رم) جلویش هست انجام می‌دهد. اگر چیزی در میز کار نباشد، باید بایستد، برود سراغ یخچال (هارد)، مواد را بیاورد روی میز کار، و بعد شروع به پخت کند. این مکث هزینه دارد.

نکته کلیدی: هر چقدر میز کار (رم) بزرگتر باشد، آشپز مجبور نیست هر چند دقیقه یک بار به یخچال مراجعه کند. اما اگر میز کار بیش از حد بزرگ باشد (مثلاً ۱۲۸ گیگ برای وبگردی ساده)، بقیه میز کار خالی می‌ماند و فایده‌ای ندارد.

چرخه fetch-decode-execute: سه حرکت اصلی آشپز

CPU هیچ “نمی‌داند”. فقط هر ثانیه میلیاردها بار یک حلقه سه مرحله‌ای را تکرار می‌کند:

۱. Fetch (برداشتن دستور): CPU از رم (میز کار) می‌پرسد: «بعدش چکار کنم؟ یک دستور به من بده.» (مثل آشپز که دستور پخت را از روی کتاب می‌خواند).

۲. Decode (رمزگشایی): دستور خام که به صورت صفر و یک است را ترجمه می‌کند به عملی که می‌فهمد، مثلاً «دو عدد را با هم جمع کن» یا «این بایت حافظه را به آنجا منتقل کن». (مثل این می‌ماند که آشپز دستور «½ قاشق چای‌خوری نمک» را بفهمد).

۳. Execute (اجرا): واحدهای محاسباتی داخل CPU (که به آنها ALU یا واحد منطق حسابی می‌گویند) عملیات را انجام می‌دهند. (آشپز یک قاشق برمی‌دارد، نصف آن نمک می‌ریزد در قابلمه).

به این سه مرحله می‌گویند چرخه Fetch-Decode-Execute. پردازنده‌های مدرن در هر ثانیه میلیاردها بار این چرخه را تکرار می‌کنند (پس فرکانس ۳ گیگاهرتز یعنی ۳ میلیارد چرخه در ثانیه).

5 نفرین پی سی گیمرها: دلایل پنهان کندی کامپیوتر هنگام بازی

تفاوت هسته‌ها و رشته‌ها: چند آشپز در یک آشپزخانه

پردازنده رایزن
پردازنده رایزن

هسته (Core): یعنی چند آشپز مجزا در یک آشپزخانه. یک CPU ۴ هسته‌ای یعنی ۴ آشپز موازی که هرکدام میزکار و یخچال مشترک دارند. آن‌ها می‌توانند همزمان ۴ کار متفاوت بپزند. بدون هسته‌های بیشتر، CPU مجبور است خیلی سریع بین چند کار جابجا شود (که به آن time-sharing می‌گویند).

رشته (Thread): هر آشپز فقط دو دست دارد. اما با تکنیک «چند رشته‌ای سخت‌افزاری» (Hyper-Threading در اینتل یا SMT در AMD)، هر هسته می‌تواند وانمود کند که دو آشپز است. یعنی یک هسته فیزیکی، ولی به صورت همزمان دو دستور را پیش می‌برد. در عمل، Hyper-Threading حدود ۱۵ تا ۳۰ درصد سرعت را افزایش می‌دهد، نه دو برابر.

مثال: یک CPU ۶ هسته‌ای با Hyper-Threading، در ویندوز به عنوان ۱۲ «منطق هسته» (Logical Core) نمایش داده می‌شود، اما در حقیقت ۶ تا آشپز واقعی با ۱۲ دست دارد.

کش (Cache): میز کار کوچک روی دست آشپز

خرافات رایج درباره کاهش ولتاژ (Undervolting) که باید فراموش کنید
پردازنده اینتل و رایزن

حتی رم (میز کار) هم برای CPU کند است. پس داخل خود CPU، سه سطح حافظه فوق‌العاده سریع به نام کش (Cache) تعبیه شده:

  • L1 کش: بسیار کوچک (۳۲ کیلوبایت تا ۶۴ کیلوبایت در هر هسته) اما سرعت باورنکردنی (کمتر از ۱ نانوثانیه). این همان خودکار و کاغذی است که آشپز کنار دستش گذاشته.
  • L2 کش: بزرگتر (۲۵۶ کیلوبایت تا ۱ مگابایت در هر هسته) اما کمی کندتر از L1.
  • L3 کش: حافظه مشترک بین همه هسته‌ها (۸ تا ۳۰ مگابایت) که کندتر از L2 اما خیلی سریع‌تر از رم است.

اگر دستوری در Cache L1 پیدا شود، می‌گوییم Cache Hit (۶۰-۸۰٪ مواقع). اگر نباشد، CPU باید به L2 برود (کمی مکث)، اگر آنجا هم نبود به L3، و بدترین حالت، به رم اصلی (میز کار). اگر رم هم خالی باشد، باید از هارد (یخچال) بخواند که آن موقع سیستم به شدت کند می‌شود (چندین میلی‌ثانیه مکث). برنامه‌نویسان حرفه‌ای کد خود را طوری می‌نویسند که داده‌های پرتکرار در کش بماند (محلیت ارجاع یا Locality of Reference).

چرا مگاهرتز بیشتر همیشه به معنای سریع‌تر نیست؟ (IPC)

فرکانس (مثلاً ۳.۵ گیگاهرتز) یعنی CPU چند چرخه در ثانیه دارد. اما مهمتر از تعداد چرخه‌ها، این است که در هر چرخه چقدر کار انجام می‌دهد. این معیار را می‌گویند IPC (Instructions Per Cycle – دستور در هر چرخه).

CPU های مدرن می‌توانند در هر چرخه، چندین دستور را همزمان اجرا کنند (به آن Superscalar می‌گویند). مثلاً:

  • CPU ای با فرکانس ۳.۰ گیگاهرتز و IPC=۵ (انجام ۵ دستور در هر چرخه) = ۱۵ میلیارد دستور در ثانیه.
  • CPU ای با فرکانس ۴.۰ گیگاهرتز و IPC=۳ = ۱۲ میلیارد دستور در ثانیه (با وجود فرکانس بالاتر، ضعیف‌تر است).

به همین دلیل است که یک پردازنده Core i5 نسل ۱۲ با فرکانس ۲.۵ گیگاهرتز از یک Core i7 نسل ۴ با فرکانس ۳.۸ گیگاهرتز خیلی سریع‌تر است. معماری مهمتر است، نه فقط عدد فرکانس.

جمع‌بندی نهایی (به زبان ساده)

  • CPU = آشپزی که هر ثانیه میلیاردها بار سه کار را تکرار می‌کند: دستور بردار، بفهمش، اجراش کن.
  • هسته‌ها = تعداد آشپزها (چند کار همزمان).
  • رشته‌ها = هر آشپز با دو دست کار می‌کند (Hyper-Threading).
  • کش = میز کار کوچک روی دست آشپز (لجن گیری).
  • فرکانس مهم است، اما معماری و IPC مهم‌تر است.

دفعه بعد که دیدید Intel می‌گوید «پردازنده جدید ۱۰٪ IPC افزایش دارد» یا AMD می‌گوید «کش L3 دو برابر شده»، می‌دانید که این حرف‌ها خیلی مهم‌تر از افزایش ۰.۲ گیگاهرتز فرکانس است.

آیا سوال دیگری درباره معماری کامپیوتر دارید؟ بپرسید تا با همین زبان ساده جواب دهم.

رضا خلف چعباوی

به نام خدا - سلام، سابقه‌ی نوشتن بیش از 3000 مطلب گیمینگ و نویسندگی در بزرگ‌ترین سایت‌های ایران. بازی‌های مورد علاقه: Metal Gear Solid 3، سری Devil May Cry، فرنچایز Yakuza: Like a Dragon و Gravity Rush. ایمیل کاری: khc.reza@gmail.com

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا