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