پردازنده یا واحد پردازش مرکزی Central Processing Unit – CPU
پردازنده یا Central Processing Unit – CPU چیست؟
پردازنده (Processor) یا واحد پردازش مرکزی (Central Processing Unit) که به اختصار با عنوان سی پی یو (CPU) نیز شناخته میشود یک مدار الکترونیکی در رایانه است که مسئولیت پردازش و انجام دستورالعملهای یک برنامه را برعهده دارد.
از CPU به عنوان مغز و مهمترین جزء یک دستگاه رایانهای نیز یاد میشود. با وجود اینکه فرم، طراحی و نحوهی ساخت پردازندهها در طول تاریخ با تغییرات زیادی همراه بوده است اما عملکرد اصلی آنها تقریبا دست نخورده باقی مانده است. اجزای اصلی یک CPU عبارتند از:
- واحد محاسبه و منطق یا Arithmetic Logic Unit (به اختصار ALU): که اعمال منطقی و حسابی را انجام میدهد.
- ثباتهای پردازنده یا CPU Registers: که عملوندهای مورد نیاز واحد محاسبه و منطق را فراهم میآورند و همچنین حاصل اعمال آن را نگهداری میکنند.
- واحد کنترل یا Control Unit: که اعمال پردازنده را هدایت و کنترل میکند. به عبارت بهتر، چگونگی واکنش واحد محاسبه و منطق، مموری و دستگاههای ورودی و خروجی در برابر دستورالعملها را تعیین میکند.
بسیاری از ریزپردازندههای امروزی دارای بخشی به نام واحد مدیریت حافظه (MMU) نیز هستند. اغلب رایانههای امروزی از پردازندههای چند هستهای (Multi-Core Processor) استفاده میکنند. در این رایانهها، یک یا چند CPU که به آنها هسته (Core) گفته میشود روی یک چیپ واحد قرار میگیرند و امکان پردازش موازی و اجرای چندین دستور به طور همزمان را فراهم میکنند. البته چندنخیسازی (Multithreading) نیز قابلیتی رایج در پردازندههای ساده و هر هسته موجود در پردازندههای چند هستهای است که امکان اجرای همزمان چندین فرایند (Process) یا نخ (Thread) را فراهم میآورد.
نحوهی عملکرد پردازنده
دستوراتی که قرار است توسط پردازنده اجرا شوند (برنامه) روی نوعی حافظه رایانهای قرار میگیرند. به این ترتیب روند اجرای دستورات توسط CPU نیازمند انجام سه مرحلهی واکشی (Fetch)، دیکد یا رمزگشایی (Decode) و اجرا (Execute) میباشد.
در فرایند واکشی، براساس محتوای ثبات شمارنده برنامه (Program Counter یا PC) محل دستور روی حافظه مشخص میشود. پس از اجرای یک دستور، با افزایش مقدار شمارنده برنامه، این روند برای دستور بعدی تکرار میشود. در صورتی که یک دستور جهش (Jump) اجرا شود شمارنده برنامه به آدرس دستوری که جهش به آن نقطه انجام شده است تغییر مییابد.
در مرحله رمزگشایی، دستور به سیگنالهایی تبدیل میشود که عملکرد سایر بخشهای پردازنده را کنترل میکند. در مرحله نهایی برای اجرای دستور، براساس سیگنالهای حاصل از مرحله دیکد بخشهایی از پردازنده به یکدیگر متصل میشوند تا هنگام وقوع پالس در کلاکِ پردازنده، عمل مورد نظر انجام شود. گفتنی است هر پردازنده (تک هسته) تنها قادر به اجرای یک دستور در هر کلاک میباشد. استفاده از روشهای موازیسازی امکان رسیدن به این حداکثر کارایی را برای یک پردازنده فراهم میسازد (سیگنال کلاک با یک نرخ مشخص، فرکانس عملکردی یک پردازنده یا چیپ را تعیین میکند. هرچه این فرکانس بالاتر باشد و تعداد دستورات قابل انجام در یک کلاک توسط سی پی یو نیز مقدار بیشتری باشد کارایی یا سرعت آن پردازنده نیز بالاتر خواهد بود).