Piano: یه فلوپلنر باحال برای چینش ماژول‌ها و پایه‌ها تو طراحی تراشه‌ها

Fall Back

خب بچه‌ها، امروز میخوام براتون درباره یه موضوع باحال تو دنیای طراحی تراشه‌ها (VLSI) حرف بزنم، اونم چیزی به اسم Floorplanning یا فلوپلنینگه. اگه نمی‌دونین VLSI چیه، خیلی خلاصه بگم: یعنی ساختن مدارای خیلی بزرگ و پیچیده روی یه چیپ کوچیک! و Floorplanning هم اون مرحله‌ایه که باید همه بخش‌های مختلف چیپ رو طوری بچینی که هم کار کنه هم جا کم بیاره.

حالا این روزا Floorplanning دیگه مثل قدیما ساده نیست. کلی شرط و قید عجیب‌غریب بهش اضافه شده، مثلاً:

  • fixed-outline یعنی مرز و ابعاد کل چیپ از قبل مشخصه و باید همه چی توش جا بشه.
  • حذف جاهای خالی یا همون whitespace removal؛ یعنی قرار نیست فضایی الکی خالی بمونه.
  • بعضی ماژول‌ها هم هستن که از قبل، جای ثابتی دارن و نمی‌تونی بکنیشون اینور اونور (pre-placed modules).

اما یه چیزی رو خیلی وقتا تو این مرحله نادیده می‌گیرن: Pin Assignment! یعنی اینکه پایه‌های ماژول‌ها کجای مرزشون وصل بشه. شاید فک کنی چیز مهمی نیست، ولی واقعاً مهمه چون تو مراحل بعدی طراحی مثل placement (جاگذاری دقیق) و routing (مسیرکشی سیم‌ها) خیلی تاثیر داره.

حالا اینجاست که Piano وارد میشه! این یه سیستم یا فریم‌ورکه که اومده همه این دغدغه‌ها رو با هم حل کنه. با Piano، همزمان جاگذاری ماژول‌ها و همین assignment پایه‌ها (Pin Assignment) رو انجام میدن و این وسط به کلی قید و شرط هم توجه می‌کنن.

روش کار Piano چطوره؟
اونا میان با استفاده از گراف – یعنی یه مدل ریاضی که توش هر ماژول یه نقطه‌ست و ارتباطاتشون با خط به هم وصل میشه – ارتباط هندسی بین ماژول‌ها و نت‌لیست (یعنی لیست اتصال سیم‌ها) رو میسازن. بعدش با یه الگوریتم، کوتاه‌ترین مسیر رو پیدا می‌کنن تا محل مناسب اتصال پایه‌ها مشخص بشه. این باعث میشه موضوعاتی مثل feedthrough (یعنی سیم‌هایی که ناچاراً از وسط یه ماژول دیگه رد میشن) و پایه‌هایی که هنوز جای نهایی‌شون معلوم نیست (unplaced pins) هم به دقت محاسبه بشن و کل نقشه بهینه‌تر دربیاد.

یه نکته جالب دیگه اینه که Piano راهکار حذف کامل فضای خالی (zero whitespace) داره! یعنی هیچ فضای اضافی تو طراحی نمیمونه.

برای اینکه نتیجه حتی بهتر بشه، تو Piano سه تا بهینه‌ساز محلی (local optimizer) استفاده میشه تا تو سناریوهای مختلف با قید‌های جورواجور هم هنوز بهتر کار کنه.

حالا نتیجه‌ها چی میگه؟ طبق آزمایش‌ها رو مدارهای واقعی (benchmark circuits)، Piano تونسته:

  • HPWL یا همون نصف‌پر طول سیمای اتصال (Half-Perimeter Wirelength) رو حدود ۶.۸۱٪ کمتر کنه. (HPWL یعنی معیار اندازه‌گیری جمع مسیر سیم‌کشی‌ها برای همه اتصال‌ها.)
  • طول سیم‌هایی که از وسط ماژولا رد میشن (feedthrough wirelength) رو ۱۳.۳۹٪ کمتر کنه.
  • تعداد ماژول‌هایی که سیم از روشون رد میشه (feedthrough modules) رو ۱۶.۳۶٪ بیاره پایین.
  • تعداد پایه‌هایی که هنوز جای درستشون معلوم نیست (unplaced pins) رو هم ۲۱.۲۱٪ کم کنه.
  • و همه اینا رو انجام داده بدون اینکه هیچ فضای خالی بمونه (یعنی zero whitespace رو کاملاً رعایت کرده)

در کل، Piano یه راه‌حل توپ و به‌روز برای یکی از مهم‌ترین چالش‌های طراحی چیپه که حتی به ریزه‌کاری‌هایی مثل محل پایه‌ها هم فکر میکنه؛ چیزی که خیلی از ابزارای قدیمی مثلاً سرسری ازش رد میشن. پس اگه دوست دارین تو دنیای تراشه‌ها حرفه‌ای باشین، این اسم رو یادتون نگه دارین!

منبع: +