برق. قدرت. کنترل. الکترونیک. مخابرات. تاسیسات.

دایره المعارف تاسیسات برق (اطلاعات عمومی برق)

فرکانس بالاتر یا هسته بیشتر؟مسئله این است!






مقدمه
آیا یك پردازنده دو هسته‌ای با فركانس كاری 1.8 گیگاهرتز برابر با یك پردازنده تك هسته‌ای با فركانس كاری 3.6 گیگا هرتزی است ؟آیا پردازنده دو هسته‌ای با فركانس كمتر ، قویتر از پردازنده تك هسته‌ای با فركانس بالاتر است ؟ اساس كار پردازنده‌های دو هسته‌ای چیست ؟
سوالاتی از این قبیل هنوز هم در ذهن كاربران در هنگام خرید پردازنده مطرح می‌شود. در این مطلب سعی می‌كنیم با توضیح كوتاهی دید شما را نسبت به پردازنده‌های چند هسته‌ای باز تر كنیم.

پردازنده‌های چند هسته‌ای
در دنیای امروز و در صنعت ساخت پردازنده‌ها ، رقابت بر سر افزایش فركانس كاری متوقف شده و جنگ بر سر تعداد هسته‌های پردازشگر و میزان كارآیی آنها شكل گرفته است. در این حالت تنها سازنده‌ای موفق است كه بتواند تعادلی مناسب بین سرعت كلاك و تعداد واحد‌های پردازشگر برقرار كند. به لطف تكنولوژی‌های ساخت ۴۵نانو و یا اخیرا ۳۲ نانو پردازنده‌هایی با بیش از یك واحد پردازشگر ممكن شدند. پروسه‌های ساخت مذكور با كاهش اندازه سطح Die و نیز قابلیت مدیریت بهتر توان مصرفی و در نتیجه كاهش حرارت ایجاد شده ، تعداد بیشتری از واحد‌های پردازشگر را در پردازنده ممكن ساخته اند.هم اكنون نیز 4 واحد پردازشگر را در یك پردازنده دیده‌ایم و در آینده نیز قطعا این مقدار افزایش خواهد یافت. اما آنچه كه مهم جلوه می‌كند این است كه نرم‌افزار‌ها چگونه می‌توانند گذر از تك هسته‌ای به دوهسته و یا چهار هسته‌ای را پذیرفته و خود را با آن هماهنگ سازند.
در این مطلب به بررسی این موضوع پرداخته و گوشه‌ای از جریان پردازش موازی را مورد بررسی قرار می‌دهیم.

در حالت ایده‌آل نرم‌افزاری را در نظر می‌گیریم كه می‌تواند از قابلیت Multi-Threading به درستی استفاده كند. البته علت اینكه عبارت " به درستی " را بكار بردیم در ادامه ارایه خواهد شد. بدین ترتیب این نرم‌افزار می‌تواند بار كاری خود را به چندین رشته قابل پردازش (Thread) بصورت كاملا یكسان از لحاظ حجم كاری تقسیم كرده و آنها را برای پردازش به سمت هسته‌های پردازشگر ارسال كند. حال این هسته‌های پردازشگر می‌تواند در یك پردازنده بوده و یا تركیبی از چندین پردازنده باشد. بدین ترتیب هر رشته قابل پردازش را یك هسته پردازشگر مورد پردازش قرار داده و سرعت انجام كار افزایش می‌یابد. بهتر است این پروسه را با ذكر مثالی بیان كنیم .
به عنوان مثال عبارت محاسباتی زیر را در نظر بگیرید : (1+2)x(3+4)
اگر فرض كنیم هر عملیات ریاضی در یك سیكل به انجام برسد آنگاه برای انجام این عبارت به 3 سیكل كاری احتیاج خواهیم داشت(با فرض اینکه پردازنده‌ای تك هسته‌ای، این عملیات در 3 سیكل كاری انجام می‌گیرد).اما اگر پردازنده‌ دو هسته‌ای در اختیار داشته باشیم در یك سیكل بطور موازی محاسبه مقادیر داخل پرانتز صورت گرفته و در یك سیكل دیگر نتایج داخلی دو پرانتر در هم ضرب می‌گردند.
بعبارتی دیگر می‌توان گفت پردازش نتیجه داخلی دو پرانتز در یك سیكل و بطور همزمان و موازی توسط دو هسته صورت می‌گیرد و سپس عمل ضرب انجام می‌پذیرد. ملاحظه می‌كنید كه در این حالت فركانس كاری در جریان كلی كار در نظر گرفته نشده است. این بدین معنی است كه با افزایش تعداد هسته‌های پردازشگر به سبب خاصیت " پردازش موازی " كارآیی و سرعت انجام كار افزایش می‌یابد. كاملا واضح است كه تعداد كارگر‌های بیشتر، همواره از تعداد كارگر‌های سریع ولی كمتر ، پر سرعت تر است. به همین دلیل در هنگام ورود پردازنده‌های دو هسته‌ای شاهد بودیم كه فركانس كاری آنها در مقایسه با پردازنده‌های تك هسته بطور قابل توجهی كاهش یافته بود.

یكی از مسایلی كه اكثر كاربران را دچار مشكل كرده بود كاهش فركانس كاری در پردازنده‌های دو هسته‌ای است. درواقع سوال خیلی‌ها این بود كه برای مثال، پردازنده 3.6 گیگا هرتزی پنتیوم 4 قویتر است یا پردازنده 1.8 گیگاهزتزی Core 2 ؟
 شاید با مثال بالا كمی ‌شبهات بر طرف شده باشد. البته تمام برتری پردازنده‌های دو هسته‌ای جدید به پردازش موازی آنها نیست اما می‌توان گفت بارزترین علت این برتری همین توانایی و قابلیت پردازش موازی است.

اما این قضیه تمام جریان نیست. با ورود پردازنده‌های چند هسته‌ای مشكلات و نقاط ضعف جدید نیز مطرح شدند. در واقع همیشه میزان بار كاری لازم برای استفاده از دو یا چهار هسته پردازنده وجود ندارد. همچنین در تقسیم و انتشار بار كاری بین هسته‌های پردازشگر نیز هنوز مكانیسم صحیحی دیده نمی‌شود. به عبارت بهتر واسط‌های فیزیكی ( HyperTransport در AMD و Front Side Bus در Intel ) ممكن است سبب ایجاد گلوگاه در این امر شوند. اگر به لایه‌های بالاتر نیز دقت كنیم سیستم عامل هم به عنوان فرستنده و توزیع كننده ، خود می‌تواند سبب ایجاد گلوگاه گردد.

جدال نرم‌افزار‌ها با پردازنده‌های چند هسته‌ای
در بخش قبلی اشاره كردیم كه یك نرم‌افزار در حالت ایده‌آل می‌تواند به درستی از قابلیت Multi-Threading  بهره گرفته و توانایی پردازنده چند هسته‌ای را به طرز درستی مورد استفاده قرار دهد. بحث بر سر این است كه این استفاده درست از قابلیت Multi-Threading چگونه است. به خاطر بیاورید زمانی را كه پردازنده‌های دو هسته‌ای تازه به بازار عرضه شده بودند. در آن زمان بازی‌های وقت به خوبی بر روی پردازنده‌های تك هسته‌ای اجرا می‌شدند اما بر روی پردازنده‌های دو هسته‌ای كمی‌با مشكل مواجه شده بودند. آنچه در زمان ورود پردازنده‌های دو هسته‌ای مطرح می‌شد عدم توانایی نرم‌افزار‌ها در استفاده از تمام قابلیت‌های یك پردازنده‌های دو هسته‌ای بود. چرا كه نرم‌افزارها نمی‌توانستند بار كاری خود را به رشته‌های قابل پردازش یكسان از لحاظ حجم كاری تقسیم كرده و بدین ترتیب سرعت انجام پردازش را افزایش دهند. در مقابل عبارت Multi-Threading می‌توان مفهوم Multi Tasking را مطرح كرد. به عنوان مثال استفاده از یك مرورگر برای دیدن صفحات اینترنتی و هم زمان با آن گوش دادن به موسیقی ، مفهموم چند وظیفه‌ای را توجیه می‌كند. جریانی كه پردازنده‌های دو هسته‌ای و یا چند هسته‌ای به خوبی از عهده آن بر می‌آیند. چرا كه دیگر بحث بار كاری یك نرم‌افزار مستقل مطرح نیست. اما همانطور هم كه قبلا اشاره كردیم Multi-Threading بصورت ایده آل ( حداقل در بین خیل زیادی از نرم‌افزار‌های فعلی ) وجود ندارد. اما به نوعی هم گوشه‌ای از عملیات Multi-Threading   دیده می‌شود. برای مثال آنتی ویروسی را در نظر بگیرید. واسط گرافیكی این آنتی ویروس را می‌توان یك رشته قابل پردازش و دستور اسكن سیستم را رشته ای دیگر فرض كرد. اما آنچه كه مسلم است این است كه حجم كاری این دو رشته یكسان نیست و لذا Multi-Threading به معنا و مفهوم ایده آل خود اجرا نخواهد شد.

با توضیحات فوق می‌توان به این نتیجه رسید كه یكی دیگر از عواملی كه قابلیت‌های یك پردازنده چند هسته‌ای را محدود می‌كند وجود نرم‌افزار‌های این چنینی است. در واقع در هنگام اجرای یك نرم‌افزار آنتی ویروس و در كنار آن تماشای یك DVD می‌توانید به افزایش كارآیی سیستم خود پی ببرید ( Multi Tasking ) اما در هنگام اجرای یك نرم‌افزار بر روی پردازنده چند هسته‌ای خود شاید این تفاوت را اصلا احساس نكنید.

توسعه نرم‌افزار‌ها در حالت Multi-Threading ایده آل ، كار سختی است. در كنار كار سخت ، هزینه بالا نیز نا گزیر خواهد بود. به همین دلیل است كه هنوز اكثر نرم‌افزار‌ها به این سمت كشیده نشده‌اند. هر چند در بین بازی‌های جدید و به روز مواردی دیده می‌شود كه سازندگان آنها توانایی پشتیبانی از پردازنده‌های چند هسته‌ای را در ساختار اجرایی بازی لحاظ كرده اند.

سخن پایانی
همانطور كه ملاحظه كردید پردازنده‌های دو هسته‌ای و نیز چند هسته‌ای از لحاظ سرعت انجام كار ( بدون توجه به فركانس كاری ) برتری خود را ثابت كرده اند. تنها عاملی كه می‌توان در سطح كاربری آن را مهم دانست وجود نرم‌افزار‌های سازگار با پردازنده‌های چند هسته‌ای است. مشكلی كه در ابتدای ورود آنها دیده می‌شد و به تدریج در حال رفع شدن است. در واقع سازندگان نرم‌افزار ناچار به پذیرش این ساختار جدید هستند. تمام حالات فوق سبب نمی‌شود كه در خرید پردازنده‌های چند هسته‌ای شك كنید. چرا كه در آینده ای نه چندان دور " پردازش موازی " و " پردازش چند وظیفه‌ای " مهمترین عوامل در پروسه پردازش خواهند بود. بنابراین اگر قصد خرید پردازنده ای چند هسته‌ای را دارید در مورد آن تردید نكنید. آینده از آن پردازنده‌های چند هسته‌ای است .

صفحات جانبی

نظرسنجی

    لطفاً نظرات خود را درمورد وبلاگ با اینجانب در میان بگذارید.(iman.sariri@yahoo.com)نتایج تاکنون15000مفید و 125غیرمفید. با سپاس


  • آخرین پستها

آمار وبلاگ

  • کل بازدید :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :