本发明专利技术提供了一种报文内存回收方法和系统,包括:专用集成电路在完成buffer中的报文发送后,查询buffer的中断标记信息;所述中断标记信息标示发起中断,专用集成电路向CPU触发中断;CPU对待回收的buffer执行回收。本发明专利技术达到批量回收内存的目的,可以极大的节约CPU资源。同时增加定时回收的处理,保证在低速发包,甚至不发包的情况下,发包环不会长时间保留无效内存。
【技术实现步骤摘要】
【专利摘要】本专利技术提供了一种报文内存回收方法和系统,包括:专用集成电路在完成buffer中的报文发送后,查询buffer的中断标记信息;所述中断标记信息标示发起中断,专用集成电路向CPU触发中断;CPU对待回收的buffer执行回收。本专利技术达到批量回收内存的目的,可以极大的节约CPU资源。同时增加定时回收的处理,保证在低速发包,甚至不发包的情况下,发包环不会长时间保留无效内存。【专利说明】一种报文内存回收方法和系统
本专利技术涉及通信
,尤其涉及一种报文内存回收方法和系统。
技术介绍
在现有技术中报文内存回收有如下两种: 1.定时轮询 定时对发包环进行查询,从报文回收位置开始,将待回收报文占用的内存进行回收。定时轮询方法的关键在于定时周期的选取,如果周期太长,将会导致内存没有及时回收,发包环满,此时,将失去发包能力,直到定时回收时,回收位置往前移动;如果周期太短,将会耗费较多系统资源进行发包环的查询,且在发包量很小的情况下,定时轮询往往空耗资源,而没有效果。 2.中断 在专用集成电路(ASIC)完成buffer的报文读取发送后,会产生一个发包完成的中断,CPU接收到中断,即刻对待回收报文进行回收,在使用中断回收方式的时候,每个buffer的发送,都将产生一个中断。当在进行大量报文发送的时候,将会频繁产生中断,由于中断优先级会高于发包任务,所以会频繁出现任务调度的切换,往往一次中断仅能回收一个 buffer ο 在现有的两种方案中,上述现有技术中的的缺点为: 定时轮询的方式,容易出现不能及时回收,或者CPU空跑导致资源耗费的情况,性能低下; 中断的方式,在大量报文发送的时候,频繁的中断也会导致CPU资源的大量耗费。因此,目前的CPU发包使用的内存回收技术无法满足高性能发包要求。
技术实现思路
针对现有技术中的缺陷,本专利技术的实施例提供了一种报文内存回收方法,具体方案如下: 专用集成电路在完成buffer中的报文发送后,查询buffer的中断标记信息; 所述中断标记信息标示发起中断,专用集成电路向CPU触发中断; CPU对待回收的buffer执行回收。 根据本专利技术的上述方法,还包括:扩展buffer的控制字段,用于写入buffer的中断标记信息。 根据本专利技术的上述方法,包括:将待发送报文写入发包环的buffer后,写入buffer的中断标记信息。 根据本专利技术的上述方法,还包括,设置控制计数和预设阈值,以控制计数和预设阈值设定触发中断的条件。 根据本专利技术的上述方法,还包括,所述控制计数,反馈发包环中未发起中断的buffer的数量,或,反馈发包环中空闲的buffer的数量。 进一步地,设置第一控制计数,根据所述buffer的中断标记信息记录发包环中未发起中断的buffer的数量;或者,设置第二控制计数,根据所述buffer的中断标记信息记录空闲的buffer的数量。 进一步地,设定触发中断的条件,还包括: 当所述第一控制计数小于第一预设阈值,则在中断标记信息中标示不发起中断,所述第一控制计数自动加一; 当所述第一控制计数等于第一预设阈值,则在所述中断标记信息中标示发起中断,所述第一控制计数置零。 进一步地,设定触发中断的条件,还包括: 当所述第二控制计数大于第二预设阈值,则在中断标记信息中标示不发起中断,所述第二控制计数自动减一; 当所述第二控制计数等于第二预设阈值,则在所述中断标记信息中标示发起中断,所述第二控制计数设置为发包环中buffer数量的总数。 根据本专利技术的上述方法,包括:在发包环中记录报文提取位置和报文回收位置,其中, 报文提取位置,记录发包环中待发送报文的占用buffer的起始位置; 报文回收位置,记录发包环中回收报文占用buffer的结束位置; 根据发包环中报文提取位置和发包环中报文回收位置获取待回收的buffer,CPU对待回收的buffer执行回收。 根据本专利技术的上述方法,还包括:在发包环中记录报文提取位置和报文回收位置,其中, 报文提取位置,记录发包环中待发送报文的占用buffer的起始位置; 报文回收位置,记录发包环中回收报文占用buffer的结束位置; 根据发包环中报文提取位置和发包环中报文回收位置定时获取待回收的buffer,CPU对所述待回收的buffer执行回收。 根据本专利技术的上述方法,包括:将buffer的中断标记信息清除。 根据本专利技术的另一方面,还提供一种报文内存回收系统,包括: 查询模块:用于专用集成电路在完成buffer中的报文发送后,查询buffer的中断标记信息; 中断模块:用于在所述中断标记信息标示发起中断后,专用集成电路向CPU触发中断; 回收模块:用于CPU对待回收的buffer执行回收。 根据本专利技术的另一方面,还包括:扩展单元,用于扩展buffer的控制字段,写入buffer的中断标记信息。 根据本专利技术的另一方面,还包括:中断触发单元,用于设置控制计数和预设阈值,并以控制计数和预设阈值设定触发中断的条件。 进一步地,包括: 第一控制计数单元,用于设置第一控制计数,根据所述buffer的中断标记信息记录发包环中未发起中断的buffer的数量; 或者, 第二控制计数单元,用于设置第二控制计数,根据所述buffer的中断标记信息记录空闲的buffer的数量。 根据本专利技术的另一方面,包括:位置记录单元和获取单元,其中, 位置记录单元,用于在发包环中记录报文提取位置和报文回收位置, 所述报文提取位置,记录发包环中待发送报文的占用buffer的起始位置; 所述报文回收位置,记录发包环中回收报文占用buffer的结束位置。 获取单元,用于根据所述发包环中报文提取位置和发包环中报文回收位置获取待回收的buffer,用于回收模块中CPU对所述获取单元所获取的待回收的buffer执行回收。 根据本专利技术的另一方面,包括:位置记录单元和定时回收单元,其中, 位置记录单元,用于在发包环中记录报文提取位置和报文回收位置, 所述报文提取位置,记录发包环中待发送报文的占用buffer的起始位置; 所述报文回收位置,记录发包环中回收报文占用buffer的结束位置。 定时回收单元,用于根据发包环中报文提取位置和发包环中报文回收位置定时获取待回收的buffer,用于回收模块中CPU对所述获取单元所获取的待回收的buffer执行回收。 由上述本专利技术的实施例提供的技术方案可以看出,本专利技术实施例通过专用集成电路在完成buffer中的报文发送后,查询buffer的中断标记信息;中断标记信息标示发起中断,专用集成电路向CPU触发中断;CPU对待回收的buffer执行回收的方法达到批量回收内存的目的,可以极大的节约CPU资源。同时增加定时回收的处理,保证在低速发包,甚至不发包的情况下,发包环不会长时间保留无效内存。 【专利附图】【附图说明】 为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这本文档来自技高网...
【技术保护点】
一种报文内存回收方法,其特征在于,包括:专用集成电路在完成buffer中的报文发送后,查询buffer的中断标记信息;所述中断标记信息标示发起中断,专用集成电路向CPU触发中断;CPU对待回收的buffer执行回收。
【技术特征摘要】
【专利技术属性】
技术研发人员:陈涛,
申请(专利权)人:福建星网锐捷网络有限公司,
类型:发明
国别省市:福建;35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。