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

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

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

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

حال ولتاژها را مانند اعداد دودويي در نظر بگيريد كه روشن ( ON ) به معناي 1 و خاموش ( OFF ) به معناي 0 است.
اكنون اعداد باينري را به ورودي گيت XOR مي دهيم. اگر هر دو ورودي 0 يا هر دو 1 باشد خروجي نخواهيم داشت يعني خروجي OFF مي باشد ( به جدول 1 توجه نماييد) و اگر فقط يكي از ورودي ها 1 باشد خروجي برابر 1 يعني روشن ( ON ) مي شود.
با در نظر گرفتن مثال فوق و به در صورتيكه از گيت هاي بيشتري در آن قسمت استفاده شود مي توان عمليات منطقي و رياضي مانند جمع ، تفريق ، ضرب و تقسيم را توسط ترانزيستورها و گيت ها انجام داد كه اساس كار CPU است.
اكنون كاري كه سازندگان CPU مثلاً AMD يا Intel انجام مي دهند عبارت است ازكنار هم قرار دادن ترانزيستورهاي بسيار زيادي ( بالغ بر 230 ميليون ترانزيستور ) براي انجام اعمال بسيار پيچيده تر كه دقيقا بر پايه همين علوم ساده استوار مي باشد.

مراحل كاري CPU

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

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

سرعت پردازنده و Clock Pulsكارايي ، كليد موفقيت يك CPU مي باشد. اعمالي كه باعث مي شود كارايي يك CPU افزايش يابد ، مواردي هستند كه موجب برتري يك CPU اينتل به AMD و يا بالعكس مي شود. يكي از راه هاي افزايش كارايي ، بالا بردن سرعت ساعت( Clock Speed ) پردازنده مي باشد. همانطور كه مي دانيد پردازنده ها براي كار نياز به عاملي به نام Clock Puls ( پالس ساعت ) دارند.
پردازنده ها فركانس پايه كه اكثرا سرعت پاييني هم دارد ( مثلا 133 يا 200 مگاهرتز) را از مادر برد مي گيرد و بر اساس سرعت خود آن را در يك ضريبي خاص ضرب مي كند تا فركانس اصلي پردازنده را ايجاد كندبه عنوان مثال يك پردازنده Pentium 4 2.8GHz كه FSB آن 533 مگاهرتز مي باشد فركانس 133مگاهرتز را از مادريرد مي گيرد و آن را در عدد 21 ضرب مي كند.اين پردازنده در هر ثانيه 2800 ميليون پالس توليد مي كند در نتيجه اگر به طور مثال هر دستورالعمل در يك پالس انجام گيرد اين پردازنده قادر است در هر ثانيه 2800 ميليون دستور العمل را اجرا كند بنابراين در يك پردازنده هر چه تعداد پالس ها در يك ثانيه افزايش يابد تعداد دستورات بيشتري در هر ثانيه انجام شده و كارايي CPU افزايش مي يابد.
اما نكته قابل توجه اينست كه افزايش سرعت با مشكلاتي نيز همراه خواهد شد بطور مثال افزايش بيش از حد سرعت مي تواند در نحوه عملكرد ترانزيستور ها تاثير زيادي ايجاد كند كه مسئله موجب از كار افتادن پردازنده و بيش از حد داغ شدن آن مي شود.

Pipelining

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

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

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

Cache Memory

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

CPU و اصطلاح نانومتر تكنولوژي
همانطور كه در ابتدا نيز به آن اشاره شد يك پردازنده متشكل از چند صد ميليون ترانزيستور است.
استفاده از Pipelining ، Cache Memory و موارد ديگر در ساختار داخلي پردازنده ها موجب افزايش تعداد ترازيستور ها مي شود بطوريكه در پردازنده جديد تعداد ترازيستور ها تقريبا دو برابر شده است. اين افزايش ترانزيستور ها موجب شد كه متخصصان شركت هاي سازنده پردازنده رو به كاهش اندازه ترانزيستور ها بياورند تا بتواند از ترانزيستور هاي بيشتر در هسته پردازنده استفاده نمايند.
تا دو سال قبل اندازه هر ترانزيستور 180 نانومتر بود كه بعد از مدتي به 130 نانو و 90 نانو رسيد و اخيرا نيز اينتل پردازنده Pentium D 900 را با تكنولوژي 65 نانو عرضه كرده است. اما مشكلي كه با افزايش تعداد ترانزيستور ها پيش آمده اينست كه اين عمل موجب افزايش توان مصرفي و همچنين توليدگرماي بسيار زياد توسط CPU مي باشد.

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

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

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

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