国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于程序分析的低功耗無線傳感器網(wǎng)絡(luò)優(yōu)化方法

      文檔序號:7776292閱讀:255來源:國知局
      基于程序分析的低功耗無線傳感器網(wǎng)絡(luò)優(yōu)化方法
      【專利摘要】本發(fā)明公開了一種基于程序分析的低功耗無線傳感器網(wǎng)絡(luò)優(yōu)化方法,包括步驟:步驟一,搭建一個無線傳感器網(wǎng)絡(luò)群集;步驟二,進(jìn)行程序分析;步驟三,函數(shù)調(diào)度優(yōu)化;步驟四,基本塊級優(yōu)化。本發(fā)明利用程序分析的結(jié)果進(jìn)行無線傳感器網(wǎng)絡(luò)的能耗優(yōu)化,通過對調(diào)用頻率最高的內(nèi)聯(lián)函數(shù)進(jìn)行有效調(diào)度,實現(xiàn)了降低無線傳感器網(wǎng)絡(luò)能耗的目的。
      【專利說明】基于程序分析的低功耗無線傳感器網(wǎng)絡(luò)優(yōu)化方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及的是無線傳感器網(wǎng)絡(luò)通信領(lǐng)域,具體是一種基于程序分析的無線傳感器網(wǎng)絡(luò)優(yōu)化方法。
      【背景技術(shù)】
      [0002]無線傳感器網(wǎng)絡(luò)(以下簡稱WSN)生存時間要求長達(dá)數(shù)月或數(shù)年,節(jié)點一般采用容量有限的電池供電,而且不方便更換電池,在維護(hù)性能的前提下,如何節(jié)省能耗并延長運行時間是其應(yīng)用的重要挑戰(zhàn)。
      [0003]嵌入式系統(tǒng)功耗優(yōu)化最先集中在硬件級,包括電路級、RTL級,級別越高就需要更大的能耗空間以及更高的設(shè)計成本。由于硬件級功耗優(yōu)化已經(jīng)遇到瓶頸,軟件級功耗建模與優(yōu)化為無線傳感器網(wǎng)絡(luò)提供了節(jié)能的新途徑。有學(xué)者首先提出了對嵌入式軟件進(jìn)行功耗分析的一些基本概念,建立了基本的指令級功耗模型。隨后,許多研究者紛紛開展了各種傳統(tǒng)編譯優(yōu)化技術(shù)在低功耗方面的改良研究,主要工作集中在分支預(yù)測、循環(huán)結(jié)構(gòu)優(yōu)化、存儲器和cache分配優(yōu)化等方面,在保持程序語義和遵守目標(biāo)機器資源限制的條件下,以形成各種功耗優(yōu)化的程序分析技術(shù)。
      [0004]目前基于程序分析的軟件功耗優(yōu)化工作主要集中在源程序結(jié)構(gòu)級,技術(shù)也相對成熟,如循環(huán)結(jié)構(gòu)優(yōu)化等,已經(jīng)在編譯器中得到了部分實現(xiàn),并取得了良好的功耗優(yōu)化效果;算法級的功耗優(yōu)化措施,借鑒現(xiàn)有的一些算法優(yōu)化設(shè)計措施,如改善數(shù)據(jù)結(jié)構(gòu)、壓縮數(shù)據(jù)存儲空間、減少重復(fù)計算與算法冗余度、貪心法等,降低算法的空間復(fù)雜度和時間復(fù)雜度,從而改善軟件功耗。
      [0005]程序分析功耗優(yōu)化方法主要偏重于靜態(tài)分析方法,尤其偏重于編譯階段。通過針對源代碼的程序分析,變換某種結(jié)構(gòu),達(dá)到降耗的效果。程序分析這幾年已經(jīng)有了長足的進(jìn)展,從傳統(tǒng)的靜態(tài)程序分析、動態(tài)程序分析發(fā)展到基于符號執(zhí)行的混合程序分析。這些程序分析新進(jìn)展為無線傳感器網(wǎng)絡(luò)的節(jié)能提供了新思路。
      [0006]無線通信領(lǐng)域作為嵌入式系統(tǒng)的典型應(yīng)用環(huán)境,目前的節(jié)能方法主要是單純的靜態(tài)分析,要么針對每條指令進(jìn)行建模,要么針對整個任務(wù)進(jìn)行建模。缺少對系統(tǒng)的動態(tài)行為能耗分析,以及基本塊、函數(shù)級別的節(jié)能分析。傳統(tǒng)的動態(tài)分析工具有Panorama, Dytan, Pin等,通過動態(tài)監(jiān)控目標(biāo)系統(tǒng),基于數(shù)據(jù)流、控制流和信息流等進(jìn)行分析。而動靜態(tài)結(jié)合的混合程序分析可以提供基本塊、函數(shù)級別的分析,同時通過動態(tài)注入的方式,獲取程序的功耗和性能參數(shù)。混合程序分析通過細(xì)粒度的功耗調(diào)整方法,打開和關(guān)閉不同的部件、不同的更新和廣播策略來節(jié)能,提供了一個更有效的能耗管理策略。

      【發(fā)明內(nèi)容】

      [0007]為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于程序分析的低功耗無線傳感器網(wǎng)絡(luò)優(yōu)化方法,先對無線網(wǎng)絡(luò)通信過程中運行的程序進(jìn)行基本塊級的分析,鑒于基本塊是一個程序執(zhí)行的基本單元,能夠?qū)⒂布墑e的細(xì)節(jié)掩蓋起來,綜合考慮每條指令的耦合效果,模型參數(shù)少,精度高。然后通過函數(shù)調(diào)度優(yōu)化可以有效地降低無線傳感器網(wǎng)絡(luò)設(shè)備的功耗,因為一個程序中,每一條指令都將激活微處理器中的某些硬件部件,因此正確調(diào)度指令可降低處理器的功耗。此發(fā)明可用于現(xiàn)有的無線傳感器網(wǎng)絡(luò)設(shè)備中。
      [0008]本發(fā)明通過以下技術(shù)方案實現(xiàn)的,包括以下步驟:
      [0009]一種基于程序分析的低功耗無線傳感器網(wǎng)絡(luò)優(yōu)化方法,其特征在于,該方法包括如下步驟:
      [0010]步驟一,搭建一個無線傳感器網(wǎng)絡(luò)群集,包括是目標(biāo)、觀測節(jié)點、傳感節(jié)點和感知視場四類基本實體對象,其中每個傳感器節(jié)點都會周期性地對周圍環(huán)境進(jìn)行感知取樣,且末端節(jié)點見收集到的數(shù)據(jù)傳輸給基站,數(shù)據(jù)將在基站進(jìn)行匯聚分析;
      [0011]步驟二,進(jìn)行程序分析:
      [0012]利用程序profile信息分析工具劃分出傳感器節(jié)點運行程序的函數(shù)級,基于數(shù)據(jù)流、控制流和信息流分析方法檢測出整個無線傳感器網(wǎng)絡(luò)群集運行中最耗能的函數(shù)集,記為集合F。
      [0013]集合F中的函數(shù)可用基本塊的集合來標(biāo)識,利用基本塊劃分算法劃分出這些函數(shù)中的基本塊,通過程序動態(tài)分析工具監(jiān)控基本塊模型,檢測出每個基本塊的運行時間。其中基本塊劃分方法如下:
      [0014](I)確定基本塊的入口語句,
      [0015](2)構(gòu)造每一入口語句的基本塊:由該入口語句到下一入口語句之間的語句序列組成。
      [0016]步驟三,函數(shù)調(diào)度優(yōu)化:針對集合F的函數(shù)為內(nèi)聯(lián)函數(shù)這一情況,將大部分間接調(diào)用轉(zhuǎn)換為直接調(diào)用,使得函數(shù)調(diào)用的開銷大大減少。
      [0017]步驟四,基本塊級優(yōu)化:分析集合F中基本塊的運行狀態(tài):
      [0018]對于基本塊運行平均時間較長的函數(shù),即基本塊運行平均時間排在F所有函數(shù)最前30%的,則加大這部分函數(shù)正常態(tài)和休眠態(tài)的切換頻率。
      [0019]對于基本塊運行平均時間較短的函數(shù),即基本塊運行平均時間排在F所有函數(shù)最后30%的,則縮短這部分函數(shù)正常態(tài)的時間。
      [0020]所述的最耗能的函數(shù)集,集合F為整個無線傳感器網(wǎng)絡(luò)運行中被調(diào)用最多的函數(shù),將運行程序中的所有函數(shù)按被調(diào)用次數(shù)從高到低排序,取第一梯隊的函數(shù)作為之后優(yōu)化的對象(第一梯隊的函數(shù)指的是被調(diào)用次數(shù)不低于最大次數(shù)90%的函數(shù)),由于這些被調(diào)用最多的函數(shù)必定會造成較高的能耗,故在能耗優(yōu)化上先對這些函數(shù)進(jìn)行處理。
      [0021]所述的小規(guī)模無線傳感器網(wǎng)絡(luò)群集包括:四類基本實體對象,分別是目標(biāo),觀測節(jié)點,傳感節(jié)點和感知視場。大量傳感節(jié)點隨機部署在目標(biāo)的鄰近區(qū)域,通過自組織方式構(gòu)成網(wǎng)絡(luò),協(xié)同形成對目標(biāo)監(jiān)測的感知視場。傳感節(jié)點檢測的目標(biāo)信號經(jīng)本地的簡單處理后通過鄰近傳感節(jié)點多跳傳輸?shù)接^測節(jié)點。用戶可以通過外部網(wǎng)絡(luò)與觀測節(jié)點進(jìn)行交互,觀測節(jié)點可向傳感節(jié)點發(fā)布查詢請求和控制指令,接受傳感節(jié)點返回的目標(biāo)信息。傳感器節(jié)點一般都由數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)傳輸模塊和供電模塊組成。
      [0022]采用額外的硬件電路對整個網(wǎng)絡(luò)所有節(jié)點的功率消耗進(jìn)行測量分析?;谲浖结槍φ麄€無線傳感器網(wǎng)絡(luò)進(jìn)行實時監(jiān)測,即通過插入能耗測量代碼,再配合外部硬件電路來計算節(jié)點能耗。[0023]所述的程序分析包括:通過動靜態(tài)結(jié)合的混合程序分析方法,建立無線傳感器網(wǎng)絡(luò)基于動態(tài)程序注入的基本塊級能耗模型,通過函數(shù)Summary的方法,得到函數(shù)級的高層功耗模型。由于單純的動態(tài)程序分析方法是在目標(biāo)程序運行時進(jìn)行某些關(guān)鍵特征的提取以及監(jiān)控,一次運行只能達(dá)到一條路徑。針對動態(tài)分析路徑覆蓋率低的問題,可以通過輔助靜態(tài)分析的方法進(jìn)行優(yōu)化。
      [0024]所述的程序分析,是指利用一些信息分析工具,分析程序的流程邏輯與控制結(jié)構(gòu),尋找程序變量與值間的依賴關(guān)系,為程序優(yōu)化提供索引,提供了詳細(xì)的靜態(tài)分析用于檢查代碼的冗余。
      [0025]所述的基本塊,是指程序一個順序執(zhí)行的語句序列,其中只有一個入口和一個出口,入口就是其中的第一個語句,出口就是其中的最后一個語句。對一個基本塊來說,執(zhí)行時只從其入口進(jìn)入,從其出口退出。
      [0026]所述的函數(shù)調(diào)度優(yōu)化包括:通過基本塊能耗模型,在函數(shù)級進(jìn)行不同運行狀態(tài)的調(diào)節(jié),開關(guān)不同的外部設(shè)備,并根據(jù)路由協(xié)議和傳輸路徑,設(shè)定不同的運行狀態(tài),盡量保持基本塊級調(diào)度的能耗最小化。根據(jù)基本塊運行時間的長短,調(diào)節(jié)正常態(tài)和休眠態(tài)在整個工作狀態(tài)中的比例。在函數(shù)級上,開銷最大的函數(shù)均為內(nèi)聯(lián)函數(shù),在編譯時,對于一個可以inline的函數(shù),在每一個調(diào)用這個函數(shù)的地方,直接以函數(shù)的內(nèi)容代替,因此默認(rèn)不會生成這個函數(shù)的函數(shù)體。對函數(shù)進(jìn)行inline優(yōu)化時,由于可以減少調(diào)用函數(shù)的開銷,這種方法適用于大量頻繁調(diào)用的小函數(shù),由于會將函數(shù)的內(nèi)容復(fù)制到每一處調(diào)用的地方,會增加編譯二進(jìn)制文件的體積。
      [0027]與現(xiàn)有技術(shù)相比,本發(fā)明利用程序分析的結(jié)果進(jìn)行無線傳感器網(wǎng)絡(luò)的能耗優(yōu)化,是既軟件架構(gòu)級、算法級之后更細(xì)分的基本塊級優(yōu)化,通過對調(diào)用頻率最高的內(nèi)聯(lián)函數(shù)進(jìn)行有效調(diào)度,實現(xiàn)了降低無線傳感器網(wǎng)絡(luò)能耗的目的。
      【專利附圖】

      【附圖說明】
      [0028]圖1是本發(fā)明基于程序分析的低功耗無線傳感器網(wǎng)絡(luò)優(yōu)化方法的流程圖。
      [0029]圖2是本發(fā)明的實施案例流程圖。
      【具體實施方式】
      [0030]下面對本發(fā)明的實施例作詳細(xì)說明,本實施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實施,給出了詳細(xì)的實施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實施例。
      [0031]一種基于程序分析的無線傳感器網(wǎng)絡(luò)優(yōu)化方法,包括第一步,搭建一個小規(guī)模的無線傳感器網(wǎng)絡(luò)群集;第二步,對于整個網(wǎng)絡(luò)運行程序進(jìn)行分析,劃分出函數(shù)級,再在函數(shù)級基礎(chǔ)上劃分出基本塊級;第三步,函數(shù)調(diào)度優(yōu)化;第四步,基本塊級優(yōu)化。
      [0032]其中無線傳感器網(wǎng)絡(luò)群集中的每個傳感器節(jié)點都會周期性地對周圍環(huán)境進(jìn)行感知取樣,如對環(huán)境溫度的記錄,所有末端節(jié)點收集到的數(shù)據(jù)會不斷傳給基站,數(shù)據(jù)將在基站進(jìn)行匯聚分析;在群集工作期間,對其加入能耗測量模塊,利用基于外部電流測量的方法計算出每個節(jié)點的實際能耗;測量完功耗優(yōu)化前的整個網(wǎng)絡(luò)的能耗后,進(jìn)入程序分析這一步驟,利用傳統(tǒng)的動態(tài)分析工具,如Panorama, Dytan, Pin等,通過動態(tài)監(jiān)控目標(biāo)系統(tǒng),基于數(shù)據(jù)流、控制流和信息流分析等方法便可檢測出整個網(wǎng)絡(luò)運行過程最耗能的基本塊;針對前三個最耗能的基本塊,進(jìn)行代碼分析后發(fā)現(xiàn)內(nèi)聯(lián)函數(shù)是最耗能的,修改內(nèi)聯(lián)函數(shù)將大部分間接調(diào)用轉(zhuǎn)換為直接調(diào)用,函數(shù)調(diào)用的開銷大大減少;對優(yōu)化后的網(wǎng)絡(luò)再實施能耗測量,能發(fā)現(xiàn)能耗相較于優(yōu)化前有了大幅度的下降。
      [0033]本實施例具體操作過程如下:
      [0034]搭建一個小規(guī)模的無線傳感器網(wǎng)絡(luò)群集,其中傳感器節(jié)點采用CrossBow公司生產(chǎn)的TelosB節(jié)點,在傳感器網(wǎng)絡(luò)中至少有一個節(jié)點作為基站,其他若干節(jié)點作為普通節(jié)點。在TinyOS下編寫基站程序和節(jié)點程序,然后將程序燒錄到每個節(jié)點上,每個普通節(jié)點的程序相同,但在燒錄過程中需指定ID號以區(qū)分。網(wǎng)絡(luò)中各相鄰的節(jié)點可以完成相互間的通信,進(jìn)行數(shù)據(jù)交換,通過無線通信方式形成了一個多跳自組織的網(wǎng)絡(luò)系統(tǒng)。
      [0035]在節(jié)點正常工作或休眠期間,由一路供電電源(供電電壓為V)對傳感器網(wǎng)絡(luò)節(jié)點供電,供電線路中串聯(lián)一個小阻值電流采樣電阻R。電流采樣電阻R兩端的電壓Vl送入差分放大器進(jìn)行放大,放大倍數(shù)固定為K。放大后的電壓信號V2經(jīng)過A/D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,并進(jìn)行后端的數(shù)據(jù)處理、存儲和顯示。由于引入了差分放大器,可以測量到電流采樣電阻微弱的兩端電壓差,因此電流采樣電阻可以很小,典型的傳感器節(jié)點最大供電電壓為3V,最大電流為40mA,電流采樣電阻為0.5 Ω,若放大倍數(shù)K為100,則滿量程輸出為2V,足以滿足需求。即使對于最大工作電流,電流采樣電阻上帶來的壓降也僅為20mV,對傳感器節(jié)點的工作幾乎沒有影響。人工觀察數(shù)字示波器,得出多次電壓的測量值,再根據(jù)公式P=V*I=(V電源-V電阻)*V電阻/R電阻,得出多次節(jié)點的能耗值取其平均。測量小規(guī)模網(wǎng)絡(luò)群集上的所有節(jié)點能耗得出整個網(wǎng)絡(luò)的總能耗。
      [0036]程序分析過程涉及到修改makefile文件這個步驟。操作系統(tǒng)TinyOS中的makefile文件保存了編譯器和連接器的參數(shù)選項,還表述了所有源文件之間的關(guān)系,創(chuàng)建程序(make)首先讀取makefile文件,然后再激活編譯器,匯編器,資源編譯器和連接器以便產(chǎn)生最后的輸出?,F(xiàn)在每個節(jié)點的makefile文件中手動添加pg參數(shù),gprof工具可以顯示flat profile,包括每個函數(shù)的調(diào)用次數(shù),每個函數(shù)消耗的處理器時間,可以顯示callgraph,包括函數(shù)的調(diào)用關(guān)系,每個函數(shù)調(diào)用花費了多少時間,可以顯示注釋的源代碼,這是程序源代碼的復(fù)本,標(biāo)記有程序中每行代碼的執(zhí)行次數(shù)。修改完makefile文件后makeclean,重新make,在終端下使用gprof命令得出所有函數(shù)被調(diào)用的統(tǒng)計值,編寫bash腳本文件使得這些函數(shù)按照被調(diào)用頻率從高到低依次排序,針對排名靠前的函數(shù)進(jìn)行代碼優(yōu)化。統(tǒng)計信息顯示開銷最大的函數(shù)均為內(nèi)聯(lián)函數(shù),這為之后的函數(shù)調(diào)度模塊提供了實施的可能性。
      [0037]函數(shù)調(diào)度模塊主要針對內(nèi)聯(lián)函數(shù)的優(yōu)化。內(nèi)聯(lián)函數(shù)只有當(dāng)函數(shù)比較短小的時候它才能得到很好的效果,如果函數(shù)并不是很短而且在很多地方都被調(diào)用,會使得可執(zhí)行體的體積增大,而且當(dāng)編譯器拒絕inline的時候,會造成性能的下降,這些開銷最大的內(nèi)聯(lián)函數(shù)大多都是出于這樣的原因。于是,修改inline函數(shù),將間接調(diào)用改成直接調(diào)用。實施功耗優(yōu)化的函數(shù)調(diào)度模塊之后,再次利用能耗測量模塊,測出此時網(wǎng)絡(luò)節(jié)點的總能耗,與優(yōu)化前的網(wǎng)絡(luò)相比,有了明顯的下降。
      [0038]綜上所述,我們提出了上述的基于程序分析的無線傳感器網(wǎng)絡(luò)及其優(yōu)化方法,利用程序分析工具動態(tài)分析出各個基本塊的能耗情況,建立了基本塊能耗模型,著重對功耗高的基本塊進(jìn)行基本塊級的運行狀態(tài)更改,以及對這些基本塊包含的函數(shù)進(jìn)行代碼優(yōu)化,這一軟件上的改進(jìn)可應(yīng)用在現(xiàn)有的無線傳感器網(wǎng)絡(luò)設(shè)備中,實驗測試出這樣的方法是可以明顯下降無線傳感器網(wǎng)絡(luò)功耗的。
      【權(quán)利要求】
      1.一種基于程序分析的低功耗無線傳感器網(wǎng)絡(luò)優(yōu)化方法,其特征在于,該方法包括如下步驟: 步驟一,搭建一個無線傳感器網(wǎng)絡(luò)群集,包括是目標(biāo)、觀測節(jié)點、傳感節(jié)點和感知視場四類基本實體對象,其中每個傳感器節(jié)點都會周期性地對周圍環(huán)境進(jìn)行感知取樣,且末端節(jié)點見收集到的數(shù)據(jù)傳輸給基站,數(shù)據(jù)將在基站進(jìn)行匯聚分析; 步驟二,進(jìn)行程序分析: 利用程序profile信息分析工具劃分出傳感器節(jié)點運行程序的函數(shù)級,基于數(shù)據(jù)流、控制流和信息流分析方法檢測出整個無線傳感器網(wǎng)絡(luò)群集運行中最耗能的函數(shù)集,記為集合F。 集合F中的函數(shù)用基本塊的集合來標(biāo)識,利用基本塊劃分方法劃分出這些函數(shù)中的基本塊,通過程序動態(tài)分析工具監(jiān)控基本塊模型,檢測出每個基本塊的運行時間; 步驟三,函數(shù)調(diào)度優(yōu)化:針對集合F的函數(shù)為內(nèi)聯(lián)函數(shù)這一情況,將間接調(diào)用轉(zhuǎn)換為直接調(diào)用,使函數(shù)調(diào)用的開銷減少; 步驟四,基本塊級優(yōu)化:分析集合F中基本塊的運行狀態(tài): 對于基本塊運行平均時間長的函數(shù),即基本塊運行平均時間排在F所有函數(shù)最前的30%,則加大這部分函數(shù)正常態(tài)和休眠態(tài)的切換頻率。 對于基本塊運行平均時間短的函數(shù),即基本塊運行平均時間排在F所有函數(shù)最后的30%,則縮短這部分函數(shù)正常態(tài)的時間。
      2.根據(jù)權(quán)利要求1所述的基于程序分析的低功耗無線傳感器網(wǎng)絡(luò)優(yōu)化方法,其特征在于,所述的最耗能的函數(shù)集是將運行程序中的所有函數(shù)按被調(diào)用次數(shù)從高到低排序,被調(diào)用次數(shù)不低于最大次數(shù)90%的函數(shù)。
      3.根據(jù)權(quán)利要求1所述的基于程序分析的低功耗無線傳感器網(wǎng)絡(luò)優(yōu)化方法,其特征在于, 所述的步驟二中,基本塊劃分方法,包括如下步驟: (1)確定基本塊的入口語句, (2)構(gòu)造每一入口語句的基本塊:由該入口語句到下一入口語句之間的語句序列組成。
      【文檔編號】H04W24/02GK103648116SQ201310563735
      【公開日】2014年3月19日 申請日期:2013年11月13日 優(yōu)先權(quán)日:2013年11月13日
      【發(fā)明者】陳潤, 戚正偉, 管海兵, 辛銳 申請人:上海交通大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1