loading...
هاییز ، پاییز
خشایار خادمی بازدید : 23 جمعه 11 اسفند 1391 نظرات (0)

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


Figure 1: How stored data is transferred to the CPU

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

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




Figure 2: Clock signal


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



Figure 3: The wires on the motherboard can work as antennas

ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آمار سایت
  • کل مطالب : 9
  • کل نظرات : 1
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • آی پی امروز : 3
  • آی پی دیروز : 2
  • بازدید امروز : 1
  • باردید دیروز : 0
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 1
  • بازدید ماه : 1
  • بازدید سال : 4
  • بازدید کلی : 339