报文搬移方法及装置制造方法及图纸

技术编号:13797919 阅读:93 留言:0更新日期:2016-10-06 19:55
本发明专利技术公开了一种报文搬移方法及装置,其中,该方法包括:根据报文长度为报文分配直接内存访问DMA通道;根据DMA通道将报文搬移到交换机系统中与DMA通道对应的内存中。通过本发明专利技术解决了相关技术中交换机系统中存在很大内存资源浪费的问题,进而节省了交换机系统中的CPU收包内存。

【技术实现步骤摘要】

本专利技术涉及通信领域,具体而言,涉及一种报文搬移方法及装置
技术介绍
随着网络技术的普及,交换机技术迅速发展。对于交换机来说,数据报文通过交换芯片进行硬件直接转发,无须中央处理器(Central Processing Unit,简称为CPU)干预,对于交换机需要处理的协议报文来说,则通过交换芯片把报文上送CPU,由CPU进行处理。如图1所示,交换机系统一般包括交换芯片,CPU和内存等,目前的交换芯片一般都会内置直接内存访问(Direct Memory Access,简称为DMA),DMA通过物理层标识(Physical Cell Identifier,简称为PCI)总线把协议报文从交换芯片的缓存里面直接搬移到内存里面去,然后产生中断通知CPU去内存里面去获取协议报文并且进行相应的处理。处理性能考虑CPU一般采用零拷贝方式处理内存里面的报文,管理方便考虑一般一个报文就是一个缓存(buffer),一般的交换机需要几百个甚至几千个缓存,目前业内的buffer一般定义为1.5K字节,如果需要支持巨帧,则buffer需要定义为9k字节。如果是1k个缓存,每个缓存9k字节那么需要9M字节的内存空间。但是实质上协议报文一般都是256字节以内的报文,256-1536字节内的协议报文较少,1.5k-9k字节的巨帧协议报文就更少。为了极少的长包导致所有收包缓存都很大,存在很大内存资源的浪费。虽然有些芯片也支持把一个长报文通过PCI总线DMA到内存里面多个小的缓存空间里面,但是这样后续协议处理协议报文会比较麻烦。会增加系统软件处理的复杂度和耗费一定的CPU资源。目前也很少被采用。针对相关技术中,交换机系统中存在很大内存资源浪费的问题,还未提出有效的解决方案。
技术实现思路
本专利技术提供了一种报文搬移方法及装置,以至少解决相关技术中交换机系统中存在很大内存资源浪费的问题。根据本专利技术的一个方面,提供了一种报文搬移方法,包括:根据报文长度为所述报文分配直接内存访问DMA通道;根据所述DMA通道将所述报文搬移到交换机系统中
与所述DMA通道对应的内存中。进一步地,根据报文长度为所述报文分配直接内存访问DMA通道包括:为所述报文分配队列;在指定队列所包含的报文的字节均在预定范围内的情况下,为所述指定队列分配指定通道。进一步地,根据所述DMA通道将所述报文搬移到交换机系统中与所述DMA通道对应的内存中之后包括:在指定事件的触发下,通知所述交换机系统中的中央处理器CPU从所述内存中获取所述报文。进一步地,所述指定事件包括:所述DMA通道发生收报中断信息。进一步地,在所述报文为多个时,根据所述DMA通道将所述报文搬移到交换机系统中与所述DMA通道对应的内存中包括:通过与多个所述报文分别对应的多个DMA通道轮流将多个所述报文搬移到交换机系统中与所述多个DMA通道对应的内存中。根据本专利技术的另一个方面,还提供了一种报文搬移装置,包括:分配模块,用于根据报文长度为所述报文分配直接内存访问DMA通道;搬移模块,用于根据所述DMA通道将所述报文搬移到交换机系统中与所述DMA通道对应的内存中。进一步地,所述分配模块包括:第一分配单元,用于为所述报文分配队列;第二分配单元,用于在指定队列所包含的报文的字节均在预定范围内的情况下,为所述指定队列分配指定通道。进一步地,所述装置还包括:通知模块,用于在指定事件的触发下,通知所述交换机系统中的中央处理器CPU从所述内存中获取所述报文。进一步地,所述指定事件包括:所述DMA通道发生收报中断信息。进一步地,在所述报文为多个时,所述搬移模块还用于通过与多个所述报文分别对应的多个DMA通道轮流将多个所述报文搬移到交换机系统中与所述多个DMA通道对应的内存中。通过本专利技术,采用根据报文长度为报文分配直接内存访问DMA通道;根据DMA通道将报文搬移到交换机系统中与DMA通道对应的内存中。解决了相关技术中交换机系统中存在很大内存资源浪费的问题,进而节省了交换机系统中的CPU收包内存。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是交换机系统示意图;图2是根据本专利技术实施例的报文搬移方法的流程图;图3是根据本专利技术实施例的报文搬移装置的结构框图;图4是根据本专利技术实施例的报文搬移装置的结构框图(一);图5是根据本专利技术实施例的报文搬移装置的结构框图(二);图6是根据本专利技术实施例的大量节约CPU收包内存的交换机系统流程图。具体实施方式下文中将参考附图并结合实施例来详细说明本专利技术。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。在本实施例中提供了一种报文搬移方法,图2是根据本专利技术实施例的报文搬移方法的流程图,如图2所示,该流程包括如下步骤:步骤S202,根据报文长度为报文分配直接内存访问DMA通道;步骤S204,根据DMA通道将报文搬移到交换机系统中与DMA通道对应的内存中。通过上述步骤,首先按照报文的长度为报文分配DMA通道,再根据DMA通道将报文搬移到交换机系统中与DMA通道对应的内存中,相对于现有技术中,为了极少的长包导致所有收包缓存都很大的问题,上述步骤解决了相关技术中交换机系统中存在很大内存资源浪费的问题,进而节省了交换机系统中的CPU收包内存。上述步骤S204中涉及到根据报文长度为报文分配直接内存访问DMA通道,在一个可选实施例中,首先为报文分配队列,在指定队列所包含的报文的字节均在预定范围内的情况下,为指定队列分配指定通道。对于交换机需要处理的报文来说,通过交换芯片将报文发送给CPU,由CPU处理。在一个可选实施例中,根据DMA通道将报文搬移到交换机系统中与DMA通道对应的内存中之后,在指定事件的触发下,通知交换机系统中的中央处理器CPU从内存中获取报文。在一个可选实施例中,上述指定事件可以包括:DMA通道发生收报中断信息。在报文为多个时,在一个可选实施例中,将多个报文搬移到交换机系统中与DMA通道对应的内存中时,通过与多个该报文分别对应的多个DMA通道轮流将多个报文搬移到交换机系统中与多个DMA通道对应的内存中。在本实施例中还提供了一种报文搬移装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬
件,或者软件和硬件的组合的实现也是可能并被构想的。图3是根据本专利技术实施例的报文搬移装置的结构框图,如图3所示,该装置包括:分配模块32,用于根据报文长度为报文分配直接内存访问DMA通道;搬移模块34,用于根据DMA通道将该报文搬移到交换机系统中与DMA通道对应的内存中。图4是根据本专利技术实施例的报文搬移装置的结构框图(一),如图4所示,分配模块32包括:第一分配单元322,用于为报文分配队列;第二分配单元324,用于在指定队列所包含的报文的字节均在预定范围内的情况下,为指定队列分配指定通道。图5是根据本专利技术实施例的报文搬移装置的结构框图(二),如图5所示,该装置还包括:通知模块52,用于在指定事件的触发下,通知交换机系统中的本文档来自技高网
...

【技术保护点】
一种报文搬移方法,其特征在于,包括:根据报文长度为所述报文分配直接内存访问DMA通道;根据所述DMA通道将所述报文搬移到交换机系统中与所述DMA通道对应的内存中。

【技术特征摘要】
1.一种报文搬移方法,其特征在于,包括:根据报文长度为所述报文分配直接内存访问DMA通道;根据所述DMA通道将所述报文搬移到交换机系统中与所述DMA通道对应的内存中。2.根据权利要求1所述的方法,其特征在于,根据报文长度为所述报文分配直接内存访问DMA通道包括:为所述报文分配队列;在指定队列所包含的报文的字节均在预定范围内的情况下,为所述指定队列分配指定通道。3.根据权利要求1所述的方法,其特征在于,根据所述DMA通道将所述报文搬移到交换机系统中与所述DMA通道对应的内存中之后包括:在指定事件的触发下,通知所述交换机系统中的中央处理器CPU从所述内存中获取所述报文。4.根据权利要求3所述的方法,其特征在于,所述指定事件包括:所述DMA通道发生收报中断信息。5.根据权利要求1所述的方法,其特征在于,在所述报文为多个时,根据所述DMA通道将所述报文搬移到交换机系统中与所述DMA通道对应的内存中包括:通过与多个所述报文分别对应的多个DMA通道轮流将多个所述报文搬移到交...

【专利技术属性】
技术研发人员:潘庭山
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1