سی پی یو چگونه کار میکند

سی پی یو چگونه کار میکند ، اگر برای شما نیز سوال است که سی پی یو چگونه کار میکند بنابراین در ادامهی این مقاله با ما همراه باشید. قلب سیستم شما، یعنی سی پی یو حتی برای بسیاری از افراد متخصص فناوری نیز جادویی به نظر میرسد. هر وسیله محاسباتی از اسباب بازیهای ساده گرفته تا سیستمهای تجاری بزرگ دارای یک مؤلفه اساسی به نام واحد پردازش مرکزی است. سی پی یو CPU که مخفف central processing unit است، بر روی دادهها محاسبات را انجام میدهد، مقایسه منطقی میکند و دادهها را تا میلیاردها بار در ثانیه حرکت میدهد. همانطور که میدانید رایانهها به صورت باینری کار میکنند. آنها فقط دو حالت را درک میکنند: روشن و خاموش. برای انجام محاسبات به صورت باینری، از آنچه ترانزیستور نامیده میشود استفاده میکنند. در اصل، ترانزیستور یک سوئیچ دودویی تشکیل میدهد، که سیم را بسته به سیگنال ورودی دوم قطع میکند.
سی پی یو چگونه کار میکند :
سی پی یو CPU که قلب و یا مغز یک کامپیوتر نامیده میشود. یک تراشه رایانهای است که از لحاظ اندازه به اندازهی یک کتاب است که در داخل بستهی مستطیل سیلیکونی قرار دارد که حاوی میلیونها مدار ترانزیستوری شده است. از دستگاه، دهها پین فلزی بیرون زده، که هر کدام سیگنالهای الکترونیکی را از داخل تراشه منتقل میکنند. این تراشه به یک سوکت در مدار رایانه متصل میشود و با حافظه، دیسکهای سخت، صفحه نمایشها و سایر دستگاههای خارجی به CPU ارتباط برقرار میکند. دستورالعملهایی را که به آن ارائه شده است اجرا میکند. کار اصلی این است که عملیات حسابی و منطقی را انجام داده و دستورالعملها را با هم هماهنگ کند. قبل از اینکه به قسمتهای اصلی سی پی یو بپردازیم، با بررسی اینکه مؤلفههای اصلی یک CPU چیست و نقش آنها چیست به این مسئله میپردازیم. دو مولفهی اصلی یک سی پی یو را در زیر معرفی میکنیم و در ادامه نقش هرکدام را بیان میکینم.
- واحد کنترل – CU
- واحد حسابی و منطقی – ALU
واحد کنترل CU :
CU که مخفف Control Unit میباشد بخشی از CPU است که به هماهنگکردن اجرای دستورالعملها کمک میکند. درواقع این قسمت می گوید چه کاری باید انجام شود و درواقع از طریق دستورالعمل، به فعال کردن سیمهایی که CPU را به سایر قسمتهای رایانه از جمله ALU وصل میکند، کمک میکند. همچنین به دستگاههای ورودی و خروجی میگوید چگونه به دستورهای صادرشده از برنامهها پاسخ دهند. واحد کنترل اولین مؤلفه سی پی یو است که دستورالعمل پردازش را دریافت میکند. دو نوع واحد کنترل وجود دارد که در زیر میبینیم.
- واحدهای کنترل سختافزاری
- واحد کنترل میکروپروگرام (میکروگرم برنامه ریزی).
واحدهای کنترل سخت درواقع سخت افزاری هستند و برای افزودن تغییرات، نیاز به تغییر در سخت افزار دارند و در آنجا میتوانند به عنوان واحد کنترل میکروپروگراماتیک برنامه ریزی شوند تا رفتار خود را تغییر دهند. گفتنی است که واحد کنترل سختافزاری در دستورالعمل پردازش، سریعتر عمل میکنند در حالی که واحد کنترل میکروپروگرام بیشتر انعطاف پذیرتر است.
واحد حسابی و منطق یعنی ALU :
واحد محاسباتی و منطقی ALU همانطور که از نام آن مشخص است و مخفف Arithmetic and logical unit است تمام محاسبات حسابی و منطقی را انجام میدهد. درواقع ALU عملیاتی مانند جمع و تفریق را انجام میدهد؛ همچنین شامل مدار منطقی یا گیتهای منطقی است که این عملیات را انجام میدهد. بیشتر گیتهای منطق دارای دو ورودی هستند و یک خروجی تولید میکنند.
در زیر نمونهای از مدار نیم جمعکننده (half adder) را میبینیم که دارای دو ورودی است و نتیجه را به عنوان خروجی به دست میآورد. در اینجا A و B ورودی هستند و S و C نیز خروجیهای مدار هستند.
ذخیره ساز ریجستر و حافظه :
کار اصلی CPU اجرای دستورالعملهای ارائه شده به ریجسترها است. سی پی یو برای پردازش این دستورالعملها بیشتر اوقات، به داده نیاز دارد. برخی از دادهها داده واسطهای هستند، برخی از آنها نیز ورودی هستند و برخی خروجی. این دادهها به همراه دستورالعملها در ذخیرهساز ریجستر ذخیره میشوند. خب حالا شاید برای شما سوال باشد که ریجستر چیست درواقع ریجستر (Register) که ثبات نیز گفته میشود یک مجموعه کوچک از مکانی است که میتواند دادهها را ذخیره کند. ریجستر ترکیبی از فلیپ فلاپها است و فلیپ فلاپها نیز خود ترکیبی از گیتهای منطقی هستند که 1 بیت از اطلاعات را ذخیره میکنند.
CPU برای ذخیره دادههای خروجی از رجیستر استفاده میکند. ارسال دادهها به حافظه اصلی یعنی RAM سریع انجام نمیشود و کند است زیرا دادهها میانی هستند. این دادهها به ریجستر دیگری ارسال میشوند که توسط یک باس (BUS) انجام میگیرد. یک ریجستر میتواند دستورالعمل، دادههای خروجی، آدرس ذخیرهسازی یا هر نوع داده را ذخیره کند. حال بدانیم نقش خود حافظه (RAM) در CPU چگونه است حافظه رام مجموعه ای از ریجسترها است که به صورت بهینهسازیشده با هم سازماندهی شدهاند تا بتواند تعداد بیشتری از دادهها را ذخیره کنند. RAM که به آن حافظه دسترسی تصادفی فرار نیز میگویند هنگام خاموش کردن برق، اطلاعات آن از بین می رود. از آنجا که RAM مجموعهای از ریجسترها برای خواندن و نوشتن دادهها است از آدرس 8بیتی استفاده میکند.
دستورالعمل :
دستورالعمل محاسبههای کوچکی است که یک کامپیوتر میتواند انجام دهد و درواقع میتوانیم بگوییم بخش کوچکی از عملیات است. انواع مختلفی از دستورالعملها وجود دارد که یک CPU می تواند پردازش کند.
دستورالعملها عبارتند از:
- حسابی مانند جمع و تفریق
- دستورالعمل های منطقی مانند AND،OR و NOT
- دستورالعمل های داده مانند انتقال، ورودی، خروجی، بارگذاری یا لودکردن و دخیرهسازی
- دستورالعملهای کنترل جریان مانند Goto، if … goto، call و return
- اطلاع به CPU برای توقف یک برنامه
- دستورالعملها با استفاده از زبان اسمبلی به رایانه ارائه میشوند یا توسط کامپایلر تولید میشوند یا در برخی از زبان های سطح بالا تفسیر میشوند.
این دستورالعملها درون واحد کنترل سختافزاری هستند. ALU شامل عملیات حسابی و منطقی است جایی که کنترل جریان توسط CU مدیریت میشود. در یک چرخه کلاک کامپیوترها میتوانند یک دستورالعمل را انجام دهند اما کامپیوترهای مدرن میتوانند بیش از یک عمل را انجام دهند.
Clock cycle :
سرعت یک کامپیوتر توسط Clock cycle آن تعیین میشود. درواقع این مفهوم تعداد پالسها در واحد زمان (ثانیه) است که یک کامپیوتر روی آن کار میکند.
Clock cycle در سی پی یو با گیگاهرتز(gHz) اندازه گیری میشود. یک گیگاهرتز برابر با 10 به توان 9 هرتز است. هرتز به معنی ثانیه است. هرچه Clock cycle سریعتر باشد، CPU دستورالعمل بیشتری را می تواند اجرا کند. میتوانیم آن را از فرمول زیر ببینیم.
Clock cycle = 1/clock rate
CPU Time = number of clock cycle / clock rate
برخی پردازندهها توانایی افزایش Clock cycle را فراهم میکنند اما ممکن است تغییرات فیزیکی ایجاد شده، سیستم را بیش از حد گرم کند و حتی باعث سوختن دستگاه شود. برای اطلاعات بیشتر در ادامه مقاله سی پی یو چگونه کار میکند با ما همراه باشید.
نحوه عملکرد یک دستورالعمل :
دستورالعملها بر روی رم به ترتیب متوالی ذخیره میشوند. دستورالعمل فرضی CPU شامل کد OP (کد عملیاتی) و حافظه یا آدرس ریجستر است.
دو رجیستر در داخل یک ریجستر دستورالعمل واحد کنترل وجود دارد که کد OP از درستورالعمل و ریجستر آدرس دستورالعمل (IR) را بارگذاری میکند همچنین آدرس دستورالعمل فعلی را نیز بارگیری می کند. ریجسترهای دیگری نیز در داخل یک CPU وجود دارد که مقدار ذخیره شده در آدرس 4 بیت آخر یک دستورالعمل را ذخیره میکنند.
بیایید نمونهای از مجموعه دستورالعملها را انجام دهیم که دو عدد را اضافه میکند. در زیر دستورالعمل همراه با توضیحات در اینجا آمده است:
- مرحله اول بارگذاری – A8
این دستورالعمل در ابتدا در RAM ذخیره میشود، همانطور که می گویم <1100 1000> 4 بیت اول آن کد op است و این قسمت دستورالعمل را تعیین میکند. این دستورالعمل به IR واحد کنترل منتقل میشود. دستورالعمل رمزگشایی شده to load_A است به این معنی که باید بارگیری دادهها در آدرس 1000 که آخرین 4 بیت دستورالعمل برای ثبت A است، بارگیری شود.
- مرحله دوم بارگذاری – B2
مشابه موارد فوق، دادههای موجود در آدرس حافظه 2 (0010) در CPU ریجستر B نیز بارگذاری میشود.
- مرحله سوم اضافهکردن B به A
اکنون دستورالعمل بعدی اضافهکردن این دو عدد است. در اینجا CU به ALU میگوید که عملیات جمع را انجام دهد و نتیجه را به ریجستر A برگرداند.
- مرحله چهارم ذخیره – A 23
این یک جمع آسان از دستورالعمل است که به اضافه کردن دو عدد نیز کمک میکند.
ما در اینجا با موفقیت دو عدد اضافه کردیم!
باس :
تمام دادههای بین پردازنده، ریجستر، حافظه و IO ابداع و از طریق باس منتقل میشوند. برای بارگذاری دادهها در حافظهای که به تازگی اضافه شده است، CPU آدرس حافظه را در آدرس باس و نتیجه جمع به داده باس ارائه میکند؛ همچنین سیگنال مناسب را در کنترل باس فعال میکند. در این روش دادهها با کمک باس در حافظه بارگذاری میشوند.
حافظه نهان یا کش (cache) :
سی پی یو همچنین دارای مکانیسمی برای پیش تنظیم دستورالعمل ذخیره شده در آن است. همانطور که میدانیم میلیونها دستورالعمل وجود دارد که یک پردازنده میتواند ظرف یک ثانیه آن را تکمیل کند. این بدان معنی است که زمان بیشتری برای واگذاری دستورالعمل از RAM تا اجرای آنها وجود دارد. بنابراین حافظه نهان CPU برخی از دستورالعملها و همچنین دادهها را از پیش تنظیم میکند تا سریع اجرا شوند.
اگر دادههای موجود در حافظه پنهان و حافظه عملیاتی متفاوت باشند، دادهها به عنوان بیت کثیف مشخص میشوند.
خط لوله (pipelining) :
CPU مدرن برای موازیسازی در اجرای دستورالعمل از خط لوله استفاده می کند. واکشی، رمزگشایی و اجرا. هنگامی که یک دستورالعمل در مرحله رمزگشایی است، CPU میتواند دستورالعمل دیگری را برای مرحله واکشی پردازش کند.
این یک مشکل است که یک دستورالعمل به دیگری وابسته باشد. بنابراین پردازندهها دستورالعملهایی را که وابسته نیستند و به ترتیب متفاوت هستند، انجام میدهند.
سی پی یو چگونه کار میکند، کارایی در سی پی یو چه نقشی دارد؟
عملکرد CPU با زمان اجرای آن تعیین میشود.
Performance = 1/execution time
در صورتیکه بگوییم برای اجرای یک برنامه 20 میلی ثانیه طول میکشد. بنابراین عملکرد آن CPU 1/20 = 0.05ms است. همچنین فرمول عملکرد نسبی را نیز در پایین میبینید.
Relative performance = execution time 1/ execution time 2
عاملی که برای عملکرد CPU مورد توجه قرار میگیرد، زمان اجرای دستورالعمل و سرعت ساعت CPU است. بنابراین برای افزایش عملکرد یک برنامه یا باید سرعت ساعت را افزایش دهیم یا تعداد دستورالعمل ها را در یک برنامه کاهش دهیم. سرعت پردازنده محدود است و رایانه مدرن با چند هستهای میتواند میلیونها دستورالعمل در ثانیه را پشتیبانی کند. اما اگر برنامهای که ما نوشتیم دستورالعملهای زیادی داشته باشد این باعث کاهش عملکرد کلی خواهد شد. در پردازنده بهینهسازیهای زیادی انجام شده است تا سریعتر عمل کرده و هرچه ممکن انجام شود. در ضمن در نوشتن هر برنامه، باید در نظر بگیریم که چگونه کاهش تعداد دستورالعملهایی که به CPU ارائه میدهیم، عملکرد برنامه رایانه را افزایش میدهد.
جمع بندی
به طور کلی سی پی یو یک کامپیوتر یا واحد پردازش مرکزی اغلب با مغز انسان مقایسه میشود زیرا کنترل مرکزی کامپیوتر است. سی پی یو CPU با اجرای سریع دستورالعملهای برنامه، عملیات رایانه را انجام میدهد. سرعت پردازنده نقش زیادی در تعیین قدرت یک کامپیوتر دارد. هر نسل جدید از ریزپردازندهها دارای یک پردازنده قدرتمندتر هستند که میتوانند دستورالعملها را سریعتر از نسل قبلی اجرا کنند. در صورتیکه میخواهید اطلاعات بیشتری دربارهی سی پی یو بدانید میتوانید مقاله سی پی یو چیست را مطالعه کنید. در مقاله سی پی یو چگونه کار میکند با نحوهی کار سی پی یو آشنا شدیم امیدوارم شما نیز از آن بهرهمند شده باشید، درصورتیکه نظری دارید میتوانید در قسمت ثبت نظر با ما به اشتراک بگذارید.