خب بچهها، خبر داغ اینه که اینتل دوباره با یه ایده جدید (یا بهتر بگم، یه ایده قدیمیِ باحالتر) اومده وسط و تازه براش هم پتنت ثبت کرده! اسم ماجرا هم خیلی خفنه: “سوپر کور” یا به طور رسمیتر “Software Defined Super Core” که یعنی “سوپر هسته تعریفشده توسط نرمافزار”.
حالا داستان چیه؟ اینتل گفته میخواد به جای اینکه تعداد هستههای پردازنده رو الکی بیشتر کنه یا اندازه هستهها رو بزرگتر کنه (که باعث میشه هم هزینه بره بالا هم مصرف برق)، بیاد و مثلاً دوتا یا چندتا هسته فیزیکی CPU رو با هم قاطی کنه و یه هسته مجازی فوقالعاده قوی بسازه! اینجوری سیستم عامل فکر میکنه داره با یه هسته طرفه، ولی در واقع چندتا هسته دارن باهم ترکیب میشن و دستورها رو همزمان و با زیرکی اجرا میکنن. این تکنیک پردازش موازیه که یعنی چندتا هسته باهم همکاری میکنن تا کارها رو سریعتر پیش ببرن.
یه توضیح کوچیک: تو این روش، دستورها قبل از اجرا پخش میشن بین هستهها و بعد که کار هاشون تموم شد، دوباره جمع و جور میشن تا نظم کار حفظ بشه و هیچ چیزی قاطی نشه. این یعنی سرعت بیشتر برای کارهایی که فقط یه رشته دارن (یعنی فقط یه کار رو انجام میدن و نمیتونن روی چندتا هسته تقسیم بشن).
واقعیت اینه که اینتل یه جورایی داره یه ایده قدیمی رو دوباره زنده میکنه؛ یه زمانی تو دوران Pentium 4 یه روش بود به اسم “ضد هایپرتردینگ” یا inverse hyper-threading که سعی میکرد چند تا هسته رو با هم قاطی کنه تا قدرت یه هسته قوی بسازه. خلاصه حالا دوباره دارن سراغش میرن، ولی قطعاً با تکنولوژی جدید!
فرق این ایده با روش هایپرتردینگ معمولیه که داریم؟ خب، هایپرتردینگ یعنی اینکه یه هسته فیزیکی تظاهر میکنه دوتا هستهست تا بتونه چند کار رو همزمان انجام بده (مثلاً تو پردازندههای اینتل وقتی میبینید یه پردازنده با ۴ هسته، ۸ تا ترد اجرا میکنه). اینجا اما برعکسه: چندتا هسته واقعی جمع میشن که به نظر یه هسته بیاد تا کارهای بزرگتر رو سریعتر تموم کنن.
اینتل برای اینکه این کار بتونه سرعت و مصرف برق رو مدیریت کنه، به جای اینکه کلاک رو خیلی زیاد کنه (که کلی انرژی میبره)، داره کار رو بین هستهها تقسیم میکنه و از یه ماژول سینک یا هماهنگکننده بین هستهها کمک میگیره. این ماژول کوچیک تو هر هسته هست تا بتونه رد و بدل کردن اطلاعات و زمانبندی بینشون رو خوب انجام بده – یه جور مدیر داخلی!
یه قسمت جالب دیگه هم داره: یه فضای خاص تو حافظه رزرو میشه به اسم wormhole address space که کارش اینه که بازم کمک کنه دادهها بدون مشکل بین هستهها جابهجا بشن.
تو بحث نرمافزاری هم قضیه جالب میشه: کامپایلرها یا ابزارهایی که کد رو برای اجرا به CPU میدن، باید خودشون بخشی از مسئولیت تقسیم کار و تصمیمگیری رو قبول کنن. یعنی باید کد رو (برنامهای که مینویسید یا اجرا میشه) تیکهتیکه کنن و کنترل مسیر اجرا رو هم توش بگنجونن. تازه سیستمعامل هم باید حالیش باشه که کی لازمه بره روی مود “سوپر کور” و کی نه؛ وگرنه خود قابلیت فقط روی کاغذ میمونه و کسی ازش استفاده نمیکنه!
برخلاف AMD که توی تکنیک Clustered Multi-Threading، هستهها رو به ماژول تقسیم میکرد، اینتل داره کل هستهها رو با کنترل نرمافزاری باهم جمع میکنه. بعضیا هم این ایده رو با پروژه رویال کور اینتل مقایسه کردن که دنبال ساخت پردازنده خیلی قوی بود ولی ساختش عملی نبود…
تا اینجا قشنگ بود، ولی یه تله این وسط هست؛ فعلاً هیچ داده واقعی از اینکه این ایده چقدر واقعاً کار میده یا سرعت میاره منتشر نشده. یعنی شاید دو تا هسته کوچیک میتونن اندازه یه هسته چاق و پهن کار کنن… شاید هم نه!
کارشناسها میگن این ایده شاید برای بعضی کارها و پژوهشهای خاص (مثلاً ماینینگ ارز دیجیتال که بعضی کارهاش فقط با یه رشته انجام میشه) بدرد بخوره، ولی برای کارهای روزمره هنوز معلوم نیست شاهکار باشه یا نه. احتمالاً فعلاً باید صبر کنیم تا مدلهای واقعی استفادهای، آزمایشها و بنچمارکهای جدی بیان بیرون تا بفهمیم آیا این “سوپر کور” واقعاً قهرمان سیپییوهاست یا فقط یه شومنبازی مهندسی دیگه!
در کل، قضیه جالبه و اگر طرفدار تکنولوژی و آینده پردازندهها باشی، حیفه دنبالش نکنی!
منبع: +