واحد پردازنده (CPU) قلب و یا مغز یک کامپیوتر است. دستورالعملهایی که به آن ارائه میشود را اجرا میکند. وظیفه اصلی آن انجام عملیات حسابی و منطقی و تنظیم دقیق دستورالعملها با هم است. قبل از عمیق شدن در قسمت های مختلف CPU، به بررسی اینکه اجزای اصلی پردازنده چیست و چه نقشی دارند پرداخته شده است.
دو بخش اصلی از یک پردازنده (CPU)
- واحد کنترل (Control Unit – CU)
- واحد محاسبات و منطق (Arithmetic and logical unit — ALU)
واحد کنترل
واحد کنترل (Control Unit – CU) یکی از قسمت های مختلف CPU است که به برنامهریزی در اجرای دستورالعملها کمک میکند. این واحد فرمان میدهد که چه کاری انجام شود. این فرمان به فعال شدن سیمهای اتصال CPU که به قسمتهای مختلف کامپیوتر از جمله ALU وصل هستندکمک میکند. واحد کنترل اولین جز پردازنده است که دستورالعمل پردازش را دریافت میکند.
دو نوع واحد کنترل وجود دارد:
- واحدهای کنترل سخت افزاری
- واحد کنترل قابل برنامهریزی میکرو (میکرو برنامهریزی شده)
واحدهای کنترل سخت افزاری، سختافزاری هستند و برای تغییر در کار نیاز به تغییر سخت افزار دارند در حالی که واحد کنترل برنامهریزی شده میتواند برای تغییر رفتار برنامهریزی شود. واحد کنترل سختافزاری در پردازش دستورالعمل سریعتر است در حالی که واحد برنامهریزی شده انعطاف پذیرتر است.
واحد حسابی و منطقی (ALU)
همانطور که از نام واحد، واحد ریاضی و منطقی برمیآید، تمام محاسبات حساب و منطقی را انجام میدهد. این واحد عملیاتی مانند جمع، تفریق را انجام میدهد. این واحد از مدارهای منطقی یا دروازههای منطقی تشکیل شده است که این عملیات را انجام میدهند. بیشتر گیتهای (دروازههای) منطقی دو ورودی میگیرند و یک خروجی تولید میکنند.
در زیر مثالی از یک مدار نیمه جمعکننده آورده شده است که دو ورودی را میگیرد و نتیجه را در خروجی نمایش میدهد. در اینجا A و B ورودی هستند،S خروجی است و C حمل کننده است.

ذخیره سازی – ثبت و حافظه
وظیفه اصلی پردازنده مرکزی اجرای دستورالعملهای ارائه شده به آن است. برای پردازش این دستورالعملها بیشتر اوقات، به داده نیاز دارد. برخی از دادهها دادههای میانی هستند، برخی از آنها ورودی هستند و دیگری خروجی است. این دادهها به همراه دستورالعملها در بخش ذخیرهسازی، ذخیره میشوند.
ثبتکننده
بخش ثبتکننده (Register) یک مجموعه کوچک از مکانهایی است که میتوان دادهها را در آن ذخیره کرد. بخش ثبتکننده ترکیبی از دروازههای منطقی است که 1 بیت اطلاعات را در خود ذخیره میکنند.
یک ثبتکننده دارای دو سیم ورودی (نوشتن و سیم ورودی) و یک سیم خروجی است. میتوان سیم نوشتن را برای ایجاد تغییر در دادههای ذخیره شده فعال کرد. وقتی سیم نوشتن غیرفعال است، خروجی همیشه ثابت میماند.
پردازنده دارای یک ثبتکننده برای ذخیره دادههای خروجی است. ارسال داده به حافظه اصلی (RAM) کند است زیرا این نوع دادهها، داده میانی هستند. این دادهها به سایر ثبتکنندهها که توسط گذرگاه (BUS) به پردازنده متصل شدهاند ارسال میشود. یک ثبتکننده میتواند دستورالعملها، دادههای خروجی، آدرس ذخیرهسازی یا هر نوع داده را ذخیره کند.
دستورالعملها چیست؟
انواع مختلفی از دستورالعملها وجود دارد که CPU میتواند پردازش کند. دستورالعملها عبارتند از:
- دستورالعملهای حسابی مانند جمع و تفریق
- دستورالعملهای منطقی مانند: و، یا، نه
- دستورالعملهای داده مانند: انتقال، ورودی، خروجی، بارگذاری و ذخیرهسازی
- کنترل جریان دستورالعملها مانند برو به، اگر، فراخوانی و برگشت
- به پردازنده اطلاع دهید که برنامه متوقف شده، پایان یافته است
دستورالعملها با استفاده از زبان اسمبلی به کامپیوتر ارائه میشوند یا توسط کامپایلر (مترجم) تولید میشوند یا در برخی از زبانهای سطح بالا تفسیر میشوند.
این دستورالعملها در داخل پردازنده (CPU) به صورت سختافزاری ایجاد شدهاند. بخشALU شامل حساب و منطق است در حالی که کنترل جریان داده توسط CU مدیریت میشود.
در یک چرخه ساعت (کلاک) کامپیوترها میتوانند یک دستورالعمل را انجام دهند اما کامپیوترهای مدرن میتوانند بیش از یک دستورالعمل را انجام دهند.
به گروهی از دستورالعملهای یک کامپیوتر، مجموعه دستورالعملها گفته میشود.
ساعت پردازنده
چرخه ساعت
سرعت کامپیوتر با چرخه ساعت آن تعیین میشود. چرخه ساعت CPU بر حسب گیگاهرتز (GHz) اندازهگیری میشود. یک گیگاهرتز برابر با 10به توان 9 هرتز (Hz) است. هرتز به معنای هر چیزی در ثانیه است. بنابراین یک گیگاهرتز به معنای 10 به توان 9 چرخه در ثانیه است.
هر چقدر چرخه ساعت سریعتر باشد، پردازنده میتواند دستورالعملهای بیشتری را اجرا کند. چرخه ساعت برابر است با یک تقسیم بر زمان نرخ ساعت پردازنده برابر با تعداد چرخه ساعت تقسیم بر نرخ ساعت.
این بدان معنی است که برای بهبود زمان پردازنده میتوانیم با بهینهسازی دستورالعمل ارائه شده به پردازنده، میزان کلاک را افزایش دهیم یا تعداد چرخههای ساعت را کاهش دهیم. برخی از پردازندهها توانایی افزایش چرخه ساعت را فراهم میکنند.
گذرگاه (BUS)
تمام دادههای بین پردازنده، ثبتکننده، حافظه و دستگاههای ورودی و خروجی از طریق گذرگاه منتقل میشوند. برای بارگذاری دادهها روی حافظهای که تازه اضافه شده است، پردازنده آدرس حافظه را در آدرس گذرگاه (address-bus) و نتیجه حاصل از جمع را در داده گذرگاه (bus-data) قرار میدهد و سیگنال مناسب را در بخش کنترل گذرگاه (control-bus) فعال میکند. به این ترتیب داده ها با کمک گذرگاه در حافظه بارگیری میشوند.

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

این موضوع وقتی یک دستورالعمل به دستورالعمل دیگری وابسته باشد یک معضل است. بنابراین پردازنده ها دستورالعملی را اجرا میکنند که وابسته به دستورالعمل دیگری نیست.
عملکرد پردازنده
عملکرد پردازنده با توجه به زمان اجرا تعیین میشود. عملکرد برابر است با 1 تقسیم بر زمان اجرا. عاملی که برای عملکرد پردازنده مورد توجه قرار میگیرد، زمان اجرای دستورالعمل و سرعت کلاک پردازنده است. بنابراین برای افزایش عملکرد یک برنامه یا باید سرعت ساعت (کلاک) را افزایش دهیم یا تعداد دستورالعملهای یک برنامه را کاهش دهیم. سرعت پردازنده محدود است و کامپیوترهای مدرن با چند هسته میتوانند در هر ثانیه میلیونها دستورالعمل را پشتیبانی کنند. اما اگر برنامهای که قرار است اجرا شود دستورالعملهای زیادی داشته باشد، این عملکرد بسیار کاهش مییابد.
در پردازندهها بهینهسازیهای زیادی انجام شده است تا پردازش سریعتر انجام شود و تا آنجا که میتواند عملکرد خوبی داشته باشد. هنگام نوشتن هر برنامه، باید در نظر داشت که چگونه کاهش تعداد دستورالعملهایی که به CPU ارائه داده میشود، عملکرد برنامه کامپیوتر را افزایش میدهد.
مطالبی که شاید برای شما مفید باشد
ایمن کردن کامپیوتر با رمز عبور BIOS یا UEFI
تاخیر زمانی یا CL در حافظه به چه معنا است؟
انواع مادربرد براساس سوکت پردازنده