آموزشسخت افزار

یک پردازنده (CPU) چگونه کار می کند – بخش اول

بیشتر مفاهیم در رایانه ها به راحتی قابل فهم هستند، RAM، حافظه، CPU و نرم افزارها با یکدیگر همکاری می کنند تا یک کامپیوتر بتواند کار کند. اما فهم نحوه عملکرد پردازنده برای بسیاری از افراد حتی افرادی که با تکنولوژی آشنا هستند، دشوار است. در این مقاله ما تلاش می کنیم که فهم عملکرد پردازنده آسان تر شود.

 

عملکرد پردازنده

 

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

ترانزیستورها و سیستم دودویی (باینری):

رایانه ها بر اساس محاسبات دودویی یا باینری کار می کنند. به این معنی که تنها دو حالت را درک می کنند: روشن یا خاموش. برای انجام محاسبات به صورت باینری رایانه ها از ترانزیستور استفاده می کنند.. با توجه به شکل زیر ترانزیستور تنها در صورتی اجازه عبور جریان از Source به Drain را می دهد که در Gate جریانی وجود داشته باشد. بنابراین ترانزیستور یک کلید دو حالته باینری را تشکیل می دهد، در صورت وجود جریان در Gate ترانزیستور روشن و در غیر این صورت خاموش خواهد بود. 

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

 

ترانزیستور و سیستم باینری

 

گیت های منطقی (دروازه های منطقی):

چند ترانزیستور که در کنار هم قرار گیرند و با شیوه هایی صحیح به هم متصل شوند، گیت یا دروازه منطقی به وجود می آید. گیت های منطقی دو ورودی باینری (در برخی موارد چند ورودی باینری) را به عنوام ورودی دریافت می کنند، و پس از انجام عملیاتی بر روی آن ها یک خروجی به ما می دهد. به طور مثال در گیت منطقی «یا» (OR) اگر یکی از ورودی ها درست باشد، خروجی نیز درست خواهد بود. در علوم کامپیوتر روشن بودن یک ورودی یا خروجی معادل «درست» و یا 1 است و خاموش بودن آن معادل «نادرست» یا 0 است. در گیت منطقی «و» (AND) اگر هر دو ورودی درست باشند، خروجی نیز درست است. در گیت منطقی XOR اگر تنها یکی از ورودی ها درست باشند، خروجی نیز درست است. گیت های منطقی NOR ،NAND و XNOR به ترتیب برعکس گیت های منطقی OR ،AND و XOR عمل می کنند.

 

گیت های منطقی

انجام عملیات ریاضی با گیت های منطقی در پردازنده:

با تنها دو گیت منطقی شما می توانید عمل «جمع» باینری را انجام دهید. شکل زیر یک جمع کننده ساده را نشان می دهد. خروجی گیت XOR تنها در صورتی روشن خواهد شد که یک از ورودی ها روشن باشد، و در صورت روشن بودن هر دو ورودی خروجی خاموش خواهد شد. خروجی گیت AND تنها در صورتی روشن خواهد شد که هر دو ورودی روشن باشند. در شکل زیر می بینیم که ورودی A روشن یا 1 است و ورودی B خاموش یا 0 است. همچنین ورودی A و B بین هر دو گیت مشترک هستند. به دلیل اینکه یکی از ورودی ها (ورودی A) روشن است، خروجی گیت XOR روشن و خروجی گیت AND خاموش است که به پاسخ صحیح 1 منجر می شود. یعنی حاصل جمع A=1 و B=0  برابر با 1 خواهد بود.

 

عملیات جمع در کامپیوتر

 

در شکل زیر هر دو ورودی A و B روشن یا 1 هستند. به دلیل روشن بودن هر دو ورودی خروجی XOR خاموش می شود و خروجی گیت AND روشن می شود که به پاسخ 2 منجر می شود. یعنی حاصل جمع A=1 و B=1 برابر با دو خواهد بود.

در صورتی که هر دو ورودی خاموش یا صفر باشند، خروجی گیت های XOR و AND نیز صفر خواهد شد و حاصل جمع برابر با صفر خواهد بود.

 

نیم جمع کننده

 

این جمع کننده بسیار ساده است و تنها دارای سه خروجی صفر، یک و دو است. اما یک بیت باینری نمی تواند عددی بالاتر از 1 را در خود ذخیره کند و سیستم شکل فوق برای انجام یکی از ساده ترین عملیات ریاضی چندان مفید نیست. به همین دلیل این جمع کننده را «نیم جمع کننده» یا «نیم افزایشگر» می نامند.

اگر دو نیم جمع کننده را به هم متصل کنیم و یک ورودی به سیستم اضافه کنیم یک جمع کننده کامل خواهیم داشت. جمع کننده کامل سه ورودی دارد که دو تا از آن ها عددهایی هستند که می خواهیم جمع کنیم و یکی از آن ها حامل یا Carry است. بیت حامل زمانی استفاده می شود که حاصل‌جمع دو رقم باینری از یک بیشتر شود. بیت حامل به نتیجه گیت XOR در نیمه اول جمع کننده کامل اضافه می شود. یک گیت OR نیز در جمع کننده کامل وجود دارد که گیت های AND دو نیمه را به هم متصل کرده است.

 

جمع کننده کامل

 

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

 

جمع کننده کامل با حامل

 

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

 

گذرگاه (Bus) و حافظه:

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

 

عملکرد حافظه کامپیوتر

 

شما به حافظه تعدادی ورودی می فرستید و با فعال کردن بیت «نوشتن» یا Write، به آن دستور می دهید که این ورودی ها را درون خود ذخیره کند. همچنین ما نیاز به روشی داریم که بتوانیم داده ها را از درون حافظه بخوانیم. این کار با استفاده از یک Enabler انجام می شود که مجموعه ای از گیت های AND برای هر بیت حافظه است که همگی به یک ورودی دیگر به نام بیت «نوشتن» یا Read وصل شده اند.

این مجموعه روی هم رفته رجیستر نامیده می شود. این رجیسترها به Bus متصل شده اند که در واقع مجموعه ای از سیم هستند که در کل سیستم وجود دارند و به تمام قسمت ها متصل شده اند. رایانه های امروزی نیز دارای Bus هستند، با این حال این رایانه ها به تعداد بیشتری از آن ها نیاز دارند تا عملکرد Multitasking را بهبود بخشند. 

 

رجیستر چیست

 

هر رجیستر یک بیت نوشتن و خواندن دارد اما در آرایش نشان داده شده ورودی و خروجی رجیسترها یکی هستند. این یک ویژگی خوبی محسوب می شود. اگر بخواهیم محتویات رجیستر R1 را درون R2 کپی کنیم، باید بیت خواندن رجیستر R1 را فعال کنیم تا با این کار محتوای این رجیستر به Bus منتقل شود. در زمانی که بیت خواندن R1 فعال است، باید بیت نوشتن رجیستر R2 را فعال کنیم تا محتویات R1 که اکنون روی Bus قرار دارند در رجیستر R2 نوشته شوند.

RAM نیز از رجیسترها ساخته شده است. RAM مانند آنچه در شکل زیر می بینید یک شبکه از رجیسترهاست که هر کدام از آن ها به دو سیم متصل شده اند. دیکودر یا Decoder یک عدد باینری دریافت می کند و سیم مربوط به آن عدد را روشن می کند. برای مثال عدد 11 باینری (همان عدد 3 معمولی)، بزرگترین عدد دورقمی باینری است، بنابراین دیکودر بالاترین سیم را روشن می کند.

 

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

 

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

تا این جای کار با برخی از اجزای یک پردازنده آشنا شده ایم. در بخش دوم این مقاله با قسمت های دیگر تشکیل دهنده پردازنده نیز آشنا خواهیم شد و خواهیم دید که این اجزا چگونه با هم کار می کنند تا یک CPU بتواند به درستی عمل کند.

 

منبع: HowToGeek

امید اتحادمحکم

کارشناس واحد تولید محتوا و کارشناس ارشد فنی نت‌رانه. دانش‌آموخته‌ی مقطع کارشناسی ارشد برق از دانشگاه گیلانه. پیش از این‌که به خانواده‌ی نت‌ران بپیونده، به‌مدت 4 سال در زمینه‌ی اتوماسیون صنعتی و طراحی مدارهای الکترونیکی فعالیت حرفه‌ای داشته. امید در زمینه‌ی تولید و بازاریابی محتوا تخصص داره.
خبرنامه
Notify of
guest
0 نظرات
Inline Feedbacks
View all comments

نوشته های مشابه

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