Table of Contents

واحد پردازش مرکزی (CPU)

Building a Gaming PC: Unleashing Power and Understanding the Role of  Silicon Wafers

پردازنده چیست؟

CPU cooler: Liquid cooling VS Air cooling - Knowledge

پردازنده یا واحد پردازش مرکزی (CPU) تراشه‌ای کوچک و یکپارچه است که بر روی مادربرد کامپیوتر قرار دارد و معمولاً توسط هیت‌سینک و فن خنک‌کننده احاطه شده است تا دمای آن در حد مطلوب باقی بماند. CPU به عنوان “مغز” کامپیوتر شناخته می‌شود، زیرا تمامی عملیات حسابی و منطقی مانند جمع، تفریق، ضرب، تقسیم و مقایسه مقادیر را انجام می‌دهد. انواع مختلفی از پردازنده‌ها با معماری‌ها و فناوری‌های متفاوت در بازار موجود است.

به طور کلی، پردازنده‌ها به دو نوع ۳۲ بیتی و ۶۴ بیتی تقسیم می‌شوند. یک پردازنده ۳۲ بیتی می‌تواند تا ۴ گیگابایت حافظه رم را پشتیبانی کند، در حالی که یک پردازنده ۶۴ بیتی قادر است مقادیر بسیار بیشتری از حافظه را آدرس‌دهی کند، تا حداکثر ۱۸ اگزابایت. با این حال، در عمل، سیستم‌های ۶۴ بیتی معمولاً تا چند ترابایت رم را پشتیبانی می‌کنند.

نکته: علاوه بر پردازنده‌ها، سیستم‌عامل‌ها نیز به صورت ۳۲ بیتی و ۶۴ بیتی موجود هستند. یک پردازنده ۶۴ بیتی می‌تواند هر دو نوع سیستم‌عامل را اجرا کند، اما یک پردازنده ۳۲ بیتی فقط قادر به اجرای سیستم‌عامل ۳۲ بیتی است.

ساختار CPU

یک CPU شامل بخش‌ها و مؤلفه‌های مختلفی است که هر کدام نقش ویژه‌ای در عملکرد آن دارند. یکی از بخش‌های اصلی CPU، هسته (Core) است. هر هسته می‌تواند به طور مستقل دستورات را پردازش کند و بسیاری از پردازنده‌ها دارای چندین هسته هستند، که این قابلیت را به آن‌ها می‌دهد تا چندین عملیات را به طور همزمان (Multitasking) انجام دهند.

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

یکی دیگر از بخش‌های مهم پردازنده، واحد محاسبه و منطق (ALU) یا Arithmetic Logic Unit است. این واحد وظیفه انجام عملیات‌های ریاضی و منطقی را بر عهده دارد، که شامل جمع، تفریق، مقایسه و سایر عملیات منطقی است.

واحد کنترل (Control Unit) نیز بخشی از CPU است که به هماهنگی و کنترل بخش‌های مختلف پردازنده می‌پردازد. این واحد مسئول تفسیر و اجرای دستورات است و به ALU و سایر اجزا می‌گوید چه عملیاتی را انجام دهند.

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

این زیبایی یک AMD چهار هسته ای منهای سرامیک / پخش کننده حرارت است. در واقع می توانید با چشم غیر مسلح ببینید که 4 هسته پردازش فیزیکی در آنجا وجود دارد. آنها چپ / راست، بالا / پایین هستند و توسط اتصالات متراکم به هم متصل می شوند. این نمودار را در نظر بگیرید:

فرآیند / Process چیست؟

به زبان ساده، یک فرآیند برنامه ای است که در حال حاضر در حال اجرا است. به عنوان مثال، هنگامی که یک بازی را شروع می کنید یا یک وب سایت را باز می کنید، برنامه ای که برای اجرای آن استفاده می شود به یک پردازش تبدیل شده و اجرا می شود. یک فرآیند (پردازش) مانند یک “جعبه کار” کوچک در رایانه است که شامل تمام داده ها، دستورات و منابعی است که این برنامه برای اجرا به آن نیاز دارد. کامپیوتر این جعبه را ایجاد می کند تا برنامه بتواند به طور مستقل بدون تداخل با سایر فرآیندها کار کند.

شما می توانید این را تصور کنید که انگار پردازنده مانند یک کارمند در یک کارخانه کار می کند: وظایف (فرایندها) را می پذیرد، آنها را مرحله به مرحله کامل می کند و سپس به کار بعدی می رود. یک پردازنده مدرن می تواند چندین فرآیند را همزمان انجام دهد زیرا اغلب دارای چندین “هسته” است که می توانند به صورت موازی کار کنند.

به طور خلاصه: یک فرآیند برنامه ای است که به طور فعال در حال اجرا است و از منابع خاص خود مانند حافظه و قدرت محاسباتی استفاده می کند. وقتی به کامپیوتر می‌گوییم که یک کار مشخص را انجام بدهد، در واقع یک «برنامه کامپیوتری» برای آن تعریف می‌کنیم.می توانید فرآیندهای موجود در رایانه شخصی ویندوز خود را در Task Manager نشان دهید:

Dig Deeper Into Windows 11 With These 7 Task Manager Tips | PCMag

این برنامه شامل دستوراتی است که باید اجرا شوند. وقتی این برنامه شروع به اجرا می‌کند، سیستم‌عامل (Operating System) وظیفه دارد که آن را در حافظه بارگذاری کرده و چیزهایی که برای اجرا نیاز دارد، مثل محل ذخیره‌سازی‌های موقت (رجیسترها)، شمارنده برنامه، پشته و هیپ را فراهم کند.

 

  • رجیستر: جایی است که CPU اطلاعات مهم مثل دستورالعمل فعلی یا آدرس‌های حافظه را به‌طور موقت نگه می‌دارد.
  • شمارنده برنامه (Program Counter): این شمارنده می‌گوید که دستور بعدی که باید اجرا شود، کدام است.
  • پشته (Stack) و هیپ (Heap): این‌ها بخش‌هایی از حافظه هستند که اطلاعاتی مثل متغیرها و توابع برنامه را ذخیره می‌کنند.

به‌طور خلاصه:

برنامه + منابع مورد نیاز برای اجرا = فرآیند

Process.PNG

پردازنده (یا CPU، واحد پردازش مرکزی) “مرکز تفکر” کامپیوتر است. وظیفه انجام تمامی محاسبات و دستورات پردازشی که برنامه ها و پردازش ها به آن می دهند را بر عهده دارد. شما می توانید پردازنده را به عنوان “مغز” کامپیوتر در نظر بگیرید.

در اینجا ارتباط بین پردازنده و پردازش وجود دارد:

  • فرآیند یک برنامه در حال اجرا است که دارای دستورالعمل ها و داده هایی است که باید پردازش شوند.
  • پردازنده مؤلفه ای است که در واقع این دستورالعمل ها را اجرا می کند. به انجام کار یک فرآیند اهمیت می دهد.

رشته‌ها (Threads) / چندرشتگی (Multithreading)

https://ars.els-cdn.com/content/image/3-s2.0-B9780123749574000141-f05-04-9780123749574.jpg

هر فرآیند می‌تواند به بخش‌های کوچکتری به نام «Thread» تقسیم شود. Thread همان کاری است که درون یک فرآیند در حال انجام است. می‌توان آن را «فرآیند سبک‌وزن» نامید. یک فرآیند می‌تواند یک یا چند Thread داشته باشد. اگر فقط یک Thread داشته باشد، به آن «Single Thread» می‌گویند و اگر چند Thread داشته باشد، می‌تواند چند کار را همزمان انجام دهد MultiThreatding .

یک بازی یا برنامه پیچیده دیگر اغلب به عنوان یک فرآیند در سطح سیستم عامل نشان داده می شود، اما در آن فرآیند ممکن است رشته های متعددی وجود داشته باشد. این رشته‌ها در اصل «کارهای فرعی» هستند که به صورت موازی اجرا می‌شوند و بخش‌های خاصی از بازی مانند گرافیک، صدا، فیزیک و غیره را کنترل می‌کنند.

در اینجا این روند در مراحل ساده است:

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

به طور خلاصه: به طور معمول در یک بازی، پردازنده یک فرآیند اصلی را با چندین رشته در حال اجرا می بیند که بخش های مختلف بازی را مدیریت می کند. سپس پردازنده این رشته ها را در سراسر هسته های خود توزیع می کند تا عملکرد را بهینه کند.

Threads.PNG

تفاوت‌های Threads و Process

  • Process: یک Process برنامه‌ای مستقل است که توسط سیستم‌عامل اجرا می‌شود و منابع خاص خود را مانند حافظه دریافت می‌کند. Processها از یکدیگر جدا هستند، به این معنی که هر Process در “جعبه” خود اجرا می‌شود و نمی‌تواند مستقیماً به داده‌های Processهای دیگر دسترسی داشته باشد. این موضوع باعث امنیت و پایداری بیشتر می‌شود.
  • Thread: یک Thread مثل یک “زیر وظیفه” در داخل یک Process است. Threadها منابع Process اصلی را که در آن اجرا می‌شوند (مانند حافظه و متغیرها) به اشتراک می‌گذارند. به همین دلیل، Thread می‌تواند سریع‌تر و راحت‌تر با دیگر Threadهای داخل همان Process ارتباط برقرار کند، چون همه آن‌ها به داده‌های مشترک دسترسی دارند.

Threads به دلیل این که نیاز به “جعبه”های کاملاً جداگانه ندارند، از Processها کارآمدتر هستند. می‌توان گفت:

  • یک Thread مانند یک عضو تیم در داخل یک Process است که هر کدام وظیفه خاصی را انجام می‌دهند.
  • یک Process مانند کل تیم است که با هم روی یک پروژه کار می‌کنند.

خلاصه: یک Thread مانند یک Process کوچکتر و سبک‌تر است که در داخل یک Process اصلی اجرا می‌شود و منابع را با دیگر Threadها به اشتراک می‌گذارد، که این کار ارتباط و همکاری را آسان‌تر می‌کند.

هسته پردازنده چیست؟

 

پردازش واقعی دستورالعمل‌ها توسط هسته‌های CPU انجام می‌شود. پردازنده‌ها می‌توانند دارای چندین هسته باشند که به آن‌ها امکان می‌دهد چندین دستورالعمل را به صورت همزمان پردازش کنند. این قابلیت در مدیریت وظایف پیچیده و اجرای برنامه‌های چندوظیفه‌ای بسیار مفید است. سیستم‌عامل‌ها هر هسته را به عنوان یک CPU جداگانه می‌بینند و وظایف را بین آن‌ها تقسیم می‌کنند. پردازنده‌هایی با دو، چهار، شش، هشت یا بیشتر هسته در دسترس هستند.

پردازنده مرکزی (CPU) در هر لحظه می‌تواند فقط یک فرآیند یا Thread را اجرا کند. در گذشته، کامپیوترها فقط یک هسته (Core) داشتند و می‌توانستند یک کار را همزمان انجام دهند. برای این که به نظر برسد که چند کار همزمان در حال انجام است، کامپیوتر خیلی سریع بین فرآیندها جابجا می‌شد؛ به این حالت «اجرای همزمان» (Concurrency) گفته می‌شود.

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

داشتن پردازنده چند‌هسته‌ای به‌طور طبیعی سرعت و کارایی را افزایش می‌دهد و اجازه می‌دهد چندین کار همزمان انجام شوند.

Understanding the Power of Physical and Logical Cores in Modern CPUs | by  Cha Hun Lee | Medium

 

Hyper-threading

What is Hyperthreading and How Do You Enable It? | HackerNoon

 Hyper-threading که فناوری HT نیز نامیده می شود، فناوری چند رشته ای است که توسط اینتل به منظور بهبود عملکرد CPU معرفی شده است. پیش از این، این فناوری در پنتیوم 4 و پردازنده سرور Xeon در سال 2002 معرفی شده بود. فناوری HT به یک پردازنده اجازه می دهد تا دو جریان موازی از رشته های CPU را به طور همزمان اجرا کند. سیستم عامل آنها را به عنوان دو پردازنده مجزا برای اجرای دو رشته در یک زمان می بیند. این باعث افزایش توان پردازشی CPU و توانایی پردازش کلی پردازنده تک هسته ای می شود.

Physical CPU and Logical CPU | Difference |

فناوری‌های مشابه از دیگر تولیدکنندگان

شرکت‌های دیگر نیز فناوری‌های مشابهی را برای بهبود عملکرد پردازنده‌های خود توسعه داده‌اند:

  • AMD: فناوری Simultaneous Multithreading (SMT) را معرفی کرده است که عملکردی مشابه Hyper-Threading دارد و به هر هسته اجازه می‌دهد چندین رشته را به صورت همزمان اجرا کند.
  • IBM: در پردازنده‌های PowerPC از فناوری Simultaneous Multithreading استفاده می‌کند.
  • ARM: برخی از معماری‌های ARM از تعدد هسته‌ها و چندرشتگی برای بهبود عملکرد بهره می‌برند.

ثبات‌ها یا رجیسترها (Registers)

Computer Memory | Iris's Computer Science Site

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

معماری ۳۲ بیتی و ۶۴ بیتی و تاثیر آن بر رجیسترها

Difference Between a 32-bit and a 64-bit Architecture? | Descubra a emoção  das apostas com jogos de ferrocarril midland - plotermedia.md

پردازنده‌ها به طور کلی به دو نوع ۳۲ بیتی و ۶۴ بیتی تقسیم می‌شوند. این تفاوت، در واقع نشان‌دهنده‌ی ظرفیت رجیسترها است: در پردازنده‌های ۳۲ بیتی، هر رجیستر ۳۲ بیت داده را در یک چرخه می‌تواند پردازش کند، که این باعث می‌شود آدرس‌دهی حافظه به ۴ گیگابایت محدود شود.

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

هر رجیستر می‌تواند یک دستورالعمل، آدرس حافظه، داده‌های ورودی یا خروجی و حتی وضعیت‌های عملیاتی را نگه دارد. رجیسترها از چندین فلیپ‌فلاپ تشکیل شده‌اند که هرکدام قادر به ذخیره یک بیت اطلاعات (0 یا 1) هستند. با ترکیب چندین فلیپ‌فلاپ، رجیسترها می‌توانند مقادیر باینری بزرگ‌تری مانند بایت یا کلمه را ذخیره کنند.

نقش منطق کنترلی در رجیسترها

What Are CPU Registers ? | Types Of Registers , Functions | COA

رجیسترها همچنین شامل منطق کنترلی هستند که جریان داده‌ها و دستورالعمل‌ها را درون CPU هماهنگ می‌کند. این منطق وظایفی همچون:

  • رمزگشایی سیگنال‌های کنترلی
  • انجام عملیات داده‌ای مانند بارگذاری و ذخیره‌سازی
  • مسیریابی داده‌ها به مکان‌های مشخص را به عهده دارد.

با کمک منطق کنترلی، رجیسترها می‌توانند با بخش‌های مختلف CPU و حتی حافظه اصلی تعامل داشته باشند، که این تعامل باعث می‌شود دسترسی سریع‌تر و پردازش بهینه‌تری فراهم شود.

انواع رجیسترها در CPU

انواع مختلفی از رجیسترها وجود دارند که هرکدام وظایف خاصی را برعهده دارند:

  1. رجیستر برنامه‌شمار (Program Counter – PC): آدرس دستورالعمل بعدی که باید اجرا شود را نگه می‌دارد و پس از هر دستورالعمل به‌روز می‌شود. این رجیستر به CPU کمک می‌کند که بداند کدام دستورالعمل را باید در مرحله بعدی اجرا کند.
  2. رجیستر دستورالعمل (Instruction Register – IR): دستورالعمل فعلی که در حال اجراست را نگه می‌دارد. IR پس از واکشی یک دستورالعمل، آن را برای اجرای صحیح در CPU نگهداری می‌کند.
  3. رجیستر انباره (Accumulator – ACC): برای عملیات حسابی و منطقی استفاده می‌شود و نتایج میانی را ذخیره می‌کند. ACC یکی از رجیسترهای پرکاربرد است که در محاسبات و پردازش‌های متوالی به کار می‌رود.
  4. رجیسترهای عمومی (General-Purpose Registers): برای ذخیره داده‌ها در حین محاسبات و عملیات داده‌ای استفاده می‌شوند. این رجیسترها می‌توانند داده‌های موقتی و نتایج جزئی را ذخیره کنند که در عملیات پیچیده پردازش لازم هستند.
  5. رجیستر آدرس (Address Register): آدرس‌های حافظه برای دسترسی به داده‌ها را نگه می‌دارد. AR در موقعیت‌هایی که داده باید از حافظه اصلی خوانده یا نوشته شود، به CPU کمک می‌کند تا محل دقیق داده را بیابد.
  6. رجیستر پشته (Stack Pointer – SP): به بالای پشته اشاره می‌کند که برای ذخیره موقت در حین فراخوانی توابع و بازگشت از آن‌ها استفاده می‌شود. پشته‌ها برای مدیریت حافظه موقت در طی فراخوانی‌ها و بازگشت‌ها بسیار مفید هستند.
  7. رجیستر وضعیت (Status Register – SR): شامل بیت‌هایی است که نتیجه عملیات را نشان می‌دهند، مانند پرچم‌های صفر، حمل و سرریز. این رجیستر شرایط عملیاتی CPU را تعیین می‌کند و به CPU کمک می‌کند تا تصمیم‌گیری کند که چگونه با نتایج مختلف برخورد کند.
  8. رجیستر کنترلی (Control Register): تنظیمات و پارامترهای کنترلی مرتبط با عملکرد CPU را مدیریت می‌کند و معمولاً توسط سیستم‌عامل یا نرم‌افزارهای سطح پایین تنظیم می‌شود.

 

واحد حساب و منطق (ALU) چیست؟

Diagram of CPU with ALU, CU, Registers

واحد حساب و منطق (Arithmetic Logic Unit – ALU) بخشی از CPU است که وظیفه انجام عملیات حسابی (مانند جمع، تفریق، ضرب و تقسیم) و منطقی (مانند AND، OR، NOT) را بر عهده دارد. ALU داده‌های ورودی را از رجیسترها دریافت می‌کند، عملیات مورد نظر را انجام می‌دهد و نتیجه را به رجیسترها بازمی‌گرداند.

چگونگی تعامل رجیسترها، ALU و سایر اجزای CPU

CPU از اجزای مختلفی تشکیل شده است که با همکاری یکدیگر، امکان پردازش داده‌ها و اجرای دستورالعمل‌ها را فراهم می‌کنند. اجزای اصلی عبارت‌اند از:

  1. واحد کنترل (Control Unit – CU): وظیفه هماهنگی و مدیریت عملیات بین اجزای مختلف CPU را بر عهده دارد و سیگنال‌های لازم را برای انتقال و پردازش داده‌ها به بخش‌های مختلف CPU ارسال می‌کند.
  2. واحد حساب و منطق (ALU): عملیات حسابی و منطقی را انجام می‌دهد.
  3. رجیسترها (Registers): داده‌ها و دستورالعمل‌های مورد نیاز را ذخیره می‌کنند.
  4. حافظه کش (Cache): داده‌ها و دستورالعمل‌های مورد استفاده مکرر را برای دسترسی سریع‌تر ذخیره می‌کند. حافظه کش کمک می‌کند تا CPU نیازی به رجوع مکرر به حافظه اصلی نداشته باشد و باعث بهبود سرعت پردازش شود.

مراحل عملکرد CPU

  1. واکشی (Fetch): واحد کنترل یک دستورالعمل را از حافظه واکشی کرده و آن را در رجیستر دستورالعمل (IR) قرار می‌دهد.
  2. رمزگشایی (Decode): دستورالعمل رمزگشایی شده و عملیات مورد نیاز و رجیسترهای درگیر مشخص می‌شوند.
  3. بارگذاری (Load): واحد کنترل سیگنال‌های کنترلی را صادر می‌کند تا داده‌ها از رجیسترها به ALU منتقل شوند.
  4. اجرا (Execute): ALU عملیات را بر روی داده‌ها انجام داده و نتیجه را به رجیستر مناسب بازمی‌گرداند.
  5. به‌روزرسانی برنامه‌ شمار: در پایان، رجیستر برنامه‌شمار (PC) به آدرس دستورالعمل بعدی به‌روزرسانی می‌شود، و این فرآیند تکرار می‌شود تا زمانی که برنامه به پایان برسد.

Cache / حافظه پنهان (L1 / L2 / L3)

کش یک حافظه بافر ویژه است که بین حافظه اصلی و پردازنده قرار دارد. بافر یا Buffer عموما در علوم کامپیوتر و الکترونیک بیشتر به کار می‌رود که به زبان ساده اشاره به حافظه موقت یک سیستم دارد.

برای اینکه پردازنده مجبور نباشد هر دستور برنامه را به صورت جداگانه از حافظه اصلی کند واکشی کند، کل فرمان یا بلوک داده از حافظه اصلی در حافظه کش بارگذاری می شود. احتمال اینکه دستورات برنامه بعدی در حافظه پنهان باشد نسبتا زیاد است. تنها زمانی که تمام دستورالعمل های برنامه پردازش شده باشند یا یک دستور پرش به آدرس پرش در خارج از حافظه کش منتهی شود، پردازنده باید دوباره به حافظه اصلی دسترسی پیدا کند. بنابراین، کش باید تا حد امکان بزرگ باشد تا پردازنده بتواند دستورات برنامه را یکی پس از دیگری بدون انتظار اجرا کند.

 پردازنده ها با کش های چند سطحی کار می کنند که اندازه ها و سرعت های متفاوتی دارند. هر چه کش به هسته محاسباتی نزدیک تر باشد، کوچکتر و سریعتر کار می کند.

حافظه کش یک حافظه بسیار سریع و کوچک است که بین پردازنده و حافظه اصلی (RAM) قرار دارد. وظیفه آن ذخیره داده‌ها و دستورالعمل‌هایی است که پردازنده به طور مکرر به آن‌ها نیاز دارد، تا زمان دسترسی به داده‌ها کاهش یابد و عملکرد سیستم بهبود یابد.

سطوح مختلف حافظه کش:

  • کش سطح اول (L1): سریع‌ترین و کوچک‌ترین سطح کش که مستقیماً به هسته پردازنده متصل است. اندازه آن معمولاً بین ۶۴ کیلوبایت تا ۲۵۶ کیلوبایت است.
  • کش سطح دوم (L2): بزرگ‌تر و کندتر از L1، اما همچنان بسیار سریع است. اندازه آن می‌تواند بین ۵۱۲ کیلوبایت تا چند مگابایت باشد.
  • کش سطح سوم (L3): بزرگ‌ترین و کندترین سطح کش که بین تمام هسته‌های پردازنده به اشتراک گذاشته می‌شود. اندازه آن ممکن است تا چندین مگابایت یا حتی گیگابایت باشد.

A Brief History of the Multi-Core Desktop CPU | TechSpot

کش فراگیر و کش انحصاری / Inclusive-Cache and exclusive-Cache

  • کش فراگیر (Inclusive Cache): در این معماری، داده‌های موجود در کش L1 در کش‌های L2 و L3 نیز نگهداری می‌شوند. این امر مدیریت و هماهنگی داده‌ها را آسان‌تر می‌کند، اما ممکن است به استفاده کمتر بهینه از فضای کش منجر شود.
  • کش انحصاری (Exclusive Cache): در این معماری، هر سطح کش داده‌های مختص به خود را دارد و داده‌های تکراری بین سطوح مختلف وجود ندارد. این روش فضای کش را بهینه‌تر استفاده می‌کند، اما مدیریت آن پیچیده‌تر است.

سیاست‌های مدیریت کش: Write-Through، Write-Back و Write-Allocate

  • Write-Through: در این روش، هر تغییری که در داده‌های کش ایجاد می‌شود، بلافاصله به حافظه اصلی نیز نوشته می‌شود. این روش ساده است و داده‌ها در حافظه اصلی همیشه به‌روز هستند، اما عملکرد نوشتن ممکن است کندتر باشد.
  • Write-Back: در این روش، تغییرات ابتدا در کش انجام می‌شوند و در زمان مناسب (مثلاً زمانی که داده از کش حذف می‌شود) به حافظه اصلی منتقل می‌شوند. این روش عملکرد بهتری دارد، اما ممکن است داده‌ها در حافظه اصلی به‌روز نباشند.
  • Write-Allocate: در این روش، هنگام نوشتن داده‌ای که در کش وجود ندارد، ابتدا بلوک مربوطه به کش منتقل می‌شود و سپس تغییرات اعمال می‌شود. این روش با Write-Back معمولاً ترکیب می‌شود.

اندازه حافظه کش پردازنده را در ویندوز 11/10 بررسی کنید

برای بررسی اندازه حافظه پنهان پردازنده از طریق Task Manager در ویندوز 10، موارد زیر را انجام دهید:

    کلیدهای Ctrl + Shift + Esc را فشار دهید تا Task Manager باز شود. اگر Task Manager در حالت فشرده باز شد، روی More details کلیک یا ضربه بزنید.

    • در Task Manager، روی تب Performance کلیک کنید.
    • روی CPU در قسمت سمت چپ کلیک کنید.
    • در سمت راست، اندازه‌های کش L1، L2 و L3 را در پایین مشاهده خواهید کرد.
    • پس از اتمام بازبینی، از Task Manager خارج شوید.

    1 LCPU = 1 thread

    ساعت (Clock) در پردازنده (CPU)

    ساعت پردازنده یا فرکانس ساعت، یکی از مهم‌ترین مفاهیم در معماری کامپیوتر و طراحی پردازنده‌هاست. برای درک عمیق‌تر این مفهوم، نکات زیر را باید بدانیم:

    1. ساعت (Clock) چیست؟ ساعت در پردازنده به سیگنال الکتریکی نوسانی اشاره دارد که عملیات‌های داخلی پردازنده را هماهنگ می‌کند. این سیگنال به صورت پالس‌های منظم تولید می‌شود و هر پالس نشان‌دهنده یک چرخه (Cycle) است.

    2. فرکانس ساعت (Clock Frequency): فرکانس ساعت تعداد چرخه‌های ساعت در ثانیه را نشان می‌دهد و با واحد هرتز (Hz) اندازه‌گیری می‌شود. برای مثال، یک پردازنده با فرکانس 3.5 گیگاهرتز (GHz) می‌تواند 3.5 میلیارد چرخه در ثانیه انجام دهد.
      CPU Speed: What Is CPU Clock Speed? | Intel
    3. اهمیت ساعت در عملکرد پردازنده: فرکانس ساعت مستقیماً بر سرعت اجرای دستورالعمل‌ها تأثیر می‌گذارد. هرچه فرکانس بالاتر باشد، پردازنده می‌تواند در واحد زمان بیشتری عملیات انجام دهد. اما باید توجه داشت که فرکانس تنها عامل تعیین‌کننده عملکرد نیست.
      Illustration of max turbo frequency

    4. معماری پردازنده و IPC (Instructions Per Cycle): تعداد دستورالعمل‌هایی که پردازنده می‌تواند در هر چرخه ساعت اجرا کند (IPC)، نیز بر عملکرد کلی تأثیر دارد. دو پردازنده با فرکانس مشابه ممکن است به دلیل تفاوت در معماری و IPC، عملکرد متفاوتی داشته باشند.

    5. محدودیت‌های افزایش فرکانس:

      • گرما و مصرف انرژی: افزایش فرکانس باعث افزایش مصرف انرژی و تولید گرما می‌شود که نیاز به سیستم‌های خنک‌کننده مؤثر دارد.
      • پایداری سیگنال: در فرکانس‌های بسیار بالا، مشکلاتی مانند تاخیر سیگنال و نویز می‌تواند عملکرد را تحت تأثیر قرار دهد.
    6. تکنولوژی‌های مرتبط:

      • Turbo Boost / Turbo Core: تکنولوژی‌هایی که به پردازنده اجازه می‌دهند به صورت دینامیک فرکانس ساعت را بر اساس نیازهای کاری افزایش دهند.
      • Overclocking: فرآیند افزایش دستی فرکانس ساعت فراتر از مشخصات کارخانه‌ای برای بهبود عملکرد، که ممکن است خطراتی مانند کاهش عمر مفید قطعات را به همراه داشته باشد.
    7. ساعت سیستم (System Clock) در مقابل ساعت پردازنده: ساعت سیستم، فرکانس پایه‌ای است که برای هماهنگی بین اجزای مختلف سیستم استفاده می‌شود، در حالی که ساعت پردازنده به فرکانس کاری خود پردازنده اشاره دارد.

    8. ساعت و هماهنگ‌سازی: سیگنال ساعت برای هماهنگ‌سازی فعالیت‌های بین واحدهای مختلف داخل پردازنده و همچنین بین پردازنده و اجزای خارجی مانند حافظه RAM استفاده می‌شود.

      ساعت پردازنده یکی از عوامل کلیدی در تعیین سرعت و کارایی یک سیستم کامپیوتری است. فهم عمیق از مفهوم ساعت و نحوه تأثیر آن بر عملکرد سیستم، برای یک متخصص IT ضروری است.

    معماری پردازنده‌ها (CPU Architectures) و انواع مختلف آن‌ها

    معماری پردازنده (CPU Architecture) به طراحی و ساختار داخلی پردازنده اشاره دارد که نحوه پردازش دستورات، ذخیره داده‌ها و تعامل با سایر اجزای کامپیوتر را تعیین می‌کند. معماری پردازنده تأثیر مستقیم بر سرعت و کارایی سیستم دارد و به گونه‌ای طراحی می‌شود که بسته به نیاز سیستم، عملکرد بهینه‌ای را ارائه دهد. در ادامه به جنبه‌های مهم معماری پردازنده‌ها و انواع رایج آن‌ها پرداخته شده است.

    1. معماری ۳۲ بیتی و ۶۴ بیتی

    یکی از مهم‌ترین ویژگی‌های معماری پردازنده‌ها، عرض بیت آن‌ها است، که مشخص می‌کند یک پردازنده تا چه مقدار از داده را می‌تواند در یک چرخه پردازش کند.

    • معماری ۳۲ بیتی: در این معماری، رجیسترهای پردازنده ۳۲ بیت داده را در یک زمان پردازش می‌کنند و می‌توانند تا ۴ گیگابایت حافظه را آدرس‌دهی کنند. این معماری برای سیستم‌هایی که نیاز به حجم حافظه بالا ندارند مناسب است.
    • معماری ۶۴ بیتی: این معماری، رجیسترهای بزرگتری دارد که می‌توانند ۶۴ بیت داده را در یک چرخه پردازش کنند. این افزایش ظرفیت به پردازنده امکان می‌دهد تا حافظه‌های بسیار بزرگتر را آدرس‌دهی کند. سیستم‌های ۶۴ بیتی معمولاً تا چند ترابایت حافظه را پشتیبانی می‌کنند و برای پردازش‌های سنگین مانند داده‌کاوی، شبیه‌سازی‌ها و محاسبات علمی مناسب هستند.

    2. معماری مجموعه دستورات (Instruction Set Architecture – ISA)

    معماری مجموعه دستورات، مجموعه‌ای از دستورات است که پردازنده می‌تواند اجرا کند. این دستورات نوع و روش انجام محاسبات و عملیات پردازش را تعریف می‌کنند. دو نوع اصلی از معماری مجموعه دستورات عبارتند از:

    • معماری RISC (Reduced Instruction Set Computing): این معماری از مجموعه دستورات ساده‌تری استفاده می‌کند که هرکدام تنها یک کار کوچک را انجام می‌دهند. پردازنده‌های RISC به سرعت می‌توانند این دستورات ساده را اجرا کنند و این امر باعث کارایی بالاتر آن‌ها می‌شود. معماری RISC بیشتر در پردازنده‌های ARM، که در دستگاه‌های موبایل استفاده می‌شوند، به کار می‌رود. پردازنده‌های ARM در سال‌های اخیر پیشرفت قابل‌توجهی داشته‌اند و در حال حاضر به طور فزاینده‌ای در سرورها و رایانه‌های شخصی استفاده می‌شوند، در درجه اول به دلیل بهره‌وری انرژی و عملکرد در هر وات. با پیشرفت هایی مانند تراشه های Apple Silicon M1 و M2 و همچنین CPU های سرور مانند Graviton شرکت خدمات وب آمازون، معماری ARM اکنون با پردازنده های x86 سنتی در مراکز داده، لپ تاپ ها و رایانه های رومیزی قابل رقابت است.

    معماری CISC (Complex Instruction Set Computing): در این نوع معماری، از مجموعه‌ای از دستورات پیچیده‌تر استفاده می‌شود که می‌توانند چندین عملیات را به صورت همزمان انجام دهند. پردازنده‌های CISC معمولاً در رایانه‌های شخصی و سرورها به کار می‌روند و برای کارهایی که نیاز به پردازش‌های پیچیده دارند، مانند بازی‌های کامپیوتری و نرم‌افزارهای حرفه‌ای، مناسب هستند. معماری x86، که در پردازنده‌های اینتل و AMD به کار رفته است، بر اساس CISC استWhat is CISC Processor? Features, Architecture, Advantages, Disadvantages  and Applications of CISC Processor - Electronics Desk

    مقایسه معماری‌های RISC و CISC

    Processors, how they are made and how they work - Meccanismo Complesso

    معماری‌های پردازنده به دو نوع اصلی تقسیم می‌شوند: RISC (Reduced Instruction Set Computing) و CISC (Complex Instruction Set Computing). هرکدام از این معماری‌ها مزایا و معایب خاص خود را دارند و برای کاربردهای خاصی طراحی شده‌اند. در ادامه، این دو معماری را از جهات مختلف مقایسه می‌کنیم.

    مجموعه دستورات

    • RISC: در معماری RISC، مجموعه دستورات ساده و کم‌تعداد است. هر دستور به گونه‌ای طراحی شده است که تنها یک کار ساده را انجام دهد و در یک چرخه پردازش شود. این سادگی باعث می‌شود که پردازنده‌های RISC سریع‌تر باشند و توان مصرفی کمتری داشته باشند.
    • CISC: معماری CISC دارای مجموعه‌ای از دستورات پیچیده‌تر است. هر دستور ممکن است چندین عملیات را همزمان انجام دهد و به چرخه‌های پردازشی بیشتری نیاز داشته باشد. این معماری امکان انجام وظایف پیچیده را فراهم می‌کند و انعطاف‌پذیرتر است.

    کارایی و سرعت پردازش

    • RISC: به دلیل سادگی دستورات، پردازنده‌های RISC می‌توانند دستورات را با سرعت بالاتری پردازش کنند. هر دستور به یک چرخه پردازش نیاز دارد و به همین دلیل برای وظایف با بار محاسباتی بالا و تکراری بسیار مناسب است.
    • CISC: در CISC، دستورات پیچیده‌تری وجود دارد که ممکن است به چندین چرخه نیاز داشته باشند. اگرچه این باعث می‌شود که CISC در اجرای دستورات پیچیده قوی‌تر باشد، اما سرعت پردازش کلی می‌تواند نسبت به RISC پایین‌تر باشد.

    پیچیدگی و اندازه پردازنده

    • RISC: با داشتن مجموعه‌ای ساده از دستورات، پردازنده‌های RISC از لحاظ طراحی سخت‌افزاری ساده‌تر و کوچک‌تر هستند. این ویژگی به کاهش هزینه تولید و همچنین مصرف انرژی کمک می‌کند.
    • CISC: پردازنده‌های CISC پیچیده‌تر هستند و اندازه فیزیکی آن‌ها به دلیل مجموعه دستورات گسترده و پیچیده‌تر بیشتر است. این پیچیدگی می‌تواند باعث افزایش هزینه و مصرف انرژی شود.

    کاربردها و حوزه‌های استفاده

    • RISC: این معماری بیشتر در دستگاه‌های همراه (مانند تلفن‌های هوشمند و تبلت‌ها) و همچنین برخی از سرورها و PCهای مدرن به کار می‌رود. پردازنده‌های ARM، که در دستگاه‌های همراه و اخیراً در سرورها و لپ‌تاپ‌ها محبوب شده‌اند، نمونه‌ای از معماری RISC هستند.
    • CISC: معماری CISC به طور گسترده در کامپیوترهای شخصی و سرورها استفاده می‌شود. پردازنده‌های x86، که توسط اینتل و AMD تولید می‌شوند، از این معماری استفاده می‌کنند و برای نرم‌افزارهای دسکتاپ و برنامه‌های پیچیده بسیار مناسب هستند.

     مصرف انرژی

      • RISC: مصرف انرژی در معماری RISC کمتر است، به همین دلیل در دستگاه‌های همراه و کاربردهایی که به بهره‌وری انرژی اهمیت می‌دهند، استفاده می‌شود.
      • CISC: مصرف انرژی در پردازنده‌های CISC بیشتر است، اما با این حال در سیستم‌هایی که نیاز به توان پردازشی بالا دارند، از آن‌ها استفاده می‌شود.

    3. سلسله‌مراتب حافظه کش (Cache Hierarchy)

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

    • کش L1: کوچک‌ترین و سریع‌ترین نوع کش است که مستقیماً به هسته پردازنده متصل است و به ذخیره داده‌های پرتکرار اختصاص دارد.
    • کش L2: از کش L1 بزرگتر است اما سرعت آن کمی کمتر است. این حافظه برای ذخیره داده‌ها و دستوراتی استفاده می‌شود که ممکن است به زودی نیاز باشند.
    • کش L3: بزرگترین و کندترین کش است، اما همچنان بسیار سریعتر از حافظه اصلی (RAM) می‌باشد. این حافظه معمولاً بین چندین هسته پردازنده مشترک است و به هماهنگی و تبادل داده بین هسته‌ها کمک می‌کند.

    سلسله‌مراتب کش به پردازنده کمک می‌کند تا دسترسی به داده‌ها را سریعتر انجام دهد و نیاز به دسترسی به حافظه اصلی کاهش یابد، که این امر باعث افزایش سرعت کلی سیستم می‌شود.

    4. معماری چند هسته‌ای (Multicore Architecture)

    پردازنده‌های قدیمی معمولاً تنها یک هسته داشتند، اما پردازنده‌های مدرن دارای چندین هسته هستند. هر هسته می‌تواند دستورات را به صورت مستقل اجرا کند و این امر امکان پردازش همزمان چندین عملیات را فراهم می‌کند.

    • پردازنده‌های دو هسته‌ای (Dual-core): دارای دو هسته هستند که می‌توانند دو وظیفه مجزا را همزمان پردازش کنند.
    • پردازنده‌های چهار هسته‌ای (Quad-core) و بیشتر: تعداد بیشتری هسته دارند و برای کارهای سنگین‌تری مانند پردازش موازی در نرم‌افزارهای علمی و صنعتی مناسب هستند.

    معماری چند هسته‌ای برای نرم‌افزارهایی که از چند وظیفه یا محاسبات موازی پشتیبانی می‌کنند، بسیار مفید است و به افزایش کارایی و سرعت سیستم کمک می‌کند.

    5. پایپ‌لاینینگ (Pipelining)

     

    Speeding Up Computation: The Role of Pipelining in Modern CPUs | by Rana  Umar Nadeem | Medium

    پایپ‌لاینینگ تکنیکی است که به پردازنده اجازه می‌دهد چندین دستورالعمل را به صورت همزمان پردازش کند. این روش مراحل اجرای دستورات (واحد واکشی، رمزگشایی، اجرا و ذخیره) را به بخش‌های جداگانه‌ای تقسیم می‌کند. هر بخش می‌تواند به صورت مستقل کار کند، و این امر باعث می‌شود که پردازنده به طور پیوسته کار کند و نیازی به انتظار برای تکمیل یک دستور قبل از آغاز دستور بعدی نداشته باشد. پایپ‌لاینینگ در پردازنده‌های مدرن به طور گسترده مورد استفاده قرار می‌گیرد و باعث افزایش کارایی و بهره‌وری سیستم می‌شود.

    6. آدرس‌دهی حافظه و مجازی‌سازی (Memory Addressing and Virtualization)

     

    Memory address - Wikipedia

    پردازنده‌های مدرن دارای قابلیت آدرس‌دهی مجازی هستند، که به هر برنامه یک فضای آدرس‌دهی اختصاصی می‌دهد و امکان اجرای برنامه‌ها به صورت مستقل را فراهم می‌کند. این تکنیک به بهبود امنیت و مدیریت حافظه کمک می‌کند، چرا که هر برنامه در یک فضای جداگانه اجرا می‌شود و دسترسی مستقیم به حافظه سایر برنامه‌ها ندارد.

    همچنین، پردازنده‌های مدرن از مجازی‌سازی پشتیبانی می‌کنند که به اجرای همزمان چندین سیستم‌عامل یا ماشین مجازی روی یک پردازنده کمک می‌کند. این ویژگی به ویژه در سرورها و مراکز داده‌ای اهمیت دارد و امکان استفاده بهینه از منابع پردازشی را فراهم می‌کند.