(湖南大學 計算機與通信學院, 長沙 410082)
摘 要:
對于能量有限的傳感器網絡,在計算復雜度較高的應用中,節省CPU的能耗具有重要意義。針對以事件為驅動的無線傳感器網絡的任務模式,提出一種基于零散任務模型的自適應DVS算法——ADVS。ADVS算法根據CPU的任務量實時調整工作頻率和電壓,能在很大程度上降低CPU能耗的同時,保證任務的實時性要求。理論分析和實驗結果表明,ADVS算法的實際節能效果接近理論分析值的80%左右,可在很大程度上延長節點的生命周期。
關鍵詞:無線傳感器網絡; 動態電壓調節算法; 自適應; 能量有效性
中圖分類號:TP212.5 文獻標志碼:A
文章編號:10013695(2008)12380004
Adaptive dynamic voltage scaling algorithm for wireless sensor networks
ZHANG Chenggang, XU Cheng
(College of Computer Communication, Hunan University, Changsha 410082, China)
Abstract:It is significant to lower energy consumption from CPU for applications with high computing cost in energyconstrained wireless sensor networks. This paper proposed a scattered task model based adaptive DVS (dynamic voltage scaling) algorithm, ADVS, in the presence of the task characteristic in eventdriven wireless sensor networks. ADVS algorithm could scale the working frequency and voltage dynamically according to the workload. As a result, it could decrease the CPU energy consumption meanwhile meeting the realtime requirements of tasks. Theoretical and experimental results show that the ADVS algorithm can achieve 80% or so theoretical energy savings so that prolong the lifetime of sensor nodes.
Key words:wireless sensor networks; dynamic voltage scaling algorithm; adaptive; energy efficiency
0 引言
無線傳感器網絡的廣泛應用前景,如戰場監視、環境和交通監測、災難救助等,吸引了眾多研究者進行研究[1~4]。由于節點的能量有限,節約能耗通常成為無線傳感器網絡設計的首要目標。針對計算復雜度較高的應用(如戰場監視中的圖像采集與傳輸),研究如何節約CPU的能耗,對于降低系統整體能耗,延長網絡生存周期,具有重要意義。
盡管針對無線傳感器網絡的能量有效性方面的研究比較多,如MAC協議和各種喚醒/睡眠調度算法等[5~9]。但主要是集中研究如何調度射頻模塊,使節點處于休眠狀態,從而到達節能的目的。而目前針對節點CPU的節能機制的研究國內外尚不多見[10~13]。動態電壓調節技術(dynamic voltage scaling, DVS)可以通過實時調整CPU正常工作時的電壓和頻率,從而在滿足實時性要求的前提下,降低系統無用能耗,盡可能提高能量有效性[14,15]。
而文獻[10~13]的方法主要是采用傳統DVS方法,對CPU的任務量進行預測,然后進行相應的頻率和電壓調整。與之不同,本文針對具有較高計算復雜度的應用,提出一種適合無線傳感器網絡的自適應的DVS算法——ADVS(adaptiveDVS),以降低CPU的能耗。該算法首先將無線傳感器網絡中節點以事件為驅動的工作模式歸結為實時系統中的零散任務模型[16],然后結合EDF調度算法[17],根據CPU的工作負載,由頻率調節因子α對CPU進行實時電壓和頻率調節。理論分析證明ADVS算法能在降低能耗的同時保證任務的實時性要求。最后,基于IMOTE2(www.xbow.com.cn/wsn/pdf/IMote2.pdf)節點的XSCALE處理器的性能參數對ADVS算法進行模擬實驗。實驗結果表明,模擬結果獲得的節能效果基本接近理論分析值的80%左右。
1 問題描述
在計算復雜度較高的應用中(如目標監控、災難分析報警),CPU的開銷往往不可忽略[18],且系統具有一定的實時性要求。基于事件驅動的無線傳感器網絡往往在事件發生時有大量任務要處理,而在其他時間段CPU存在較多的空余時間。本文將這種任務模式歸結為零散任務模型[16]。其中,任務(task)表示一段具體的執行代碼,每個任務的一次具體執行稱為工作(job)。設零散任務集合T={T1,T2,…,Tn}中的單個任務具有三個屬性:p表示同一個任務的兩次連續工作的最小時間間隔;e表示一次工作的最差執行時間,通常p>e;d表示一次工作的最長期限,本文設d=p。因此,任務Ti可用(p, e)來表示。在以上模式中,當CPU工作在高頻率時,由于單個任務通常存在松弛時間(如某任務要求在(0,t1)內完成,但在較高頻率下,任務在t2即可完成(t2 本文研究適合傳感器網絡工作模式的DVS技術,通過適當延長處理時間,在保證實時性要求的前提下,控制CPU工作電壓和頻率來提高能量有效性。 2 ADVS算法 本文提出的ADVS算法屬于任務間的調度算法,基于單個工作進行CPU的電壓和頻率調整。由于頻率和電壓成正比,ADVS算法通過頻率來表示電壓的調整。 定義 1 頻率調節因子α定義為當前調整的頻率與CPU最大頻率的比值,α=fnew/fmax ,則α≤1。 定義 2 空閑狀態下的調節因子αidle,表示無工作狀態下的調節因子的最小值。實際中,由于需要支持節點的喚醒和一些時間操作,節點的CPU頻率不可能為0。為便于分析,本文假設αidle→0。此條件將在實驗中去除。 定義 3 延遲的任務集合TD,定義為任務集T={T1,T2,…,Tn}的一個子集,該子集中的任務的最后一次工作至少在pi前發生,即在任何時間t,TD={Ti|Ti∈T∧(t≥ri+pi)}。其中:ri為任務Ti的最后一次工作的發生時間,或當Ti從未發生時為- ∞。 定義 4 CPU的利用率定義為U=∑ni=1ei/pi。 ADVS的核心思想是:根據工作負載,通過頻率調節因子α對CPU頻率和電壓進行自適應調整。ADVS算法的詳細描述如圖1所示。初始狀態下,設定TD=T,且CPU頻率設為αidle。當某個任務Ti的工作發生時,ADVS提高α為(α+e/pi),并將Ti從TD刪除;若任務Ti在最小發生間隔pi結束時沒有工作發生,則ADVS將降低α為(α-ei/pi),并將Ti添加到TD。若當前沒有工作執行,則設α=αidle,即CPU轉入睡眠或空閑狀態。ADVS算法如下: Algorithm: ADVS() set α←αidle; TD←T while (true){ sleep when (no task is executing) if (a job of Ti occurs and T∈TD) then α←α+ei/pi; TD←TD-{Ti} else if (TiTD and curent_time≥ri+pi) α←α-ei/pi; TD←TD+{Ti} else α←αidle; TD←T} 因此,ADVS算法中的調節因子α的值依賴于前一次的值。由于α隨時間變化,設αn表示第n次調整后的α值。下式表示αn與時間t的關系。 αn=αidle, t=0 or no taks is executing αn-1-ei/pi, t≥ri+pi and Ti TD αn-1+ei/pi, a job of Ti occurs at t and Ti∈TD no change, otherwise (1) 下面舉例說明ADVS算法如何與EDF調度算法相結合。EDF(earliest deadline first)算法的主要原理是讓完成期限最早的任務最先運行。 考慮任務集T1=(4,1),T2=(5,1),T1=(10,3),則未使用ADVS算法前的CPU利用率U=0.75。若僅使用EDF對任務進行調度時的任務運行情況如圖2所示。設α=1,用J(i, j)表示任務Ti的第j個工作。其中:T1在時間點(0, 4, 10)執行;T2在時間點(0, 6, 11)執行;T3在時間點8執行。從圖1可以發現,不少任務均存在一定的松弛時間。其中,在[2, 4)、 [5, 6)、 [7, 8)三個時間段,CPU處于空閑狀態。 當使用ADVS算法時,各個任務的執行時間段將發生改變。表1詳細列出了分別在未使用和使用ADVS情況下的任務的執行情況。表1中ri,j表示工作的發生時間,Di,j表示工作的最晚完成期限。未使用ADVS算法時,CPU處于滿負荷工作狀態,即α=1,但是CPU存在空閑時間。而當使用ADVS算法時,α最大值為0.75,但所有任務仍然均能在完成期限之前完成(這將在下一節進行證明)。表1中用黑體表示的為頻率調節因子α發生改變的時間點。α均在每個時間段開始時變化,即當某個工作的期限到來或新的工作發生時。而在時間點4時,由于既有新的工作J(1,2)發生,又有J(1,1)的期限到達,故α的值不變。同樣,時間點11時,既有J(2,3)發生又有J(2,2)到期。此外,根據EDF算法,由于工作J(3,1)期限比在時間點10發生的J(3,1)的期限要晚,故在時間點10被打斷。 根據表1,得到最后的ADVS算法調整后的任務執行情況,如圖2所示。可以發現此時的CPU利用率為1,任務集在[0, 17.987)內全部完成。 表 1 未使用和使用ADVS算法時的任務執行情況對比 工作ri,jDi,j EDF 時間段α工作量/% EDF ADVS 時間段α工作量/% J(1,1)04[0, 1)1100[0, 2.22)0.45100 J(2,1)05[1, 3)1100[2.22, 4.44)0.45100 J(1,2)48[4, 5)1100[4.44, 5)0.4525.2 [5, 6)0.2525 [6, 7.11)0.4549.8 J(2,2)611[6, 7)1100[7.11, 8)0.4540 [8, 9.2)0.560 J(3,1)818[8, 10)166.67[9.2, 10)0.513.33 [12,13)133.33[12.66,14)0.7533.5 [14,16)0.533.3 [16,17.987)0.319.87 J(1,3)1014[10,11)1100[10,11.33)0.75100 J(2,3)1116[11,12)1100[11.33,12.66)0.75100 3 算法性能分析 3. 1 實時性分析 雖然ADVS算法調整了任務的執行時間,但其仍然能保證各個任務的實時性要求,在期限前完成任務。本節在證明實時性之前給出相關的定義。 定義 5 調節執行時間esi定義為使用ADVS算法時,調節因子為α時任務Ti實際執行時間。在α為固定常量的任意時間段內,任務Ti的調節執行時間為esi=ei/α。 定義 6 調節利用率Usψ定義為α為固定常量的任意時間段ψ內的CPU實際利用率,Usψ=∑ni=1,TiTDesi/pi。 定義 7 調節因子穩定間隔ψi定義為兩個連續的不同調節因子αi與αi+1之間的時間段。 引理 1 若U=∑ni=1ei/pi≤1,當使用ADVS算法時,若任意任務Ti均以最大頻率發生,即發生間隔為pi,則Usψ≡1。 證明 設ψs={ψ1,ψ2,…,ψm}為上次空閑結束到下一次CPU空閑時間段內的所有調節因子穩定間隔的集合。若沒有空閑時間,則ψs為所有任務的執行時間之和,并設αs={α1,α2,…,αm}為ψs中相應穩定間隔對應的調節因子的集合。則穩定間隔ψj (1≤j≤m)期間,Usψj=∑ni=1,TiTDesi/pi。其中:esi=ei/αsj,根據算法本身的性質,αsj=∑ni=1,TiTDei/pi。代入Usψj可得Usψj=∑ni=1,TiTDesi/pi=∑ni=1,TiTDei/αsjpi=1/αsj∑ni=1,TiTDesi/pi=1,進而在整個ψs階段的CPU調整利用率為 Usψ=∑mj=1ψsj/∑mj=1ψsj#8226;Usψj=1/∑mj=1ψsj∑mj=1ψsj#8226;Usψj(所以USψj=1)≡1 引理1解析圖2中為何沒有CPU空閑的原因,直觀上,U=∑ni=1ei/pi≤1是保證ADVS可行性的充要條件,但在證明之前,下面還需要引入新的定義。 定義 8 未發生的工作集合Wψ包含時間段ψ內的所有在最小發生時間間隔pi內一直沒有發生的所有任務的工作。 引理 2 設T={T1,T2,…,Tn}為滿足pi=di的零散任務集合;設J={J(1,1),J(1,2),…,J(1,m1),…,J(n,1),J(n,2),…,J(n,mn)}為在時間段ψ內發生的工作集合;設Δδ={δ(1,0),δ(1,1),…,δ(1,m1),…,δ(n,0),δ(n,1),…,δ(n,mn)}為時間段ψ內相應的兩個連續的工作發生時間間隔的集合,δ(i,j)=ri,j+1-ri,j,δ(i,j)≥pi;δ(i,0)對應時間段ψ開始時刻與發生時的時間段,δ(i,mi)對應J(i,mi)發生時刻與時間段ψ結束時的時間段。時間段ψ內未發生工作數量為 |Wφ|=∑ni=1∑mij=0(「δ(i,j)/pi-1) (2) 證明 考慮開放時間邊界,任務Ti在δ(i,j)內未發生的工作數量為(「δ(i,j)/pi-1),故所有任務在時間段ψ內的未發生工作數量如式(2)所示。 定義 9 時間段[t1,t2)的CPU有效工作量ρ定義為ρ=α(t2-t1)。其中:α在[t1,t2)內為固定常量。 定義10 任務Ti(pi,ei)的一個頻率調整持續時間,ω定義為時間段[t1,t2),t1時由于Ti的一個工作使得CPU頻率升高ei/pi,t2時因未發生Ti的工作CPU頻率降低ei/pi。 引理3 根據定義10,設Ti (pi,ei)的工作J(i,j)發生在t0,此時α增加ei/pi。若其連續以最小間隔產生工作直到t1發生J(i,j+k);t2時無Ti的工作發生,α減少 ei/pi。易知(t1-t0)為pi的整數倍,且(t2-t1)=pi,故頻率調整持續時間ω=Mi×pi,Mi為工作發生次數。根據引理2,時間段ψ內Ti發生的工作數為 Mi=Ti工作發生量大值-未發生工作數= [ψ/pi]-∑mij=0(「δ(i,j)/pi-1) (3) 設ψs={ψ1,ψ2,…,ψm}為某時間段ψ內的穩定間隔集合。αs={α1,α2,…,αm}為ψs相應穩定間隔對應的調節因子的集合。Δω={ω(1,0), ω(1,1),…,ω(1,k1),…, ω(n,0), ω(n,1),…,ω(n,kn)}為各個任務相應的頻率調整持續時間集合,ω(i,j)表示任務Ti的第j個頻率調整持續時間。根據引理4可以推出ρ表示如式(4)所示。其中:Δαi,j表示J(i,j)引起的α增值。 ρ=∑mi=1αiψi=∑ni=1∑kij=1Δαi,jω(i,j)= ∑ni=1ei/pi∑kij=1ω(i,j)=∑niei/pi#8226;Mi#8226;pi= ∑niMiei=∑ni=1(「ψ/pi-∑mij=0(「δ(i,j)/pi-1))ei (4) 定理1 設T={T1,T2,…,Tn}為滿足pi=di的零散任務集合,當且僅當U=ni=1ei/pi≤1,基于EDF算法,ADVS算法將保證任務的實時性要求。 證明 首先考慮必要性,即當U>1時,根據文獻[17],EDF將不具有可行性,故ADVS算法無法與EDF結合。然后證明充分性,假設U≤1時,時間段[t0,t1)內基于EDF的ADVS算法對任務進行調整,t0為CPU最后一次空閑時段的結束,存在工作J(i,j)未在其任務期限t1前完成任務。設時間段ψ內的需要完成的工作量為ρ*。因J(i,j)未在期限td前完成,根據式(4)可得 ρ*=∑ni=1((t1-t0)/pi」-∑mij=0(「δ(i,j)/pi-1))ei 設正常完成時的有效工作量為ρ,則 ρ<ρ* ∑ni=1(「(t1-t0)/pi-∑mij=0(「δ(i,j)/pi-1))ei< ∑ni=1((t1-t0)/pi」-∑mij=0(「δ(i,j)/pi-1))ei 0<∑ni=1((t1-t0)/pi」-「(t1-t0)/pi) 由于x∈R,x>0,x」-「x≤0,上式不成立,則不存在未在期限t1前完成的工作J(i,j)。因此ADVS算法可保證所有工作均在期限前完成。 3. 2 節能效果 根據CMOS芯片的能耗模型[19],CPU功率為 PCMOS=C0V2f (5) 其中:C0為常數;V為電壓。單個操作能耗為E=C1V2,且頻率為 f=(V-Vt)/(C2V) (6) 其中:C1 和C2為由物理設備決定的常量;Vt為電壓門限值(V>Vt)。若任務Ti有μi個操作要完成,根據f=μi/ui,ui為處理時間,則任務Ti所需的能耗為 θi(ui)=μiE=μiC1V2=μiC1(Vtui/(ui-μiC2))2 (7) 可見當ui>μiC2時,θi(ui)隨著處理時間ui單調遞減。由于ADVS算法延長了單個任務的執行時間,并相應降低了電壓,故降低了單個任務的能耗。下文進行具體分析。 設在長度為ψ的時間段[t0,t1)內,ADVS算法在t1完成所有任務(則不使用ADVS算法時CPU可在t1前完成所有任務),設ψs={ψ1,ψ2,…,ψm}為該時間段內的穩定間隔集合。αs={α1,α2,…,αm}為ψs中相應穩定間隔對應的調節因子的集合。設未使用和使用ADVS算法時的CPU能耗分別為Emax、EADVS,則有 Emax=Pmax(t1-t0), EADVS=∑mi=1Pi×ψi (8) 其中:Pi表示時間段ψi的功率。與α相對應,設電壓調節因子β=V/Vmax,可由式(6)得出 α=(βVmax-Vt)/(β(Vmax-Vt)) (9) 設βs={β1,β2,…,βm}為相應的電壓調節因子集合。結合式(5),故ADVS算法的規則化后的能量節省率為 λ=(Emax-EADVS)/Emax=(Pmaxψ-∑mi=1Pi#8226;ψi)/Pmaxψ= [ψC0fmaxV2max-∑mi=1C0αifmax(βiVmax)2#8226;ψi]/ψC0fmaxV2max=(10) 1-1/ψ∑mi=1αiβ2iψi 4 實驗與評估 本文基于OMNET++[20]模擬ADVS和EDF算法。模擬程序主要包括CPU時鐘發生模塊、任務調度模塊和能耗統計模塊。實驗參數參照IMOTE2節點的PXA271 XScale處理器。工作頻率為13~416 MHz,最低工作電壓為0.85 V,即αidle=αmin=13/416=0.031。實驗模擬監控應用,所定義的零散任務集合為T={T1(采樣),T2(目標確認),T3(事件觸發),T4(接收消息),T5(數據融合),T6(發送消息)}。各任務具體的信息如表2所示。其中t表示所模擬的單位時間。由表2可見Umax=0.380 8<1,故ADVS算法是可行的。實驗過程中,模擬隨機的事件,然后依次觸發相應的任務。每次實驗進行五次,取平均值為最后結果。 圖4(a)(b)分別顯示了模擬500和1 000個事件時的節能效果。X軸表示CPU相對利用率=(CPU實際利用率平均值)/Umax,Y軸表示規則化的節能效果。理論分析值由式(10)求出,ψ為10個任務完成時間。實際結果與理論分析值有一定的差異,實際結果接近理論分析的80%左右。其主要原因是CPU頻率調整本身需要消耗少量的能量,且αidle≠0。圖4(b)中ADVS的節能效果比(a)好,這是由于模擬的任務比較多,ADVS的優勢越明顯的原因。總體上ADVS算法的節能效果約在40%~82%,很大程度上降低了系統能耗。 表2 任務詳細屬性 任務pieiei/pi T17.25t0.1t0.013 8 T27.25t1t0.138 T37.25t0.26t0.036 T43×7.25t1.5t0.069 T52×7.25t0.8t0.055 T63×7.25t1.5t0.069 5 結束語 本文根據無線傳感器網絡的特性,針對計算復雜度較高的應用,提出一種自適應的DVS算法ADVS。ADVS能在很大程度降低CPU能耗的同時,保證任務的實時性要求。下一步的工作將在實際節點IMOTE2上進行ADVS算法實現。 參考文獻: [1]AKVILDIZ I F. Wireless sensor networks: a survey[J]. Computer Networks, 2002,38(4): 393422. [2]任豐原,黃海寧,林闖.無線傳感器網絡[J].軟件學報, 2003,14(7):12821291. [3]李建中,李金寶,石勝飛.傳感器網絡及其數據管理的概念、問題與進展[J].軟件學報, 2003,14(10):17171727. [4]崔莉,鞠海玲,苗勇,等.無線傳感器網絡研究進展[J].計算機研究與發展, 2005,42(1):163174. [5]YE W, HEIDEMANN J, ESTRIN D. Medium access control with coordinated adaptive sleeping for wireless sensor networks[J]. IEEE/ACM Trans on Networking, 2004,12(3): 493506. [6]DAM T V, LANGENDOEN K. An adaptive energyefficient MAC protocol for wireless sensor networks[C]//Proc of ACM SenSys2003. Los Angeles: [s.n.],2003:6572. [7]POLASTRE J, HILL J, CULLER D. Versatile low power media access for wireless sensor networks[C]//Proc of ACM SenSys2004. Baltimore: [s.n.], 2004:95107. [8]ZHENG T, RADHAKRISHNAM S, SARANGAN V. PMAC: an adaptive energyefficient MAC protocol for wireless sensor networks[C]//Proc of IPDPS. Denver: [s.n.],2005. [9]YE W, SILVA F, HEIDEMANN J. UltraLow duty cycle MAC with scheduled channel polling[C]//Proc of ACM SenSys2006.Boulder: [s.n.],2006:321334. [10]SINHA A, CHANDRAKASAN A. Dynamic power management in wireless sensor networks[J]. IEEE Design Test of Computers, 2001,18(2):6274. [11]MIN R, FURRER T, CHANDRAKASAN A. Dynamic voltage scaling techniques for distributed microsensor networks[C]//Proc of VLSI2000. Orlando: [s.n.], 2000:4346. [12]陳歡,陳向東,胡黎黎,等.基于小波的DVS在無線傳感器網絡中的應用[J].計算機應用研究, 2007,24(8):262263. [13]田豐民,陳向東,張傳武.無線傳感器網絡動態功率管理方法[J].傳感器技術, 2005,24(11): 3335. [14]HONG D K, QU G, POTKONJAK M, et al. Power optimization of variablevoltage corebased systems[C]//Proc of IEEE ComputerAided Design.[S.l.]: IEEE Press, 1999:17021714. [15]ZHANG F, CHANSON S T. Processor voltage scheduling for realtime tasks with nonpreemptable sections[C]//Proc of the 23rd IEEE International Realtime Systems Symposium. Austin : [s.n.], 2002:235245. [16]MOK A K. Fundamental design problems of distributed systems for the hard realtime environment[D]. Massachusetts: [s.n.], 1983. [17]LIU C, LAVLAND J. Scheduling algorithms for multiprogramming in a hard realtime environment[J]. Journal of the ACM, 1973,20(1):4661. [18]LUO H, LIU Y, DAS S. Routing correlated data with fusion cost in wireless sensor networks[J]. IEEE Trans on Mobile Computing, 2006,5(11):16201632. [19]ISHILHARA T, YASUURA H. Voltage scheduling problem for dynamically variable voltage processors[C]//Proc of International Symposium on Low Power Electronics and Design. 1998:197202. [20]VARGA A. The OMNeT++ discrete event simulation system[C]//Proc of European Simulation Multiconference. Prague:[s.n.], 2001:319324.