در اين بخش شما ميتوانيد درباره سخت افزار كامپيوتر به بحث و تبادل نظر بپردازيد
Super Moderator

Super Moderator



نماد کاربر
پست ها

1166

تشکر کرده: 0 مرتبه
تشکر شده: 14 مرتبه
تاريخ عضويت

سه شنبه 3 مرداد 1385 11:49

آرشيو سپاس: 3168 مرتبه در 620 پست

cpu يک هسته با فرکانس بالاتر یا 2 هسته فرکانس پایین تر ؟(مقاله اموزشي)

توسط SHAHRAM » پنج شنبه 13 تیر 1387 12:53

مقدمه:
هدف این مقاله این که ایا یک پردازنده ی2 هسته ای مثلا با فرکانس 1.8 قوی تر یا یه تک هسته ای با فرکانس کاری 3و6البته شاید به طور علمی تر بخواهید این سوال رو بپرسید باید بگید که ایا باید به پردازنده های چند هسته ای که وظیفه اونها انجام پردازش های موازی و multi-threading باید اطمینان کرد؟




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


همون طور که شما هم احتملا متوجه شدید شرکت های اینتل و amd رقابتی بر سر ساخت پردازنده با فرکانس بالا ندارند.و رقابت جدید بر سر تعداد هسته های در یک واحد پردازشگر اغاز شده.البته این که این شرکت ها تونستند چمد هسته رو توی یک واحد cpu قرار بدند فقط و فقط به لطف فناوری نانو (45 و 90) اتفاق افتاده.در این بین بهنرین طراحی برای یک پردازنده چند هسته موردی که بتونه بهترین تعادل رو بین سرعت کلاک و تعداد پردازش بر قرار کنه که در این بین جزییات چون کاهش حرارت تولیدی و مصرف کمتر(به خصوص در وسایل همراه چون نوت بوک) باید مورد توجه قرار بگیره.در حال حاضر بین 2 تا 6 هسته در یک واحد سی پی یو وجود داره و در اینده هموطور که شرکت های اینتل و amd در برنامه های آینده خودشون اعلام کردند که فعلا تا 12 هسته عملی شده و باید منتظر عرضه این سی پی یو های پر قدرت باشیم.
اما مشکل اصلی اینه که ایا نرم افزار های  که ما در حال استفاده از اون هستیم امکان استفاده بهینه از هسته ها ی یک  پردازنده ی چند هسته ی رو دارند یا نه؟سعی من اینه که این ممطلب رو باز کنم تابهتر موضوع رو درک کنیم.

اگر فکر کنیم که یک نرم افزار کاملا برای cpu های چند هسته ای طراحی شده باشه در این حالت این برنامه باید بار کاری خودش رو  روی به چندین thread یا چند رشته پردازشی نبدیل کنه و هر کدومش رو برای پردازش به سمت یک هسته بفرسته تا پردازش بشه.با این کار سرعت انجام پردازش ها بالاتر میره.البته برای اینکه مطلب رو بهتر بگیرید من یه مثال عددی میزنم .
به عنوان مثال شما در نظر بگیرید یه سی پی یو بخواد عمل زیر رو انجام بده
            (5+6)*(2+3)

اگر هر کدوم از اعمال ریاضی رو یه پردازش در نظر بگیریم عمل بالا شامل 3 تا پردازش جداست.که 2 تا اون از یک نوع یعنی عمل جمع هست و یکیش هم عمل ضرب.اگر این عمل بخواد توی یه سی پی یو تک هسته انجام بشه سی پی بو از یک طرف شروع به پردازش میکنه تا این عمل به پایان برسه.اما توی یک سی پی یو 2 یا چند هسته ای اعمال شبیه از نطر حچم و فعالیت به یک هسته  فرستاده میشه و اعمال به چند گروه تقسیم میشه تا در اختیار هسته های مخنلف قرار بگیره.که توی عمل بالا ضرب و تقسیم جدا گونه و توسط هسته های مختلف پردازش میشه.اگر دقت کرده باشید توی این حالت فرکانس کلی پردازنده در نظر گرفته نشده.یعنی با افزایش هسته ها پردازش های کنار هم و یا به عبارتی به صورت موازی انجام میشه که باعث افرایش کارایی و سرعت انجام کار میشه
یکی از مسایلی که توی چند سطر قبل هم اشاره به اون داشتیم فرکانس کاری پردارنده هاست.احتمالا شما هم متوجه شدید که فرکانس پردازنده های چند هسته ای نسبت به پردازنده های هم رده خود که تک هسته هستند پایین تره.شاید شما این کاهش فرکانس رو به پای کاهش توانایی بزارید اما در ادامه شاید  نطرتون  عوض شد!  برای اینکه باز هم بهتر بفهمید یه مثال بزنم این سری نوشتاری!.........که شما خونه جدید گرفتید و می خواهید اثاث خونتون رو به منزل جدید ببرید.برای این کار کارگر می گبربد.حالا شما یه کارگر که شبیه غول  بگیرید(که پول زیادی هم میگیره) بهتره  یا 4 تا کارگر جدا بگیرید با زور و بازوی کمتر؟! فکر میکنک شما هم نظرتون همون دومی باشه؟سی پی یو های چند هسته هم دقیقا شبیه همین مثال منه.....چند هسته ای بودن با هسته های با فرکانس پایین تر (زور کمتر)بهتره از یک هسته با فرکانس بالاتره.البته تنها دلیل برتری چند هسته ای ها فقط انجام پردازش های کنار هم و موازی نیست!
بعد از کلی تعریف و تمجید از این سی پی یو ها بهتره مشکلات اون رو هم بگم.که از این مشکلات به همیشگی نبودن پردازش های گونان برای تقسیم بین هسته ها و عدم طراحی مکانیزم صحیح برای برای تقسیم یک پردازش چند تکه ای بین هسته ها ی مختلف بارز ترینشون هست.این مشکل از طراحی یک نرم افرار تا خود سیستم عامل رو شامل میشه.

مشکل نرم افزار ها با چند هسته

یک نرم افزار اگر برای پردازنده های چند هسته طراحی شده باشه این قابلیت رو داره که با انجام multi-threading از تمام هسته ها به صورت مفید استفاده کنه.اما ایا همه نرم افزار ها این قابلیت رو دارند؟در اوایل ورود این پردازنده ها بارز ترین مشکلاتشون همین مورد بود.به طوری که بازی ها و برنامه های با فعالیت پردازشی بالا روی پردازنده های تک هسته بهتر اجرا شدند.دلیل این مورد عدم توانایی برنامه ها در تقسیم وظایف است.
البته در بحث پیرامون cpu های چند هسته ای واژه ی multi-tasking نیز کاربرد دارند که مفهوم این اصطلاح اینه که شما به عنوان مثال در یک زمان از مرورگراینترنت و برنامه پخش موزیک استفاده کنید که هموطور که متوجه -شدید این حالت با multi-threading  فرق اسای داره که منط.رم از گفتن این موصوع این بود که پردازنده های چند هسته ای در multi-tasking بسیار عالی عمل میکنند.دلیل این موضوع هم ابنه که این نوغ فعالیت و پردازش کاملا جدا از هم اند و cpu ها مشکل در تقسیم وظایف ندارند.در ادامه بحث مشکلات نرم افزار ها با هسته های مختلف باید تذکر  بدم که بسیار از نرم افزار ها که هم اکنون ما داریم ازشون استفاده میکنیم  قابلیت multi-threading رو ندارند.به عنوان مثال در یک انتی ویروس واسط گرافیکی و قسمت اسکن  2وظیفه جدا از هم در یک نرم افزاند که دارای حجم یکسان در پردازش  نیست و در نتیجه برنامه نمیتونه به صورت ایده ال قابلیت  multi-threading رو انجام بده.
اگر بخام موضوع بالا رو جمع بندی کنیم باید بگیم که پردازنده های چند هسته برای مثال موقع تماشای دی وی دی  که در کنارش اسکن انتی ویروس سیستم شما فعال باشه  کارایی قابل توجه ای داره اما در اجرای یک نرم افزار به دلایلی که ذکر شد نمیتونه قابلیت انچنان متفا فتی رو از یک پردازنده تک هسته به نمایش بزاره و احتمالا شما اصلا تفافتی رو احساس نکنید. تنها راه حل برای حل این مشکل توسعه نرم افزار های multi-threading.البته در حال حاضر بعضی  نرم افزار ها و بخصوص بازی ها از multi-threading استفاده می کنند.


نتیجه گیری:
پردازنده های چند هسته در هر صورت(سرعت و کارایی) نسبت به تک هسته ای ها دارای مزایای بسیار بیشتری هست که ما نتونستیم توی این مقاله بهش بپردازیم .و تنها عامل که میتونه ما رو از ایتفاده این cpu ها منع کنه همون نبود نرم افزار های متناسب به این cpu هاست که این مشکل به مرور زمان حل میشه.در اخز هم باید بگم که اگه قصد تهیه cpu دارید بی شک cpu` های چند هسته باید انخاب شما باشه.چون در اینده با امدن نرم افزار های متناسب با این cpu های شما پشیمان خواهید شد!




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

Colonel II

Colonel II



نماد کاربر
پست ها

3474

تشکر کرده: 286 مرتبه
تشکر شده: 463 مرتبه
تاريخ عضويت

جمعه 20 اردیبهشت 1387 08:44

آرشيو سپاس: 13553 مرتبه در 2799 پست

توسط Solver » جمعه 14 تیر 1387 03:20

الان پردازنده هاي 6 هسته اي در بازار هست و 8 هسته اي ها هم زير دست طراحي. :shock:
هر چند مطالب مفيدي بيان كرديد اما قدري دير داريد به اين موضوع مي پرادزيد.  :?
[ Never is Never an Answer ||| Personal Site:  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  ]

Super Moderator

Super Moderator



نماد کاربر
پست ها

1166

تشکر کرده: 0 مرتبه
تشکر شده: 14 مرتبه
تاريخ عضويت

سه شنبه 3 مرداد 1385 11:49

آرشيو سپاس: 3168 مرتبه در 620 پست

توسط SHAHRAM » جمعه 14 تیر 1387 11:00

در حال حاضر بین 2 تا 6 هسته در یک واحد سی پی یو وجود داره و در اینده هموطور که شرکت های اینتل و amd در برنامه های آینده خودشون اعلام کردند که فعلا تا 12 هسته عملی شده و باید منتظر عرضه این سی پی یو های پر قدرت باشیم.

دوست عزیز فکر میکنم من هم همین رو نوشتم.بهتره یکم  دقیق تر مطلب رو بخونید و سپس نظر بدید :o
"هرکس از راه رسید نانش دهید و از ایمانش مپرسید . چه ، آنکس که به درگاه باریتعالی به جان ارزد ، قطعا بر سفره بوالحسن به نان ارزد "
( شیخ ابوالحسن خرقانی )

Colonel II

Colonel II



نماد کاربر
پست ها

3474

تشکر کرده: 286 مرتبه
تشکر شده: 463 مرتبه
تاريخ عضويت

جمعه 20 اردیبهشت 1387 08:44

آرشيو سپاس: 13553 مرتبه در 2799 پست

توسط Solver » يکشنبه 16 تیر 1387 04:21

SHAHRAM,
بنده از مطالب مفيدي که منتشر کرديد تشکر کردم. متن را هم با دقت خواندم، بنده اعتراضي به مضمون مطالب يا اطلاعات شما نداشتم و فقط از اينکه الان چنين مقاله اي را ارسال کرديد ابراز تعجب کردم.

:?
:razz:
[ Never is Never an Answer ||| Personal Site:  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  ]


 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 12 مهمان