一種適用于數(shù)控系統(tǒng)周期任務的節(jié)能調度方法
【專利摘要】本發(fā)明公開一種適用于數(shù)控系統(tǒng)周期任務的節(jié)能調度方法,其步驟如下:計算數(shù)控系統(tǒng)中任務Ti在離線狀態(tài)下的最佳運行速度再計算任務Ti在最佳運行速度下的執(zhí)行時間,根據最早截止期限優(yōu)先原則對任務集進行排序;當某個任務完成時,回收任務Ti的空閑時間Slack_Time,利用該空閑時間Slack_Time計算出該任務在處理器規(guī)定連續(xù)電壓下的運行速度S;最終根據運行速度S來確定每個任務前部分的運行速度SL和后部分的運行速度SH,從而計算出任務在前部分的運行速度SL下的執(zhí)行時間ex.L和在后部分的運行速度SH的執(zhí)行時間ex.H,通過所求的實際的執(zhí)行時間ex.L、ex.H來調度執(zhí)行任務;這樣使本發(fā)明充分利用系統(tǒng)的空閑時間Slack_Time,降低處理器的運行速度,達到節(jié)約能耗的目的。
【專利說明】一種適用于數(shù)控系統(tǒng)周期任務的節(jié)能調度方法
【技術領域】
[0001]本發(fā)明涉及實時系統(tǒng)領域任務的實時調度,具體的說是一種適用于數(shù)控系統(tǒng)周期任務的節(jié)能調度方法。
【背景技術】
[0002]實時系統(tǒng)在數(shù)控【技術領域】和嵌入式產品的應用越來越廣泛,尤其在功能復雜、系統(tǒng)龐大的應用中顯得愈來愈重要。這就要求實時系統(tǒng)能夠提供更為高效的計算能力,以滿足無線通信、多媒體應用的要求,然而高性能的代價就是高能耗。同時,隨著制造工藝的日益精密,集成電路規(guī)模的飛速發(fā)展,導致了系統(tǒng)功耗的急劇上升,高功耗帶來的高溫會導致系統(tǒng)發(fā)生故障的可能性增加,降低整個系統(tǒng)的可靠性;因此,能耗已成為實時系統(tǒng)設計的瓶頸。
[0003]動態(tài)電壓調節(jié)(DVS)技術是一種有效的低功耗和能耗優(yōu)化技術。其主要思想是針對不同的系統(tǒng)負載,在滿足系統(tǒng)實時性的前提下,降低CPU的工作電壓和時鐘頻率。
[0004]現(xiàn)有的低功耗調度算法采用DVS技術,在滿足系統(tǒng)實時性的前提下,通過回收系統(tǒng)的空閑時間,利用空閑時間降低處理器的運行電壓和時鐘頻率,以降低系統(tǒng)能耗;但其假設處理器提供連續(xù)的頻率和電壓,而實際的商用處理器只提供離散的頻率和電壓,為了確保任務不錯過截止期限,其選擇的實際運行速度比連續(xù)頻率情況下計算出的理想速度大,這樣會造成系統(tǒng)資源的浪費。
【發(fā)明內容】
[0005]針對現(xiàn)有低功耗調度算法的不足之處,本發(fā)明提出了一種適用于數(shù)控系統(tǒng)周期任務的節(jié)能調度方法,該算法能夠有效地利用系統(tǒng)的空閑時間,降低系統(tǒng)的能耗。
[0006]為實現(xiàn)上述算法,本發(fā)明采用以下的技術方案:
[0007]—種適用于數(shù)控系統(tǒng)周期任務的節(jié)能調度方法,其特征在于:包括如下步驟:
[0008]任務集調度之前,計算數(shù)控系統(tǒng)中任務Ti在離線狀態(tài)下的最佳運行速度S ;
[0009]再計算任務Ti在最佳運行速度5下的執(zhí)行時間,根據最早截止期限優(yōu)先原則對任務集進行排序;
[0010]當某個任務完成時,回收該任務空閑時間Slack_Time,利用該空閑時間Slack_Time計算出該任務的在處理器規(guī)定連續(xù)電壓下的運行速度S ;
[0011]根據運行速度S,來確定每個任務前部分的運行速度和后部分的運行速度SH,最后計算出任務在前部分的運行速度下,任務的執(zhí)行時間exi和在后部分的運行速度Sh任務的執(zhí)行時間ex.H,最后以所求的實際的執(zhí)行時間ed、ex.H來調度執(zhí)行任務。
[0012]最早截止期限優(yōu)先原則:截止期限越短,優(yōu)先級越高,當任務Ti的截止期限相同時,早到達的任務Ti優(yōu)先級高;當任務Ti的截止期限和到達時間均相同時,任務Ti系列的下標i小的有更高的優(yōu)先級。
[0013]計算各任務Ti在離線狀態(tài)下的最佳運行速度S,其計算步驟如下:η
[0014]利用執(zhí)行時間Ci與周期Pi比值之和公式,計算出系統(tǒng)的利用率Utot,再
i=l
將利用率Utot與處理器的最小速度Smin進行比較,較大者為離線狀態(tài)下的最佳運行速度S。
[0015]當某個任務完成時,回收該任務空閑時間Slack_Time,利用該空閑時間Slack_Time計算出該任務的在處理器提供連續(xù)電壓下的運行速度S,其運行速度S處理步驟如下:
[0016]建立一個數(shù)據結構α隊列來記錄提前完成的任務,α隊列為在離線狀態(tài)最佳運行速度S下的就緒隊列,記錄任務的到達時間、截止期限和剩余執(zhí)行時間;
[0017]回收該任務空閑時間Slack_Time,找出α隊列中提前完成的任務,利用每個提前完成任務的剩余執(zhí)行時間,計算出每個提前完成任務的空閑時間Slack_Time,利用總的空閑時間Slack_Time計算出運行速度S。
[0018]根據運行速度S,來確定每個任務前部分的運行速度SjP后部分的運行速度SH,其處理步驟如下:
[0019]根據運行速度S的值與處理器規(guī)定的兩個相鄰速度Stot和Slligh進行比較,當運行速度S大于Stot并S小于等于Smgh (Slow < S ( Saigh)時,來確定認為任務前部分的運行速度&即為處理器規(guī)定的速度Stot,任務后部分的運行速度Sh即為處理器規(guī)定的速度SHigh。
[0020]本發(fā)明具有以下有益效果及優(yōu)點: [0021](I)采用本發(fā)明方法,由于充分利用系統(tǒng)的空閑時間Slack_Time,降低處理器的運行速度,從而比現(xiàn)有的低功耗調度算法節(jié)約30.69%的能耗。
[0022](2)由于高功耗帶來的高溫會導致系統(tǒng)發(fā)生故障的可能性增加,會降低整個系統(tǒng)的可靠性,而本發(fā)明充分利用系統(tǒng)的空閑時間Slack_Time,降低系統(tǒng)能耗,因此提高了系統(tǒng)的可靠性。
[0023](3)降低系統(tǒng)封裝和冷卻的成本。功耗增加會顯著提高系統(tǒng)的發(fā)熱量,為了使產品能正常地散熱,廠家必定會增加對于新的封裝和冷卻技術研究的投資,因此用于封裝和冷卻設備的成本會提高。
【專利附圖】
【附圖說明】
[0024]圖1為本發(fā)明方法處理步驟流程圖;
[0025]圖2為本發(fā)明的仿真實驗結果圖。
【具體實施方式】
[0026]下面結合附圖和實施例對本發(fā)明方案作進一步詳細描述。
[0027]參見附圖1、圖2,是一種適用于數(shù)控系統(tǒng)周期任務的節(jié)能調度方法,其特征在于:包括如下步驟:
[0028]任務集調度之前,計算數(shù)控系統(tǒng)中任務Ti在離線狀態(tài)下的最佳運行速度S
[0029]再計算任務Ti在最佳運行速度^下的執(zhí)行時間,根據最早截止期限優(yōu)先原則對任務集進行排序;
[0030]當某個任務完成時,回收該任務空閑時間Slack_Time,利用該空閑時間計算出該任務的在處理器提供連續(xù)電壓下的運行速度S ;[0031]根據運行速度S,來確定每個任務前部分的運行速度和后部分的運行速度SH,最后計算出任務在前部分的運行速度下的執(zhí)行時間exi和在后部分的運行速度Sh下的執(zhí)行時間ex.H,最后以所求的實際的執(zhí)行時間ed、ex.H來調度執(zhí)行任務。
[0032]對本發(fā)明方法進一步說明:
[0033]計算出任務Ti在離線狀態(tài)任務的最佳運行速度$ ;
[0034]由公式(I)計算出系統(tǒng)的利用率Uttrt
[0035]Um = X-77(I)
?=1 1I
[0036]式中,Ci, Pi, i分別為周期任務Ti最壞情況下的執(zhí)行時間、周期、任務的標識符;n為任務的個數(shù)。
[0037]由公式(2)計算出任務Ti在離線狀態(tài)任務的最佳運行速度S
[0038]5 = rnax{5mm,f/?oi}
[0039]其中Smin是處理器規(guī)定的最小速度。
[0040]當有新任務到達時,根據最早截止期限優(yōu)先原則將新任務插入到α隊列中的相應位置中。
[0041]最早截止期限優(yōu)先原則:截止期限越短,優(yōu)先級越高,當任務Ti的截止期限相同時,早到達的任務Ti優(yōu)先級高;`當任務Ti的截止期限和到達時間均相同時,任務Ti系列的下標i小的有更高的優(yōu)先級。
[0042]當某個任務完成時,回收該任務空閑Slack_Time時間,利用該空閑時間Slack_Time計算出該任務的在處理器提供連續(xù)電壓下的運行速度S,其運行速度S處理步驟如下:
[0043]建立一個數(shù)據結構α隊列來記錄提前完成的任務,α隊列為在離線狀態(tài)最佳運行速度^下的就緒隊列,記錄任務的到達時間、截止期限和剩余執(zhí)行時間;
[0044]回收該任務空閑時間Slack_Time,找出α隊列中提前完成的任務,利用每個提前完成任務的剩余執(zhí)行時間,計算出每個提前完成任務的空閑時間Slack_Time,利用總的空閑時間Slack_Time計算出運行速度S。
[0045]由公式(3)計算出每個提前完成任務的空閑時間Slack_Time:
[0046]Slack Time = ^m^aZemAt)~wv'(O(J)
[0047]式中i為任務的標志符,屯彳分別為任務?\、ΤΧ的截止期限^叫⑴為任務Ti在時刻t的剩余執(zhí)行時間,任務的剩余執(zhí)行時間隨著任務的執(zhí)行逐漸減少;當任務完成時,任務的剩余時間為O。為任務Tx在時刻t以速度Sx運行的最壞情況下的剩余執(zhí)行時間.由公式(3)可以看出空閑時間Slack_Time是通過提前完成任務的剩余執(zhí)行時間的總和與最壞情況下的剩余執(zhí)行時間之差計算得出。
[0048]利用空閑時間Slack_Time計算出任務的運行速度S:
[0049]由公式(4)算出任務的運行速度S
[0050]S =-⑴--(4)
reU) + Siack _ Time
[0051]式中,remx(t)為任務Tx在時刻t的剩余執(zhí)行時間,Slack—Time為任務的空閑時間。當任務的運行速度S比處理器規(guī)定的最小速度Smin值小時,運行速度S等于處理器規(guī)定的最小速度smin。
[0052]根據運行速度S,來確定每個任務前部分的運行速度和后部分的運行速度SH,最后計算出任務在前部分的運行速度下的執(zhí)行時間exi和在后部分的運行速度Sh的執(zhí)行時間ex.H,其處理步驟如下:
[0053]根據運行速度S的值與處理器規(guī)定的兩個相鄰速度和Slligh進行比較,當運行速度S大于Stot并S小于等于Smgh (Slow < S ( Saigh)時,來確定認為任務前部分的運行速度&即為處理器規(guī)定的速度Stot,任務后部分的運行速度Sh即為處理器規(guī)定的速度SHigh。
[0054]在前部分的運行速度下,任務Tx的執(zhí)行時間為執(zhí)行時間exi ;在后部分的運行速度Sh下,任務Tx的執(zhí)行時間為執(zhí)行時間ex.H。
[0055]任務Tx的執(zhí)行時間滿足(5)式:
[0056]ex = exL+exH(5)
[0057]任務Tx剛到達時的執(zhí)行時間滿足(6)式:
[0058]S.ex = Sl.ex L+SH.ex H(6)
[0059]由公式(5)得知執(zhí)行時間ex,將執(zhí)行時間^代入公式(6)計算出在前部分的運行速度&下,任務Tx的執(zhí)行時間exi:
【權利要求】
1.一種適用于數(shù)控系統(tǒng)周期任務的節(jié)能調度方法,其特征在于:包括如下步驟: 任務集調度之前,計算數(shù)控系統(tǒng)中任務Ti在離線狀態(tài)下的最佳運行速度S ; 再計算任務Ti在最佳運行速度S下的執(zhí)行時間,根據最早截止期限優(yōu)先原則對任務集進行排序; 當某個任務完成時,回收該任務空閑時間Slack_Time,利用該空閑時間Slack_Time計算出該任務的在處理器提供連續(xù)電壓下的運行速度S ; 根據運行速度S,來確定每個任務前部分的運行速度和后部分的運行速度Sh;計算出任務在前部分的運行速度下的實際的執(zhí)行時間exi和在后部分的運行速度Sh的執(zhí)行時間ex.H,最后以所求的實際的執(zhí)行時間ed、ex.H來調度執(zhí)行任務。
2.按照權利I所述的一種適用于數(shù)控系統(tǒng)周期任務的節(jié)能調度方法,其特征在于:最早截止期限優(yōu)先原則:截止期限越短,優(yōu)先級越高,當任務Ti的截止期限相同時,早到達的任務Ti優(yōu)先級高;當任務Ti的截止期限和到達時間均相同時,任務Ti系列的下標i小的有更高的優(yōu)先級。
3.按照權利I所述的一種適用于數(shù)控系統(tǒng)周期任務的節(jié)能調度方法,其特征在于:計算各任務Ti在離線狀態(tài)下的最佳運行速度^,其計算步驟如下: 利用執(zhí)行時間Ci與周期Pi比值之和公式
4.按照權利I所述的一種適用于數(shù)控系統(tǒng)周期任務的節(jié)能調度方法,其特征在于:當某個任務完成時,回收該任務空閑Slack_Time時間,利用該空閑時間Slack_Time計算出該任務的在處理器提供連續(xù)電壓下的運行速度S,其運行速度S處理步驟如下: 建立一個數(shù)據結構α隊列來記錄提前完成的任務,α隊列為在離線狀態(tài)最佳運行速度下的就緒隊列,記錄任務的到達時間、截止期限和剩余執(zhí)行時間; 回收該任務空閑時間Slack_Time,找出α隊列中提前完成的任務,利用每個提前完成任務的剩余執(zhí)行時間,計算出每個提前完成任務的空閑時間Slack_Time,利用總的空閑時間Slack_Time計算出運行速度S。
5.按照權利I或4所述的一種適用于數(shù)控系統(tǒng)周期任務的節(jié)能調度方法,其特征在于:根據運行速度S,來確定每個任務前部分的運行速度和后部分的運行速度Sh,其處理步驟如下: 根據運行速度S的值與處理器規(guī)定的兩個相鄰速度Skjw和Smgh進行比較,當運行速度S大于Stot并S小于等于Slligh時,來確定認為任務前部分的運行速度&即為處理器規(guī)定的速度S^,任務后部分的運行速度Sh即為處理器規(guī)定的速度SHigh。
【文檔編號】G06F1/32GK103810043SQ201210445655
【公開日】2014年5月21日 申請日期:2012年11月9日 優(yōu)先權日:2012年11月9日
【發(fā)明者】張憶文, 郭銳鋒, 王鴻亮, 劉嫻 申請人:中國科學院沈陽計算技術研究所有限公司