郭 杰(西安航空學院計算機學院,西安,710077)
?
嵌入式實時軟件的能耗建模與分析
郭 杰
(西安航空學院計算機學院,西安,710077)
隨著嵌入式系統的發展,其在市場上的應用越來越廣泛,關于嵌入式系統的軟件能耗已經成為影響整個系統的關鍵因素。本文通過對嵌入式實時軟件的能耗建模與分析,希望減少軟件能耗,增強嵌入式系統的使用體驗。
安全關鍵;嵌入式系統;能耗建模
嵌入式系統是一種具有特定功能的系統,其作為一部分鑲嵌入一個大的系統之中。嵌入式系統能夠根據產品的不同需要,對軟件或硬件進行改變,如成本的改變,性能的改變。因為嵌入式系統面對具體的應用與客戶,因此在設計上呈現靈活性。其跟通用的計算機最大的不同就在于通用計算機的設計通用。其追求的是高速度、高帶寬、高存儲。而針對嵌入式系統來說,要求給定的任務在一定的時間內能夠對外來事件作出快速反應與處理,否則可能造成不可估量的后果。
在嵌入式系統中,能耗因素對其有重要影響,直接制約著嵌入式系統的服務周期。移動嵌入式設備如手機等,采用的是電池供電的形式。電池荷載以及使用時長成為制約嵌入式設備質量的關鍵。嵌入式系統內有很少的計算存儲資源,跟通用計算機相比,其計算能力以及存儲資源因為受到成本的影響,因此都很小。一個嵌入式設備的內存只有幾十KB或幾KB,數MHz的處理器也不鮮見。因此這就對軟件的效率以及性能提出了很高的要求,需要最大化利用可利用的資源。
上個世紀70年代末,計算機委員會召開了分布式計算機控制系統會議,會議上總結了分布式系統的研究成果。90年來以來互聯網快速發展,分布式系統因為其性價比高、配置靈活等優勢得到了廣泛的應用。然而,分布式系統在實時領域這一塊,仍然存在很多的難題。
分布式實時系統采用多個廉價的單處理機系統去代替高性能的、高集中的單芯片,以此實現復雜計算。在分布式實時系統中,提交的作業將會被拆分成多個子任務,并通過任務調度算法將其分配合適的計算結點執行。多機的互聯一定存在著相互通信的需求,通信的實時性、可靠性將會直接影響系統的功能,也就是實時通信會是分布式系統將會面臨的最關鍵問題。但是對于分布式實時嵌入系統來說,應解決的并不是海量的數據,而是如何有效控制任務在多個單機上進行高效實時的通信。針對于武器系統作戰、汽車電子等行業都有重要意義。
在每個硬件的結點都有其自己的軟件,或者是通過中間軟件共享資源。在每個結點都有一個或多個處理器、FPGA等,結點之間的差異為異構性,由此組成系統成為異構的分布式實時嵌入式系統。計算結點之間通過網絡或系統總線互聯,異構結點件的通信通過網關等實行協議格式的轉換。
計算機的結點是物理分布的,分布的距離根據不同的應用決定。例如汽車電子,異構結點分布在整個汽車內部;而針對無線傳感網絡來說,計算結點的分布距離則能夠達到數百數或上千米。計算結點還連接到物理世界中,如各種傳感器、激勵器或人機交互接口。
傳統意義上,軟件設備沒有能耗、功率這樣的概念。但是針對計算機設備來說,其主要工作就是執行相關的指令進行數據的處理,從而輸出有價值的信息。從這個角度來說,軟件程序也是有能耗或功率的,這就為計算機效能、降低能源消耗提出了另外一種解決的思路。這種考慮是對硬件設備的忽略,直接把程序當做是一種設備來對待。在研究中已經有大量的研究從計算機程序的角度去研究能量消耗的優化,這就在保證硬件設備的條件下,為進一步降低消耗提供了可靠的思路。對于能耗受到嚴重制約的嵌入式系統來說,對程序消耗的降低能夠優化嵌入式系統設計,提升用戶體驗。
面臨測量問題。要對程序的能耗特征進行分析,首先應該精準測量目標程序的能耗。對程序能耗的測量是一種宏觀的說法,而實際的情況應是如何從指定的位置開始到指定的位置結束,這一段時間內程序所消耗的能量。若采用指令仿真或統計估計類手段很顯然是沒有辦法做到準確測量的。對于通過人干預測量的方式,直接對工作設備進行操作或記錄,因為受到人生理或心里的限制,可能造成誤差過大的問題。如在要測量的程序以向終端輸出字符的形式來提示操作人員,操作人員在看到提示后進行數據的記錄。那么以人類的反應時間300毫秒來計算,那么對于300毫瓦的嵌入式 ARM7 開板來說,每秒的測量誤差就達到了0.09焦耳。因此這種方式沒有辦法精準測量到能耗的分析。
安全算法的能耗特征。隨著嵌入式系統的發展,嵌入式系統已經被應用到各行各業,安全問題也成了嵌入式系統的重大威脅。然而傳統安全算法的能耗以及性能影響了他們在嵌入式系統中的廣泛應用,尤其是電池供電系統。也有學者對安全算法的能耗開展研究,但是本文發現他們的研究中都存在一定的缺陷,那就是他們忽略了對數據量的保護對安全算法能耗造成的影響。另外,之前的學者研究并沒有涉及到在嵌入式實時系統上做相關的安全算法的能耗分析。
目前國外對嵌入式軟件能耗的研究相對成熟,在能耗數據的測量方面也采用先進的自動化儀器。嵌入式處理能耗測量的標準Energy Bench,由嵌入式微處理器測試基準協會EEMBC 推出,但沒有對其測量方法進行公開。我國國內對嵌入式軟件的研究也有很多,其主要的關注點在于能耗模型的建立以及能耗仿真器上。
3.1數據獲取與分析模型
3.1.1測量設置。為了減少系統操作的誤差,本文采用被廣泛應用的實時嵌入式系統μC/OSII。在安全算法庫方面,則選用新西蘭的數字數據安全公司的商業級密碼庫,該商業級密碼庫擁有常見的密碼算法,并用于良好的移植性。該密碼并不是獨立完成的,也需要文件系統的支持,因此在μC/OSII上移植了μC/ FS 文件系統。
3.1.2能耗分析模型。本文的研究主要從能耗、處理速度、功率角度去研究安全算法。如下圖1-2
安全算法能夠最大程度的挖據出能耗的特征。單位能耗是對單位數據處理時所消耗的能耗,而數據處理速度不僅包含了對處理器速度的潛在要求,而且也包含了對工作效率的潛在要求。功率表示隨著時間的能耗增長速度,這些量能夠為不同的工程應用選擇的安全算法提供相應指導。

圖1-2 不同量之間的關系
3.2能耗數學模型
3.2.1功率。安全算法無論在處理速度上,還是在處理功率上,處理單位能耗上都有共同點。因此,本文建立了一些數學模型來表示他們,通過模型的建立能夠特征更加直觀,但須特別提到的是并不是所有的變化都可以被描述為方程,只對一些規律性明顯的做出了討論。
因為功率是密碼算法處理數據一段時間內的平均值,因此它跟特定算法之間相互依賴。本文為了擬合離散點構造了相應的函數。這些算法的功率變化可以歸納為如下的高斯函數:

其中,x為數據大小,b為功率上界,k為常量系數。功率的下界能夠通過P公式計算得到。
3.2.2處理速度。部分算法的數據處理的速度跟高斯特征相似,但是也有很多的數據點并不在高斯函數上。因此,這些算法的處理速度可以歸結為下圖。同樣的,常量b是速度的上限,為了使S不變成負無窮,或者完全無意義,因此X的范圍被截段了。


圖1-3 MD4的數據處理速度擬合曲線
3.2.3單位能耗
單位能耗會隨著數據量的增加而逐漸的下降,最后下降到一定值之后保持穩定,其變化規律可以總結為:

本文對嵌入式實時軟件的能耗進行了建模分析,取得了一定的研究成果。本文認為還可以做如下的研究:在能耗的測量方面,隨著多核嵌入式芯片的普及,加強對能耗的分析。今后可將以核心為單位,以任務進程為單位的能耗和時間的測量將會是之后的重點研究方向。
[1] 胡仁勝 實時控制軟件系統的可靠性分析[J].華南師范大學學報: 自然科學版,2001,33(1): 103 —107.
[2] 蔣敏,孔軍,單家芳.實時控制系統軟件的可靠性[J]. 計算機工程,2007,33(21) : 47 —49.
[3]李潔萍,彭澄廉.一種實時異構嵌入式系統的任務調度算法.軟件學報,2004, 15504-511
郭杰,(1980-)男,大學本科學歷,研究生在讀,軟件工程師,西安航空學院計算機學院,主要從事計算機硬件課程嵌入式于網絡方面教學及研究。
Modeling and analysis of energy consumption of embedded real time software
Guo Jie
(Xi'An Aeronautical University Computer academy,Xi'An,710077)
With the development of embedded system, the application of the embedded system is more and more widely. The energy consumption of embedded system has become the key factor affecting the entire system. In this paper,the energy consumption modeling and analysis of embedded real-time software is used to reduce the energy consumption and enhance the experience of embedded system.
security key;embedded system;energy consumption modeling