專利名稱:面向嵌入式系統(tǒng)低功耗實(shí)時任務(wù)參數(shù)模型調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及基于嵌入式系統(tǒng)軟件節(jié)能技術(shù)領(lǐng)域,特別是涉及一種面向嵌入式系統(tǒng)低功耗實(shí)時任務(wù)參數(shù)模型調(diào)度方法。
背景技術(shù):
在便攜式嵌入式設(shè)備電源管理領(lǐng)域,目前的困難在于既要滿足便攜式終端對電源供電的要求,又要做到占用空間小、重量輕和供電時間更長。下一代消費(fèi)類電子產(chǎn)品的電源解決方案重點(diǎn)應(yīng)該集中在硬件和軟件兩方面技術(shù),包括(1)在小巧外形尺寸下,如何實(shí)現(xiàn)所需電源性能的工藝和技術(shù),涉及熱管理、降噪、電池管理和功能整合等技術(shù);(2)動態(tài)功率管理技術(shù),它取決于CPU性能、軟件、中間件以及用戶對更換電池的時間間隔等要求;(3)動態(tài)功率管理技術(shù)對操作系統(tǒng)內(nèi)核和驅(qū)動器,以及應(yīng)用編程接口(API)對驅(qū)動器、中間件和應(yīng)用本身的影響。
現(xiàn)在嵌入式設(shè)備的功能變得越來越強(qiáng)大,功能也越來越豐富。隨著嵌入式設(shè)備功能越來越多,用戶對嵌入式設(shè)備電池的能量需求也越來越高,現(xiàn)有的鋰離子電池已經(jīng)越來越難以滿足消費(fèi)者對正常使用時間的要求。對此,業(yè)界主要采取兩種方法,一是開發(fā)具備更高能量密度的新型電池技術(shù),如燃料電池,在可以預(yù)見的5年內(nèi),電池技術(shù)不可能有很大的突破;二是在電池的能量轉(zhuǎn)換效率和節(jié)能方面下功夫。在目前新的高能電池技術(shù)(如燃料電池)仍不成熟的情況下,下一代手持設(shè)備的電源管理只能從提高電源利用率和降低功耗這二個方面著手。
如何延長電池的使用壽命,以及盡量減少電池能量的消耗已經(jīng)成為嵌入式領(lǐng)域的一個研究熱點(diǎn)?,F(xiàn)在主要集中在硬件設(shè)計和軟件優(yōu)化兩方面。其中軟件優(yōu)化方面現(xiàn)在主要包括系統(tǒng)軟件和應(yīng)用軟件兩方面。系統(tǒng)軟件主要集中在編譯器和操作系統(tǒng)內(nèi)核兩塊。
在操作系統(tǒng)領(lǐng)域,現(xiàn)在主要的電源管理方法是利用操作系統(tǒng)內(nèi)核,動態(tài)的調(diào)整系統(tǒng)處理器和總線的頻率,降低系統(tǒng)的整體能耗。而且系統(tǒng)可以通過動態(tài)頻率指令改變系統(tǒng)狀態(tài),是系統(tǒng)處于低功耗狀態(tài),以達(dá)到節(jié)能的目的。在編譯器方面,現(xiàn)在主要通過編譯器在編譯應(yīng)用程序階段,對代碼進(jìn)行優(yōu)化,使代碼盡量的緊湊以及訪問設(shè)備盡量集中,以達(dá)到節(jié)能的目的。
上面的方法中,實(shí)現(xiàn)起來都需要比較繁瑣的過程,而且沒有考慮實(shí)時性,在現(xiàn)在嵌入式系統(tǒng)領(lǐng)域的應(yīng)用存在一定的限制。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種嵌入式系統(tǒng)低功耗實(shí)時任務(wù)參數(shù)模型調(diào)度方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是1)實(shí)時任務(wù)的時間片調(diào)度當(dāng)實(shí)時任務(wù)隊(duì)列中,存在多個實(shí)時任務(wù)時,系統(tǒng)將通過時間片的方式對系統(tǒng)中的任務(wù)進(jìn)行調(diào)度,以滿足各個實(shí)時任務(wù)的需要;時間片調(diào)度的方式是將處理器的運(yùn)行時間劃分等分的時間片,當(dāng)任務(wù)在處理器上運(yùn)行時,只能運(yùn)行一個時間片長度,當(dāng)時間片用完后,被強(qiáng)制停止執(zhí)行,換下一個任務(wù)執(zhí)行;2)任務(wù)還需要執(zhí)行時間計算在實(shí)時系統(tǒng)中,一個實(shí)時任務(wù)它有以下幾個參數(shù)是確定任務(wù)的開始時間、實(shí)時任務(wù)的最終期限、以及任務(wù)的運(yùn)行時間;在本發(fā)明中,任務(wù)的運(yùn)行時間代表了任務(wù)還需要執(zhí)行的時間,它隨著任務(wù)的執(zhí)行,逐漸減小,每次減少的額度和時間片相等;3)處理器新的運(yùn)行頻率計算每次調(diào)度結(jié)束之后,如果實(shí)時任務(wù)隊(duì)列中還有任務(wù),系統(tǒng)將計算當(dāng)前情況下面最優(yōu)的處理器頻率,計算公式如下所示f=fmax·Σi=1maxTi.p/(Ti.e-now)]]>其中fmax是處理器的最高執(zhí)行數(shù)度,max是系統(tǒng)中的實(shí)時任務(wù)數(shù),Ti是第i個實(shí)時任務(wù),Ti.p是第i個實(shí)時任務(wù)還要執(zhí)行的時間,Ti.e是第i個實(shí)時任務(wù)的最終期限,Now是系統(tǒng)的現(xiàn)在時間;4)新任務(wù)的選擇計算出新的處理執(zhí)行頻率后,系統(tǒng)將選擇下個獲得執(zhí)行的任務(wù),下一個任務(wù)的選擇通過計算處理器的頻率比獲得,頻率比最大的任務(wù)獲得執(zhí)行的權(quán)利,頻率比的計算公式如下所示
fp=T.p/(T.e-now)其中fp是任務(wù)的頻率比,T是實(shí)時任務(wù)的控制字,T.p是實(shí)時任務(wù)還要執(zhí)行的時間,T.e是實(shí)時任務(wù)的最終期限,Now是系統(tǒng)的現(xiàn)在時間;5)處理器頻率設(shè)置調(diào)度系統(tǒng)根據(jù)總實(shí)時任務(wù)的頻率比計算出一個新的頻率值,當(dāng)新的頻率值大于現(xiàn)在的頻率時,將處理器的頻率設(shè)置成新計算出來的頻率,否則不變。
本發(fā)明與背景技術(shù)相比,具有的有益的效果是本發(fā)明將操作系統(tǒng)的實(shí)時性和低功耗調(diào)度工作相結(jié)合,利用現(xiàn)有操作系統(tǒng)的實(shí)時性來保證任務(wù)的實(shí)時性要求。本發(fā)明通過將低功耗調(diào)度方法融入到實(shí)時的任務(wù)調(diào)度中,在保證認(rèn)識實(shí)時性的同時,達(dá)到低功耗的目的,延長系統(tǒng)電池的使用時間。
(1)實(shí)時性應(yīng)用程序在系統(tǒng)中運(yùn)行時,調(diào)度算法按照時間片輪換的方法進(jìn)行調(diào)度,保證了系統(tǒng)的實(shí)時性。
(2)穩(wěn)定性操作系統(tǒng)將動態(tài)調(diào)整系統(tǒng)狀態(tài)的權(quán)利掌握在自己手中,而不是下放給應(yīng)用程序,這樣系統(tǒng)就能在兼顧全局的情況下動態(tài)調(diào)整系統(tǒng)的狀態(tài),保證系統(tǒng)的穩(wěn)定。
(3)低功耗性本發(fā)明利用動態(tài)調(diào)頻調(diào)壓技術(shù),通過分析系統(tǒng)的負(fù)載,設(shè)置系統(tǒng)的處理器運(yùn)行頻率和內(nèi)核電壓,降低了系統(tǒng)的功耗。
圖1舉例說明本發(fā)明新任務(wù)的選擇方式;圖2是整個調(diào)度系統(tǒng)工作的流程圖。
具體實(shí)施例方式
在實(shí)施嵌入式系統(tǒng)低功耗實(shí)時任務(wù)參數(shù)模型調(diào)度方法時,操作系統(tǒng)在調(diào)度過程中,考慮了實(shí)時和節(jié)能兩個約束。
嵌入式系統(tǒng)低功耗實(shí)時任務(wù)調(diào)度的簡化方法具體實(shí)現(xiàn)流程如下。
1)實(shí)時任務(wù)的時間片調(diào)度當(dāng)實(shí)時任務(wù)隊(duì)列中,存在多個實(shí)時任務(wù)時,系統(tǒng)將通過時間片的方式對系統(tǒng)中的任務(wù)進(jìn)行調(diào)的,以滿足各個實(shí)時任務(wù)的需要。
時間片調(diào)度的方式是將處理器的運(yùn)行時間劃分等分的時間片,當(dāng)任務(wù)在處理器上運(yùn)行時,只能運(yùn)行一個時間片長度,當(dāng)時間片用完后,被強(qiáng)制停止執(zhí)行,換下一個任務(wù)執(zhí)行。
當(dāng)處理器上的任務(wù)被調(diào)度出去后,調(diào)度器選擇一個新的任務(wù),并分配時間片給這個新的任務(wù)。在這個時間片時間內(nèi),這個任務(wù)將占有處理器的資源,直到時間片用完或者任務(wù)完成。當(dāng)任務(wù)的時間片用完后,任務(wù)將被暫時剝奪使用處理器的權(quán)利,這個任務(wù)將被放到運(yùn)行隊(duì)列的末尾,等待下一次被調(diào)度到處理器上運(yùn)行。同時,另外一個任務(wù)將被調(diào)度到處理器上執(zhí)行。時間片的輪換保證了所有任務(wù)都有運(yùn)行的機(jī)會。
2)任務(wù)還需要執(zhí)行時間計算在實(shí)時系統(tǒng)中,一個實(shí)時任務(wù)它有以下幾個參數(shù)是確定任務(wù)的開始時間、實(shí)時任務(wù)的最終期限、以及任務(wù)的運(yùn)行時間。
在本發(fā)明中,任務(wù)的運(yùn)行時間代表了任務(wù)還需要執(zhí)行的時間,它隨著任務(wù)的執(zhí)行,逐漸減小,每次減少的額度和時間片相等。這樣做可以實(shí)時的反應(yīng)系統(tǒng)中任務(wù)對處理器的需求。
任務(wù)還需要執(zhí)行時間的計算方式是每次分配給當(dāng)前任務(wù)的時間片用完后,用當(dāng)前任務(wù)控制字中的還需執(zhí)行時間減去時間片的值。
3)處理器新的運(yùn)行頻率計算每次調(diào)度結(jié)束之后,如果實(shí)時任務(wù)隊(duì)列中還有任務(wù),系統(tǒng)將計算當(dāng)前情況下面最優(yōu)的處理器頻率,計算公式如下所示f=fmax·Σi=1maxTi.p/(Ti.e-now)]]>其中fmax是處理器的最高執(zhí)行數(shù)度,max是系統(tǒng)中的實(shí)時任務(wù)數(shù),Ti是第i個實(shí)時任務(wù),Ti.p是第i個實(shí)時任務(wù)還要執(zhí)行的時間,Ti.e是第i個實(shí)時任務(wù)的最終期限,Now是系統(tǒng)的現(xiàn)在時間;本計算方法首先通過公式 計算了系統(tǒng)的負(fù)載情況,然后系統(tǒng)根據(jù)負(fù)載的情況計算出能夠滿足各個任務(wù)實(shí)時性要求的最低處理器頻率。
4)新任務(wù)的選擇計算出新的處理執(zhí)行頻率后,系統(tǒng)將選擇下個獲得執(zhí)行的任務(wù),下一個任務(wù)的選擇通過計算處理器的頻率比獲得,頻率比最大的任務(wù)獲得執(zhí)行的權(quán)利,頻率比的計算公式如下所示
fp=T.p/(T.e-now)其中fp是任務(wù)的頻率比,T是實(shí)時任務(wù)的控制字,T.p是實(shí)時任務(wù)還要執(zhí)行的時間,T.e是實(shí)時任務(wù)的最終期限,Now是系統(tǒng)的現(xiàn)在時間。
fp融和了任務(wù)的很多特性,可以有效地反映任務(wù)的急迫性,重要性和執(zhí)行的時間長度。fp越大,代表著這個任務(wù)的急迫性越強(qiáng),必須得優(yōu)先考慮。
如果在等待隊(duì)列里依次選擇任務(wù)去執(zhí)行,那么部分緊急的任務(wù)可能就會因?yàn)槲幢环值綍r間片的原因而未完成實(shí)時性的要求。如圖1所示,圖1a是實(shí)時任務(wù)T1的頻率比,圖1b是實(shí)時任務(wù)T2的頻率比。當(dāng)實(shí)時任務(wù)T2到來時,如果處理器全速運(yùn)行實(shí)時任務(wù)T2,那么實(shí)時任務(wù)T2將在期限內(nèi)完成,因?yàn)橛猩厦娴挠嬎惴椒ㄗ鞅WC,那么在實(shí)時任務(wù)T2結(jié)束后,處理器依然將全速運(yùn)行實(shí)時任務(wù)T1也在期限內(nèi)完成。但是由于分時以后實(shí)時任務(wù)T2開始,到實(shí)時任務(wù)T2結(jié)束這一段時間內(nèi),雖然處理器以全速運(yùn)行,但是由于實(shí)時任務(wù)T1,也被分到了一定時間,那么實(shí)時任務(wù)T2必將超過期限。當(dāng)然這是個比較極端的例子,但是類似的情況確實(shí)存在的。
5)處理器頻率設(shè)置調(diào)度系統(tǒng)根據(jù)總實(shí)時任務(wù)的頻率比計算出一個新的頻率值,當(dāng)新的頻率值大于現(xiàn)在的頻率時,將處理器的頻率設(shè)置成新計算出來的頻率,否則不變。
處理器頻率的設(shè)置是通過動態(tài)調(diào)頻調(diào)壓DVFS技術(shù)完成的。DVFS技術(shù)主要解決了一個頻率與內(nèi)核電壓同步調(diào)整的協(xié)同和模塊化問題。使用這個技術(shù)的前提是,處理器的負(fù)載一直在變,當(dāng)處理器的利用率較低時,可以通過DVFS技術(shù)來降低處理器的頻率,但是不能因此而影響性能。舉個例子,現(xiàn)在系統(tǒng)中只有一個任務(wù),它的執(zhí)行時間需要10個時鐘周期,而它的期限是100個時鐘周期那么可以將處理器的速度調(diào)整到1/10周期每秒的速度。
調(diào)度系統(tǒng)的整體流程圖如圖2所示。
權(quán)利要求
1.一種面向嵌入式系統(tǒng)低功耗實(shí)時任務(wù)參數(shù)模型調(diào)度方法,其特征在于1)實(shí)時任務(wù)的時間片調(diào)度當(dāng)實(shí)時任務(wù)隊(duì)列中,存在多個實(shí)時任務(wù)時,系統(tǒng)將通過時間片的方式對系統(tǒng)中的任務(wù)進(jìn)行調(diào)度,以滿足各個實(shí)時任務(wù)的需要;時間片調(diào)度的方式是將處理器的運(yùn)行時間劃分等分的時間片,當(dāng)任務(wù)在處理器上運(yùn)行時,只能運(yùn)行一個時間片長度,當(dāng)時間片用完后,被強(qiáng)制停止執(zhí)行,換下一個任務(wù)執(zhí)行;2)任務(wù)還需要執(zhí)行時間計算在實(shí)時系統(tǒng)中,一個實(shí)時任務(wù)它有以下幾個參數(shù)是確定任務(wù)的開始時間、實(shí)時任務(wù)的最終期限、以及任務(wù)的運(yùn)行時間;在本發(fā)明中,任務(wù)的運(yùn)行時間代表了任務(wù)還需要執(zhí)行的時間,它隨著任務(wù)的執(zhí)行,逐漸減小,每次減少的額度和時間片相等;3)處理器新的運(yùn)行頻率計算每次調(diào)度結(jié)束之后,如果實(shí)時任務(wù)隊(duì)列中還有任務(wù),系統(tǒng)將計算當(dāng)前情況下面最優(yōu)的處理器頻率,計算公式如下所示f=fmax·Σi=1maxTi.p/(Ti.e-now)]]>其中fmax是處理器的最高執(zhí)行數(shù)度,max是系統(tǒng)中的實(shí)時任務(wù)數(shù),Ti是第i個實(shí)時任務(wù),Ti.p是第i個實(shí)時任務(wù)還要執(zhí)行的時間,Ti.e是第i個實(shí)時任務(wù)的最終期限,Now是系統(tǒng)的現(xiàn)在時間;4)新任務(wù)的選擇計算出新的處理執(zhí)行頻率后,系統(tǒng)將選擇下個獲得執(zhí)行的任務(wù),下一個任務(wù)的選擇通過計算處理器的頻率比獲得,頻率比最大的任務(wù)獲得執(zhí)行的權(quán)利,頻率比的計算公式如下所示fp=T.p/(T.e-now)其中fp是任務(wù)的頻率比,T是實(shí)時任務(wù)的控制字,T.p是實(shí)時任務(wù)還要執(zhí)行的時間,T.e是實(shí)時任務(wù)的最終期限,Now是系統(tǒng)的現(xiàn)在時間;5)處理器頻率設(shè)置調(diào)度系統(tǒng)根據(jù)總實(shí)時任務(wù)的頻率比計算出一個新的頻率值,當(dāng)新的頻率值大于現(xiàn)在的頻率時,將處理器的頻率設(shè)置成新計算出來的頻率,否則不變。
全文摘要
本發(fā)明公開了一種面向嵌入式系統(tǒng)低功耗實(shí)時任務(wù)參數(shù)模型調(diào)度方法。本發(fā)明提供了一種新的方法用來建模、解決并進(jìn)行優(yōu)化嵌入式系統(tǒng)低功耗實(shí)時任務(wù)調(diào)度問題。本發(fā)明通過利用實(shí)時動態(tài)調(diào)頻調(diào)壓技術(shù)和實(shí)時時間片輪轉(zhuǎn)模型,達(dá)到低功耗實(shí)時調(diào)度。該發(fā)明基于一個實(shí)用時間片輪轉(zhuǎn)的任務(wù)模型,通過在模型中加入任務(wù)的實(shí)時性限制來保證任務(wù)地實(shí)時性。同時任務(wù)在執(zhí)行過程中,操作系統(tǒng)使用動態(tài)調(diào)頻調(diào)壓技術(shù),實(shí)時地調(diào)整處理器地狀態(tài),以達(dá)到節(jié)能地目的。本發(fā)明根據(jù)系統(tǒng)的負(fù)載情況,動態(tài)設(shè)置系統(tǒng)處理器的運(yùn)行頻率和內(nèi)核電壓,改變系統(tǒng)的能耗。本發(fā)明同時根據(jù)系統(tǒng)中各個任務(wù)的輕重緩急,將不同的任務(wù)放到處理器上執(zhí)行,保證任務(wù)的實(shí)時性。
文檔編號G06F9/46GK1945498SQ200610053818
公開日2007年4月11日 申請日期2006年10月12日 優(yōu)先權(quán)日2006年10月12日
發(fā)明者陳天洲, 黃江偉, 鄭臻煒, 錢杰, 梁曉 申請人:浙江大學(xué)