معماران SoC به ناهمگونی متکی شده‌اند

طراحی ناهمگن SoC با هدف افزایش همزمان عملکرد و کارایی انرژی، هسته‌های نامتقارن مانند big.LITTLE را در کنار شتاب‌دهنده‌های دامنه‌محور و شبکه‌های روی‌تراشه به کار می‌گیرد. این ترکیب توانایی پوشش مؤثر بارهای کاری متنوع مثل رمزنگاری، یادگیری عمیق و پردازش سیگنال را بهبود می‌بخشد. برای مروری سریع دربارهٔ معماری ARM big.LITTLE می‌توانید صفحهٔ Wikipedia درباره ARM big.LITTLE را ملاحظه کنید.

اهمیت ناهمگونی در SoC

با کند شدن افزایش عملکرد تک‌هسته‌ای، افزودن هسته‌های تخصصی و تغییر توپولوژی‌های بین‌اتصالی راهکار اصلی برای ادامهٔ بهبود کارایی است. مزایای کلیدی شامل موارد زیر است:

  • مطابقت بار کاری با زیرساخت محاسباتی: وظایف حساس به تأخیر روی هسته‌های قوی و پردازش‌های پس‌زمینه روی هسته‌های کم‌مصرف اجرا می‌شوند.
  • شتاب‌دهنده‌های دامنه‌محور: حلقه‌ها و هسته‌های محاسباتی تکرارشونده با شتاب‌دهنده‌های سخت‌افزاری کارآمدتر می‌شوند؛ اغلب با استفاده از سنتز سطح بالا (HLS).
  • مقیاس‌پذیری سیستم: ترکیب هسته‌ها و شتاب‌دهنده‌ها روی یک دی یا در قالب کاشی/چِیپلت امکان افزایش توان پردازشی سطح سیستم را فراهم می‌آورد.

تکثیر شتاب‌دهنده‌ها به‌جای بازطراحی

به‌جای بازطراحی داخلی یک شتاب‌دهنده، تکثیر سخت‌افزاری آن راهکار سریع و مؤثری برای افزایش ظرفیت محاسباتی است. در معماری‌های کاشی‌محور می‌توان K نسخه از یک شتاب‌دهنده را درون یک کاشی قرار داد تا تقریباً K برابر توان خروجی بدون دست‌کاری منطق داخلی یا تغییر پروتکل شبکه حاصل شود.

این رویکرد دو مزیت عملی دارد: قابلیت مقیاس‌بندی ساده و فراهم آوردن فضای کاوش طراحی (DSE) برای تنظیم تراکم تکثیر، محل‌یابی و اشتراک منابع. این الگو به‌ویژه در سیستم‌هایی که روی شبکهٔ روی‌تراشه (NoC) مبتنی هستند کارا است.

NoC و معماری‌های مبتنی بر کاشی

شبکه‌های داخلی تراشه — شامل روترها، کانال‌ها و توپولوژی‌ها — نقش سیستم گردش داده را بر عهده دارند. نگاشت هسته‌ها و شتاب‌دهنده‌ها به گره‌های NoC (کاشی‌ها) کمک می‌کند تعامل میان ترافیک، تأخیر و پهنای باند را تحلیل و بهینه‌سازی کنیم. در آزمایش‌های مبتنی بر ماتریس‌های کاشی مانند 4×4، متغیرهای زیر معمولاً بررسی می‌شوند:

  • تعداد کپی‌های شتاب‌دهنده در هر کاشی،
  • تخصیص فرکانس به کاشی‌ها یا گروه کاشی‌ها،
  • محل قرارگیری شتاب‌دهنده‌ها در توپولوژی NoC و مسیرهای ترافیک.

تحلیل این متغیرها پیامدهای مستقیم روی تأخیر انتهابه‌انتها، برخوردهای شبکه و بهره‌وری انرژی دارد.

جزایر فرکانسی، DFS و پایش زمان اجرا

تخصیص یک فرکانس ثابت به تمام بلوک‌های SoC اغلب فرصت‌های صرفه‌جویی انرژی را از بین می‌برد. تقسیم‌بندی تراشه به جزایر فرکانسی که هرکدام به‌صورت مستقل با مکانیزم تنظیم فرکانس پویا (DFS) کنترل شوند، امکان تنظیم محلی سرعت کلاک و بهینه‌سازی انرژی را فراهم می‌آورد. برای آشنایی با مفاهیم مرتبط می‌توانید به معرفی تنظیم پویا ولتاژ و فرکانس مراجعه کنید.

وقتی جزایر فرکانسی با پایش زمان اجرا و شمارنده‌های سخت‌افزاریِ نگاشت‌شده به حافظه جفت شوند، سامانه می‌تواند بر اساس داده‌های عملی تصمیم بگیرد که چه زمانی نسخه‌ها تخصیص یابند، فرکانس کدام کاشی تغییر کند یا کدام شتاب‌دهنده فعال/غیرفعال شود. این حلقهٔ بستهٔ داده‌محور برای هر دو مرحلهٔ DSE و بهینه‌سازی زمان اجرا حیاتی است.

چالش‌های نرم‌افزاری: سیستم‌عامل، کامپایلر و لایهٔ کاربرد

پیاده‌سازی ناهمگونی در سطح سخت‌افزار نیازمند سازوکارهای نرم‌افزاری پیچیده‌ای است. مهم‌ترین نگرانی‌ها عبارت‌اند از:

زمان‌بندی ناهمگون

برنامه‌ریز باید تصمیم بگیرد که هر thread یا task به کدام کلاس هسته ارسال شود. سیاست‌های مبتنی بر HMP، پروفایل یا معیارهای زمان اجرا می‌توانند کمک کنند، اما هماهنگی با پارامترهای حرارتی، مصرف توان و رفتار ریزمعماری لازم است.

هماهنگی حافظه و coherency

شتاب‌دهنده‌ها اغلب به‌صورت مستقیم به حافظه دسترسی دارند؛ تضمین یکپارچگی داده، ایزولاسیون و کارایی I/O نیازمند استفاده از مکانیزم‌هایی مانند IOMMU و کانال‌های اختصاصی در NoC است.

پشتیبانی کامپایلر و ابزارها

کامپایلرها باید بخش‌های قابل شتاب‌دهی را نشانه‌گذاری کنند، کد مهاجرت وظایف تولید کنند و با لایهٔ زمان اجرا همکاری داشته باشند. ابزارهای پروفایلینگ که گلوگاه‌های NoC، شتاب‌دهنده و CPU را نشان می‌دهند، برای بهینه‌سازی حیاتی‌اند.

امنیت و کانال‌های جانبی

اشتراک منابع و حافظه‌های کش می‌تواند کانال‌های جانبی ایجاد کند؛ طراحی باید مکانیزم‌های جداسازی، کنترل دسترسی و کاهش مخاطرات را فراهم سازد.

راهنمای عمل برای طراحان و توسعه‌دهندگان

  • بارهای کاری هدف را پیش از طراحی پروفایل کنید تا بخش‌های مناسب برای شتاب‌دهی مشخص شوند.
  • از نمونه‌سازی کاشی‌محور برای ارزیابی تأثیر تکثیر و محل قرارگیری شتاب‌دهنده‌ها بر ترافیک NoC و تأخیر استفاده کنید.
  • شمارنده‌های سخت‌افزاری و telemetry را از ابتدا در معماری تعبیه کنید تا DSE و بهینه‌سازی زمان اجرا مبتنی بر داده انجام شود.
  • کامپایلر و زمان اجرا را برای مدیریت پویا سیاست‌های مهاجرت وظیفه، مصرف توان و گرمایش طراحی کنید.

آیندهٔ ناهمگونی در SoC

جهت‌گیری‌ها به سوی ناهمگونی عمیق‌تر ادامه دارد: افزایش شمار شتاب‌دهنده‌های تخصصی، توسعهٔ کاشی‌های چندگانه و حرکت به طراحی‌های مبتنی بر chiplet روش‌های جدیدی برای گسترش مرزهای عملکرد و کارایی باز می‌کنند. همکاری نزدیک‌تر میان تیم‌های سخت‌افزار، کامپایلر و سیستم‌عامل و اتکاء بر داده‌های زمان اجرا، عامل تعیین‌کنندهٔ موفقیت خواهد بود. طراحانی که از ابتدا پایش و کنترل ریزمعماری را در نظر بگیرند، بهتر می‌توانند از این موج ناهمگونی سود ببرند.

منابع بیشتر