24-06-2016، 13:42
تقریباً یک دهه از زمانی که CPU های با تعداد هسته های دو رقمی و حتی بالاتر از آن، سه رقمی شروع به ساخته شدن و استفاده در صنایع خاص گرفتند میگذرد. ولی یک سوال، نظر شما در مورد CPU های با 1000 هسته چیست؟ 1000 هسته ای که در عین حال تمرکز ویژه ای هم بر توان مصرفی دارند و ابعادی نه چندان بزرگ برای تراشه. در ادامه مطلب با ما همراه باشید تا با ایده هیجان انگیز KiloCore بیشتر آشنا شویم.


برد آزمایشگاهی ساخته شده توسط تیم دکتر باس در دانشگاه UC Davis برای تست KiloCore

نمای die پردازنده 1000 هسته ای KiloCore

به تازگی مقاله ای در سمپوزیوم 2016 تکنولوژی VLSI ارائه شده است که ایده استفاده از فرآیند ساخت 32 نانومتری PD-SOI شرکت IBM برای تولید پردازنده های با 1000 هسته را شرح میدهد. این ایده که از آن به عنوان KiloCore یاد میشود به شدت هیجان انگیز و جذاب است، وقتی بدانید که در آن تنها از 621 میلیون ترانزیستور استفاده خواهد شد و توانایی اجرای 1.78 تریلیون دستورالعمل در یک ثانیه را دارد. این چیپ توسط تیمی از دانشگاه University of California, Davis طراحی شده است.
اول از همه بگوییم که اگر شما همین حالا در گوگل عبارت KiloCore را جستجو کنید، بیشتر نتایج مربوط به تکنولوژی سالیان دور IBM مربوط میشوند که این شرکت نام Rapport را برای آن انتخاب کرده بود. در همین زمینه وبسایت Extreme tech مصاحبه ای را با دکتر Bevan Baas انجام داده که ایشان در مورد طرح کلی پروژه KiloCore اینگونه صحبت کرده اند:
نقل قول:این پروژه به هیچ پروژه ی قبل تر از آن که از خارج دانشگاه UC Davis باشد بستگی ندارد و فقط توسط تکنولوژی ساخت IBM ساخته خواهد شد و ما همه مراحل طراحی معماری داخلی، طراحی تراشه و ابزارهای نرم افزاری آن را خودمان توسعه داده ایم.

برد آزمایشگاهی ساخته شده توسط تیم دکتر باس در دانشگاه UC Davis برای تست KiloCore
البته به صورت کلی باید گفت که پروژه KiloCore شباهت بسیاری به پروژه هایی که در آن تعداد زیادی هسته همراه با هم برای ساخت CPU استفاده میشدند، دارد و به صورت کلی یک شبکه داخلی در داخل تراشه برای ارتباط هسته ها با هم و تبادل اطلاعات داخل CPU مورد استفاده قرار میگیرد. اما موردی که KiloCore را از بقیه متمایز میکند این است که این پردازنده فاقد حافظه های کش L1/L2 است.
مشکل قدیمی سازندگان برای ساخت آرایه های بزرگی از صدها و هزاران هسته CPU روی یک تراشه این بوده که وقتی شما تعداد هسته ها افزایش دهید میزان مصرف توان آن به شدت بالا میرود و محدودیت های فیزیکی نیز باعث افزایش مساحت بسیار زیاد سطح تراشه میشود. در همین زمینه GPU ها راهکار دیگری دارند و در آنها از هر دو حافظه L1 و L2 به صورت همزمان استفاده میشود ولی نکته اساسی این است که GPU ها به صورت طراحی میشوند که میزان انرژی مصرفی به شدت کمتر شود و نتیجه آن کاهش کارآیی و توان پردازشی میشود؛ این مورد دقیقاً نقطه ای که پروژه KiloCore قصد به چالش کشیدن آن دارد. بر اساس اطلاعات منتشر شده در مقاله نهایی گروه توسعه دهنده KiloCore، هسته های پردازنده این تکنولوژی اطلاعات مد نظر خود را روی قسمت های حافظه بسیار کوچکی، در نقطه های محلی در محدوده دیگر پردازنده های جانبی شان و در داخل بانک های حافظه مستقل که در هنگام ساخت تراشه در داخل آن ساخته میشوند، ذخیره میکنند. البته KiloCore این امکان را هم میتواند به وجود آورد که بتوان از حافظه های خارجی CPU نیز استفاده کرد؛ حافظه هایی که در کنار تراشه ولی خارج از سطح سیلیکونی که برای قسمت هسته ها در نظر گرفته شده است. اطلاعات نیز در داخل پردازنده توسط یک شبکه سوئیچینگ با قدرت انتشار بسیار بالا و یک شبکه سوئیچ پکت های اطلاعاتی با ابعاد بسیار کوچک مکمل آن جابجا میشوند.

نمای die پردازنده 1000 هسته ای KiloCore
به صورت کلی KiloCore برای افزایش بهره وری به نحوی طراحی شده است تا در زمانی که نیاز به محول کردن توان انتقال اطلاعات درون پردازنده ی زیاد، برای انجام یک task است، این کار را به نحو احسن انجام دهد. روتر ها، بلوک های حافظه مستقل و پردازنده ها همگی میتوانند زمانی که نیاز به پردازش اطلاعات در سطوح مختلف باشد با استفاده از پایپ لاین پایه 7 مرحله ای، قدرت خود را کاهش یا افزایش دهند. هسته های این پروژه که معمولاً بر اساس اعمال پالس کلاک فعال و یا غیر فعال میشوند در حالت بیکاری، هیچ توانی مصرف نمیکنند ولی مجموعه تراشه در این حالت ممکن است تا 1.1 درصد توان نامی را هدر دهد. مجموع حافظه RAM که داخل تراشه قرار میگیرد نیز 12 بلوک 64 کیلوبایتی است که جمعاً 768 کیلوبایت میشود و کل مجموعه پکیج نیز میتواند در تراشه ای به ابعاد 7.94 در 7.82 میلیمتر جای گیرد.
اما چرا ما باید پردازنده ها و هسته هایی با این تعداد و ابعاد بسازیم؟
این مورد همیشه به عنوان یک گلوگاه بوده که میزان ولتاژ و ابعاد ترانزیستور ها را از حدی بیشتر نمیتوان کوچکتر کرد و در 5-10 سال گذشته محققین بسیاری به دنبال این بوده اند که با طراحی پردازنده های با تعداد هسته زیاد تا حدی بتوانند راهکار مناسب این مشکل را پیدا کنند. قبل از سال 2005 دلایل کمی برای سرمایه گذاری روی پروژه هایی برای ساخت کوچکترین و بهینه ترین هسته های پردازنده وجود داشت. اگر زمان متوسط برای طرح ایده ساخت یک پردازنده تا طراحی کامل و رساندن آن به مراحل تولید، مدت زمان حداقل 5 ساله طول بکشد، پروژه شما مطمئناً با رقبایی که توسط اینتل و AMD ساخته خواهند شد و توان مصرفی کمتر، بازدهی بیشتر و قیمت کمتر خواهند داشت روبرو خواهند شد و این مورد قطعاً تلاش های شما را به شکست خواهند رساند. مشکلاتی که دقیقاً عامل اصلی شکست خوردن پردازنده های ساخت شرکت هایی مانند Transmeta هستند.

در حالت کلی هر هسته داخل پردازنده پروژه KiloCore توان بسیار کمتری از یک هسته منفرد پردازنده های اینتل و یا حتی AMD خواهد داشت، اما وقتی مجموعه 1000 هسته را در نظر بگیرید، در موارد مشابه، پردازنده های KiloCore قدرت بسیار بیشتر و کارآیی فراتری از پردازنده های این دو شرکت خواهند داشت.
دکتر Bevan Bass:
نقل قول:هسته های KiloCores حافظه های کشِ سخت افزاری، به پیچیدگی پردازنده های امروزی ندارند و بیشتر شبیه به کامپیوترهای مستقل که به جای به اشتراک گذاری حافظه، از پیام ها و پکت های اطلاعاتی برای ذخیره و انتقال اطلاعات استفاده میکنند، هستند. از دید مهندسی، حافظه های به اشتراک گذاشته شده مانند گره های ذخیره اطلاعات در شبکه که میتوانند برای ذخیره داده و دستورات استفاده شوند، هستند و در واقع میتوانند در پیوستگی با یک هسته کار کنند که به این ترتیب، مجموعه یک هسته خواهد توانست برنامه های بسیار بزرگتری را به نسبت ساختار هسته های تجاری امروزی، اجرا کند.
هدف پروژه هایی از این دست یافتن راهکارهایی برای پاسخ گویی به نیاز های پردازشی به صورت بی نهایت بهینه است و روشهایی که ارائه میشوند باید بتوانند بدون ایجاد مصالحه بین مصرف توان پایین پلتفرم اولیه و کارآیی، به آن نائل آیند. به عبارت دیگر پروژه هایی موفقیت آمیز و مقبول خواهند بود که خروجی آنها همه موارد را بهینه کند و فقط شاهد این نباشیم که بخشی پیشرفت کرده و در بخش دیگر هنوز مشکلات پا برجا باشد. در این مورد پروژه KiloCore توانسته به حدی از بهینگی برسد که برای اجرای هر دستور به تنها 5.8 پیکو ژول انرژی نیاز باشد که این انرژی برای اجرای دستور، خواندن و نوشتن از حافظه و دسترسی به شبکه داخلی پردازنده مصرف خواهد شد. حال اگر همه هسته ها و در پیک کاری خود با هم فعال شوند هم این پردازنده تنها 15 وات مصرف خواهد داشت که به مراتب کمتر از پردازنده های شرکت های بزرگ Intel و AMD است و میتواند برای استفاده در لپتاپ ها بسیار مناسب باشد.
با توسعه هر چه بیشتر روشهایی مانند KiloCore ارائه شوند، راهکار های مناسب تری برای رفع موانع و محدودیت ها پیدا میشود. اینکه روزگاری همه به دنبال کاهش ابعاد و رسیدن به لیتوگرافی های کوچکتر بودند نیز این روزها تبدیل به پروژه ای شده که به انتهای خود نزدیک میشود و فعلاً به عنوان یک مسکن، استفاده از روشهایی که در داخل پردازنده بهینه سازی برای رسیدن به کارآیی بالاتر انجام شود، هدف موقتی خواهد بود.
منبع: ExtremeTech و Gizmodo و شهرسخت افزار