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