چرا به پردازنده ۱۰۰۰ هسته ای نیاز داریم؟
قانون مور که بیان میکرد تعداد ترانزیستورها در پردازندهها هر دو سال دو برابر میشود، چندان پایدار نبود و تولیدکنندگان نتوانستند در مساحت یکسان، پردازندههایی با دو برابر ترانزیستور بیشتر نسبت به دو سال قبل تولید کنند، حتی اگر این امکان وجود داشته باشد، افزایش ترانزیستورها به معنی افزایش دو برابری سرعت اجرای اپلیکیشنها نخواهد بود. در همین راستا برنامهنویسی معروفی به نام هرب ساتر، در مقالهای مفصل در سال ۲۰۰۴ پیشبینی کرد که افزایش سرعت کلاک CPUها به حداکثر رسیده است و افزایش فرکانس نیز نمیتواند چندان در افزایش سرعت اجرای اپلیکیشنها، موثر باشد.
در عوض در دنیای GPUها یا پردازندههای گرافیکی، ترانزیستورها به جای اینکه تعداد محدودی هسته را تشکیل دهند، چندین هسته را شکل میدهند و پردازش موازی این هستهها باعث میشود تا شاهد رشد چشمگیر نسلهای مختلف کارتهای گرافیک نسبت به نسلهای قبلی باشیم. به عنوان مثال در کارت گرافیک جدید GeForce GTX 1080 از انویدیا شاهد بکارگیری ۲۵۶۰ هسته هستیم که با فرکانس ۱۶۰۰ تا ۱۷۰۰ مگاهرتز کار میکنند. برنامه نویسها نیز نرمافزارهایی ساختهاند که به بخشهای کوچک تقسیم میشود تا توسط این GPUها پردازش شود. بازیها یا نرمافزارهای علمی از این دسته هستند که عموما پردازش مربوط به آنها توسط GPU انجام میشود.
اما در دنیای فعلی، اکثر نرمافزارها تنها با یک Thread اجرا میشوند و به همین دلیل است که تغییری در سرعت اجرای آنها با یک پردازندهی ۴ هستهای و همان پردازنده با یک هسته وجود ندارد. بخشی از این مشکل به دلیل ضعف نرمافزارها است که جوری برنامه نویسی نشدهاند که از تمام توان پردازندهها و هستهها استفاده کنند. از طرفی برخی از دستورات نیز آنقدر پیچیده هستند که به راحتی نمیتوان آنها را به چندین بخش کوچک تبدیل کرد.
تبدیل ترانزیستورهای بیشتر به نرمافزارهای سریعتر، روز به روز مشکلتر میشود
با این حال، احتمالا در آینده، پردازندهها به هستههای ضعیفتر اما بسیار بیشتر مجهز خواهند شد؛ چرا که سرعت پردازش پردازندهها با روش فعلی به کندی افزایش مییابد و چارهای جز اضافه کردن تعداد هستهها نیست. به همین دلیل است که خبر ساخت پردازندهی ۱۰۰۰ هستهای مهم میشود.
معماری تراشهها به نوعی عجیب و بسیار پیچیده است و اگر بخواهیم تعداد هستهها را در پردازندهها افزایش دهیم شاید مجبور شویم که کل ساختار کامپیوترها را تغییر دهیم. در پردازندهها، هر کدام از هستهها تقریبا فضای مستقل و جداگانهی خود را دارند و هستهها از طریق شبکهی داخلی خود با یکدیگر ارتباط برقرار میکنند. به همین دلیل است که کار برنامهنویسها برای استفاده از تمام توان هستهها دشوار میشود. در همین راستا ایدههای مختلفی مطرح شده است که شاید جذابترین آنها معماری KiloCore است که بکار گیری از ۶۴ هسته در پردازنده را سادهتر میکند. مهمترین برگ برندهی KiloCore در مصرف بهینهی انرژی است. تیم UC Davis میگوید که کیلوکور تا ۱۰۰ برابر مصرف بهینهتری از پردازندهی لپتاپهای فعلی دارد. یک پردازنده با این معماری حتی با یک باتری قلمی نیز کار میکند.
در نهایت برای آنکه شاهد پردازندههای قویتر، سریعتر و کممصرفتری باشیم احتمالا باید بدنبال طراحی CPUهای شبیه به GPU با هستههای زیاد باشیم. پردازندههایی که تعداد هستهی زیاد با فرکانس پایینتر دارند و قادر به پردازش موازی تعداد زیادی عملیات کوچک هستند. اما برای رسیدن به کامپیوترهای سازگار به این نوع پردازندهها، راه پر و پیچ و خمی پیش رو است و باید تولیدکنندگان سختافزار و نرمافزار عزم خود را جزم کنند.
نظرات