計大杰, 姜學東
(1.河北民族師范學院 信息中心,河北 承德 067000 2.河北民族師范學院 人事處,河北 承德 067000)
一種基于CPU占用率的嵌入式系統網絡處理調度算法
計大杰1, 姜學東2
(1.河北民族師范學院 信息中心,河北 承德 067000 2.河北民族師范學院 人事處,河北 承德 067000)
物聯網、云計算飛速發展,眾多嵌入式設備需要接入網絡,但是嵌入式設備性能和資源有限,過多的注意網絡數據的處理,往往占用處理器過多,降低系統整體性能。為了實現終端IP通信和合理調度網絡處理對系統中CPU的占用,采用Xilinx公司的FPGA系統平臺,移植了瑞士計算機科學院發布的μIPv6協議棧,并提出了基于CPU占用率的嵌入式系統網絡處理調度算法,進行驗證,可以優化實驗平臺的嵌入式系統性能。
處理器調度;網絡處理;嵌入式系統;Xilinx
現今,以“移動計算”為核心的眾多技術發展迅速,3G和4G技術已經商用,適合移動計算平臺的各種器件,包括處理器、各種網絡接口以及圖形處理能力都已經可以完成較以往更加豐富的網絡應用,各種嵌入式設備都有接入網絡的需求。但是,受限于體積和功耗等因素,移動平臺的處理性能,特別是計算上對處理器要求的滿足,與傳統PC平臺還是存在一定差距。如果突發網絡數據需要系統進行處理,往往會過多地占用處理器時間,造成系統整體性能下降。
Xilinx公司的Spartan 3E Starter開發板,移植了操作系統,并實現了μIPv6協議棧,在實現過程中提出了基于CPU占用率的嵌入式系統網絡處理調度算法,并進行了驗證,該算法可以優化實驗平臺的嵌入式系統性能。
1.1 硬件結構
在Xilinx公司的嵌入式系統開發環境XPS中,搭建了系統硬件平臺,具體為Spartan 3E Starter開發板上的 CPU、BUS、Memory、Interrupt-Controller、Timer等,均利用開發環境提供的IP核,詳細類型和功能說明見表1。
1.2 軟件結構和調度算法的位置

表1 硬件系統各器件列表

圖1 協議棧結構和調度算法位置
該系統的軟件部分如圖1所示,按層次由上到下依次為:應用測試程序、操作系統、TCP/IP協議棧、網絡驅動。其中,測試程序為一個可以接收網絡數據,但不做任何進一步處理的Applicaa-tion;操作系統為uCOS-II,需要針對MicroBlaze平臺和μIPv6做出修改;協議棧為μIPv6,其中在網絡層和鏈路層中間提出并實現了基于CPU占用率的嵌入式系統網絡處理調度算法,協議棧與該調度算法的關系如圖1所示;網絡驅動為針對Xlinx的XPS EthernetLite網絡模塊驅動,將數據最終發送到物理網絡。
2.1 算法基本思想
基于CPU占用率的嵌入式系統網絡處理調度算法的基本思想如下:算法根據當前處理器的占用率、上個周期計算得到的閾值和上個周期內收到的網絡報文數量計算出當前周期的閾值,用這個當前周期的閾值和本周期內受到的網絡報文數量進行比較,根據比較結果來判斷是否對將報文調度到處理器進行處理。
2.2 算法流程
2.2.1 在本時間周期內,每收到一個網絡報文,對計數器couterk+1加一;
2.2.2 根據如下規則計算當前周期可處理報文數量閥值Tk+1

其中:T0可依據經驗設置為單位時間內接收到的報文數量的最小值Rmin;Pref為設定的一個CPU占用率閾值;O(t)為當前CPU占用率;Tk為上一周期可處理報文數量閥值;Tk+1為當前周期可處理報文數量閥值;counterk為上一周期收到的報文數量。2.2.3 若counterk+1>Tk+1,則抑制報文處理,僅處理Tk+1個報文;否則處理收到的報文數量counterk+1。
2.3 算法簡要分析
(Pref-O(t))和(counterk-Tk)的符號決定閥值增大還是減??;|counterk-Tk|和|Pref–O(t)|共同影響增大、減小的幅度。
3.1 算法參數的確定
3.1.1 Pref的確定

此時獲得實際的cpu占用率Pmax≈0.6。
Pref以Pmax為上限,依據Pmax與具體應用系統中其它任務對CPU的占用之差來設定,這里取Pref= 0.25。
3.1.2 counterk的確定
counterk以每秒可接收最大報文數目80為上限,由隨機函數產生
3.1.3 周期的確定
時間間隔1s。
3.2 參數確定后的算法公式

3.3 測試數據和結果
測試前在PC機端用JAVA語言編寫了僅向目標系統發送網絡數據的測試程序。每秒 (一個周期內)發送的數據量由隨機函數產生;將目標系統的軟硬件集成后,通過非屏蔽五類線和PC機相連,開發板上電,開始測試。
為便于分析調度算法的實際效果,便于比較,將測試過程中得到的數據以折線圖的形式進行表示,如圖2所示。

圖2 由測試數據得到的折線圖是否采用調度算法的CPU占用率比較
其中,“周期序號”為以間隔1s時間為單位的周期順序號;“報文數”為各周期時間間隔內系統收到的網絡報文數;“無調度OR”為不采用調度算法時測得的各周期內處理器的占用率 (Occupancy Percentage);“有調度OR”為采用調度算法時測得的各周期內處理器的占用率;“閾值”為各周期內根據算法的計算公式得到的當前周期閾值Tk+1(調度算法就是依據這個值去和當前周期收到的報文數量counterk+1進行比較,進而判斷是否對這一組報文進行處理)。
從折線圖中可以看出,不采用調度算法時,處理器的占用率與到來的網絡報文數量變化規律一致,隨著到來的網絡報文數量的變化而劇烈上下震動;而采用基于CPU占用率的嵌入式系統網絡處理調度算法后,各周期內計算得到的閾值和處理器占用率沒有大的突變,比較穩定,而且處理器占用率不會超過預設定的參考Pref。在實際應用環境中,可以根據目標系統的不同應用場合進行Pref的設定,如果實際應用中網絡應用不是很多,而其它處理(如:計算或者圖形處理)的要求更高,則可以設定較低的Pref;反之,則設定較高的Pref(如家庭網關類產品,處理的網絡數據量大)。
研究在實現FPGA平臺上的嵌入式網絡協議棧的過程中,提出并實現了一個基于CPU占用率的嵌入式系統網絡處理調度算法,該算法根據當前處理器的占用率、上個周期計算得到的閾值和上個周期內收到的網絡報文數量進行決策,決定是否對當前周期收到的報文進行處理。這樣就可以在資源和性能有限的嵌入式設備上均衡其他應用處理和網絡數據處理之間的處理器占用,并且可以根據具體應用進行處理器能力分配設置,提高了靈活性。
[1]林麗群,劉大茂.μC/OS-II在ARM7上移植方法的探討與實現[J].現代電子技術,2006,(18)
[2]田耘,徐文波.Xilinx FPGA開發實用教程[M].北京:清華大學出版社,2008:8
[3]王力生,梅巖,曹南洋.輕量級嵌入式TCP/IP協議棧的設計[J].計算機工程,2007,(02)
[4]蔣媛.基于FPGA的嵌入式系統綜述[J].科技廣場,2008(07):243-244
[5]程明,余中華,蘇艷蘋,郭小飛.μC/OSⅡ下LwIP協議棧的移植和測試[J]微計算機信息,2008,(23)
[6]任哲.嵌入式操作系統基礎μc/OS-II和Linux[M].北京:北京航空航天大學出版社.2007:54-67
[7]焦海波.嵌入式網絡系統設計:基于Atmel ARM7系列[M].北京:北京航空航天大學出版社.2008:402-443
One Scheduling Algorithm of Network Processing Based on CPU Occupancy Percentage in Embedded System
JI Da-jie JIANG Xue-dong
(Information Center,Hebei Normal University for Nationalities,Chengde,Hebei 067000 China; Department of Personnel,Hebei Normal University for Nationalities,Chengde,Hebei,067000 China)
The Internet of Things and Cloud Computing are in rapid development,and many embedded equipments need to access network,but the performance and resources of embedded equipments are limited.In order to realize the terminal IP communications and to schedule reasonably the occupancy of network processing on CPU,we made use of Xilinx embedded system and ported the protocol stackμIPv6 issued by Switzerland Institute of Computer Science(SICS),and put forward one scheduling algorithm of network processing based on occupancy percentage in embedded system and was verified that it can optimize embedded system performance of experiment platform of.
processor scheduling;network processing;embedded system;Xilinx
TP393
A
2095-3763(2012)02-0070-03
2012-01-07
計大杰(1981-),男,河北承德人,河北民族師范學院信息中心助理實驗員,碩士,主要研究方向為移動計算、嵌入式網絡。