基于Android移動(dòng)Sink負(fù)載預(yù)測(cè)的低功耗設(shè)計(jì)方法
【專(zhuān)利摘要】基于Android移動(dòng)Sink負(fù)載預(yù)測(cè)的低功耗設(shè)計(jì)方法屬于無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中的移動(dòng)Sink節(jié)點(diǎn)低功耗設(shè)計(jì)方法,尤其是通過(guò)CPU負(fù)載預(yù)測(cè)的低功耗設(shè)計(jì)方法;該方法通過(guò)Android的CPU驅(qū)動(dòng)程序獲取當(dāng)前CPU的負(fù)載load_cur,更新history_load[3]數(shù)組中的歷史負(fù)載值,判斷history_load[3]數(shù)組中當(dāng)前時(shí)間段的前兩個(gè)時(shí)間段CPU負(fù)載歷史值history_load[1]和history_load[2]是否相等,并分別計(jì)算當(dāng)前最優(yōu)權(quán)值αbest,再通過(guò)計(jì)算得到下一時(shí)間段的CPU負(fù)載值load_next,最后調(diào)用__cpufreq_driver_target函數(shù),根據(jù)預(yù)測(cè)的CPU負(fù)載值load_next調(diào)節(jié)CPU工作頻率;本發(fā)明基于Android移動(dòng)Sink負(fù)載預(yù)測(cè)的低功耗設(shè)計(jì)方法方法,可以實(shí)現(xiàn)權(quán)值的動(dòng)態(tài)調(diào)整,進(jìn)一步提高負(fù)載預(yù)測(cè)精度,從而選擇更合適的CPU計(jì)算頻率降低功耗。
【專(zhuān)利說(shuō)明】基于Android移動(dòng)Sink負(fù)載預(yù)測(cè)的低功耗設(shè)計(jì)方法
【技術(shù)領(lǐng)域】
[0001]基于Android移動(dòng)Sink負(fù)載預(yù)測(cè)的低功耗設(shè)計(jì)方法屬于無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中的移動(dòng)Sink節(jié)點(diǎn)低功耗設(shè)計(jì)方法,尤其是通過(guò)CPU負(fù)載預(yù)測(cè)的低功耗設(shè)計(jì)方法。
【背景技術(shù)】
[0002]目前,在CPU負(fù)載預(yù)測(cè)方面,基于Android的系統(tǒng)采用的是非常簡(jiǎn)單實(shí)用的PAST算法,然而該算法的CPU負(fù)載預(yù)測(cè)誤差比較大,從而不能根據(jù)預(yù)測(cè)的負(fù)載選擇最合適CPU工作的頻率,所以無(wú)法在保證性能的同時(shí)降低功耗;為了提高負(fù)載預(yù)測(cè)精度,權(quán)值自適應(yīng)的指數(shù)平均(Dynamic Exponential average, DEXP)算法被提出進(jìn)行CPU負(fù)載預(yù)測(cè),預(yù)測(cè)精度有所提高,但該算法預(yù)測(cè)的負(fù)載在峰值處變化比較平緩,誤差仍較大,雖然降低了功耗但是以犧牲性能為代價(jià);為了進(jìn)一步提高負(fù)載預(yù)測(cè)精度,線(xiàn)性預(yù)測(cè)(Linear Prediction, LP)算法被提了出來(lái),雖然這種算法有效地提高了負(fù)載預(yù)測(cè)精度,但是其權(quán)值是固定的,不能隨負(fù)載的變化而動(dòng)態(tài)調(diào)整,無(wú)法保證其權(quán)重是當(dāng)前最優(yōu)的。
【發(fā)明內(nèi)容】
[0003]為了解決上述問(wèn)題,本發(fā)明公開(kāi)了一種基于Android移動(dòng)Sink負(fù)載預(yù)測(cè)的低功耗設(shè)計(jì)方法,該方法可以實(shí)現(xiàn)權(quán)值的動(dòng)態(tài)調(diào)整,進(jìn)一步提高負(fù)載預(yù)測(cè)精度,從而選擇更合適的CPU計(jì)算頻率降低功耗。
[0004]本發(fā)明的目的是這樣實(shí)現(xiàn)的:
[0005]基于Android移動(dòng)Sink負(fù)載預(yù)測(cè)的低功耗設(shè)計(jì)方法,包括以下步驟:
[0006]步驟一:通過(guò)Android的CPU驅(qū)動(dòng)程序獲取當(dāng)前CPU的負(fù)載load_cur,進(jìn)入步驟-* ;
[0007]步驟二:用步驟一獲取的CPU負(fù)載load_cur更新history_load[3]數(shù)組中的歷史負(fù)載值,更新方式為把 history_load[l]賦值給 history_load[2], history_load[0]賦值給 history_load[l], load_cur 賦值給 history_load[0],使 history_load[3]數(shù)組中始終保存當(dāng)前時(shí)間段與前兩個(gè)時(shí)間段的CPU負(fù)載值,進(jìn)入步驟三;
[0008]步驟三:判斷history_load[3]數(shù)組中當(dāng)前時(shí)間段的前兩個(gè)時(shí)間段CPU負(fù)載歷史值 history_load[l]和 history_load[2]是否相等,如果:
[0009]是,通過(guò)以下公式求當(dāng)前最優(yōu)權(quán)值Cibest,
【權(quán)利要求】
1.基于Android移動(dòng)Sink負(fù)載預(yù)測(cè)的低功耗設(shè)計(jì)方法,其特征在于,包括以下步驟:步驟一:通過(guò)Android的CPU驅(qū)動(dòng)程序獲取當(dāng)前CPU的負(fù)載load_cur,進(jìn)入步驟二 ;步驟二:用步驟一獲取的CPU負(fù)載load_cur更新history_load[3]數(shù)組中的歷史負(fù)載值,更新方式為把 history_load[l]賦值給 history_load[2], history_load[0]賦值給history_load[l], load_cur 賦值給 history_load[0],使 history_load[3]數(shù)組中始終保存當(dāng)前時(shí)間段與前兩個(gè)時(shí)間段的CPU負(fù)載值,進(jìn)入步驟三; 步驟三:判斷history_load[3]數(shù)組中當(dāng)前時(shí)間段的前兩個(gè)時(shí)間段CPU負(fù)載歷史值history_load[l]和 history_load[2]是否相等,如果: 是,通過(guò)以下公式求當(dāng)前最優(yōu)權(quán)值abest,
【文檔編號(hào)】G06F1/32GK103955266SQ201410217174
【公開(kāi)日】2014年7月30日 申請(qǐng)日期:2014年5月22日 優(yōu)先權(quán)日:2014年5月22日
【發(fā)明者】景維鵬, 陳廣勝, 劉亞秋, 趙青華, 吳雙滿(mǎn), 王春曉, 李海濤, 孫洋, 陳雨佳, 胡立坤 申請(qǐng)人:東北林業(yè)大學(xué)