خانه / تشریح کامل cpu

تشریح کامل cpu

CPU

مقدمه:
يك دستگاه پردازشگر مركزي (CPU) يا ريز پردازنده ساده تراشه اي در كامپيوترهاي ديجيتال است كه مي تواند به عنوان قلب كامپيوتر باشد و عمل پردازش اطلاعات و كنترل نرم افزار و همچنين عمليات حسابي و منطقي را انجام دهد . همچنين يك دستگاه محاسبه اي كامل است كه روي يك تراشه ساخته مي شود و مجموع دستورات دستگاه را اجرا مي كند .
CPU سه كار مهم را انجام مي دهد :
۱٫از واحد همبستگي منطقي حساب استفاده مي كند يعني جمع و تفريق و ضرب و تقسيم را انجام مي دهد .
۲٫اطلاعات را از يك مكان حافظه به مكاني ديگر انتقال مي دهد .
۳٫مي تواند تصميم بگيرد و به يك سري از دستورات جديد كه بر اساس آن تصميمات است جهش كند (Jump) .
از نيمه دهه ۱۹۷۰ به جاي يك تراشه از ريز پردازنده كه اغلب به صورت تركيبي بود استفاده مي كردند و امروزهCPU ها جايگزين آنها شده اند و اصطلاح CPUمعمولا در بعضي از پردازشگرها به كار رفته است .

با اینکه تمام پردازنده ها دارای قسمتهای داخلی متفاوتی نسبت به یکدیگر هستند ولی اصول کار همه ی آنها تقریبا یکی است و از یک اصل طبعیت میکنند که در این آموزش به شرح آن می پردازیم. از آنجاییکه ما به معماری عمومی یک پردازنده می پردازیم شما تا حدودی با تفاوتهای موجود در پردازنده های اینتل و AMD آشنا خواهید شد. یک سی پی یو که به آن میکروپروسسور یا پروسسور هم گفته میشود وظیفه پردازش دیتا را به عهده دارد و چگونگی پردازش به خود برنامه بستگی دارد که میتواند یک بازی، برنامه صفحه گسترده وبا پردازشگر ورد باشد. ولی درکل چون پردازنده هیچ درکی از نوع برنامه در حال پردازش ندارد که چیست و چکاری انجام میدهد، هیچ فرقی برای آن نمیکند. پردازنده فقط دستوراتیکه در برنامه قرار دارند و به آنها Command یا Instruction هم گفته میشود را اجرا میکند. این دستور میتواند دستور جمع دو عدد ویا دستور ارسال دیتا به کارت گرافیک باشد.
زمانیکه شما برای اجرای یک برنامه روی ایکون آن دابل کلیک میکنید اتفاقی که می افتد به شرح زیر است:
۱- برنامه ذخیره شده روی هارد (که مجموعه ای از دستورالعمل هاست) از هارد به رم منتقل میشوند.
۲- پردازنده، برنامه ی ذخیره شده در رم را از طریق مموری کنترلر لود میکند.
۳- دیتایی که حالا در پردازنده قرار گرفته پردازش میشود.
۴- عمل بعدی که انجام میشود به خود برنامه بستگی دارد، ممکن است بازهم دیتای بعدی را لود کند ویا روی دیتای لود شده کاری انجام دهد.

در گذشته وظیفه کنترل دیتای ترنسفر شده بین هارد و رم برعهده ی پردازنده بود اما ازآنجاییکه سرعت انتقال دیتا از هارد پایین است، تا زمانیکه دیتا از هارد به رم منتقل شود پردازنده را مشغول نگه میداشت که به این روش PIO یا Processor I/O یا Programmed I/O گفته میشود. اما امروزه دیگر از این روش برای انتقال دیتا استفاده نمیشود و در انتقال دیتا از هارد به رم، پردازنده دیگر نقشی ندارد. به این روش Bus Mastering یا DMA (Direct Memory Access) گفته میشود. در Fig1 چیپ پل شمالی را برای سادگی، بین رم و هارد قرار ندادیم ولی واسطه ی بین ایندو نیز پل شمالی است.
پردازنده های AMD با سوکت ۷۵۴، ۹۳۹، ۹۴۰ و … دارای یک مموری کنترلر داخلی هستند بهمین دلیل این پردازنده ها بدون دخالت پل شمالی که در Fig1 مشاهده میکنید میتوانند به رم سیستم بصورت مستقیم دسترسی پیدا کنند.

Clock
کلاک در واقع سیگنالی است که برای هماهنگ کردن کارها درداخل کامپیوتر مورد استفاده قرار میگیرد. در شکل ۲ یک کلاک سیگنال معمولی نشان داده شده که یک موج مربعی است و با یک نسبت ثابتی از ۰ به ۱ تغییر حالت میدهد. در این شکل سه سیکل کامل کلاک (تیک) وجود دارد. شروع هر سیکل زمانیست که کلاک میخواهد از صفر به یک تغییر حالت دهد و در شکل با یک فلش مشخص شده. کلاک سیگنال با واحدی بنام هرتز (Hz) که بمعنای تعداد سیکل در ثانیه است اندازه گیری میشود. مثلا یک کلاک ۱۰۰ MHz بمعنای وجود ۱۰۰ میلیون سیکل کامل در یک ثانیه است.

در کامپیوتر تمامی زمانبندی ها (Timing) برحسب سیکل کلاک یا Clock Cycle اندازه گیری میشوند. مثلا یک رم با تاخیر ۵ بمعنای آن است که ۵ سیکل کامل از کلاک باید بگذرد تا دیتای درخواست شده از رم تحویل داده شود. در یک پردازنده هم اجرای کامل هر دستورالعمل با یک تاخیر باندازه ی چند سیکل کلاک انجام میشود. مثلا نوعی دستور در پردازنده وجود دارد که بعد از هفت سیکل کلاک اجرای آن به اتمام میرسد. نکته ی جالب در مورد پردازنده ها این است که هر پردازنده ای خود میداند که اجرای هر دستور چند سیکل کلاک طول میکشد چون در هر پردازنده جدولی برای این منظور وجود دارد که تمامی این اطلاعات در آن وجود دارد. مثلا اگر دو دستور برای اجرا وجود داشته باشد و پروسسور بداند که اجرای دستور اول هفت سیکل کلاک طول میکشد، دستور دوم را در هشتمین کلاک اجرا میکند. البته این فقط یک توضیح کلی از اصول کار پردازنده هایی با یک واحد اجرایی است. در پردازنده های مدرن امروزی چند واحد اجرایی وجود دارد که بصورت پارالل کار میکنند و این امکان را به پروسسور میدهند تا دستور بعدی را نیز همزمان با دستور قبلی بصورت موازی اجرا کنند. به این معماری، معماری SuperScalar گفته میشود که بعدا مفصلا درمورد آن توضیح داده خواهد شد.
پس کلاک پردازنده چه تاثیری در کارایی دارد؟
این طرز فکر که کلاک پردازنده مشخص کننده ی کارایی آن است تفسیر اشتباهی است که اکثرا از کارایی دارند. زمانیکه دو پردازنده مثل هم را با یکدیگر مقایسه میکنید، پردازنده ای که فرکانس کلاک آن بیشتر است کارایی بیشتری دارد چون با بالا رفتن فرکانس، T یا دوره پریود هر سیکل کلاک کوتاهتر شده و پروسه ی اجرا در پردازنده کوتاهتر میشود. ولی زمانیکه دو پردازنده متفاوت (با میکرومعماری متفاوت) را باهم مقایسه میکنید، این تفسیر کاملا درست نخواهد بود.
همانطوریکه پیشتر گفته شد، هر دستورالعمل در پردازنده تا اجرای کامل نیاز به گذشت چند سیکل کلاک دارد. مثلا اگر فرض کنیم که پردازنده A یک دستور را در هفت سیکل کلاک اجرا میکند و پردازنده B همان دستور را در پنج سیکل کلاک (در فرکانس یکسان)، پردازنده B سریعترخواهد بود چون در مدت زمان کمتری دستور را پردازش میکند. در پردازنده های مدرن امروزی بدلیل وجود واحدهای اجرایی بیشتر، حافظه های نهان با اندازه های متفاوت، روشهای متفاوت ترنسفر دیتا در داخل پردازنده، روشهای متفاوت پردازش دستورات در واحدهای اجرایی، داشتن Clock rate متفاوت برای ارتباط با بیرون و … کارایی مفهوم تازه ای پیدا کرده و فاکتورهای دخیل در این مسئله متفاوت از گذشته است.
با بالا رفتن کلاک پردازنده اولین مشکل خود را به اینصورت نشان داد که بخشهای مختلف مادربورد نمیتوانستند با این فرکانس کار کنند. در شکل زیر پشت یک مادربورد، مسیرهای ارتباطی که به آنها Track یا Path گفته میشود و قسمتهای مختلف یک مادربورد را به یکدیگر ارتباط میدهند نشان داده شده است. مشکل اینجاست که با بالا رفتن فرکانس، این ترکها دیگر نقش یک مسیر ارتباطی را بازی نمیکنند و تبدیل به آنتن میشوند. در نتیجه بجای رساندن سیگنال به انتهای مسیر، آنرا بصورت امواج رادیویی از بین میبرند.

External Clock

همین مشکل باعث شد تا تولید کنندگان به فکر ایجاد مفهوم جدیدی بنام ضرب کلاک یا Clock Multiplication بیافتند که از پردازنده های ۴۸۶DX2 این ایده پیاده سازی شد. برهمین اساس از آن زمان تاکنون تمام پردازنده های موجود دارای یک کلاک خارجی و یک کلاک داخلی هستند. کلاک خارجی همان سرعتی است که پردازنده با استفاده از چیپ پل شمالی برای نقل و انتقال دیتا از/به رماستفاده میکند و کلاک داخلی هم همان کلاکی است که بخشهای داخلی پردازنده برآن اساس کار میکنند. بعنوان مثال در یک پردازنده ۳٫۴GHz پنتیوم ۴، "3.4" به کلاک داخلی پردازنده اشاره میکند که از ضرب ۱۷ در ۲۰۰MHz که کلاک خارجی آن است بدست می آید.

در پردازنده های امروزی، تفاوت فاحش بین کلاک داخلی و خارجی آنها بزرگترین مشکلی است که برای بالا بردن کارایی باید حل شود. بعنوان مثال در همین پردازنده ی ۳٫۴GHz، زمانیکه پردازنده قصد خواندن دیتا از رم را دارد باید کلاک خود را تقسیم بر ۱۷ کند تا با سرعت کلاک رم با آن ارتباط برقرار کند بطوریکه انگار یک پردازنده ی ۲۰۰ مگاهرتزی است. در طراحی پردازنده از روشهای مختلفی برای به حداقل رساندن تاثیر این تفاوت کلاک استفاده میشود. استفاده از حافظه نهان یا Cache در داخل پردازنده و انتقال بیش از یک بسته دیتا از رم، دو روش معمول برای حل این مشکل هستند. در پردازنده های AMD دو، و در پردازنده های Intel چهار بسته ی دیتا از رم ارسال میشود.

به همین دلیل همیشه سرعت کلاک خارجی پردازنده های AMD دوبرابر مقدار واقعیشان و پردازنده های Intel چهار برابر مقدار واقعیشان عنوان میشود. مثلا اگر کلاک خارجی پردازنده های AMD 200مگاهرتز باشد، کلاک خارجی آنها ۴۰۰مگاهرتز و کلاک خارجی پردازنده های Intel 800مگاهرتز در نظر گرفته میشود. به تکنیک انتقال دو بسته دیتا DDR (Double Data Rate) و تکنیک انتقال چهار بسته QDR (Quad Data Rate) گفته میشود.

بلوک دیاگرام یک CPU
در شکل زیر بلوک دیاگرام یک پردازنده ی مدرن را مشاهده میکنید (در معماری پردازنده های AMD و Intel تفاوتهای زیادی وجود دارد و شکل زیر فقط یک طرح کلی از یک پردازنده است).

توجه کنید که بدنه ی پردازنده فقط همان قسمتی است که با خط چین از رم جدا شده است. پهنای باند مسیر داده ی مابین رم و پردازنده معمولا ۶۴ بیت است که با همان سرعت کلاک رم یا کلاک خارجی پردازنده کار میکند. با ترکیب پهنای باند و کلاک رم میتوان Transfer Rate یا نرخ انتقال داده رم را بدست آورد. برای این منظور کافیست سرعت کلاک را در پهنای باند ضرب کرده و بر ۸ تقسیم کنید تا نرخ انتقال برحسب مگابایت بدست آید. مثلا در یک سیستم با رم DDR400 در حالت تک کاناله نرخ انتقال داده ۳۲۰۰ مگابایت در ثانیه است در حالیکه یک رم با همین فرکانس در حالت دوکاناله (۱۲۸Bit) نرخ انتقالی معادل ۶۴۰۰ مگابایت دارد. تمام قسمتهای داخل خط چین با سرعت کلاک داخلی پردازنده کار میکنند (بسته به نوع پردازنده ممکن است بعضی قسمتها با سرعتی بالاتر از کلاک داخلی کار کنند ویا ممکن است پهنای باند قسمتهای مختلف در آنها ۶۴ بیت ویا ۱۲۸ بیت باشند). مثلا در پردازنده های مدرن امروزی مسیر بین کش سطح ۲ و کش دستورالعمل سطح ۱، ۲۵۶ بیت است. بنابراین هرچه بیتهای بیشتری در هر سیکل کلاک منتقل شوند، انتقال داده با سرعت بیشتری انجام خواهد شد. در شکل بالا از یک فلش قرمز بین رم و کش سطح ۲، و از یک فلش سبز در مابقی قسمتها برای نشان دادن نرخ کلاک و پهنای باند متفاوت استفاده شده است.

درباره ی Administrator

همچنین ببینید

آموزش تصویری ورد ۲۰۱۶ – مبتدی

Word 2016 در این قسمت به آموزش نرم افزار محبوب و پرکاربرد ورد – Word …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *