عناصر تشکیل دهنده CPU

یک ترانزیستور به تنهایی کار خاصی انجام نمی دهد بلکه زمانی که تعدادی از آنها در کنار یکدیگر قرار دهیم می توان عملیات خاصی را توسط آنها انجام داد .با کنار هم قرار گرفتن ترانزیستورها می توان گیت های منطقی ایجاد نمود که توسط آنها اعمال منطقی ( Logical ) انجام می شود .
به عنوان مثال جدول ۱ نحوه عمل گیت XOR ( Exclusive OR ) را نشان می دهد . خروجی گیت هنگامی ۱ است که فقط یکی از ورودی ها حامل ولتاژ ( ۱ ) باشد.

حال ولتاژها را مانند اعداد دودویی در نظر بگیرید که روشن ( ON ) به معنای ۱ و خاموش ( OFF ) به معنای ۰ است.
اکنون اعداد باینری را به ورودی گیت XOR می دهیم. اگر هر دو ورودی ۰ یا هر دو ۱ باشد خروجی نخواهیم داشت یعنی خروجی OFF می باشد ( به جدول ۱ توجه نمایید) و اگر فقط یکی از ورودی ها ۱ باشد خروجی برابر ۱ یعنی روشن ( ON ) می شود.
با در نظر گرفتن مثال فوق و به در صورتیکه از گیت های بیشتری در آن قسمت استفاده شود می توان عملیات منطقی و ریاضی مانند جمع ، تفریق ، ضرب و تقسیم را توسط ترانزیستورها و گیت ها انجام داد که اساس کار CPU است.
اکنون کاری که سازندگان CPU مثلاً AMD یا Intel انجام می دهند عبارت است ازکنار هم قرار دادن ترانزیستورهای بسیار زیادی ( بالغ بر ۲۳۰ میلیون ترانزیستور ) برای انجام اعمال بسیار پیچیده تر که دقیقا بر پایه همین علوم ساده استوار می باشد.

مراحل کاری CPU

اگر کمی بیشتر پیش برویم مطالب زیاد و مشترکی بین CPU های مختلف باقی می ماند که قابل بحث می باشد مانند ثبات ها ( Register ) که قطعه بسیار کوچکی از جنس حافظه می باشند و می توانند نتایج اعمال منطقی را در خود ذخیره کنند.
CPU های مختلف دارای رجیسترهای گوناگون می باشند. بعضی از رجیستری ها برای نگهداری نتایج اعمال استفاده می شود و بعضی دیگر به عنوان اشاره گر و برخی نیز برای اهداف دیگر می باشند. بعنوان مثال رجیستر AX برای نگهداری نتیجه یک عمل دودویی منطقی یا ریاضی بکار می رود و رجیستر Program Counter ( PC ) یک اشاره گر است که باید به دستوری که در لحظه بعد توسط CPU اجرا شود اشاره کند. برای انجام یک عمل توسط CPU مراحل زیادی باید طی شود تا آن عمل انجام شده و نتیجه مطلوب حاصل گردد.

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

مطلب پیشنهادی  معرفی سخت افزارهای سرور قسمت سوم - مدیریت سخت افزار IPMI و BMC

سرعت پردازنده و Clock Pulsکارایی ، کلید موفقیت یک CPU می باشد. اعمالی که باعث می شود کارایی یک CPU افزایش یابد ، مواردی هستند که موجب برتری یک CPU اینتل به AMD و یا بالعکس می شود. یکی از راه های افزایش کارایی ، بالا بردن سرعت ساعت( Clock Speed ) پردازنده می باشد. همانطور که می دانید پردازنده ها برای کار نیاز به عاملی به نام Clock Puls ( پالس ساعت ) دارند.
پردازنده ها فرکانس پایه که اکثرا سرعت پایینی هم دارد ( مثلا ۱۳۳ یا ۲۰۰ مگاهرتز) را از مادر برد می گیرد و بر اساس سرعت خود آن را در یک ضریبی خاص ضرب می کند تا فرکانس اصلی پردازنده را ایجاد کندبه عنوان مثال یک پردازنده Pentium 4 2.8GHz که FSB آن ۵۳۳ مگاهرتز می باشد فرکانس ۱۳۳مگاهرتز را از مادریرد می گیرد و آن را در عدد ۲۱ ضرب می کند.این پردازنده در هر ثانیه ۲۸۰۰ میلیون پالس تولید می کند در نتیجه اگر به طور مثال هر دستورالعمل در یک پالس انجام گیرد این پردازنده قادر است در هر ثانیه ۲۸۰۰ میلیون دستور العمل را اجرا کند بنابراین در یک پردازنده هر چه تعداد پالس ها در یک ثانیه افزایش یابد تعداد دستورات بیشتری در هر ثانیه انجام شده و کارایی CPU افزایش می یابد.
اما نکته قابل توجه اینست که افزایش سرعت با مشکلاتی نیز همراه خواهد شد بطور مثال افزایش بیش از حد سرعت می تواند در نحوه عملکرد ترانزیستور ها تاثیر زیادی ایجاد کند که مسئله موجب از کار افتادن پردازنده و بیش از حد داغ شدن آن می شود.

Pipelining

متداولترین راه برای افزایش سرعت یک پردازنده ، بالا بردن فرکانس آن می باشد اما را ه های دیگری نیز وجود دارد که به وسیله آن می توان مقدار قابل توجهی کارایی یک پردازنده را افزایش داد راه هایی چون استفاده از Pipelining ، حافظه نهان ( Cache Memory) و Dual Core .
Pipelining ، روشی می باشد که مدت زیادی است در پردازنده ها از آن استفاده می شود در این روش پردازنده ها کمی باهوش تر عمل می کند.

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

مطلب پیشنهادی  بررسی لیبل های جدید محصولات اچ پی

طراحان و کارشناسان با انجام تغییر در معماری CPU ها توانستند با تکنولوژی Pipelining کارایی پردازنده را تا ۴ برابر افزایش دهند.
نتیجه ای که از این قسمت می توان گرفت اینست که سرعت در پردازنده ها فقط به عامل فرکانس بستگی ندارد بلکه فرکانس فقط یکی از عوامل مهم در سرعت آنها می باشد به همین دلیل است که کمپانی AMD بر خلاف اینتل نام پردازنده های خود را بر حسب فرکانس بیان نمی کند بطور مثال پردازنده AMD Athlon XP 1800+ دارای فرکانسی معادل ۱۵۳۳ مگاهرتز می باشد اما اینتل تمام مدل های خود را برحسب سرعت فرکانس آنها بیان می کند به ( Pentium 4 2800MHz ) .

Cache Memory

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

مطلب پیشنهادی  محاسبه میزان سرمایش اتاق سرور

CPU و اصطلاح نانومتر تکنولوژی
همانطور که در ابتدا نیز به آن اشاره شد یک پردازنده متشکل از چند صد میلیون ترانزیستور است.
استفاده از Pipelining ، Cache Memory و موارد دیگر در ساختار داخلی پردازنده ها موجب افزایش تعداد ترازیستور ها می شود بطوریکه در پردازنده جدید تعداد ترازیستور ها تقریبا دو برابر شده است. این افزایش ترانزیستور ها موجب شد که متخصصان شرکت های سازنده پردازنده رو به کاهش اندازه ترانزیستور ها بیاورند تا بتواند از ترانزیستور های بیشتر در هسته پردازنده استفاده نمایند.
تا دو سال قبل اندازه هر ترانزیستور ۱۸۰ نانومتر بود که بعد از مدتی به ۱۳۰ نانو و ۹۰ نانو رسید و اخیرا نیز اینتل پردازنده Pentium D 900 را با تکنولوژی ۶۵ نانو عرضه کرده است. اما مشکلی که با افزایش تعداد ترانزیستور ها پیش آمده اینست که این عمل موجب افزایش توان مصرفی و همچنین تولیدگرمای بسیار زیاد توسط CPU می باشد.

پردازنده های دو هسته ای

شرکت های Intel و AMD با کاهش سایز ترانزیستورها سعی می کنند تا بتوانند از ترانزیستورها بیشتری در یک CPU استفاده کنند. این قابلیت موجب شده است که این شرکت ها بتوانند در یک پردازنده از دو هسته( Dual Core ) استفاده کنند این عمل در افزایش کارایی پردازنده ها بسیار موثر می باشد.
شرکت AMDاخیرا پردازنده های Dual Core خود با نام Athlon64 X2 را وارد بازار کرده است و در پی آن نیز شرکت Intel برای ماندن در عرصه رقابت پردازنده های دو هسته ای خود را نیز به بازار ارائه کرده است.

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

منبع:رایانه خبر