APP下载

一种基于CPU占用率的嵌入式系统网络处理调度算法

2012-09-19计大杰姜学东

河北民族师范学院学报 2012年2期
关键词:占用率报文嵌入式

计大杰, 姜学东

(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.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 算法介绍

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 算法测试

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(如家庭网关类产品,处理的网络数据量大)。

4 结语

研究在实现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-),男,河北承德人,河北民族师范学院信息中心助理实验员,硕士,主要研究方向为移动计算、嵌入式网络。

猜你喜欢

占用率报文嵌入式
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
降低CE设备子接口占用率的研究与应用
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
解析交换机CPU占用率
ATS与列车通信报文分析
基于排队论的区域路内停车最优泊位占用率研究
Altera加入嵌入式视觉联盟