- DPM [۱۲۶]
DVS به طور معمول برای ذخیره و صرفهجویی توان استفاده میشود، زیرا توان پویا با Vdd متناسب است که Vdd ولتاژ منبع میباشد.
( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. )
(۵)
که در آن CL ظرفیت خازن بارگذاری میباشد. امروزه با تکنولوژی نانو، که ولتاژ منبع را میتوان به اندازه ولتاژ آستانه[۱۲۷] پایین آورد ( ولتاژ آستانه، حداقل ولتاژ لازم برای کارکردن پردازنده است)، بهرهوری DVS کمتر شده است. بنابراین خیلی مشکل است که از DVS به عنوان یک روش با بهرهوری خوب در محیطهایی با بارگذاری متغییر پویا استفادهشود. از اینرو محاسبه سطح ولتاژ مناسب برای هر وظیفه در زمان اجرا مشکل است. برای استفاده DVS در محیطهای واقعی غیرقابل پیشبینی، نیاز به زیرساختهای پیشبینی اضافی می باشد، اما این زیرساختهای اضافی باعث ایجاد سربار در سیستمهای تعبیهشده میشوند که باعث محدود کردن منابع سختافزاری میگردد.
در این مقاله از روش DPM برای کاهش مصرف توان استفاده شده است که هستهها را به صورت پویا خاموش میکند. این روش بیشتر در کاهش توان نشتی[۱۲۸] موثر است. روشهای کاهش دما( مدیریت دما) باید شامل انتخاب یک سیاست در زمانبندی باشند، اگرچه پردازندههای تعبیهشده، در مقایسه با پردازندههایی با کارایی بالا مانند Intel CORE i7 سبب افزایش دمای بیش از اندازه نمیشوند.بنابراین در این الگوریتم از دما صحبتی نشدهاست.
برای وظایف غیرتناوبی که مجبور نیستیم محتویاتشان را بعداز اتمام اجرا در حافظه نهان نگه داریم( چون به ندرت رخ میدهند و دیربه دیر تکرار میشوند)، میتوانیم هستهها را به طور کامل خاموش کنیم و حتی حافظه نهان مربوطه را هم خاموش نماییم. اما برای وظایف تناوبی اینطور نیست، حتی در حالت بیکار[۱۲۹] هم باید هستهها و حافظه نهان روشن بمانند.
بهترین مثالها برای وظایف تناوبی، برنامههای دنبالهدار( جریاندار پشتسرهم) هستند، مانند پخش یک آهنگ یا اجرای یک بازی یا پخش فیلم و… و بهترین مثالها برای وظایف غیرتناوبی، برنامههایی هستند که با کاربر در تعامل هستند، مانند پیمودن صفحههای منوهای یک تلفنهمراه و یا بازکردن برنامهها و لمسکردن روی آیکونها و…
در وظایف تناوبی، دادهها باید مکررا درحال رمزگذاری و رمزگشایی باشند که دارای نرخ رمزگشایی نیز میباشند، به عنوان مثال اگر فرض کنیم در یک برنامه پخش آهنگ، زمان اجرای هر وظیفه بهطور متوسط ۲۰۰ میلیثانیه و دوره تناوب آن یک ثانیه باشد، آنگاه بهرهوری پردازنده برای این برنامه میباشد. ( جون همواره زمان اجرای یک وظیفه از دورهتناوب آن کمتر است. در این نوع از برنامهها که مسئله زمان مارا راضی نگه میدارد، نیازی به سرعت بیشاز اندازه پردازش نداریم.
بنابراین در مثال قبل که مربوط به برنامه H.264[130] بود( یک برنامه رمزگشایی است که در پخش فایلهای چندرسانهای استفاده میشود)، فقط در هر ثانیه به ۲۰ درصد از قدرت پردازش پردازنده احتیاج داشتیم. این یعنی ۸۰ درصد از توان پردازشی پردازنده میتواند به وظایف دیگر اختصاص پیدا کند. از سوی دیگر برنامههایی نظیر لمسکردن صفحه نمایش لمسی، شروع و فشاردادن یک برنامه کاملا تصادفی و غیرقابل پیشبینی اتفاق میافتند، و این وظایف که با کاربر در ارتباط هستند، وقتی که رخ میدهند باید بلافاصله اجرا شوند. اگرچه از نظر سررسید سختگیری ندارند، اما تاخیر پاسخدهی اینگونه وظایف، کاملا واضح توسط کاربر قابل مشاهده و ناخوشایند است.
شرح جزئیات الگوریتم:
استراتژی که دراینجا توسط Jeon ، Lee و Chung پیشنهاد شده]۳۴[، دو نوع وظیفه را پوشش میدهد، به این صورت که وظایف تناوبی را به حداقل هستهها و وظایف غیرتناوبی را به بقیه هستههای پردازنده اختصاص میدهد. از این طریق، هم مصرف انرژی بدلیل اختصاص وظایف تناوبی به کمترین تعداد هستهها، کاهش مییابد و هم بدلیل توزیع وظایف غیرتناوبی به بقیه هستهها، متوسط زمان انتظار برای اجرای وظایف غیرتناوبی کاهش داده میشود.
برای وظایف تناوبی، بارگذاری روی یک هسته، زمانی تغییر میکند که سیستم در دو شرایط مختلف قرار گیرد:
۱)موقعی که یک وظیفه جدید ایجاد میشود. ۲)موقعی که یک وظیفه موجود به پایان میرسد.
در هردو حالت با بهره گرفتن از RMS نباید سررسید وظایف از دست برود. وقتی که یک وظیفه جدید ایجاد میشود، زمانبند به دنبال هستهای میگردد که روشن باشد و کمترین بارگیری را داشته باشد. وقتی هیچ هستهای وجود نداشته باشد که بتواند وظیفه جدید را اجرا کند، یکی از هستههایی که خاموش بودند، روشن میشوند و این وظیفه جدید به آن اختصاص میابد. وقتی یک وظیفه موجود کارش تمام شود، زمانبند چک میکند که آیا این هسته که اخیرا این وظیفه روی آن کارش تمام شد، میتواند خاموش شود یا خیر.
برای به حداقل رساندن تعداد هستههای روشن، زمانبند به دنبال هسته دیگری میگردد تا وظایف تناوبی باقیمانده را به آن منتقل کند، به این صورت که اگر هر هستهای که بارکاری آن به اندازه کافی کم باشد تا بتواند وظایف باقیمانده از یک هسته دیگر را اجرا کند، پیدا شود، وظایف باقیمانده از هسته قبلی به این هسته انتقال مییابند و هسته قبلی خاموش میشود، در غیر این صورت جابجایی مجدد برویش انجام نمیشود.
TaskInit (pNewtask,pSchedparam,… )
Do task initialization
// find a core on which new task is to be assigned according to
// the task’s scheduling policy.
If (pSchedparam->schedpolicy == RMS)
// if periodic task, find the an idle core
Core = findBusiestCore();
If (pSchedparam->schedpolicy ==FCFS)
// if aperiodic task, find the an idle core
Core = findIdlestCore();
…
Insert the to the selected core’s readt queue
شکل ۳-۸ شبه کد الگوریتم تخصیص وظایف]۳۴[
شکل ۱۱شکل ۳-۸ شبه کد الگوریتم تخصیص وظایف [۳۴]
در شکل ۳-۸ شبهکد تخصیص یک وظیفه جدید ایجاد شده، براساس مشخصات وظیفه میباشد. این کد با سیاست زمانبندی خود در واقع وظایف تناوبی را از وظایف غیرتناوبی جدا میکند.(تمایز قائل میشود)
اگر وظیفه جدید ایجاد شده تناوبی بود، پررفتوآمدترین هسته برای اجرای این وظیفه جدید، انتخاب میشود و تا زمانی که سررسید آن فرابرسد میتواند اجرا شود. اما اگر وظیفه جدید ایجادشده، غیرتناوبی بود، بیکارترین هسته انتخاب خواهد شد تا وظیفه در آن اجرا شود.
این تراکم بارگذاری روی تعداد کمی هسته( توسط وظایف غیرتناوبی) ممکن است منجر به این شود که بخشی از ظرفیت محتوای حافظه نهان L1 از دست برود. به هر حال پردازندههای چندهستهای جدیدنتنها دارای حافظه نهان L1 برای هر هسته به صورت جداگانه هستند، بلکه دارای یک حافظه نهان L2 مشترک بسیار بزرگ نیز هستند. این حافظه نهان L2 میتواند جریمه فقدان[۱۳۱] حافظه نهان L1 را به حداقل ممکن برساند که در مقایسه با زمان کل اجرا، زیاد نیست. در آزمایش این مقاله که از پردازنده ARM11MPcore استفاده شده، دارای ۴ حافظه نهان L1 ۳۲ کیلوبایتی و یک حافظه نهان L2 یک مگابایتی است.
برای وظایف غیرتناوبی از الگوریتمهای دیگری استفاده شده است که یکی برای زمانبندی درونهستهای[۱۳۲] و دیگری برای زمانبندی بینهستهای[۱۳۳] استفاده میشود. برای زمانبندی درونهستهای در اینجا از الگوریتم SQ استفاده شده است که به این معنی است که وقتی یک وظیفه جدید بوجود آمد، آن را به هستهای می فرستد که دارای کوتاه ترین صف وظایف درحال انتظار برای اجرا باشد. در واقع وظایف غیرتناوبی تا حد امکان به صورت مساوی بین هستهها توزیع میشوند. اما برای زمانبندی بینهستهای از سیاست FCFS [۱۳۴] استفاده میشود.
مزایا و معایب این الگوریتم :
این الگوریتم، بدلیل تفکیف وظایف تناوبی و غیرتناوبی از یکدیگر (بدون در نظر گرفتن نرخ نقض سررسید)، میتواند همزمان هم به انرژی مصرفی کمتر برای وظایف تناوبی و زمان پاسخ بهتر برای وظایف غیرتناوبی تا حدودی دست پیدا کند. همچنین بدلیل متمرکز کردن وظایف تناوبی روی تعداد بسیار محدود هستهها، میتواند انرژی مصرفی را تا حد زیادی کاهش دهد. اما این الگوریتم معایبی نیز دارد که عبارت انداز :
- انتخاب هسته با بیشترین ازدحام، برای تخصیص وظیفه تناوبی به آن، با هدف خاموش نگه داشتن هستههای خاموش، درست است که باعث کاهش انرژی مصرفی هستهها میشود اما این مسئله میتواند در هسته شلوغ، موجب حذف وظیفه(ها) بدلیل عدم سرویس دهی به موقع بدانها شده و در نهایت نرخ خطای سررسید در آنها افزایش مییابد.
- توزیع بار ناهمگن و نامتعادل در هستهها سبب روشن نگه داشتن بیش از اندازه برخی هستهها در کنار خاموش بودن طولانی هستههای دیگر میشود. که این مسئله میتواند در حالت کلی قابلیت اعتماد سیستم را کاهش داده، هچنین موجب افزایش دمای بیش از اندازه برخی از هستهها و آسیب دیدن آنها در درازمدت شود. درنتیجه بازده و کارایی سیستم کاهش مییابد.
- این سیستم در زمان توزیع وظایف غیرتناوبی، درصورت روشن بودن تمامی هستهها، وظیفه را به هسته ای که کمترین تعداد وظیفه در صف آن موجود است، ارسال میکند. واضح است که لزوما تعداد کم وظایف در صف هسته، سبب سرویس دهی سریعتر نمیباشد بلکه این مسئله به زمان اجرای وظایف وابسته میباشد. بنابراین ممکن است، این نحوه تخصیص سبب افزایش زمان پاسخ وظایف غیزتناوبی شود.
- وظایف غیرتناوبی در صف هر هسته براساس سیاست FCFS، اجرا می شوند. این مسئله سبب اجرای دیرهنگام وظایف با اولویت بالاتر شده و میتواند زمان پاسخ آنها را افزایش دهد.
- این الگوریتم در زمانیکه هسته ای در وظایف تناوبی، ازدحام کمی داشته باشد، سعی در ارسال وظایف آن هسته به سایر هسته ها و خاموش کردن هسته مورد نظر دارد. این مسئله علاوه بر سربار جهت زمان انتقال وظایف، موجب ازدحام هسته های دیگر و افزایش خطای نرخ سررسید میشود.
۳-۶-۲ الگوریتم زمانبندی غیرتعادلی جزبندی با RBound
در مرجع ]۳۵[ نیز همانند مرجع ]۳۴[ از یک روش بارگذاری غیرتعادلی استفاده شده است که روی وظایف تناوبی و غیرتناوبی در سیستمهای تعبیهشده بیدرنگ چندهستهای سخت، برای کاهش مصرف توان اعمال میشود. در این مقاله از یک معماری زمانبندی دو سطحی استفاده شده است که در سطح بالایی وظایف تناوبی بوسیله الگوریتم RBound-FF که این الگوریتم در قسمت بعدی توضیح داده خواهد شد، به تعداد محدودی از هستهها فرستاده میشوند و وظایف غیرتناوبی به هستههای باقیمانده ارسال میشوند. اما در سطح پایینی این طرح زمانبندی، از دو زمانبند استفاده شده است، یکی برای وظایف تناوبی و دیگری برای وظایف غیر تناوبی. برای وظایف تناوبی از الگوریتم RMS استفاده شده و برای وظایف غیرتناوبی، الگوریتم DMS [۱۳۵] بکار برده شده است. مشخصههایی که برای یک وظیفه در این مقاله استفاده شده عبارتانداز:
Ti : دوره تناوب وظیفه تناوبی i
Ci : بدترین حالت زمان اجرای یک وظیفه تناوبی
Pi : اولویت هر وظیفه تناوبی که برابر است با و برای وظایف غیرتناوبی برابر است با
RMS : الگوریتم زمانبندی نرخ یکنواخت که برای زمانبندی وظایف تناوبی استفاده شده است.