計大杰, 姜學東
(1.河北民族師范學院 信息中心,河北 承德 067000 2.河北民族師范學院 人事處,河北 承德 067000)
一種基于CPU占用率的嵌入式系統(tǒng)網(wǎng)絡處理調(diào)度算法
計大杰1, 姜學東2
(1.河北民族師范學院 信息中心,河北 承德 067000 2.河北民族師范學院 人事處,河北 承德 067000)
物聯(lián)網(wǎng)、云計算飛速發(fā)展,眾多嵌入式設備需要接入網(wǎng)絡,但是嵌入式設備性能和資源有限,過多的注意網(wǎng)絡數(shù)據(jù)的處理,往往占用處理器過多,降低系統(tǒng)整體性能。為了實現(xiàn)終端IP通信和合理調(diào)度網(wǎng)絡處理對系統(tǒng)中CPU的占用,采用Xilinx公司的FPGA系統(tǒng)平臺,移植了瑞士計算機科學院發(fā)布的μIPv6協(xié)議棧,并提出了基于CPU占用率的嵌入式系統(tǒng)網(wǎng)絡處理調(diào)度算法,進行驗證,可以優(yōu)化實驗平臺的嵌入式系統(tǒng)性能。
處理器調(diào)度;網(wǎng)絡處理;嵌入式系統(tǒng);Xilinx
現(xiàn)今,以“移動計算”為核心的眾多技術發(fā)展迅速,3G和4G技術已經(jīng)商用,適合移動計算平臺的各種器件,包括處理器、各種網(wǎng)絡接口以及圖形處理能力都已經(jīng)可以完成較以往更加豐富的網(wǎng)絡應用,各種嵌入式設備都有接入網(wǎng)絡的需求。但是,受限于體積和功耗等因素,移動平臺的處理性能,特別是計算上對處理器要求的滿足,與傳統(tǒng)PC平臺還是存在一定差距。如果突發(fā)網(wǎng)絡數(shù)據(jù)需要系統(tǒng)進行處理,往往會過多地占用處理器時間,造成系統(tǒng)整體性能下降。
Xilinx公司的Spartan 3E Starter開發(fā)板,移植了操作系統(tǒng),并實現(xiàn)了μIPv6協(xié)議棧,在實現(xiàn)過程中提出了基于CPU占用率的嵌入式系統(tǒng)網(wǎng)絡處理調(diào)度算法,并進行了驗證,該算法可以優(yōu)化實驗平臺的嵌入式系統(tǒng)性能。
1.1 硬件結(jié)構(gòu)
在Xilinx公司的嵌入式系統(tǒng)開發(fā)環(huán)境XPS中,搭建了系統(tǒng)硬件平臺,具體為Spartan 3E Starter開發(fā)板上的 CPU、BUS、Memory、Interrupt-Controller、Timer等,均利用開發(fā)環(huán)境提供的IP核,詳細類型和功能說明見表1。
1.2 軟件結(jié)構(gòu)和調(diào)度算法的位置
表1 硬件系統(tǒng)各器件列表
圖1 協(xié)議棧結(jié)構(gòu)和調(diào)度算法位置
該系統(tǒng)的軟件部分如圖1所示,按層次由上到下依次為:應用測試程序、操作系統(tǒng)、TCP/IP協(xié)議棧、網(wǎng)絡驅(qū)動。其中,測試程序為一個可以接收網(wǎng)絡數(shù)據(jù),但不做任何進一步處理的Applicaa-tion;操作系統(tǒng)為uCOS-II,需要針對MicroBlaze平臺和μIPv6做出修改;協(xié)議棧為μIPv6,其中在網(wǎng)絡層和鏈路層中間提出并實現(xiàn)了基于CPU占用率的嵌入式系統(tǒng)網(wǎng)絡處理調(diào)度算法,協(xié)議棧與該調(diào)度算法的關系如圖1所示;網(wǎng)絡驅(qū)動為針對Xlinx的XPS EthernetLite網(wǎng)絡模塊驅(qū)動,將數(shù)據(jù)最終發(fā)送到物理網(wǎng)絡。
2.1 算法基本思想
基于CPU占用率的嵌入式系統(tǒng)網(wǎng)絡處理調(diào)度算法的基本思想如下:算法根據(jù)當前處理器的占用率、上個周期計算得到的閾值和上個周期內(nèi)收到的網(wǎng)絡報文數(shù)量計算出當前周期的閾值,用這個當前周期的閾值和本周期內(nèi)受到的網(wǎng)絡報文數(shù)量進行比較,根據(jù)比較結(jié)果來判斷是否對將報文調(diào)度到處理器進行處理。
2.2 算法流程
2.2.1 在本時間周期內(nèi),每收到一個網(wǎng)絡報文,對計數(shù)器couterk+1加一;
2.2.2 根據(jù)如下規(guī)則計算當前周期可處理報文數(shù)量閥值Tk+1
其中:T0可依據(jù)經(jīng)驗設置為單位時間內(nèi)接收到的報文數(shù)量的最小值Rmin;Pref為設定的一個CPU占用率閾值;O(t)為當前CPU占用率;Tk為上一周期可處理報文數(shù)量閥值;Tk+1為當前周期可處理報文數(shù)量閥值;counterk為上一周期收到的報文數(shù)量。2.2.3 若counterk+1>Tk+1,則抑制報文處理,僅處理Tk+1個報文;否則處理收到的報文數(shù)量counterk+1。
2.3 算法簡要分析
(Pref-O(t))和(counterk-Tk)的符號決定閥值增大還是減小;|counterk-Tk|和|Pref–O(t)|共同影響增大、減小的幅度。
3.1 算法參數(shù)的確定
3.1.1 Pref的確定
此時獲得實際的cpu占用率Pmax≈0.6。
Pref以Pmax為上限,依據(jù)Pmax與具體應用系統(tǒng)中其它任務對CPU的占用之差來設定,這里取Pref= 0.25。
3.1.2 counterk的確定
counterk以每秒可接收最大報文數(shù)目80為上限,由隨機函數(shù)產(chǎn)生
3.1.3 周期的確定
時間間隔1s。
3.2 參數(shù)確定后的算法公式
3.3 測試數(shù)據(jù)和結(jié)果
測試前在PC機端用JAVA語言編寫了僅向目標系統(tǒng)發(fā)送網(wǎng)絡數(shù)據(jù)的測試程序。每秒 (一個周期內(nèi))發(fā)送的數(shù)據(jù)量由隨機函數(shù)產(chǎn)生;將目標系統(tǒng)的軟硬件集成后,通過非屏蔽五類線和PC機相連,開發(fā)板上電,開始測試。
為便于分析調(diào)度算法的實際效果,便于比較,將測試過程中得到的數(shù)據(jù)以折線圖的形式進行表示,如圖2所示。
圖2 由測試數(shù)據(jù)得到的折線圖是否采用調(diào)度算法的CPU占用率比較
其中,“周期序號”為以間隔1s時間為單位的周期順序號;“報文數(shù)”為各周期時間間隔內(nèi)系統(tǒng)收到的網(wǎng)絡報文數(shù);“無調(diào)度OR”為不采用調(diào)度算法時測得的各周期內(nèi)處理器的占用率 (Occupancy Percentage);“有調(diào)度OR”為采用調(diào)度算法時測得的各周期內(nèi)處理器的占用率;“閾值”為各周期內(nèi)根據(jù)算法的計算公式得到的當前周期閾值Tk+1(調(diào)度算法就是依據(jù)這個值去和當前周期收到的報文數(shù)量counterk+1進行比較,進而判斷是否對這一組報文進行處理)。
從折線圖中可以看出,不采用調(diào)度算法時,處理器的占用率與到來的網(wǎng)絡報文數(shù)量變化規(guī)律一致,隨著到來的網(wǎng)絡報文數(shù)量的變化而劇烈上下震動;而采用基于CPU占用率的嵌入式系統(tǒng)網(wǎng)絡處理調(diào)度算法后,各周期內(nèi)計算得到的閾值和處理器占用率沒有大的突變,比較穩(wěn)定,而且處理器占用率不會超過預設定的參考Pref。在實際應用環(huán)境中,可以根據(jù)目標系統(tǒng)的不同應用場合進行Pref的設定,如果實際應用中網(wǎng)絡應用不是很多,而其它處理(如:計算或者圖形處理)的要求更高,則可以設定較低的Pref;反之,則設定較高的Pref(如家庭網(wǎng)關類產(chǎn)品,處理的網(wǎng)絡數(shù)據(jù)量大)。
研究在實現(xiàn)FPGA平臺上的嵌入式網(wǎng)絡協(xié)議棧的過程中,提出并實現(xiàn)了一個基于CPU占用率的嵌入式系統(tǒng)網(wǎng)絡處理調(diào)度算法,該算法根據(jù)當前處理器的占用率、上個周期計算得到的閾值和上個周期內(nèi)收到的網(wǎng)絡報文數(shù)量進行決策,決定是否對當前周期收到的報文進行處理。這樣就可以在資源和性能有限的嵌入式設備上均衡其他應用處理和網(wǎng)絡數(shù)據(jù)處理之間的處理器占用,并且可以根據(jù)具體應用進行處理器能力分配設置,提高了靈活性。
[1]林麗群,劉大茂.μC/OS-II在ARM7上移植方法的探討與實現(xiàn)[J].現(xiàn)代電子技術,2006,(18)
[2]田耘,徐文波.Xilinx FPGA開發(fā)實用教程[M].北京:清華大學出版社,2008:8
[3]王力生,梅巖,曹南洋.輕量級嵌入式TCP/IP協(xié)議棧的設計[J].計算機工程,2007,(02)
[4]蔣媛.基于FPGA的嵌入式系統(tǒng)綜述[J].科技廣場,2008(07):243-244
[5]程明,余中華,蘇艷蘋,郭小飛.μC/OSⅡ下LwIP協(xié)議棧的移植和測試[J]微計算機信息,2008,(23)
[6]任哲.嵌入式操作系統(tǒng)基礎μc/OS-II和Linux[M].北京:北京航空航天大學出版社.2007:54-67
[7]焦海波.嵌入式網(wǎng)絡系統(tǒng)設計:基于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-),男,河北承德人,河北民族師范學院信息中心助理實驗員,碩士,主要研究方向為移動計算、嵌入式網(wǎng)絡。