در روش راهگزینی خزشی، هنگامی که یک بسته به درگاه خروجی یک مسیریاب نیاز دارد و آن درگاه توسط بستهای دیگر اشغال است، این بسته در شبکه باقی میماند و حافظه میانگیر مسیریابهای قبلی که در آنها قرار دارد را اشغال می کند. از آن جایی که حافظههای میانگیر به صورت یک صف از نوع اولین ورودی-اولین خروجی پیادهسازی شدهاند هیچ بسته دیگری نمیتواند از آنها استفاده کند و آن مسیر برای بستههای دیگر مسدود می شود و در اصطلاح ایجاد بنبست می کند[۳]. این موضوع در شکل ۲-۱۱ نشان داده شده است. راهحل ارائه شده برای این مشکل استفاده از کانالهای مجازی است که در ادامه توضیح داده شده است. روشی که در اکثر طراحیهای شبکه های روی تراشه مورد استفاده قرار میگیرد راهگزینی خزشی میباشد، زیرا در این شبکه ها محدودیت حافظه میانگیر وجود دارد. به عبارتی، چون میانگیرها انرژی بالایی را مصرف و سطح زیادی را اشغال می کنند، استفاده از این روش راهگزینی در شبکه های روی تراشه که نیاز به فضای حافظه کمتری نسبت به روشهای دیگر دارند، مرسومتر میباشد[۳] (شکل ۲-۱۲). علاوه بر این، در این شبکه ها نیاز است که تاخیر بستهها حداقل مقدار ممکن را داشته باشد که این روش نسبت به دو روش دیگر تاخیر کمتری دارد [۳].
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
شکل ۲‑۱۰- اجزای یک پیغام در راهگزینی خزشی [۱۱]
شکل ۲‑۱۱- مسدود شدن یک بسته در شبکه و ایجاد بن بست [۲۴]
شکل ۲‑۱۲- روشهای راهگزینی ذخیره و ارسال (a) و خزشی (b) [25]
کانال مجازی
در شبکه های روی تراشه با توجه به روش راهگزینی، همه یا قسمتی از بسته در میانگیر ذخیره می شود و چون عملکرد حافظه میانگیر به صورت یک صف اولین ورودی-اولین خروجی است، تا هنگامی که بسته به طور کامل از آن خارج نشود بسته دیگری نمیتواند وارد حافظه میانگیر شود. لذا سایربستهها برای استفاده از کانال فیزیکی باید منتظر خالی شدن حافظه میانگیر بمانند[۳]. بنابراین بدون استفاده از کانال مجازی استفاده از پهنای باند کانال فیزیکی کاهش مییابد و دسترسی پیغامها به کانالهای خروجی انحصاری خواهد شد. برای رفع این مشکل و جلوگیری از ایجاد بنبست میتوان از کانالهای مجازی استفاده کرد که پهنای باند کانال فیزیکی را بین چندین جریان ارتباطی به اشتراک میگذارند. کانالهای مجازی همچنین باعث کاهش تاخیر ارسال پیغام در شبکه های خزشی میشوند. با توجه به شکل ۲-۱۳ کانالهای مجازی با تسهیم کردن[۸۶] دسترسی به کانال این امکان را فراهم می کنند که کانال فیزیکی با وجود مسدود شدن یک پیغام توسط بقیه پیغامها مورد استفاده قرار گیرد[۲۰].
شکل ۲‑۱۳- تسهیم کردن کانال خروجی و رفع بنبست توسط کانال مجازی [۲۴]
نتیجهگیری
ارتباطات روی تراشه یکی از مهمترین عوامل برای افزایش کارایی سیستمهای روی تراشه است. یکی از راه حلهای ارائه شده در زمینه ارتباط روی تراشه، استفاده از فنآوری شبکه بر روی تراشه است، که مشکلات ارتباطات را تا حد زیادی حل می کند.
در این فصل معماری شبکه روی تراشه به همراه برخی از مهمترین ویژگیهای آن مورد بررسی قرار گرفت. همچنین هر یک از مفاهیم همبندی شبکه و انواع آن، روشهای راهگزینی، مسیریابی و انواع الگوریتمهای مسیریابی و کانال مجازی در شبکه روی تراشه به همراه جزئیات مربوط به هر یک تشریح شدند.
فصل سوم
فصل سوم: مروری بر مفاهیم نگاشت و کارهای انجام شده
مقدمه
یک بخش مهم در روند طراحی و ساخت یک شبکه روی تراشه، عملیات نگاشت وظایف یک کاربرد مورد نظر، بر روی یکی از انواع همبندیهای شبکه بر تراشه میباشد. در واقع مسئله نگاشت، بر اساس تابع هدف مورد نظر و معماری شبکه، مشخص کنندهی آن است که هر یک از وظایف یک برنامهی کاربردی به کدام عنصر پردازشی در شبکه اختصاص یابد. نتایج نگاشت تاثیر بسزایی بر روی میزان مصرف انرژی، اتلاف توان، میانگین تاخیر، کارایی و سایر معیارهای کیفیت سرویس در شبکه روی تراشه دارد.
در این فصل هدف کلی بررسی برخی مفاهیم نگاشت و مروری بر روی کارهای انجام شده قبلی در زمینه الگوریتمهای نگاشت میباشد.
روشهای نگاشت ایستا
روشهای نگاشت در [۹] با توجه به زمانی که وظایف یک کاربرد برای پردازش به هستههای عملیاتی شبکه روی تراشه، تخصیص داده میشوند، به نگاشت پویا و نگاشت ایستا طبقه بندی میشوند (شکل ۳-۱).
در نگاشت ایستا، برنامه کاربردی که قرار است بر روی شبکه بر تراشه اجرا شود، در زمان طراحی مشخص است و به طور پویا تغییر نمیکند. بنابراین نگاشت مربوط به وظایف قبل از اجرای کاربرد و در زمان طراحی مشخص می شود. برای یک کاربرد و زیرساختهای ارتباطی داده شده، با توجه به در دسترس بودن تمامی اطلاعات لازم، الگوریتم نگاشت ایستا سعی می کند بهترین مکان وظایف را در زمان طراحی مشخص کند[۱۱]. در این روش چون نگاشت قبل از اجرای کاربرد کامل می شود، الگوریتم نگاشت تنها یک بار در زمان کامپایل اجرا می شود. بنابراین روی کارایی مربوط به کاربرد در زمان اجرا تاثیر نمیگذارد[۷]. در نگاشت ایستا چون پلتفرم برای اجرای کاربرد موردنظر اختصاص یافته، هیچ گونه رفتار پویایی از قبیل اضافهشدن، حذف یا مهاجرت وظایف در طول زمان اجرا، قابل قبول نیست. بنابراین انتظار میرود که الگوریتمهای نگاشت ایستا، راه حلهای نزدیک به راهحل بهینه بیشتری ایجادکنند[۱۱]. روشهای نگاشت ایستا به دو دستهی نگاشت دقیق[۸۷] و نگاشت مبتنی بر جستجو[۸۸] تقسیم میشوند[۹].
شکل ۳‑۱- طبقه بندی روشهای نگاشت [۹]
نگاشت دقیق
نگاشت دقیق نگاشتی است که بر مبنای برنامهنویسی و فرمولبندی ریاضی راهحل بهینه را به دست می آورد. برنامهنویسی خطی عدد صحیح[۸۹]، برنامهنویسی خطی غیر عدد صحیح[۹۰] و برنامهنویسی خطی ترکیبی[۹۱] سه نوع از مهمترین الگوریتمهای نگاشت دقیق هستند[۹]. در [۲۶] یک روش MILP جهت نگاشت وظیفه برای سیستمهای چندپردازندهای ناهمگن ارائه شده است. در این جا ابتدا به طور حریصانه هستهها بر روی همبندی خاص نگاشت و سپس در مرحله بهبود، موقعیتهای نسبی هستهها توسط جستجوی ممنوع[۹۲] ثابت میشوند. در [۲۷] از روش MILP برای ساخت معماری NOC استفاده شده است که هدف، بهینه سازی و کمینه کردن مصرف توان با در نظر گرفتن محدودیتهای کارایی میباشد. در ILP ، گلوگاه اصلی زمان اجرا میباشد که برای کاهش زمان اجرا، گراف وظیفهی کاربرد مورد نظر به تعدادی خوشه تقسیم بندی شده است. در [۲۸] یک روش ILP دو مرحله ای برای تخصیص وظایف و نگاشت داده روی سیستم چندپردازندهای متقارن[۹۳] ارائه شده است. در [۱۰] ، رقابت در شبکه مورد بررسی قرار گرفته است. در این روش از یک فرمول بندی ILP برای نگاشت کاربرد رقابت-آگاه[۹۴] جهت کمینه کردن رقابت استفاده شده است. در شبکه بر تراشه، سیمها با یک شبکه ای از پیوندهای مشترک جایگزین شده اند و مسیریابها بستههای داده را از طریق پیوندها به طور همزمان جابجا می کنند. بنابراین ازدحام ترافیک در پیوندها ممکن است موجب کاهش عملکرد سیستم شود. رقابت در شبکه ممکن است در منبع، در مقصد و یا در مسیر باشد. کاهش رقابت در شبکه موجب کاهش تاخیر بستهها می شود ولی اتلاف انرژی ارتباطی را افزایش میدهد. به دلیل آن که برخی از این روشها زمان پردازش بالایی دارند در [۲۹] جهت غلبه بر این مشکل، گراف وظایف کاربرد را خوشهبندی کرده و براساس تعداد خوشه ها، معماری توری را به شبکه های توری با ابعاد کوچکتر تقسیم می کند. برای نگاشت خوشه ها به زیرشبکههای توری مربوطه از فرمولبندی ILP استفاده شده است. در انتها همه زیرشبکههای توری برای تعیین راهحل نهایی ادغام میشوند. در این مورد زمان پردازنده بهبود پیدا می کند اما هزینه ارتباطی خوبی به دست نمیآید.
نگاشت مبتنی بر جستجو
دو نوع الگوریتم نگاشت ایستا از نوع مبتنی بر جستجو وجود دارد : ۱) نگاشت مبتنی بر جستجوی قطعی[۹۵] ۲) نگاشت مبتنی بر جستجوی اکتشافی[۹۶] [۹]
نگاشت مبتنی بر جستجوی قطعی :
الگوریتمهای نگاشت قطعی تمام فضای جستجو را بررسی می کنند. الگوریتم شاخه وحد[۹۷] جزء این دسته از الگوریتمهای نگاشت است. این الگوریتم با جستجوی راهحل در شاخه های درخت و محدود کردن راه حلهای غیرمجاز، نگاشت مناسب را پیدا می کند[۹]. این الگوریتم برای مسائل کوچک مناسب است زیرا زمان جستجو با افزایش اندازه مسئله به طور نمایی افزایش مییابد[۱۱]. در [۳۰] یک نگاشت انرژی آگاه و در [۳۱] یک نگاشت انرژی و کارایی- آگاه[۹۸] با بهره گرفتن از الگوریتم شاخه و حد برای معماری NOC ارائه شده است که با هدف کمینه کردن انرژی ارتباطی، محدودیتهای طراحی را از طریق رزوکردن پهنای باند برآورده می کند. در این جا الگوریتم سعی می کند همزمان یک نگاشت بهینه و یک تابع مسیریابی پیدا کند که علاوه بر رعایت محدودیت پهنای باند، انرژی ارتباطی را بهینه کند. در[۳۲] نیز از محدودیت پهنای باند و روش شاخه و حد برای نگاشت استفاده شده است. در روش مذکور ابتدا با بهره گرفتن از درخت جستجو یک مجموعه نگاشت با کمترین هزینه ارتباطی پیدا می شود و سپس درگام بعدی نگاشتهایی با کمترین تاخیر ارتباطی و توان مصرفی باقی میمانند. این روش نسبت به روشهای قبلی از نظر کاهش تاخیر ارتباطی و توان مصرفی بهتر است.
نگاشت مبتنی بر جستجوی اکتشافی :
از آنجایی که مسائل نگاشت جزء مسایل NP-hard هستند بنابراین برای حل آنها در اندازه های عملیشان از روشهای جستجوی اکتشافی استفاده می شود. مسائل در اندازه های کوچکتر میتوانند با روشهای قطعی مانند روش شاخه وحد راه حل بهینه را ایجاد کنند[۹].
روشهای اکتشافی شیوه های بهینهسازی و جستجوی شبهتصادفی هستند که کشف و استخراج فضای راهحل را براساس تجربه به دست آمده، انجام می دهند. این روشها هنگامی که جستجوی کامل فضای راهحل و روشهای قطعی بسیار مشکل باشند و پیچیدگی زمانی به طور نمایی با اندازه مسئله رشد کند، استفاده میشوند.روشهای اکتشافی در زمان نسبتا کوتاه جواب مناسب را ایجاد می کنند[۳۳].
روشهای اکتشافی برای حل مسئله نگاشت کاربرد به دو دستهی روشهای اکتشافی قابل تغییر[۹۹] و روشهای اکتشافی سازنده[۱۰۰] تقسیم میشوند[۹].
روشهای اکتشافی قابل تغییر :
این روشها راه حلهای نگاشت موجود را تغییر می دهند تا به راهحل بهتر برسند. نمونه ای از این روشهای اکتشافی روشهای تکاملی شامل الگوریتم ژنتیک، الگوریتم بهینهسازی ازدحام ذرات[۱۰۱]، الگوریتم کلونی مورچه[۱۰۲] و… میباشند[۹].
روشهای اکتشافی قابل تغییر برپایهی الگوریتم ژنتیک :
الگوریتم ژنتیک الگوریتم جستجوی تصادفی بر مبنای عملیات ژنتیک طبیعی میباشد. یک جمعیت ثابت از کروموزومها بعد از چندین نسل از طریق اصل انتخاب طبیعی تکامل مییابند. هر کروموزوم یک راه حل بالقوه را مشخص می کند. برای ایجاد نسل جدید از عملگرهای تقاطع و جهش استفاده می شود. عمل تقاطع، دو یا تعدادی کروموزوم والد را انتخاب می کند و با ترکیب قسمت هایی از آنها با هم کروموزوم فرزند را ایجاد می کند. عملیات تقاطع می تواند تک نقطه یا چندین نقطه باشد. عمل جهش شامل انتخاب یک کروموزوم والد و تغییر برخی از بخشهای آن به طور تصادفی میباشد. نرخ جهش را میتوان برای کنترل نرخ همگرایی به کمینههای محلی یا سراسری کنترل کرد. معیار خاتمه می تواند ملاکهای متفاوتی باشد از جمله اینکه هیچ بهبودی در چند نسل گذشته ایجاد نشده باشد.
در [۳۴] منابع محاسباتی در شبکه روی تراشه شامل مجموعه ای از هستههای پردازشی ناهمگن هستند. در این مقاله یک الگوریتم ژنتیک دو مرحله ای برای نگاشت گراف وظایف کاربرد بر روی هستههای پردازشی شبکه بر تراشه، پیشنهاد شده است به طوری که زمان اجرای کلی گراف وظایف کمینه گردد. برای تخمین زمان اجرا از یک مدل تاخیر بر مبنای تاخیر سیستم و تاخیر یال، استفاده شده است. تاخیر سیستم یک گراف وظیفه برابر تاخیر مسیر بحرانی در اجرای آن و تاخیر یال میباشد که تاخیر یال برابر است با میزان تاخیر انتقال داده بین دو راس که بر روی گرههای مختلف NOC نگاشت شده اند. در گام نخست با فرض اینکه تاخیر یالها ثابت و برابر با میانگین تاخیر میباشد، وظایف به هستههای مختلف تخصیص داده میشوند. در گام دوم هستههای پردازشی به کاشیهای[۱۰۳] شبکه بر تراشه، نگاشت میشوند و با در نظر گرفتن تاخیر یال واقعی بر مبنای مدل ترافیکی شبکه، تاخیر کل سیستم کمینه میگردد. در [۳۵] یک مدل تاخیر برای نگاشت کاربرد روی شبکه بر تراشه ارائه شده است که الگوریتم ژنتیک برمبنای این مدل تاخیر می تواند کاربرد مورد نظر را به طور بهینه نگاشت کند به طوری که حداقل میانگین تاخیر را داشته باشد. در این الگوریتم، جمعیت متناسب با موقعیت هستهها روی همبندی شبکه بر تراشه است. جمعیت اولیه به طور تصادفی انتخاب می شود و تابع برازندگی[۱۰۴] در واقع میانگین زمان انتظار است. برای ایجاد نسلهای بعدی از تقاطع چند نقطهای با انتخاب نقاط تقاطع به طور تصادفی استفاده می شود. کروموزوم با زمان انتظار کمتر شانس بیشتری برای شرکت در تقاطع دارد. اندازه کروموزوم برابر با تعداد هستهها درگراف هسته میباشد. جهش به طور تصادفی با احتمالی بر روی کروموزوم اعمال می شود. این عملیات تکرار می شود تا کمترین میانگین زمان انتظار در چندین تکرار، بدون تغییر بماند. بهترین جواب در آخر موقعیت مطلوب هستهها روی شبکه بر تراشه را نشان میدهد. در [۳۶] یک الگوریتم ایستایی که از لحاظ انرژی کارا است، ارائه شده است. در واقع این الگوریتم سعی می کند مصرف انرژی ارتباطات بین وظایف را در شبکه بر تراشهای که ولتاژ پیوندها در آن قابل تنظیم است، بهینه کند. در این جا از سه الگوریتم ژنتیک استفاده شده است که عبارتند از: الگوریتم ژنتیکی برای تخصیص وظایف به هستههای پردازشی که دارای محدودیت سطح هستند (GA-TA)، الگوریتم ژنتیکی برای تخصیص هستههای پردازشی به کاشیهای NOC (GA-TM) و یک الگورینم ژنتیک برای پیدا کردن مسیر بهینه (GA-RPA). در هر یک از این الگوریتمها ساختارکروموزوم و عملگرهای ژنتیک با توجه به نوع مسئله متفاوت میباشند.
یک الگوریتم ژنتیک چند هدفه در [۳۷] برای نگاشت کاربرد پیشنهاد شده است که توان مصرفی و ناحیه مصرفی تراشه را کاهش و به طور کلی کارایی را بهبود میدهد. این روش ابتدا وظایف کاربرد مورد نظر را به هستهها تخصیص میدهد و سپس هستهها را به کاشیهای مختلف شبکه بر تراشه، نگاشت می کند به طوری که محدودیتهای مسئله را برآورده سازد. در این جا نگاشت هستهها همراه با تخصیص مسیریابی انجام می شود که این کار بعد از نگاشت وظیفه موجب کاهش فاصلههای ارتباطی می شود. در [۳۸] و [۳۹] نویسندگان سعی می کنند با بهره گرفتن از الگوریتم ژنتیک چندهدفه SPEA[105] یک مجموعه نگاشت غالب[۱۰۶] پیدا کنند به طوری که اتلاف توان شامل توان محاسباتی و توان ارتباطی کمینه و کارایی بیشینه گردد. مجموعه نگاشت غالب، شامل جوابهایی است که در آن هیچ نگاشتی یافت نشود که از یکی از نگاشتهای موجود در این مجموعه برتر باشد. در این جا برای بررسی کارایی، تاخیر ارتباطی شامل تاخیر راه اندازی، تاخیر شبکه و تاخیر مربوط به مسدود شدن، ارزیابی میشوند.
در [۴۰] هدف ارائه الگوریتمی است که پاسخ نزدیک به حالت بهینه را در زمان معقولی به دست آورد. به خاطر همین امر در این جا از الگوریتم ژنتیک چند هدفه NSGA-II در دو مرحله مختلف استفاده شده است. همان گونه که در شکل ۳-۲ نشان داده شده است، مرحله اول این الگوریتم شامل بخش محاسباتی است که گراف وظایف یک کاربرد را با هدف کمینهکردن انرژی محاسباتی توسط کاهش توان مصرفی و کمینهکردن هزینه کلی منابع، به هستههای پردازشی مناسب نگاشت می کند. در واقع خروجی این مرحله یک گراف ارتباطی بین هستهها است. مرحله دوم شامل بخش ارتباطی است که ورودی این مرحله گراف ارتباطی بین هستهها و خروجی آن یک نگاشت بهینه بر روی NOC است. در این مرحله هدف نگاشت، کاهش میانگین فاصله ارتباطی بین هستهها و کمینهکردن بیشترین پهنای باند مورد نیاز است.
Task Assignment
Evaluation
Core Tile Mapping
Evaluation
TA-GA
CT-GA
P-I
P-II
شکل ۳‑۲- جریان طراحی الگوریتم در [۴۰]
در [۴۱] نیز یک الگوریتم ژنتیک چندهدفه برای نگاشت مجموعه هستههای پردازشی به معماری شبکه بر تراشه ارائه شده است که اهداف آن بهینه کردن هزینه ارتباطی کلی و مصرف انرژی تحت محدودیتهای پهنای باند است. برای این منظور، با در نظر گرفتن مسیریابهایی با چندین کانال مجازی، از یک مدل تحلیلی صف برای ارزیابی تاخیر و از یک مدل آزمایشی در سطح دروازه[۱۰۷] برای ارزیابی انرژی مصرفی، استفاده شده است. همین نویسندگان در [۴۲] یک الگوریتم ژنتیک چند هدفه برای نگاشت هستههای پردازشی بر روی معماری شبکه ارائه کرده اند.به عنوان ورودی مسئله از قبل وظایف کاربرد مورد نظر به هستههای پردازشی تخصیص داده شده اند و معماری شبکه شامل یک همبندی دلخواه با بهره گرفتن از یک الگوریتم مسیریابی فاقد بن بست میباشد. در اینجا هدف به دست آوردن نگاشتی است که میانگین تاخیر بستهها و توان تلف شده کلی شبکه کمینه گردد. برای تسریع در جستجوی فضای طراحی مانند [۴۱] از مدلهای تحلیلی به عنوان توابع هدف استفاده شده است. روش CGMAP که یک روش نگاشت کاربرد مبتنی بر الگوریتم ژنتیک میباشد، در [۴۳]، پیشنهاد شده است. این روش از عملگر نگاشت بی نظم[۱۰۸] به جای فرایندهای تصادفی در الگوریتم ژنتیک استفاده می کند. در اینجا مفهوم دنبالهی نامنظم با الگوریتم ژنتیک برای به دست آوردن نگاشت بهینه ترکیب شده است. در [۴۴]، GAMR، یک روش نگاشت و مسیریابی بر مبنای الگوریتم ژنتیک است و دارای دو مرحله میباشد: در مرحله اول ، هستههای پردازشی بر روی منابع مختلف نگاشت میشوند. در مرحله دوم یک مسیریابی کمینه قطعی فاقد بن بست برای هر ارتباط برقرار می شود بدون اینکه مکانی که در گام قبلی برای هر هسته مشخص شده، تغییر کند. در [۴۵] یک الگوریتم A3MAP[109] برای NOC همگن با همبندی توری منظم، NOC ناهمگن با همبندی توری نامنظم و معماری NOC سفارشی[۱۱۰]، پیشنهاد شده است. در این جا مسئله نگاشت توسط دو روش اکتشافی حل می شود، الگوریتم آرامش[۱۱۱] به عنوان یک الگوریتم سریع و الگوریتم ژنتیک برای پیدا کردن نگاشت بهتر. نتایج نشان میدهد که کارایی الگوریتم پیشنهادی در کاهش ترافیک با بهره گرفتن از الگوریتم ژنتیک بهتر از الگوریتم آرامش بوده است. در [۴۶] یک الگوریتم MAIA[112] بر پایه رویکردهای تکاملی پیشنهاد شده است که وظایف کاربرد را جهت کاهش مصرف توان و تاخیر کلی شبکه، نگاشت می کند. این الگوریتم یک مجموعه گستردهای از ویژگیها را جمع می کند که جستجوی محلی را بهبود میدهد. درحالی که با بهره گرفتن از حفظ گوناگونی راهحلها در جمعیت، از همگرایی زود هنگام جلوگیری می کند.
یکی از انواع برنامه های کاربردی که بیشتر در سیستمهای تعبیه شده مورد استفاده قرار میگیرند، کاربردهای بیدرنگ میباشند. در تحقیقات قبلی ذکر شده، نگاشت با هدف بهینهکردن کارایی و هزینه انجام میشد و بیشتر سعی میکردند توان مصرفی و زمان اجرای وظایف را کاهش دهند. اما در برخی از کارهای انجام شده، چون بحث کاربردهای بیدرنگ مطرح است هدف اصلی آن است که تضمین شود همه وظایف و جریانهای ترافیکی بین آنها تحت هر سناریویی مهلت اتمامشان رعایت شود. در [۴۷] الگوریتم ژنتیکی برای نگاشت وظایف یک برنامه کاربردی بیدرنگ با نیازمندیهای زمانی سخت پیشنهاد شده است که در آن از تحلیلهای زمانبندی ارائه شده در [۴۸] به عنوان تابع برازش استفاده می شود. به عبارتی بررسی می شود که در هر نگاشت چه تعدادی از ارتباطات بین وظایف، مهلت اتمامشان را از دست دادهاند که در این تحلیل بیشینه تاخیر شبکه بسته نیز در نظر گرفته می شود. در واقع هدف، یافتن نگاشتی است که در آن همه انتقالهای جریانهای ترافیکی بین وظایف قبل از مهلت اتمامشان به پایان برسد. در [۴۹] نیز کاربردهای بیدرنگ با نیازمندیهای زمانی سخت مطرح است و از همان مدل کاربرد و مدل معماری در [۴۷] استفاده شده است. در اینجا با بهره گرفتن از الگوریتم ژنتیک به دنبال پیدا کردن نگاشتی است که در آن علاوه بر اینکه جریانهای ترافیکی مهلت اتمامشان رعایت شود، وظایفی که بر روی عناصر پردازشی نگاشت میشوند نیز مهلت اتمامشان رعایت شود که برای این منظور از یک تحلیل زمان پاسخ[۱۱۳] برای بررسی زمانبندی وظایف استفاده می شود. اگر به ازای هر وظیفه نگاشت شده بر روی یک هسته پردازشی خاص، زمان پاسخ آن وظیفه از مهلت اتمام آن کمتر یا مساوی باشد بیانگر آن است که مجموعه وظایف بر روی آن هسته قابل زمانبندی[۱۱۴] هستند. همچنین این الگوریتم علاوه بر نگاشت وظایف، ترتیب اولویت آنها را بررسی می کند. در الگوریتم ژنتیک به کار برده شده، از انتخاب مسابقهای با اندازه های ۲ و ۵ استفاده شده است و برای نمایش کروموزومها روشهای index، standard-binary، gray-coding، xypairs و allXsAllYs به کار رفته است. در اینجا دو تابع برازش وجود دارد: ۱) F0 : بیانگر تعداد وظایف و ارتباطاتی است که مهلت اتمامشان را از دست دادهاند. ۲) : در این تابع زمان پاسخ هنگامی که مقدار آن از بگذرد، به بینهایت تنظیم می شود. حد n به عنوان ورودی مسئله است و مهلت اتمام وظیفهی i میباشد.
در [۵۰] یک روش برای نگاشت وظایف کاربرد بیدرنگ با نیازمندیهای زمانی سخت، پیشنهاد شده است به طوری که نیازمندیهای زمانی وظایف و ارتباطات بین آنها در همه حالات برآورده شود و در عین حال اتلاف توان نیز کمینه گردد. برای پیادهسازی این روش نگاشت از یک الگوریتم ژنتیک چند هدفه NSGAII استفاده شده است. ساختار کروموزوم بهگونهای است که اندیس ژنها بیانگر وظایف و مقدار هر ژن در داخل کروموزوم بیانگر شماره هسته پردازشی است که وظیفه بر روی آن نگاشت شده است. در اینجا فرض شده است که شبکه بر تراشه شامل هستههای پردازشی همگن میباشد و بنابراین در تحلیلهای توان تنها اتلاف توان در انتقال اطلاعات از یک عنصر پردازشی به عنصری دیگری در نظر گرفته شده است. بنابراین در الگوریتم ژنتیک به کار رفته، دو تابع هدف وجود دارد. تابع هدف اول برای کمینهکردن تعداد وظایف و جریانهای ترافیکی که قابل زمانبندی نیستند و از مهلت اتمامشان تجاوز می کنند و تابع هدف دوم برای کمینه کردن اتلاف توان میباشد. برای عمل تقاطع از تقاطع یک نقطهای و برای عمل جهش از تغییر درصدی از ژنها (با توجه به نرخ جهش) استفاده شده است. عمل انتخاب نیز بر اساس انتخاب مسابقهای دودویی میباشد.
اشکال اصلی الگوریتم ژنتیک نرخ پایین همگرایی است. برای افزایش نرخ همگرایی و این که سریعتر جواب نهایی به دست آید، باید نرخ جهش افزایش یابد.
روشهای اکتشافی قابل تغییر برپایهی الگوریتم ازدحام ذرات و کلونی مورچه :
الگوریتم ازدحام ذرات یک روش تصادفی مبتنی بر جمعیت است که از رفتار دسته جمعی پرندگان الهام گرفته شده است. در این الگوریتم چندین راهحل داوطلب، همزمان با هم وجود دارد. هر راهحل را یک ذره میگویند که یک مقدار برازندگی دارد. حرکت ذرات در فضای مسئله، با توجه به تجربه خود ذره و تجربه ذرات همسایه انجام می شود[۹].
در [۵۱]، یک الگوریتم نگاشت کاربرد دو مرحله ای مبتنی بر الگوریتم PSO ارائه شده است که انرژی ارتباطی شبکه بر تراشه را کمینه و برای ایجاد تعادل در بار پیوند، از مسیریابی استفاده می کند. ساختار ذره و ایجاد ذرات اولیه شبیه ساختار کروموزوم و روشهای الگوریتم ژنتیک میباشد. در [۵۲] ، PSMAP ، یک روش فرااکتشافی با بهره گرفتن از PSO برای کاهش هزینه پویا و ایستای شبکه بر تراشه دو بعدی میباشد. یک ذره، متناسب با نگاشت مناسب هستهها به مسیریابها میباشد. مثالی از ساختار یک ذره در شکل ۳-۳ نشان داده شده است. اگر تعداد مسیریابها(گرهها) در گراف همبندی از تعداد هستهها در گراف هستهها بیشتر باشد، تعدادی گره اضافی به گراف هسته افزوده می شود تا دو عدد مثل هم شوند. گرههای اضافی به همه هستهها و خودشان متصل میشوند. یالی که گرههای اضافی را به یکدیگر یا به هستهها متصل کرده است هزینهاش صفر میباشد. اگر فرض شود تعداد هستهها در گراف هسته بعد از اضافه کردن گرههای اضافی درصورت نیاز N باشد و N گره هم در گراف همبندی وجود داشته باشد، یک ذره شامل جایگشت اعداد از ۱ تا N است که مکان هستهها به گرههای گراف همبندی را نشان میدهد. هزینه ارتباطی نهایی بستگی به موقعیت هستهها در ذره دارد. در اینجا هزینه ارتباطی کلی به عنوان تابع برازش در نظر گرفته می شود.
شکل ۳‑۳- ساختار ذره در الگوریتم PSO [52]