رایانش موازی از طریق پردازنده های چند هسته ای و چند تاری( Multithreaded)

پردازنده های چند هسته ای و چند تاری( Multithreaded)، به یک رویکرد جدید، برای دستیابی به افزایش عملکرد CPU تبدیل شده اند. اکثر نرم افزارهای کاربردی عددی، از افزایش تعداد هسته های محاسباتی قدرتمند سود می برند. در مورد سرورها، معمولاً اگر مدار تراشه برای به حداکثر رساندن توان عملیاتی، از طریق اجرای تارهای ( threads) متعدد در هر هسته مورد استفاده قرار گرفته باشد، مزیت بیشتری را به همراه خواهد داشت.
شنبه، 4 تير 1390
تخمین زمان مطالعه:
موارد بیشتر برای شما
رایانش موازی از طریق پردازنده های چند هسته ای و چند تاری( Multithreaded)

رایانش موازی از طریق پردازنده های چند هسته ای و چند تاری( Multithreaded)
رایانش موازی از طریق پردازنده های چند هسته ای و چند تاری( Multithreaded)


 






 
پردازنده های چند هسته ای و چند تاری( Multithreaded)، به یک رویکرد جدید، برای دستیابی به افزایش عملکرد CPU تبدیل شده اند. اکثر نرم افزارهای کاربردی عددی، از افزایش تعداد هسته های محاسباتی قدرتمند سود می برند. در مورد سرورها، معمولاً اگر مدار تراشه برای به حداکثر رساندن توان عملیاتی، از طریق اجرای تارهای ( threads) متعدد در هر هسته مورد استفاده قرار گرفته باشد، مزیت بیشتری را به همراه خواهد داشت.

رایانش موازی از طریق پردازنده های چند هسته ای و چند تاری( Multithreaded)

ما در این مقاله به بررسی پردازنده های چند هسته ای و چند تاری خواهیم پرداخت که امروزه در بازار حضور دارند. در عین حال، ارزیابی تصمیم گیری های زیربنائی در حوزه طراحی پردازنده ها، بازدهی مصرف برق و موضوعات نرم افزاری مرتبط با خصوصیات فشار کاری و نرم افزارهای کاربردی نیز بخشی از مقاله حاضر را تشکیل می دهند.
بطور سنتی، قدرت عملکرد پردازنده ها، هر 18 ماه یکبار تقریباً دو برابر شده است، زیرا پیشرفتهای بدست آمده در حوزه فناوری های تولید تراشه به افزایش سرعت های کلاک پردازنده ها و همچنین پیچیدگی طراحی آنها منتهی گردیده اند. با اینحال، موانعی در مسیر تداوم ارتقاء چشمگیر فرکانس های کاری این تراشه ها وجود دارند که به مشکلاتی نظیر نشت ولتاژ در بین مؤلفه های داخلی تراشه و همچنین محدودیت های انتشار حرارتی مربوط می شوند.
قانون مور( Moore Law که پیش بینی کرد چگالی مدارات داخل تراشه ها هر 18 ماه یکبار دو برابر خواهد شد) هنوز اعتبار خود را حفظ کرده و توانائی افزایش پیچیدگی تراشه ها را در اختیار طراحان سخت افزاری قرار می دهد. در واقع این اعتبار تا زمانی که CPUها به محدودیتهای سخت فیزیکی در رابطه با چگالی مدار برخورد نکرده اند، ادامه خواهد داشت.
در گذشته، تولیدکنندگان از ظرفیت اضافی برای توسعه CPUهای سوپراسکالر با واحدهای اجرائی تکراری و خط لوله های عمیق( به منظور بهره برداری از موازی سازی یا Parallelism در سطح دستورالعمل)، استفاده می کردند. با اینحال، آنها به این ترتیب تنها 25 درصد از فضای اضافی تراشه که در هر سال با اضافه شدن ویژگی های جدید معماری در دسترس قرار می گرفت را به بازدهی می رساندند. بعلاوه، فاصله عملکردی مابین پردازنده ها و حافظه، بهره احتمالی از افزایش دائمی فرکانس پردازنده ها را محدود می کند. بنابراین، مسیر طراحی که در حال حاضر به منظور افزایش عملکرد دنبال می شود، از فضای قابل دسترسی تراشه برای توسعه CPU های چند هسته ای و چند تاری استفاده می نماید. این طراحیها از چند وظیفگی( Multitasking) از طریق برنامه های موازی و یا اجرای همزمان نرم افزارهای کاربردی متعدد، پشتیبانی می کنند.
طراحان در ابتدا CPUهای چند تاری( Multithreaded) را معرفی نمودند که Content-Switching( سویچینگ لایه چهار تا هفت) مابین تارها را در سطح سخت افزار، پیاده سازی می کردند تا زمان بی باری منابع در پردازنده های سوپراسکالار پیچیده را کاهش دهند. پس از مدت کوتاهی، طراحان بیش از یک هسته پردازنده را بر روی یک تراشه واحد ترکیب نمودند و حالا ما پردازنده های 8 هسته ای را در اختیار داریم. با این فرض که قانون مور همچنان معتبر باشد، می توانیم انتظار داشته باشیم که تعداد هسته های پیاده سازی شده بر روی تراشه ها هر دو سال یکبار دو برابر شده و به این ترتیب در آینده نزدیک شاهد ارائه CPUهائی با 16 پردازنده ( و یا بیشتر) باشیم.

● طیف طراحی
 

هر دو گروه CPUهای چند هسته ای و چند تاری، با اجرای تارهای متعدد از خصوصیت همزمانی ( Concurrency) بهره می گیرند، هرچند که طراحی آنها اهداف متفاوتی را دنبال می کنند. پردازنده های چند تاری، از اجرای همزمان تارها در یک سطح با دانه بندی ظریف تر از دستورالعملها، پشتیبانی می کنند تا با صدور دستورالعملها از تارهای متعدد، بهره برداری بهتری را از منابع پردازنده ها فراهم نمایند. پردازنده های چند هسته ای، به سطح بالاتری از همزمانی رشته دست پیدا می کنند و تمرکز کمتری بر میزان استفاده از هر هسته دارند، در حالیکه مقیاس پذیری از طریق تکرار هسته ها را هدف گرفته اند. این CPUها غالباً CMP(Chip MultiProcesor) نامیده می شوند. جدیدترین طرح های CPU و GPU نظیر Sun UltraSPARC T2,IBM Power6 ATI RV770، Intel Xeon، ، و Nvidia GT200 هر دو گزینه را ترکیب نموده و دارای هسته های چند تاری متعدد هستند.

● هسته های چند تاری
 

تمام هسته های چند تاری، تارهای سخت افزاری متعددی را بصورت On-chip و آماده برای اجرا نگه می دارند. این ویژگی برای انجام سوئیچینگ با دانه بندی دقیق مابین تارهای قابل اجرا و به حداقل رساندن هزینه های سوئیچ محتوا( Content Switching) از طریق تسهیم( Multiplexing) در سطح سخت افزار، ضروری است.
هر رشته On-chip به مؤلفه های وضعیت مخصوص به خود نظیر نشانگر (Pointer) دستورالعمل و سایر رجیسترهای کنترلی نیاز دارد. بنابراین، تعداد تکرارهای مورد نیاز از مؤلفه های وضعیت( State Components) و متعاقباً بالاترین درجه پشتیبانی سخت افزاری از همزمانی و اشباع واحدهای اجرائی براساس تعداد تارهای On-chip تعیین می گردد. تارهای بیشتر در عین حال امکان پنهان سازی تأخیرهای دسترسی و یا وقفه های ایجاد شده بخاطر خطای پیش بینی انشعاب را فراهم می کنند. پردازنده زئون اینتل برای پشتیبانی از یک رشته سخت افزاری ثانویه، تنها به 5 درصد فضای تراشه بیشتر نیاز دارد، اما پس از این افزایش، بطور آشکارا Super-Linear خواهد بود.
تعداد تارهای On-chip در هر هسته که بطور معمول توسط پردازنده های تجاری پشتیبانی می شوند، از 2 در پردازنده های Xeon اینتل تا 8 در پردازنده های Sun UltraSPARC T2 متغیر است. عدد فوق العاده 128 تار در Tera/Cray MTA نشان دهنده یکی از اولین طراحیهای موفق عملی( و نه تجاری) است. این پردازنده به تعداد زیادی از تارها نیاز داشت تا تأخیرهای دسترسی حافظه را پنهان نموده و فقدان یک کاشه در معماری خود را جبران کند. طراحان از همین طراحی در واحد پردازنده گرافیکی فوق العاده چند تاری Nvidia GT200 استفاده کرده اند که در آن از حداقل کاشه ممکن استفاده شده است تا منابع محاسباتی اضافی به حداکثر برسند.
جدول [1] نشان می دهد که تولیدکنندگان از تنوعی از روشها برای سوئیچ مابین تارهای داخل هر هسته استفاده می نمایند. این روشها از ایجاد تناوب مابین تارها( Alternating) تا صدور واقعی دستورالعملها از تارهای متعدد در هر سیکل را در بر می گیرند. جدیدترین پردازنده ها، از روش دوم استفاده می کنند که معمولاً تحت عنوان SMT(Simultaneous MultiThreading) شناخته می شود، هرچند که اینتل آن را تحت عنوان فناوری HTT(Hyperthreading Technology) معرفی نموده است. SMT در هر سیکل، دستورالعملهائی که قبلاً کدگشائی شده اند را از تنها یک زیرمجموعه از تارهای On-chip ارسال می کند. تعداد تارهای داخل این زیرمجموعه در عین حال بر میزان بکارگیری واحدهای اجرائی تأثیر می گذارد، خصوصاً اگر تارها، استفاده یکدیگر از این واحدها را تکمیل نمایند. با اینحال، در حال حاضر هیچ پردازنده تجاری در دسترس قرار ندارد که بتواند صدور دستورالعملها را از بیش از دو رشته در هر هسته و هر سیکل انجام دهد.

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

چند تاری سخت افزاری در هر هسته، مقیاس پذیری را بخاطر نقطه اشباع واحدهای اجرائی و هزینه تارهای اضافی محدود کرده است، در حالیکه پردازنده های چند هسته ای پتانسیل بیشتری را برای مقیاس پذیری وعده می دهند. جدول [1]، فهرست خلاصه شده ای از پردازنده های چند هسته ای موجود را نشان می دهد. اکثر تراشه های چند هسته ای اولیه، بصورت یک جفت سازی ساده از طراحی تراشه های تک هسته ای موجود ساخته می شدند( همان کاری که در Itanium دو هسته ای انجام شد). این تراشه ها، با حفظ بخش عمده ای از معماری اسلاف خود، صرفاً واحدهای اجرائی و کنترلی را تکرار نموده و بقیه واحدهای موجود بر روی تراشه را به اشتراک می گذاشتند. واحدهای به اشتراک گذاشته شده عبارت بودند از کاشه، کنترلر حافظه، واحدهای پردازشی ثانویه نظیر واحدهای ممیزی شناور( FPU)، مؤلفه های خنک کننده و پایه های خارجی. با اینحال، به اشتراک گذاری با معایبی در زمینه درگیری بر سر منابع اشتراکی نیز همراه است.

رایانش موازی از طریق پردازنده های چند هسته ای و چند تاری( Multithreaded)

گرایش های موجود در حوزه توسعه معماری ها، بیانگر یک حرکت به سمت تکرار مؤلفه های اضافی On-chip ( نظیر کنترلر حافظه و کاشه ها) هستند که می توانند خصوصی بوده و یا به اشتراک گذاشته شوند. برای مثال، هریک از پردازنده های IBM Power6 و AMD Opteron دارای کاشه های L2 اختصاصی هستند، اما چند کنترلر حافظه را به اشتراک می گذارند.

● ادغام مؤلفه ها
 

تعداد و انتخاب مؤلفه های مجتمع On-chip، یک تصمیم گیری مهم در حوزه طراحی است. مؤلفه های احتمالی برای درج بر روی تراشه عبارتند از کنترلرهای حافظه، اینترفیس های ارتباطی و حافظه. پیاده سازی کنترلر حافظه بر روی تراشه، باعث افزایش پهنای باند و کاهش تأخیر می شود که گرایش اخیر به سمت ادغام این مؤلفه را توضیح می دهد.
بعضی از طراحی ها از چند کنترلر حافظه مجتمع پشتیبانی می کنند تا امکان مقیاس پذیری پهنای باند دسترسی حافظه با تعداد هسته ها را فراهم نمایند. هر دو پردازنده
IBM Power6 و Sun UltraSPARC T2 در این گروه قرار دارند. ادغام یک هسته GPU بر روی تراشه، گزینه دیگری به حساب می آید که برای نسل بعدی CPUها مطرح شده است. یک روش مشابه، قبلاً در بازارهای موبایل و Embedded مورد استفاده قرار گرفته و به دفعات هر دو هسته همه منظوره ( General-Purpose) و هسته پردازنده سیگنال دیجیتال را بر روی یک تراشه واحد ادغام کرده است. سیستم Blu Gene/P شرکت IBM بر یک طراحی SoC(System on-chip) فوق العاده مجتمع تکیه دارد و به 4 هسته، 5 اینترفیس شبکه، 2 کنترلر حافظه و 8 مگابایت کاشه L3 مجهز می باشد که به سیستم امکان می دهند به صدها هزار پردازنده مقیاس دهی گردد. کنترلرهای حافظه مجتمع، I/O، توابع امنیتی و یک اینترفیس شبکه پیشرفته در پردازنده های UltraSparc، می تواند مثال بسیار خوب دیگری باشد.

● کاشه های اختصاصی در مقابل کاشه های اشتراکی
 

گذشته از همزمانی، کاشه ها مهمترین ویژگی در ارتقاء عملکرد پردازنده های مدرن به حساب می آیند، زیرا فاصله مابین سرعت پردازنده و زمانهای دسترسی حافظه را پر می کند. روش غالب برای نزدیک کردن این فاصله، از فضای قابل دسترسی تراشه برای تأمین مقدار بیشتری از حافظه کاشه On-chip استفاده می نماید. بعضی از معماریهای پردازنده، یک روش کاملاً متفاوت را انتخاب کرده و اساساً هیچ کاشه ای را بکار نمی گیرند. در این روش، تأخیرهای حافظه از طریق پردازش چند تاری( نظیر Tera/Cray MTA) و یا با استفاده از حافظه ای که با سرعت بالا مستقیماً آدرس دهی می گردد ( نظیر Cell SPE) پنهان می شود.
سازماندهی حافظه کاشه، یکی از ملاحظات بسیار مهم به حساب می آید. جدیدترین طراحیهای تراشه های چند هسته ای، دارای یک کاشه L1 اختصاصی برای هر هسته می باشند تا میزان رقابت برای این سطح حیاتی از کاشه را به حداقل ممکن برسانند. اگر هسته از تارهای سخت افزاری متعددی پشتیبانی کند، کاشه L1 مابین تارهای داخل هر هسته به اشتراک گذاشته می شود. تخصیص کاشه L2 در طراحیهای چند هسته ای دارای تنوع بیشتری می باشد. این کاشه می تواند بطور خصوصی یا اختصاصی برای هر هسته پیاده سازی گردیده و یا مابین هسته ها به اشتراک گذاشته شود. کاشه L3 بطور تاریخی یک ساختار خارج از تراشه ( Off-chip) و اشتراکی بوده است، اما طراحیهای جدیدتری نظیر Itanium شرکت اینتل و Opteron چهار هسته ای شرکت AMD به کاشه های L3 از نوع on-chip مجهز هستند.
اینکه کاشه های اشتراکی مفیدتر هستند یا کاشه های خصوصی، نه تنها به مصالحه های مرتبط با استفاده از فضای تراشه، بلکه به خصوصیات نرم افزارهای کاربردی بستگی خواهد داشت. کاشه های اشتراکی در صورتی اهمیت بیشتری خواهند یافت که تارهای یک نرم افزار کاربردی واحد بر روی هسته های متعددی اجرا گردیده و مقدار قابل ملاحظه ای از داده ها را به اشتراک بگذارند. در این صورت، یک کاشه اشتراکی بسیار اقتصادی تر خواهد بود زیرا از ایجاد کپی های متعدد داده ها و انتقالهای مکرر« کاشه به کاشه» اجتناب خواهد کرد. با اینحال، کاشه های اشتراکی می توانند تقاضاهای بسیار زیادی را بر اتصالات داخلی( Interconnects) تحمیل نمایند.
تارهای نرم افزاری که داده های زیادی را به اشتراک نمی گذارند، می توانند به رقابت برای کاشه بپردازند. این وضعیت، پیش بینی سرویس مورد نیاز هر رشته را دشوار خواهد نمود زیرا اینکار به جزئیات الگوهای دسترسی حافظه، مکان دسترسی حافظه و همچنین بار کاری سیستم بستگی خواهد داشت. کاشه های خصوصی، یک راه حل آسان برای تفکیک عملکرد و تضمین قابلیت پیش بینی سرویسها را فراهم می کنند.
بعنوان یک روش انعطاف پذیرتر، یک طراحی دو رگه( Hybrid) تعداد مختلفی از بانکهای کاشه را فراهم می نماید که برحسب نیازهای تارهای در حال اجرا به کاشه، بعنوان کاشه های خصوصی و یا اشتراکی تخصیص داده شوند. این روش می تواند از هر گروه تارهائی که داده ها را به اشتراک می گذارند و تارهائی که داده ها را به اشتراک نمی گذارند، پشتیبانی کند. همانطور که در تحقیقات اخیر پیشنهاد شده است، طراحی دو رگه می تواند برای تقسیم بندی متناسب بصورت دینامیک، بهسازی گردد. این ویژگی، امکان تأمین یک سطح سرویس معادل یک تراشه تک هسته ای با مقدار متناظری از منابع کاشه تدارک دیده شده را برای هر هسته تأمین می کند.

● تفاوت منابع اختصاصی و اشتراکی رشته سخت افزاری
 

برخلاف طراحیهای چند هسته ای که به سمت تکرار اکثر منابع گرایش دارند، اشتراک گذاری یک روش غالب در چند تاری( Multithreading) سخت افزاری به حساب می آید. با اینحال، هنوز سطحی از تکرار و تقسیم بندی، ضروری خواهد بود. تکرار برای واحدهای اجرائی که می توانند در معرض رقابت شدیدی قرار بگیرند، حیاتی است. تقسیم بندی ثابت( Static) و یا دینامیک یک منبع، دسترسی انحصاری هر رشته به سهم خودش را تضمین می نماید که در نتیجه یک راه حل ساده برای تأمین جریان مستقل و عادلانه اجرای تارها را فراهم می کند.
برای مثال، بعضی از طراحی ها تقسیم بندی را برای بافرهای دستورالعمل پیاده سازی می نمایند. تقسیم بندی ثابت، مرزهای قطعی را ایجاد می کند در حالیکه تقسیم بندی دینامیک می تواند مرزها را بطور انعطاف پذیری انتخاب نموده و در نتیجه یک حداقل سهم را برای هریک از تارهای در حال اجرا حفظ کند. اشتراک گذاری، انعطاف پذیری بسیار بیشتری را در استفاده از منابع امکانپذیر می سازد، اما باعث افزایش احتمال رقابت گردیده و می تواند به مکانیزمهائی برای جلوگیری از انحصارطلبی ( Monopolization) نیاز داشته باشد. اکثر طراحیهای چند تاری، از ترکیبی از اشتراک گذاری، تکرار و تقسیم بندی استفاده می کنند. تصمیم گیری طراحی براساس میزان رقابت بر سر یک منبع خاص در بین تارها، ملاحظات بی طرفی و هزینه انجام می شود.

● تحمل نقص
 

تقسیم بندی دینامیک کاشه و یا سایر منابع، می تواند گسترش یابد تا با نواقص سخت افزاری که احتمال وقوع آنها با افزایش چگالی مدار بیشتر خواهد شد، درگیر شود. این نواقص می توانند باعث ایجاد نویز الکتریکی و یا اشکالات دائمی کوچک در سیلیکون گردیده و احتمالاً با انتشار از مؤلفه های منفرد به خرابی کل تراشه منتهی شوند. بعضی از تولیدکنندگان CPUها، هسته های معیوب را در مرحله تولید از کار می اندازند تا بازدهی آنها را بعنوان قالبی از تقسیم بندی ثابت افزایش دهند. بعلاوه، تحمل نقص می تواند قابلیت پیکربندی دینامیک و تقسیم بندی واحدهای تکراری و قابل تفکیک نظیر اتصالات درون تراشه ای و کنترلرهای حافظه را علاوه بر بانکهای متعدد کاشه، در بر داشته باشد. این قابلیت به پشتیبانی از سطوح مختلف جدا سازی در مقابل اشتراک گذاری و جداسازی مؤلفه های فعال از مؤلفه های معیوب، منتهی می گردد. چنین راه حلهائی تا حدود زیادی دسترس پذیری کلی را افزایش داده و کاهش عملکرد قابل قبولی را در صورت بروز نواقص به همراه خواهند داشت.

● اتصالات داخلی
 

یک ویژگی مهم دیگر که بر عملکرد تراشه های چند هسته ای تأثیر می گذارد، برقراری ارتباط مابین مؤلفه های On-chip مختلف است: هسته ها، کاشه ها و ( در صورتیکه ادغام شده باشند) کنترلرهای حافظه یا شبکه. طراحیهای اولیه از یک گذرگاه مشابه با سیستمهای چند پردازنده ای سنتی استفاده می کردند. طراحیهای امروزی به سمت یک تقاطع ( Crossbar) و یا سایر مکانیزم های پیشرفته برای کاهش تأخیر و رقابت استفاده می کنند. برای نمونه، CPUهای شرکت AMD از یک تقاطع استفاده می کنند. در حالیکه پردازنده های Tilera TILE64 یک Mesh چند لینکی بدون مانع ( Nonblocking) را پیاده سازی می نمایند. با اینحال، اتصالات داخلی می توانند بسیار پر هزینه باشند: یک تقاطع 8×8 بر روی تراشه می تواند ناحیه ای به بزرگی 5 هسته را اشغال نموده و به اندازه دو هسته برق مصرف کنند.
با کاشه های صرفاً خصوصی بر روی تراشه، تبادل داده ها مابین تارهای در حال اجرا بر روی هسته های مختلف، بطور تاریخی استفاده از Interconnect های خارج از تراشه( Off-chip) را اجباری ساخته است. کاشه های On-chip اشتراکی بطور طبیعی از تبادل داده ها مابین تارهای در حال اجرا بر روی هسته های مختلف پشتیبانی می کنند. بنابراین، معرفی یک سطح از کاشه اشتراکی بر روی تراشه ( عموماً L2 و یا در گرایشهای تازه تر، L3) و یا پشتیبانی از میان برهای تبادل داده نظیر انتقال کاشه به کاشه، به کاهش ترافیک Off-chip کمک خواهد نمود. با اینحال، تعداد بیشتر سطوح کاشه On-chip، اتصالات داخلی بر روی تراشه را ملزم به پشتیبانی از ملزومات بسیار بیشتری در زمینه پهنای باند و پیچیدگی می نماید.
با افزایش پردازش داده ها از طریق موازی سازی بیشتر در سطح رشته، معمولاً تقاضا برای بافت ارتباطی Off-chip نیز برای دسترسی های حافظه، I/O و یا ارتباطات مابین پردازنده ها افزایش می یابد. به منظور برآورده نمودن این ضرورت، ارتباطات Off-chip از ساختارهای مبتنی بر گذرگاه به Interconnectهای نقطه به نقطه مبتنی بر بسته گرایش پیدا کرده اند AMD اولین بار این مفهوم را بصورت HyperTransport پیاده سازی کرد و سپس اینتل نیز با QuickPath مسیر مشابهی را دنبال نمود. اتصالات Off-chip و پشتیبانی از وابستگی داده ها( data-coherency) در عین حال بر مقیاس پذیری سرورهای مبتنی بر CPUهای متعدد، تأثیر می گذارد.

● طراحی های اختصاصی
 

بعضی از پردازنده های چند هسته ای، برای اداره نمودن بارهای کاری بسیار اختصاصی طراحی شده اند. سری Azul Vega از تراشه های چند هسته ای طراحی شده برای افزایش عملکرد عملیات جاوا، استفاده می کند. طراحان، پردازنده Tilera TILE64 را به منظور پردازش داده ها با 64 هسته پردازشی ساده کم مصرف، بهینه سازی نموده اند. این ترکیب، ظرفیت جریان داده ها را افزایش داده و پردازنده مذکور را به یک گزینه مناسب برای سیستم های Embedded نظیر روترهای مخابراتی تبدیل می کند. با وجود آنکه IBM Cell در ابتدا برای کنسول های بازی طراحی شده بود، اما در عین حال توانست سودمندی خود برای کاربردهای پردازش داده ها در حوزه های نجوم و زیست انفورماتیک( Bioinformatics) به اثبات برساند.
GPU یک مثال فوق العاده از طراحی چند هسته ای اختصاصی به حساب می آیند.GPUهای مدرن دارای 10 هسته یا بیشتر هستند که هریک از آنها برای پردازش SIMD داده ها که از طریق صدها و یا هزاران رشته ساده شده در هر هسته انجام می گردد، بهینه سازی شده اند. این ویژگی، آنها را برای پردازش شدیداً عددی نظیر راندوی ویدیوئی، ژن شناسی، مدلسازی علمی و یا رمزنگاری مناسب می سازد.

● عملکرد پردازنده های چند هسته ای و چند تاری
 

عملکرد تک تاری: سیستمهای مبتنی بر پردازنده های Intel Core i7 بالاترین رده بندی را در مقایسه های SPECfp2006 و SPECint2006 به خود اختصاص داده و امتیاز بدست آمده توسط آنها در حوزه های سرعت Integer و سرعت Coating-point( که توسط کنترلر حافظه آنها پشتیبانی می شود) در مقایسه با پردازنده های Opteron شرکت AMD ( نتایج HP Opteron 2348 که در دسامبر سال 2008 بدست آمده اند) به ترتیب 68 و 84 درصد بالاتر بوده است. بعلاوه، پردازنده های Core i7 اینتل دارای بهترین امتیاز در توان عملیاتی SPECfp و SPECint نیز می باشند.
در رابطه با توان عملیاتی برای نرم افزارهای کاربردی عددی SPECfp، پردازنده Opteron در هنگام استفاده از کد شدیداً بهینه سازی شده تنها اندکی بهتر از Sun UltraSPARC T2 خواهد بود، اما با استفاده از بهینه سازی استاندارد به یک برتری 26 درصدی دست پیدا می کند. با اینحال، UltraSPARC T2 پردازنده Opteron را در مقایسه چند تاری SPECweb 2005 برای زمانهای پاسخ و توان عملیاتی سرورهای وب با سرویس دهی به 36 درصد درخواستهای بیشتر در طول یک دوره زمانی مشابه، پشت سر می گذارد.
مطالعات شبیه سازی با نرم افزارهای کاربردی بانک اطلاعاتی، خصوصاً OLTP و DSS، چهل درصد کاهش در زمان پاسخدهی را برای POWER5 در مقایسه با UltraSPARC T1 نشان داده اند، البته در صورتی که یک بار کاری اشباع نشده بر آنها تحمیل گردد. با اینحال، UltraSPARC T1 تحت فشارهای کاری اشباع شده توانست 70 درصد برتری توان عملیاتی را به نمایش بگذارد.
عملکرد چند تاری: مزایای تعدد تارهای سخت افزاری، تا حدودی به این موضوع بستگی خواهند داشت که نرم افزار کاربردی از Multithreading استفاده می کند یا Multiprocessing. فعال نمودن Hyperthreading دو تاری بر روی پردازنده Xeon اینتل با یک افزایش عملکرد 33 درصدی نسبت به اجرای تک تاری برای نسخه OpenMP مقایسه NAS FT همراه بود. در مقایسه، نسخه Multiprocess مقایسه NAS FT شاهد کاهش عملکرد بود. نسخه OpenMP مقایسه FT با 8 درصد افت عملکرد نسبت به اجرای تک تاریای مواجه شد، در حالیکه نسخه چند پردازشی استاندارد FT شاهد یک افت 50 درصدی در عملکرد بود که تا حدود زیادی به رقابت بر سر حافظه توسط ارتباطات شدید Interprocess مربوط می شد.
عملکرد چند هسته ای: مثال پردازنده های دو هسته ای AMD Opteron، با دستیابی به 37 درصد عملکرد بهتر هنگام بکارگیری هسته دوم در اندازه گیریهای مقایسه استاندارد چند پردازشی NAS CG/FT، بهره عملکردی هسته های متعدد را به نمایش می گذارد. همین مطالعه در عین حال نشان داد که یک تراشه دو هسته ای در مقایسه CG تنها 5/8 و در مقایسه FT تنها 9 درصد کندتر از دو تراشه که هرکدام در حال استفاده از یک هسته واحد هستند، عمل می کند. این در حالی است که یک تراشه دو هسته ای بازدهی بسیار بالاتری در زمینه هزینه ها و مصرف برق را به همراه دارد.یک مطالعه دیگر با نرم افزارهای کاربردی چند پردازشی خالص که بر روی کلاسترهای بزرگی با حداکثر 4096 پردازنده اجرا می شدند، مزیتهائی مابین 20 تا 50 درصد را با استفاده از یک هسته ثانویه به نمایش گذاشت.

● پیچیدگی هسته در مقابل تعداد هسته ها
 

بهینه سازیهای سنتی پردازنده ها، به دنبال افزایش سرعت اجرای سریال یک رشته واحد بودند و از فناوریهائی نظیر اجرای خارج از ترتیب، پیش بینی دینامیک انشعاب و خط لوله های طولانی تر برای دستیابی به نرخ کلاک بالاتر استفاده می کردند. دسترس پذیری موازی سازی در سطح رشته به همراه موازی سازی در سطح دستورالعمل، تصمیم گیریهای طراحی مهمی را در زمینه میزان ضرورت ساده سازی طراحیهای سنتی CPU به منظور اختصاص مدار بیشتر به همزمانی، ایجاد می کنند.
UltraSPARC T1 از شرکت Sun که تعداد FPUهای موجود بر روی تراشه را کاهش می دهد و یا پردازنده Atom اینتل که اجرای خارج از ترتیب را حذف می نماید، مثالهای خوبی در این زمینه می باشند. در پردازنده Cell که یک مورد غائی در این زمینه به حساب می آید، گرایش مذکور به کاهش چشمگیر مجموعه دستورالعملها و حذف پیش بینی دینامیک انشعاب یا بازچینی( Reordering) دستورالعملها منتهی گردیده است. سایر تراشه ها( نظیر Power6 که واحدهای FPU و Integer شدیداً بهینه سازی شده نظیر یک FPU دسیمال را ارائه می کند)، پیچیدگی را افزایش داده اند تا عملکرد هر هسته را به حداکثر برسانند. پردازنده های Mainframe در عین حال به پشتیبانی از پردازش نقل و انتقالات سنگین نیز احتیاج دارند. به همین دلیل، پردازنده z10 شرکت IBM معماری Power6 را با پیش بینی پیشرفته انشعاب و مدیریت کاشه، توسعه داده است.
افزایش پهنای صدور( Issue-Width) در عین حال باعث حداکثر سطح عملکرد نیز خواهد شد، همانند معماری POWER5 که 5 دستورالعمل را در هر سیکل صادر می کند و یا تراشه های AMD که تنها 3 دستورالعمل را در هر سیکل صادر می کنند. پردازنده هائی که بر روی عملکرد هر رشته تمرکز دارند، بطور کلی دارای سرعتهای کلاک بسیار بالاتری در مقایسه با پردازنده هائی می باشند که بر پشتیبانی از تعداد بیشتر تارها متمرکز هستند. این تمایز بخوبی در نرخ کلاک 5 گیگاهرتزی پردازنده IBM POWER6 و سرعت کلاک 3/73 گیگاهرتزی پردازنده PentiumExtremeEdition در مقایسه با سرعت کلاک 1/6 گیگاهرتزی پردازنده شدیداً چند تاری UltraSPARC T2 قابل مشاهده است.
با اینحال، استفاده از فضای اضافی تراشه برای ارتقاء عملکرد هر رشته، به بهره های غیر خطی منتهی می شود. بعبارت ساده تر، تجربه نشان می دهد که چهار برابر شدن پیچیدگی تنها با دو برابر شدن عملکرد همراه خواهد بود. یکی از ملاحظات مهم در زمینه سطح عملکرد برای هر نرم افزار کاربردی، این است که برنامه های سریال نمی توانند از همزمانی تراشه بهره برداری کنند. حتی در برنامه های موازی نیز بعضی از قسمتهای الگوریتم بایستی بصورت ترتیبی ( Sequential) اجرا شوند و قانون Amdahl اشاره می کند که حداکثر سرعت یک الگوریتم براساس درصد بخش ترتیبی آن مشخص می گردد. متوازن نمودن پیچیدگی هسته و تعداد هسته ها، به همراه بازخوردهای کاهش دهنده از عملکرد بالاتر هر رشته را می توان بعنوان ضمیمه ای از این قانون، به رسمیت شناخت. در عین حال، این ضمیمه در کنار سایر ملاحظات به نتیجه گیریهای زیر منتهی خواهد شد:
- تعداد زیاد هسته های ساده دارای ارجحیت خواهد بود، مادامیکه بخش سریال نرم افزار کاربردی بسیار کوچک باشد. در غیر اینصورت، هسته های پیچیده تر بسیار مفیدتر هستند.
- با افزایش تقاضا برای فضای تراشه به منظور پیاده سازی اتصالات داخلی مابین تعداد بیشتری از هسته ها و مقیاس پذیری محدود نرم افزار کاربردی بخاطر فقدان موازی سازی کافی، سربار هماهنگ سازی و یا عدم توازن بار کاری، هسته های پیچیده تر ارجحیت پیدا می کنند.
- نرم افزارهای کاربردی که می توانند سطح بالائی از حداکثر عملکرد تئوریک را بکار بگیرند( نظیر نرم افزارهای کاربردی با تأکید بر محاسبات ممیزی شناور و یا نرم افزارهای کاربردی عددی شدیداً موازی)، می توانند نتایجی بالاتر از آنچه که معمولاً پیش بینی می شود را از پیچیدگی بیشتر بدست آورند.
با اینحال، علاوه بر عملکرد هر نرم افزار کاربردی، بار کاری کلی نیز بایستی در نظر گرفته شود. عملکرد هر نرم افزار کاربردی زمانی اهمیت خواهد داشت که بار کاری کلی تنها حاوی اندکی از نرم افزارهای کاربردی بوده یا با نرم افزارهای کاربردی حساس به عملکرد سر و کار داشته باشیم. در غیر اینصورت، به آسانی می توان بکارگیری مناسب را از بارهای کاری با چندین وظیفه سریال و نرم افزارهای کاربردی موازی که تنها به کسری از تعداد هسته های مقیاس دهی شده اند، بدست آورد. این ترکیب می تواند به یک توان عملیاتی (Throughput) بالا و همچنین زمانهای برگشت ( Turnaround) مناسب منتهی گردد که از اهداف طراحی سرورهای تجاری نظیر سرورهای وب و یا سرورهای بانک اطلاعاتی به حساب می آیند. برای ایجاد توازن مابین عملکرد هر رشته و توان عملیاتی، مقیاس اول زمانی افزایش خواهد یافت که امکان تخصیص منابع بیشتری بر روی تراشه بصورت دینامیک وجود داشته باشد( مثلاً برای اجرای قضاوتی یا Speculative Execution). این وضعیت احتمالاً برای نرم افزارهای کاربردی با وابستگی بالا به داده ها و « Miss»های کاشه مفید خواهد بود. پردازنده Rock شرکت Sun که در مراحل پیش از تولید قرار دارد، این ایده را با استفاده انتخابی از دو رشته سخت افزاری در هر هسته برای اجرای یک رشته نرم افزار کاربردی، پیاده سازی می نماید. یک روش ساده تر که قبلاً در بعضی از پردازنده های چند تاریای اعمال شده است، در صورت اجرا در حالت تک وظیفگی( Single-Task) منابع تقسیم بندی شده را به یک رشته تخصیص می دهند. این روش برای مثال در پردازنده های Xeon و PentiumExtremeEdition اینتل پیاده سازی شده است.
بعنوان یک احتمال دیگر، طراحی تراشه می تواند شامل تنوعی در رابطه با پیچیدگی هسته ها باشد( نظیر پردازنده Cell شرکت IBM). چند هسته با پیچیدگی بالا می توانند بخشهای ترتیبی نرم افزارهای کاربردی سنگین را اجرا کنند. اگرچه اینگونه پردازنده ها هنوز قابل دسترسی نیستند، اما تحقیقات نشان می دهند که پردازنده های حاوی تعداد زیادی از هسته های ساده و تعداد کمی هسته های دارای عملکرد بالا می توانند بالاترین قدرت کلی پردازش را برای سطح معینی از فضای تراشه و مصرف برق فراهم نمایند. با اینحال، طراحی و برنامه ریزی این پردازنده ها می تواند بسیار دشوارتر باشد.

● هزینه و مصرف برق
 

عملکرد دیگر بر اهداف طراحی پردازنده ها تسلط ندارد: هزینه های تولید تراشه و تحمل نقص، بازدهی مصرف برق و انتشار حرارتی نیز همگی به ملاحظات حیاتی در این حوزه تبدیل شده اند.
از آنجائیکه هسته ها ساده تر شده اند، مصرف برق آنها بطور خطی کاهش می یابد که یک برتری مهم برای پردازنده های چند هسته ای به حساب می آید. افزایش بازدهی مصرف برق و کاهش گرمای تولید شده، امکان ادغام هسته های بیشتر در داخل یک پردازنده واحد را فراهم می سازد، البته با این مصالحه که مصرف برق اتصالات داخلی با تعداد هسته های یک پردازنده افزایش پیدا می کند. مصرف برق بر انتخاب مابین طراحیهای چند هسته ای و طراحیهای چند تاری تک هسته ای تأثیر می گذارد: گزینه اول از بازدهی مصرف برق بالاتری برخوردار است، اما طراحیهای دو رگه با هسته های SMT متعدد همان سطح از عملکرد برای هر وات معادل با طراحیهای CMP خالص را تأمین می کنند. پردازنده های چند هسته ای در عین حال گزینه های بیشتری را برای مدیریت مصرف برق ارائه می کنند، زیرا امکان مدیریت مصرف برق هسته های CMP بطور جداگانه از طریق خاموش کردن آنها و یا کاهش فرکانس کاری در مواقعی که سیستم با بار کاری سبکی درگیر است، وجود خواهد داشت. تنظیم مصرف برق یک موضوع حیاتی در حوزه Computing موبایل به حساب می آید، اما سرورها نیز می توانند تا حدود زیادی از آن سود ببرند.
از یک نقطه نظر کلی، افزایش هزینه های الکتریکی باعث تقاضا برای افزایش بازدهی مصرف برق پردازنده ها و سایر مؤلفه های سیستم می گردد، با این مزیت اضافی که هزینه های خنک کنندگی را کاهش می دهد. با وجود آنکه CPU تنها 25 تا 45 درصد از برق مصرفی یک سرور را به خود اختصاص می دهد، هزینه های الکتریکی تحمیل شده برای یک دوره 4 ساله می توانند به قیمت خرید خود سیستم نزدیک شوند. در مورد ماشینهای Computing با عملکرد بالا، ساخت راه حلهای سفارشی سازی شده خنک کنندگی می تواند درست به اندازه خود کامپیوتر هزینه در بر داشته باشد. بعلاوه، کاهش مصرف برق امکان افزایش چگالی Rack را در اتاقهای سرور فراهم می سازد.
بهینه سازی مقیاس عملکرد برای هر وات و هر دلار، در عین حال امکان دستیابی به معماریهای فوق العاده مقیاس پذیر را فراهم می سازد. IBM Blu Gene/P و IBM Blu Gene/L که با سرعت کلاک 850 مگاهرتز کار می کنند، مثالهای فوق العاده ای در این زمینه هستند. معماری Blu Gene/p که برای سادگی، هزینه تولید پائین، یکپارچه سازی بالا و مقیاس پذیری قابل ملاحظه طراحی شده است، با بهره گیری از 40960 پردازنده به قدرت 450 ترافلاپس دست پیدا می کند. IBM hybrid QS22/LS21 که در فهرست Top 500 سال 2009 بعنوان سریعترین معماری با بالاترین سطح بازدهی مصرف برق معرفی شده، در سوپر کامپیوتر Roadrunner آزمایشگاه های ملی Los Alamos مورد استفاده قرار گرفته است. این معماری در عین حال بالاترین رتبه را در فهرست Green 500 که در نوامبر سال 2008 منتشر شده بود را به خود اختصاص داده است. کسب این رده بندیهای عالی با بهره گیری از بازدهی مصرف برق و هزینه تراشه های Cell بعنوان پردازنده های محاسباتی اصلی امکانپذیر گردیده است.

● چالش نرم افزاری
 

در آینده، رشد نمائی عملکرد پردازنده ها اصولاً از هسته ها و تارهای سخت افزاری بیشتر، قابل دستیابی خواهد بود. با اینحال، همزمانی سخت افزاری تنها با چند برنامه سریال و یا با نرم افزارهای کاربردی موازی سازی شده قابل بهره برداری خواهد بود. بخاطر محدودیت فرصتهای موجود برای ارتقاء بیشتر عملکرد برای هر رشته، کد سریال باید به دقت بهینه سازی گردد. توان عملیاتی می تواند حتی بر روی کامپیوترهای شخصی با برنامه سریال نیز بهبود پیدا کند، البته در صورتیکه هسته های اضافی به اجرای سیستم عامل یا وظایف پشت صحنه( نظیر نرم افزارهای امنیتی یا اسکنهای ویروس) پرداخته و یا برای پشتیبانی از Virtualization مورد استفاده قرار گیرند. با اینحال، استدلالهای مذکور تنها برای تعداد کمی از هسته ها قابل پیاده سازی هستند، در حالیکه گرایش کنونی به سمت پردازنده های چندین هسته ای پیش می رود.
نرم افزار سرور می تواند دارای ساختار چند تاری باشد تا توان عملیاتی بالاتری را با جایگذاری ( Interleaving) در خواستها و احتمالاً بهره برداری از CPUهای متعدد فراهم نمایند. با اینحال، اکثر نرم افزارهای عادی برای همزمانی آماده نشده اند. امکانات موجود برای استخراج موازی سازی بطور خودکار در حال حاضر بسیار محدود هستند و موازی سازی معمولاً بایستی صراحتاً بیان گردد. به همین دلیل، Herb Sutter معتقد است که تغییر به سمت برنامه نویسی موازی برای ماشینهای معمولی، تحول بزرگ بعدی پس از معرفی برنامه نویسی شیء گرا خواهد بود. نوشتن برنامه های موازی صحیح و کارآمد، یک چالش مهم است که به ابزارهای بهتر و مدلهای برنامه نویسی انتزاعی تری نیاز دارد تا سلامت و راحتی برنامه نویسی رشته را افزایش دهند. راه حلهای احتمالی براساس تجربیات بدست آمده در Computing با عملکرد بالا ارائه خواهند شد، در حالیکه بازار فوق العاده گسترش یافته این حوزه نیز انگیزه لازم برای بهبود بیشتر تکنیکهای HPC را فراهم می سازد.
توسعه دهندگان نرم افزارهای عمومی می توانند از مدل برنامه نویسی حافظه اشتراکی OpenMP اقتباس نمایند که بطور گسترده ای در HPC مورد استفاده قرار می گیرد. یک مسیر نویدبخش دیگر، حافظه تراکنشی ( Transactional) است که مفهوم تراکنش را از بانکهای اطلاعاتی عاریه گرفته و هماهنگ سازی دسترسی به داده ها را از طریق مکانیزمهای خودکار Rollback و Checkpointing تسهیل می نماید. Sun Rock اولین پردازنده ای است که از این مدل بصورت سخت افزاری برای موارد عمومی پشتیبانی می نماید. بجای صرف زمان بیشتر برای توسعه نرم افزار موازی، یک روش اقتصادی تر از کامپایلرها و کتابخانه های موازی سازی شده نظیر کتابخانه BLAS(Basic Linear Algebra Subprograms) استفاده می کند. نیاز به ابزارها و مدلهای برنامه نویسی بهتر، در عین حال بر HPC نیز تأثیر می گذارد. در حال حاضر، حتی اگر امکان به اشتراک گذاشتن داده ها نیز وجود داشته باشد، بسیاری از برنامه نویسان موازی انحصاراً از پردازشها استفاده می کنند، علیرغم آنکه عملکرد کلی از پیاده سازی چند تاری نرم افزاری بر روی گره های SMP(Symmetric Multiprocessing) حافظه اشتراکی سود می برد. کلاسترهای HPC با گره های چندین هسته ای برای دستیابی به مقیاس پذیری و بازدهی بالاتر احتمالاً نیازمند استفاده از مدلهای برنامه نویسی Thread/Process دو رگه هستند. خوشبختانه، کاربران Multithreading را ترجیح می دهند و احتمالاً گامهای اضافی به سمت پیاده سازی آن را آسانتر از اولین گامهای برداشته شده از پردازش سریال به Multiprocessing خواهند یافت. بعلاوه، نرم افزارهای کاربردی HPC به نمایش سطح بالاتری از موازی سازی در مقایسه با گذشته نیاز دارند تا از همزمانی سخت افزاری تأمین شده توسط پردازنده های چند هسته ای بهره گیری نمایند. اینکار احتمالاً تنها تا سطح معینی امکانپذیر خواهد بود زیرا مقیاس پذیری نرم افزارهای کاربردی محدود است، مگر آنکه اندازه مسائل افزایش پیدا کند. یک عامل محدود کننده دیگر این است که افزایش تعداد هسته ها کمتر از افزایش تعداد پردازنده ها برای عملکرد سودمند خواهد بود، به استثناء زمانی که تارها داده هائی را به اشتراک می گذارند. بنابراین، CPU های چند هسته ای عملاً SMPهای جدید نیستند.
چالش نرم افزاری در عین حال بر کامپایلرهای عمومی را که احتمالاً نیاز دارند هسته های ساده شده یا اختصاصی ( نظیر هسته های داخل تراشه Cell و یا یک GPU) را آدرس دهی نمایند، تحت تأثیر قرار می دهد.
در حالیکه در گذشته خود سخت افزار تا حدود زیادی موازی سازی سطح دستورالعمل را استخراج می کرد، هسته های ساده شده اکنون به تلاش بیشتری از سوی کامپایلر برای بازچینی دستورالعملها، درج اشارات پیش بینی انشعاب استاتیک و Vectorize نمودن پردازش داده ها برای استخراج دستورالعملهای SIMD نیاز دارند.
در رابطه با سیستم عامل، Schedulerهای سنتی پردازنده به تغییراتی نیاز داشتند تا عدم تجانس و تفاوتهای عملکردی در سلسله مراتب cpu ها، هسته ها و تارهای سخت افزاری را هماهنگ نمایند. بعلاوه، تحقیقات نشان داده اند که زمانبندی( Sdheduling) با هدف به حداقل رساندن رقابت برای منابع، در صورتی اهمیت خواهد داشت که ماشین کاملاً تحت فشار بار کاری قرار گرفته باشد.
چالش بعدی، تطبیق نرم افزارهای کاربردی با نیازهای موجود به منابع تکمیلی در مواردی است که منابع به اشتراک گذاشته می شوند( نظیر نرم افزارهای کاربردی نسبتاً حساس به کاشه در شرایطی که کاشه ها به اشتراک گذاشته می شوند و یا نرم افزارهای کاربردی متکی بر محاسبات ممیزی شناور یا Integer در شرایطی که FPUها به اشتراک گذاشته شده اند). از آنجائیکه تارهای یک نرم افزار کاربردی واحد احتمالاً همگن هستند، امکان دستیابی به گزینه های انطباقی بهتر با تاریهای نرم افزارهای کاربردی مختلف وجود خواهد داشت. برای کلاسترهای HPC، این گزینه تا امروز در سطح بالائی مورد استفاده قرار نگرفته است زیرا برآورد تأثیرات رقابتی مابین برنامه هائی با تعداد زیادی از پردازشهای به هم پیوسته بسیار دشوار بوده و بایستی پیش از اجرای وظایف بر روی ماشین پیش بینی شوند. تحقیقات اخیر، تأثیرات رقابتی نسبتاً اندکی را برای اکثر ترکیبهای برنامه ها بر روی کلاسترهای 64 گره ای را با پتانسیل دستیابی به دقت پیش بینی بالاتر نشان داده اند.

● مسیرهای آینده نگرانه CPUهای چند هسته ای و چند تاری
 

ما پیش بینی می کنیم که طراحی تراشه ها( براساس قانون مور) به تعداد زیادی از هسته ها و تارهای سخت افزاری رشد خواهد کرد. با اینحال، ارتباطات Off-chip و محدودیتهای مربوط به پایه ها، موانع قابل توجهی را در مسیر مقیاس پذیری و قابلیت برنامه ریزی تراشه های Multicore/Multithreaded بوجود می آورند، زیرا بر نرخ انتقال داده ها از/ به هسته ها تأثیر می گذارند. در حال حاضر هیچ فناوری نویدبخشی برای افزایش چشمگیر تعداد پایه ها در چشم انداز صنعت وجود ندارد. فناوریهای انتقالی جدید( نظیر اتصالات داخلی HyperTransport و QuickPatch) توان عملیاتی مؤثر را برای هر پایه افزایش می دهند، اما نمی توانند با رشد نمائی هسته ها همگام بمانند. از آنجائیکه هسته های بیشتر بایستی با داده ها و دستورالعملها مشغول نگهداشته شوند، آینده طراحیهای چندین هسته ای می تواند محدود باشد. این نگرانیها می توانند با پنهان سازی تأخیرهای دسترسی حافظه از طریق Multithreading سخت افزاری و افزایش مقدار حافظه On-chip برطرف شوند.
در رابطه با محدودیتهای نرم افزاری، تعداد نسبتاً اندکی از نرم افزارهای کاربردی می توانند از همزمانی بسیار بالا برای افزایش عملکرد خود استفاده کنند. توان عملیاتی با اجرای چندین وظیفه سریال و یا چند نرم افزار کاربردی نسبتاً موازی( که بر روی سرورها قابل انجام است) افزایش می یابد، هرچند که ممکن است ماشینهای عمومی از این وضعیت سود نبرند. از سوی دیگر، موفقیت طراحیهای چندین هسته ای تا حدود زیادی به در دسترس قرار گرفتن مدلها، کتابخانه ها و ابزارهای برنامه نویسی مناسب بستگی خواهد داشت.
در حال حاضر CPUهای موجود گزینه های متفاوتی را در رابطه با طراحی خود و استفاده از فضای تراشه، ترکیب می کنند. ملاحظات طراحی نه تنها تعیین تعداد هسته ها و تارها، بلکه پیچیدگی هسته ها، اتصالات داخلی، اندازه کاشه ها و همچنین میزان و نوع مؤلفه های به اشتراک گذاشته شده را نیز در بر می گیرند. از آنجائیکه گزینه های طراحی با مصالحه های گوناگونی سر و کار دارند، یک طراحی کلی نگرانه که با نرم افزارهای کاربردی هدف و معیارهای بهینه سازی اضافی نظیر مصرف برق، انتشار حرارتی، تحمل نقص و هزینه هدایت می شود، ضرورت خواهد داشت.
در رابطه با تصمیم گیری میان تارهای سخت افزاری و هسته ها، به نظر می رسد که نقطه مناسب برای Computing عمومی در طراحیهای دو رگه نهفته است. امکان اضافه کردن تعداد کمی از تارهای On-chip در ازای افزایش نسبتاً اندکی در مدارات اضافی وجود خواهد داشت و می تواند بهبود چشمگیری را در توان عملیاتی به همراه داشته باشد. با اینحال، بازگشتهای کاهنده در عملکرد و افزایش هزینه های مدار، بهره بدست آمده از تارهای سخت افزاری را محدود خواهند کرد. بنابراین، عموماً بهتر است از فضای تراشه در ورای چند رشته سخت افزاری برای پیاده سازی تعداد بیشتری از هسته ها، کاشه بیشتر و سایر مؤلفه ها مورد بهره برداری قرار گیرد. CPUهای دو رگه در عین حال نشان داده اند که درست به اندازه طراحیهای چند هسته ای خالص دارای بازدهی انرژی مناسبی می باشند.
توازن مابین هسته ها و تارهای سخت افزاری برای سرورها که به حداکثر توان عملیاتی نیاز داشته و از تعداد بیشتر تارهای سخت افزاری در هر هسته سود می برند، تغییر خواهد کرد. سرورها عموماً تعداد زیادی از برنامه های غیر عددی را اجرا می کنند که بطور معمولی با تأخیر بیشتری سر و کار دارند اما امکان پنهان سازی آن با استفاده از Multithreading وجود خواهد داشت. در مقابل، نرم افزارهای کاربردی عددی به ندرت از Multithreading سخت افزاری سود می برند، در حالیکه عملکرد بهتری را بر روی طراحیهای چندین هسته ای به نمایش می گذارند.
با در نظر گرفتن این واقعیت که هر CPU گزینه متفاوتی را جهت بهینه سازی انتخاب کرده است، تصمیم گیری در مورد مناسب ترین پردازنده برای یک ترکیب بخصوص از نرم افزارهای کاربردی بر عهده مصرف کننده است.
منبع: بزرگراه رایانه، شماره 129



 



ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.