شبکه درون یک تراشه

شبکه درون تراشه ای یا شبکه درون یک تراشه (ناک (NOC یا NoC)) یک زیرسیستم ارتباطی درون یک مدار مجتمع (که به‌طور معمول یک "تراشه" نامیده می‌شود) است که نوعاً ارتباط بین هسته‌های IP در یک سیستم درون یک تراشه (ساک SoC) را فراهم می سازد. ناک‌ها می‌توانند دامنه‌های ساعت هم‌زمان و ناهمزمان را پوشش دهند یا منطق ناهمزمان بدون ساعت را استفاده کنند. تکنولوژی ناک تئوری شبکه و روش‌های ارتباط درون تراشه‌ای را به کار می برد و پیشرفتهای قابل توجه‌ای را نسبت به اتصالات بر پایه گذرگاه و کراسبار (crossbar) اولیه به همراه می‌آورد. ناک مقیاس پذیری ساک‌ها را بهبود می دهد و استفاده از انرژی در ساک‌های پیچیده را نسبت به طرح‌های دیگر بهینه می سازد.

مدل

شبکه درون تراشه‌ای مدلی نوظهور برای ارتباطات درون سیستم‌های VLSI بزرگ پیاده‌سازی شده بر روی یک تراشه سیلیکونی است. پژوهشگری (Sgroi) و همکارانش "راه حل پشته-لایه‌ای برای طراحی ارتباطات بین هسته ای درون-تراشه را متد شبکه–درون-تراشه (ناک)" می نامند. در یک سیستم ناک پیمانه‌ها مانند هسته‌های پردازشگر، حافظه‌ها و بلوکهای IP ویژه با استفاده از یک شبکه مانند یک زیرسیستم "حمل و نقل عمومی" برای ترافیک اطلاعات، داده را رد و بدل می‌کنند. یک ناک از چندین لینک داده نقطه-به-نقطه که با استفاده از سوئیچ‌ها (مسیریاب ها) به هم متصل می‌شوند، ساخته می‌شود به این‌گونه که پیامها می‌توانند از هر پیمانه منبع به هر پیمانه مقصد از راه چندین لینک با استفاده از تصمیم‌های مسیریابی در سوئیچ‌ها انتقال یابند. یک ناک شبیه به شبکه مخابراتی مدرن با استفاده از سوئیچینگ بیت-بسته دیجیتال در طول لینکهای مالتی پلکس شده می‌باشد. هرچند سوئیچینگ بسته ای گاهی برای یک ناک لازم فرض می‌شود، چندین طرح پیشنهادی ناک با استفاده از روش‌های سوئیچینگ مداری وجود دارد. این تعریف بر پایه مسیریاب‌ها معمولاً این‌گونه تفسیر می‌شود که یک گذرگاه اشتراکی تنها، یک سوئیچ کراسبار تنها یا یک شبکه نقطه-به-نقطه، ناک محسوب نمی‌شوند اما به‌طور عملی تمام توپولوژیهای دیگر ناک محسوب می‌شوند. این تعریف تا حدی گیج‌کننده است زیرا همه موارد ذکر شده شبکه هستند (آنها ارتباط بین دو یا بیشتر از دو وسیله را فراهم می سازند) اما آن‌ها به عنوان روش‌های شبکه-درون-تراشه در نظر گرفته نمی‌شوند.

موازی‌سازی و مقیاس‌پذیری

سیم‌ها در لینک‌های ناک توسط بسیاری از سیگنال‌ها به اشتراک گذاشته می‌شوند. سطح بالایی از موازی‌سازی به دست می‌آید زیرا همه لینک‌ها در ناک می‌توانند به‌طور هم‌زمان روی بسته‌های داده مختلف کار کنند. بنابراین همانگونه که سیستم‌های مجتمع پیچیده تر می‌شوند یک ناک کارکرد بهتری (مانند توان) و مقیاس‌پذیری در مقایسه با معماریهای ارتباطی پیشین (مانند سیم‌های سیگنال نقطه-به-نقطه ویژه، گذرگاه‌های اشتراکی یا گذرگاه‌های بخش‌بندی شده با پل ها) را فراهم می سازد. البته الگوریتم‌ها باید به گونه‌ای طراحی شوند که موازی‌سازی بیشتری را فراهم آورند و بتوانند استفاده بهتری از ویژگی‌های ناک را به همراه آورند.

مزایای استفاده از ناکها

به‌طور سنتی مدارهای مجتمع با اتصالات نقطه-به-نقطه ویژه همراه با سیمی مخصوص برای هر سیگنال طراحی شده‌اند. به ویژه برای طراحی‌های بزرگ این‌گونه اتصالات از دیدگاه طراحی فیزیکی محدودیت‌هایی را به همراه می‌آورد. سیم‌ها بیشتر فضای تراشه را اشغال می‌کنند و در تکنولوژی CMOS نانومتری، اتصال‌ها کارکرد و اتلاف انرژی دینامیک را تحت تأثیر قرار می دهند چرا که انتشار سیگنال در سیم‌ها در طول تراشه به چندین سیکل ساعت نیازمند است. (قانون Rent را برای بحثی پیرامون نیازمندی‌های سیم کشی برای اتصال‌های نقطه-به-نقطه ببینید).

لینک‌های ناک می‌توانند پیچیدگی طراحی سیم‌ها برای سرعت قابل پیش بینی، انرژی، نویز، اتکاپذیری و غیره را کاهش دهند. چرا که ساختار منظم و کنترل شده‌ای دارند. از دیدگاه طراحی سیستم با پیدایش سیستم‌های پردازشگر چند هسته ای، یک شبکه یک گزینه معماری طبیعی می‌باشد. یک ناک می‌تواند بخش‌های محاسباتی و ارتباطی را از هم گسسته سازد، از طراحی پیمانه‌ای و بازاستفاده ازIP از راه واسط‌های استاندارد پشتیبانی کند، مشکلات هم‌زمان‌سازی را حل کند، به عنوان بستری برای سنجش سیستم استفاده شود و بنابراین سودمندی مهندسی را افزایش دهد.

پژوهش درباره شبکه‌های درون-تراشه

هرچند ناک‌ها می‌توانند مفاهیم و تکنیک‌هایی را از دامنه تثبیت شده شبکه‌های کامپیوتری وام بگیرند، امابازاستفاده کورکورانه از ویژگی‌های شبکه‌های کامپیوتری کلاسیک و چندپردازشگرهای متقارن عملی نمی‌باشد. به ویژه سوئیچ‌های ناک باید کوچک باشند، مصرف انرژی بهینه داشته باشند و سریع باشند. چشم پوشی از این موارد همراه با مقایسه کمی و مناسب نوعاً برای پژوهش درباره ناک ابتدایی بود اما این روزها موارد ذکر شده با جزئیات بیشتری در نظر گرفته می‌شوند. الگودیتم‌های مسیریابی باید با منطق ساده پیاده‌سازی شوند و تعداد بافرهای داده باید کوچک باشد. توپولوژی شبکه و ویژگی ها می‌توانند مناسب کاربردی خاص باشند.

برخی پژوهشگران فکر می‌کنند که ناک‌ها نیاز به پشتیبانی از کیفیت خدمات (QoS) دارند، بدین معنا که نیازهای گسترده‌ای همچون توان، تاخیر انتها-به-انتها و ضرب الاجل‌ها را پوشش دهند. محاسبات هم‌زمان شامل بازنواخت صوتی و تصویری، دلیلی بر فراهم آوردن پشتیبانی از QoSاست. هرچند پیاده سازی‌های سیستم‌های رایج مانندRTLinux ، VxWorks یا QNX قادر به دستیابی به محاسبات هم‌زمان میلی ثانیه ای بدون سخت افزار ویژه هستند. نیاز به گفتن است که برای بسیاری از کاربردهای همزمان، کیفیت خدمات ساختار اتصال درون- تراشه موجود کافی می‌باشد و سخت افزار ویژه برای دستیابی به دقت میکروثانیه‌ای لازم است، دقتی که به ندرت در عمل برای کاربرهای نهایی نیاز است (جیتر صدا یا تصویر تنها به گارانتی تاخیر یک دهم میلی‌ثانیه نیاز دارد). انگیزه دیگر برای کیفیت خدمات سطح ناک، پشتیبانی از چندین کاربر همروند است که دارای منابع مشترک یک تراشه چند پردازشگر در یک ساختار رایانش ابری عمومی هستند. در چنین مواردی منطق QoS سخت افزاری فراهم آورنده خدمات برای ساختن گارانتی‌های عملیاتی در سطح خدماتی که یک کاربر دریافت می‌کند را توانا می سازد، یک ویژگی که از دید برخی از مشتریهای دولتی یا شرکت‌ها مطلوب پنداشته می‌شود.

تا امروز چندین نمونه اولیه ناک در صنعت و دانشگاه طراحی و آنالیز شده اند اما تنها تعداد کمی بر روی سیلیکون پیاده‌سازی شده‌اند. هرچند بسیاری از مشکلات پژوهشی چالش‌برانگیز برای حل در تمام سطوح باقی می مانند، از سطح پیوند فیزیکی تا سطح شبکه و تمام مراحل تا معماری سیستم و نرم‌افزار کاربردی. اولین سمپوزیوم پژوهشی ویژه درباره شبکه‌های درون تراشه‌ای در دانشگاه پرینستون در می 2007 برگزار شد.
دومین سمپوزیوم بین‌المللی IEEE درباره شبکه های-درون-تراشه در آوریل 2008 در دانشگاه نیوکاسل برگزار شد.

پژوهش درباره وسایل و موجبرهای نوری مجتمع شامل یک شبکه نوری درون یک تراشه انجام شده‌است (ONoC).

ترازسنجی ناک

پیشرفت و ارزیابی ناک نیازمند مقایسه طرح‌ها و گزینه‌های پیشنهادی می‌باشد. الگوهای ترافیک ناک برای کمک به چنین ارزیابی‌هایی به وجود می آیند. ترازسنج‌های ناک موجود شامل NoCBench و MCSL NoC Traffic Patterns می‌باشند.