优化交换机报文上送方法及其系统的制作方法

文档序号:7804596阅读:279来源:国知局
优化交换机报文上送方法及其系统的制作方法
【专利摘要】本发明提出了一种优化交换机报文上送方法及其系统,该方法判断上层队列被填充的程度是否达到第一临界值,如果是,则限制交换芯片上送报文到内存块;判断上层队列被填充的程度是否恢复到第二临界值,如果是,则恢复交换芯片上送报文到内存块;所述第一临界值大于第二临界值。本发明在上层队列被充填到一定程度后,即限制交换芯片上送报文,避免报文过多上送而触发CPU中断从而浪费CPU处理能力,并且当报文溢出时,由交换芯片作出报文丢弃行为,由于这种丢弃行为发生在交换芯片本身,不会对CPU产生冲击,这样可以节省CPU处理资源,让CPU资源放在更有效的功能处理上。
【专利说明】优化交换机报文上送方法及其系统
【技术领域】
[0001]本发明涉及一种交换机行业,尤其是涉及一种关于交换机芯片上送报文的方法和系统。
【背景技术】
[0002]交换机内的交换芯片将报文上报给CPU处理的流程如图1所示,交换芯片通过DMA (Direct Memory Access,直接内存存取)将报文上送到内存块并产生中断,CPU进入中断服务例程,生成对应的报文结构体,报文结构体中包括波报文存储在内存块的地址以及端口信息,报文结构体插入到底层队列里,底层驱动任务将底层队列挂着的报文结构体插入到上层队列里,CPU根据上层队列的报文结构体中的内存块地址读取内存块里对应的报文,再处理该报文,当该报文得到处理后,对应的报文结构体清除出上层队列,内存块也释放出空间。
[0003]当交换芯片过多地上送报文时,就会过多地引发中断处理,浪费CPU资源。现有的一种方法是,限制内存块的大小,例如,内存块的大小只足以存放256个报文,当没有内存空间存放报文时,交换芯片无法上送报文。虽然这种方法限制了交换芯片上送报文,但是基于限制内存块大小的一种偶然性情况。而现在,厂商一般都会规划内存块具备更大的空间,比如存放1024个报文的内存空间,而上层队列的长度为1000个,这样情况就会出现溢出,目前的溢出处理,就是软件上把报文丢弃。由于是使用软件作丢弃处理,如果发生更多的报文上送,那么会频繁地触发报文上送和CPU中断,整个交换机系统就会经常处于报文上送、CPU中断处理以及软件处理溢出的阶段,这样无疑浪费CPU的处理能力。

【发明内容】

[0004]本发明需解决的技术问题是克服上述的不足,提供一种节省CPU处理资源的优化交换机报文上送方法。
[0005]为解决上述的技术问题,本发明设计了一种优化交换机报文上送方法,包括以下步骤:统计上层队列被报文结构体填充的程度;判断上层队列被报文结构体填充的程度是否达到第一临界值,如果是,则限制交换芯片上送报文到内存块;判断上层队列被被报文结构体填充的程度是否恢复到第二临界值,如果是,则恢复交换芯片上送报文到内存块;所述第一临界值大于第二临界值。
[0006]本发明还提供了一种优化报文上送方法的系统,包括:统计模块,统计出上层队列被报文结构体填充的程度;判断模块,判断上层队列被报文结构体填充的程度是否达到第一临界值或第二大临界值,所述第一临界值大于第二临界值;统计模块将上层队列被报文结构体填充的程度信息反馈给判断模块;在上层队列被报文结构体填充的程度达到第一临界值,判断模块反馈给开关模块限制恢复交换芯片上送报文到内存块的信号,开关模块做出限制交换芯片上送报文到内存块的处理;在上层队列被报文结构体填充的程度达到第二临界值,判断模块反馈给开关模块恢复交换芯片上送报文到内存块的信号,开关模块做出恢复交换芯片上送报文到内存块的处理。
[0007]作为本发明进一步改进,所述第一临界值为90%。
[0008]作为本发明进一步改进,所述第二临界值为80%。
[0009]本发明在上层队列被充填到一定程度后,即限制交换芯片上送报文,避免报文过多上送而触发CPU中断从而浪费CPU处理能力,并且当报文溢出时,由交换芯片作出报文丢弃行为,由于这种丢弃行为发生在交换芯片本身,不会对CPU产生冲击,这样可以节省CPU处理资源,让CPU资源放在更有效的功能处理上。
【专利附图】

【附图说明】
[0010]图1是现有技术报文上报给CPU处理的流程示意图;
[0011]图2是本发明实施例交换机报文上送的演示图。
【具体实施方式】
[0012]为了使本领域相关技术人员更好地理解本发明的技术方案,下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施 方式,而不是全部的实施方式。
[0013]本发明提供了一种优化交换机报文上送方法,限制交换芯片过多地上送报文,节省CPU资源。当上层队列被填充到一定的程度,则限制交换芯片将报文上送到内存块,从而避免报文过多上送而触发CPU中断;当内存块的报文得到处理时,上层队列对应的报文结构体被清除出,则恢复交换芯片上送报文到内存块。本发明通过判断上层队列被填充的程度来作出限制报文上送行为或恢复报文上送行为。
[0014]本实施例优化交换机报文上送方法包括以下步骤:
[0015]先统计出上层队列被报文结构体填充的程度。在交换机系统中,上层队列都有固定的长度,在本实施例中,上层队列的长度为1000个,当一个报文结构体由底层队列上报到上层队列时,计数器计数加1,当上层队列的报文结构体被释放时,计数器计数减I。根据计数器得到的计数信息和上层队列固定的长度,统计出上层队列被报文结构体填充的程度。例如:上层队列的长度占据到900个时,则统计到上层队列被报文结构体填充的程度达到 90%。
[0016]判断上层队列被填充的程度是否达到第一临界值,如果是,则限制交换芯片上送报文到内存块,所述第一临界值为90%。本发明考虑到当上送的报文结构体占满上层队列的程度为其固定长度的90%时,即上层队列被报文结构体填充的程度达到90%,则开始做出限制交换芯片上送报文到内存块的行为。由于交换芯片采用DMA上送给内存块,这个上送行为需要对DMA进行使能动作,限制了这个使能动作,交换芯片不再将存放在内部缓存的报文上送到内存块中去。在限制了交换芯片上送报文行为后,交换芯片还是可以不停地接收报文,当报文过多而内存空间被占满时会出现溢出行为,对于这种情况,交换芯片会作出丢弃报文行为,而这种丢弃报文行为发生在交换芯片本身,不会对CPU产生冲击。
[0017]判断上层队列被填充的程度是否恢复到第二临界值,如果是,则恢复交换芯片上送报文到内存块,所述第二临界值为80%。本发明不可能一直禁止交换芯片上送报文行为,当内存块中的报文得到CPU处理后,上层队列中对应的报文结构体也清除出,上层队列被占的长度得到释放,当报文占满上层队列的程度为80%时,即多释放出了 10%的空间,则恢复交换芯片上送报文行为,从而恢复交换机正常收报文的状态。当再遇到报文过多上送,而上层队列被填充的程度再次达到90%,则又开始限制交换芯片上送报文到内存块。
[0018]在本发明限制了交换芯片上送报文的行为,但是,底层队列中挂着的报文还会插入到上层队列,在本实施例中,第一临界值为90%,即上层队列还预留了 10%的缓冲空间,上层队列还可缓冲收报文结构体,即当上层队列被填充的程度达到90%之后,在已经开始禁止交换芯片上送报文行为后,仍然会存在底层队列上送报文结构体到上层队列。如果底层队列存放的报文结构体总数超过上层队列剩余的10%,仍然需要上层队列作出溢出处理,即软件丢弃报文。虽然在此处,需要做出丢弃报文行为,但是由于本发明已经禁止了交换芯片上送报文行为,因而只是少量报文需要被丢弃,不会影响CPU的处理能力。
[0019]如图2所示,本实施例交换机在上层队列被报文结构体填充的程度达到90%时,交换芯片将不上送报文,避免报文过多上送而触发CPU中断从而浪费CPU处理能力;在上层队列预留的10%的缓冲空间被占满时,软件丢弃上层队列溢出的报文;在内存块中的报文得到处理,上层队列中对应的报文结构体被清除出,上层队列被填充的程度释放达到80%,则交换芯片恢复上送报文。
[0020]在本实施例中,第一临界值为90%,第二临界值为80%,但本发明不限于此种情况,可根据实际情况而设定第一临界值和第二临界值,如果CPU性能高,处理能力强,第一临界值可接近100%或为100%,即上层队列接近被全部填充满时,再限制交换芯片上送报文行为,如果CPU处理能力不强,第一临界值可偏小点,如50%、60%等,即上层队列接近只被全部填充一半时,就限制交换芯片上送报文行为。当然第二临界值是在限制了交换芯片上送报文的行为之后,内存块中的报文得到CPU处理、上层队列中的对应的报文结构体也清除出、上层队列被占的空间得到释放而设定的,故,第二临界值小于第一临界值,根据实际情况可设定,如果需要为CPU提供比较长的缓冲期,可将第二临界值与第一临界值拉大距离,例如第一临界值为90%,第二临界值为70或60%。
[0021]本发明还提供了一种优化报文上送方法的系统,所述优化报文上送方法的系统包括统计模块,判断模块和开关模块。统计模块用于上层队列被报文结构体填充的程度。判断模块用于判断上层队列被报文结构体填充的程度是否达到第一临界值或第二大临界值。开关模块用于限制或恢复交换芯片上送报文到内存块。所述优化报文上送方法的系统在实施时,统计模块将上层队列被报文结构体填充的程度信息反馈给判断模块;在上层队列被报文结构体填充的程度达到第一临界值,判断模块反馈给开关模块限制恢复交换芯片上送报文到内存块的信号,开关模块做出限制交换芯片上送报文到内存块的处理;在上层队列被报文结构体填充的程度达到第二临界值,判断模块反馈给开关模块恢复交换芯片上送报文到内存块的信号,开关模块做出恢复交换芯片上送报文到内存块的处理。
[0022]本发明在上层队列被充填到一定程度后,即限制交换芯片上送报文,避免报文过多上送而触发CPU中断从而浪费CPU处理能力,并且当报文溢出时,由交换芯片作出报文丢弃行为,由于这种丢弃行为发生在交换芯片本身,不会对CPU产生冲击,这样可以节省CPU处理资源,让CPU资源放在更有效的功能处理上。
[0023] 以上仅表达了本发明的一种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种优化交换机报文上送方法,其特征在于,包括以下步骤: 统计上层队列被报文结构体填充的程度; 判断上层队列被报文结构体填充的程度是否达到第一临界值,如果是,则限制交换芯片上送报文到内存块;判断上层队列被被报文结构体填充的程度是否恢复到第二临界值,如果是,则恢复交换芯片上送报文到内存块;所述第一临界值大于第二临界值。
2.根据权利要求1所述的优化交换机报文上送方法,其特征在于,所述第一临界值为90%。
3.根据权利要求1所述的优化交换机报文上送方法,其特征在于,所述第二临界值为80%。
4.一种优化报文上送方法的系统,其特征在于,包括: 统计模块,统计出上层队列被报文结构体填充的程度; 判断模块,判断上层队列被报文结构体填充的程度是否达到第一临界值或第二大临界值,所述第一临界值大于第二临界值; 开关模块,限制或恢复交换芯片上送报文到内存块; 统计模块将上层队列被报文结构体填充的程度信息反馈给判断模块;在上层队列被报文结构体填充的程度达到第一临界值,判断模块反馈给开关模块限制恢复交换芯片上送报文到内存块的信号,开关模块做出限制交换芯片上送报文到内存块的处理;在上层队列被报文结构体填充的程度达到第二临界值,判断模块反馈给开关模块恢复交换芯片上送报文到内存块的信号,开关模块做出恢复交换芯片上送报文到内存块的处理。
5.根据权利要求4所述的优化报文上送方法的系统,其特征在于,所述第一临界值为90%。
6.根据权利要求4所述的优化报文上送方法的系统,其特征在于,所述第二临界值为80%。
【文档编号】H04L12/741GK104022971SQ201410225101
【公开日】2014年9月3日 申请日期:2014年5月26日 优先权日:2014年5月26日
【发明者】阮世昌, 朱家星 申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1