SUPERVISOR
Hossein Saidi,Ali Fanian
حسین سعیدی (استاد راهنما) علی فانیان (استاد مشاور)
STUDENT
Amir Khorsandi Koohanestani
امیر خورسندی کوهانستانی
FACULTY - DEPARTMENT
دانشکده مهندسی برق و کامپیوتر
DEGREE
Doctor of Philosophy (PhD)
YEAR
1390
TITLE
Introducing Network on chip Architecture Based on Software Defined Networks for Virtualization Applications
Today's multicore System-on-Chips (SoCs) feature up to hundreds of discrete cores which should handle a wide range of multithreaded applications concurrently. The embedded Network-on-Chip (NoC) provides the interconnection platform for message passing between applications threads. In most cases, the traditional NoCs have fixed structure which cannot satisfy requirements of various applications with different traffic patterns. Applying the idea of Software Defined Networks (SDNs) idea into NoCs can enable higher levels of chip-wide reconfigurability and programmability in order to handle wider range of applications. This thesis proposes a novel OpenFlow based architecture for Software defined network on chips (SDNoC) and counts its key features and benefits. Moreover, by exploring different design options for implementing the SDNoC, the advantages and drawbacks of each are presented. These evaluations are supported by numerous simulations that compares the throughput, delay and energy of different structures through running a set of different benchmarks. The analysis of results, show that the proposed SDNoC is ready to handle different application requirements with limited area and energy overheads compared to the traditional NoCs. Furthermore, for the first time in this thesis, we take advantages of SDNoC platform for introducing new approaches to realize virtualization and improve the fault tolerance in NoCs. It is shown that these low cost can successfully improve the utilization and fault tolerance of SDNoCs.
پیشرفت تکنولوژی ساخت و امکان گنجاندن تعداد زیادی ترانزیستور بر روی یک تراشه در سال های اخیر، زمینه ساز معرفی و توسعه سیستم های روی تراشه گردیده است. هر یک از این تراشه ها در حقیقت یک سیستم کامپیوتری کامل است که همه تجهیزات لازم شامل هسته های پردازشی، پردازشگر صدا، تصویر و غیره را بر روی خود جای داده است. روند تکامل این تراشه ها به گونه ای بوده است که در مدت زمانی کوتاه، سیستم های چندپردازنده روی تراشه معرفی و به بازار ارائه گردیده و در دورنمای آن ها سیستم هایی با هزاران هسته پردازشی مورد انتظار می باشد. بدیهی است که برای تحقق این هدف، بایستی در روند طراحی، ویژگی هایی همچون مقیاس پذیری، قابلیت استفاده مجدد از بلوک های تشکیل دهنده طرح و البته مصرف انرژی کم در نظر گرفته شوند. یکی از بخش های اساسی در طراحی این گونه سیستم ها، تعریف یک واسط استاندارد به منظور برقراری ارتباط بین اجزاء گوناگون موجود بر روی تراشه می باشد. بررسی روند مطالعات انجام شده در راستای دستیابی به یک ساختار ارتباطی کارآمد نشان می دهد که ساختار شبکه روی تراشه به عنوان یک جایگزین کلیدی برای ساختار گذرگاه داده مشترک، باعث بهبود چشمگیر کارایی سیستم های روی تراشه چند پردازنده ای گردیده است. بر همین اساس در سال های اخیر پژوهش های متعددی در حوزه این ساختار صورت گرفته است که این نشان از پویا بودن و میزان اهمیت این زمینه پژوهشی دارد. یکی از موضوعات پژوهشی جاری در حوزه شبکه های روی تراشه به نحوه مدیریت اجرای همزمان برنامه ها اختصاص دارد. در حقیقت در یک سیستم چندپردازنده روی یک تراشه، به منظور افزایش کارایی بایستی بتوان از حداکثر ظرفیت منابع موجود در آن سیستم استفاده نمود و بهره گیری از سیستم را افزایش داد. برای این کار لازم است که نرم افزار به بخش های مختلف شکسته شده و هر بخش بر روی یک هسته پردازشی اجرا گردد. اما به خاطر ویژگی های ذاتی، شکستن نرم افزار به بیش از یک حد مشخص ممکن نیست. بنابراین برای افزایش بهره گیری از سیستم، اجرای همزمان نرم افزارهای مختلف لازم خواهد بود. این در حالی است که به خاطر تفاوت ماهیت نرم افزارهای مختلف و وابستگی رفتار برنامه ها به ورودی های اعمال شده به سیستم، ترافیک تولید شده توسط آن hy;ها یک الگوی قابل پیش بینی نخواهد داشت و ممکن است اجرای یک برنامه بر اجرای سایر برنامه ها تاثیر نامطلوب داشته باشد. همین موضوع، استفاده از مکانیزم های مجازی سازی را ضروری می نماید. به طور کلی یک سیستم چندپردازنده روی تراشه دارای ویژگی مجازی سازی است در صورتی که در آن بتوان مجموعه ای از منابع متمایز را به طور انحصاری در اختیار یک برنامه قرار داد به گونه ای که اجرای آن برنامه اثری در نحوه و زمان اجرای سایر برنامه های در حال اجرا بر روی سیستم نگذارد. لذا، مجازی سازی در سطح ساختار ارتباطی یا همان شبکه روی تراشه نیز به عنوان یک منبع اشتراکی مطرح خواهد بود. در واقع مجازی سازی در این سطح می تواند به سیستم عامل کمک کند تا بدون نگرانی در مورد جزییات پیکربندی شبکه، در مدیریت اجرای همزمان برنامه ها عملکرد بهتری از خود نشان دهد. این ویژگی علاوه بر افزایش بهره گیری از سیستم، از منظر افزایش قابلیت تحمل خطا و کاهش توان در کل تراشه نیز حائز اهمیت است. با وجود ارائه راهکارهای متفاوت برای تحقق مجازی سازی در سطح شبکه های روی تراشه اما هنوز کاستی هایی در این زمینه وجود دارد. نبودن یک الگوریتم مسیریابی قابل بازپیکربندی کم هزینه و کارآمد، نبودن یک سازوکار مناسب با سربار کم جهت انجام ارسال همه پخشی در سطح تراشه، کاستی در مدیریت دسترسی برنامه ها به منابع اشتراکی، در نظر نگرفتن پیوند های مخدوش در تراشه و ... از جمله این موارد هستند. بنابراین ارائه یک ساختار ارتباطی جدید که با استفاده از الگوریتم های مسیریابی کارآمد بتواند ضمن تحقق ویژگی مجازی سازی، مواردی نظیر افزایش قابلیت تحمل خطا، کاهش مصرف انرژی، افزایش مقیاس پذیری و قابلیت استفاده مجدد از بلوک های طراحی شده را پوشش دهد، ضروری خواهد بود. در این رساله با اقتباس از ایده شبکه های تعریف شده با نرم افزار و در نظرگرفتن مزایای حاصل از به کارگیری آن در مواردی هم چون بهبود مقیاس پذیری، امنیت، قابلیت تحمل خطا و مجازی سازی شبکه، معماری جدیدی ارائه خواهد شد که بتواند امکان انجام مجازی سازی و مدیریت بهتر اجرای برنامه ها به صورت همزمان را مهیا نماید. از این معماری با عنوان شبکه روی تراشه تعریف شده با نرم افزار نام برده خواهد شد. ارزیابی نتایج حاصل از به کارگیری راهکارهای مجازی سازی بر روی بستر شبکه روی تراشه تعریف شده با نرم افزار نشان می دهد که این ساختار توانسته است کارکرد سیستم را در زمان اجرای چند برنامه به طور همزمان بهبود داده و از این طریق میزان بهره گیری از منابع سخت افزاری موجود بر روی تراشه را افزایش دهد. هم چنین این ساختار توانسته است امکان استفاده از روش های جدید برای افزایش قابلیت تحمل خطا را فراهم کند. علاوه بر این موارد، مزایایی که این ساختار به واسطه تجرید لایه نرم افزار کنترل شبکه از المان های سخت افزاری هدایت داده ها فراهم می آورد می تواند تاثیری چشم گیر بر مهیا کردن امکان حل مسایل موجود در شبکه های روی تراشه از طریق راهکارهای کم هزینه نرم افزاری داشته باشد.