面向数据报文处理的缓冲区及使用方法

文档序号:9326823阅读:771来源:国知局
面向数据报文处理的缓冲区及使用方法
【技术领域】
[0001]本发明涉及计算机领域,特别是涉及一种面向数据报文处理的缓冲区及使用方法。
【背景技术】
[0002]目前,接收数据报文之后,先拷贝到接收缓冲区中,然后将硬件缓冲区释放掉。然后cpu从接收缓冲区中读取数据报文的内容进行处理,并将处理后的结果和接收缓冲区中的部分内容组成发送数据报文,发送数据报文需要存储在新的缓冲区(发送缓冲区)中。发送数据报文形成后,CPU将发送数据报文拷贝到缓冲区中,然后启动DMA (Direct MemoryAccess,存储器直接访问)发送出去,发送完成后回收发送缓冲区。
[0003]现有技术中,数据报文处理时需要拷贝多次,硬件缓冲区到接收缓冲区中,发送缓冲区到物理地址连续缓冲区,同时需要回收不同的缓冲区,造成整体的处理流程复杂化。

【发明内容】

[0004]本发明要解决的技术问题是提供一种面向数据报文处理的缓冲区及使用方法,用以解决现有技术的数据报文处理流程复杂化的问题。
[0005]为解决上述技术问题,一方面,本发明提供一种面向数据报文处理的缓冲区使用方法,包括:
[0006]中央处理器接收数据报文,通过存储器直接访问控制器将所述数据报文存储在接收缓冲区中;对所述接收缓冲区中数据报文进行处理,获得处理后的数据报文;将所述处理后的数据报文存储在发送缓冲区中,通过存储器直接访问控制器将所述处理后的数据报文发送出去。
[0007]进一步,所述接收数据报文之前还包括:
[0008]将硬件缓冲区划分为头部区域、接收缓冲区和发送缓冲区;
[0009]将所述头部区域的开始位置、所述接收缓冲区的开始位置和所述发送缓冲区的开始位置发送给中央处理器的网络协处理器;
[0010]中央处理器的网络协处理器将所述接收缓冲区的开始位置和所述发送缓冲区的开始位置发送给所述存储器直接访问控制器。
[0011]进一步,通过存储器直接访问控制器将所述数据报文存储在接收缓冲区中,具体包括:
[0012]存储器直接访问控制器根据所述接收缓冲区的开始位置,将所述数据报文存储在物理地址连续的接收缓冲区中。
[0013]进一步,将所述处理后的数据报文存储在发送缓冲区中,通过存储器直接访问控制器将所述处理后的数据报文发送出去,具体包括:
[0014]根据所述发送缓冲区的开始位置,将所述处理后的数据报文存储在物理地址连续的发送缓冲区中;
[0015]存储器直接访问控制器根据所述发送缓冲区的开始位置,将所述处理后的数据报文发送出去。
[0016]进一步,所述头部区域属于预留区域。
[0017]进一步,处理后的数据报文发送出去之后,还包括:
[0018]中央处理器的网络协处理器根据所述接收缓冲区的开始位置释放所述接收缓冲区和所述发送缓冲区。
[0019]另一方面,本发明还提供一种面向数据报文处理的缓冲区,包括:
[0020]接收缓冲区,用于按照连续的物理地址存储接收数据报文;以及
[0021]发送缓冲区,用于按照连续的物理地址存储处理后的数据报文。
[0022]进一步,所述缓冲区还包括头部区域,所述头部区域属于预留区域,头部区域将其开始位置发送给存储器直接访问控制器;
[0023]接收缓冲区,还用于将其开始位置发送给中央处理器的网络协处理器;
[0024]发送缓冲区,还用于将其开始位置发送给中央处理器的网络协处理器。
[0025]本发明有益效果如下:本发明将硬件缓冲区、发送缓冲区和接收缓冲区放在一起,在初始化时一次性分配,减少了内存拷贝次数,减少内存管理的开销,提高了系统性能。同时,在数据处理的过程中,CPU基本不参与缓冲的管理工作,全部由硬件来实现,大大简化了数据处理的流程。
【附图说明】
[0026]图1是本发明实施例中一种数据报文的收发方法的流程图;
[0027]图2是本发明实施例中一种处理数据报文的缓冲区的结构示意图。
【具体实施方式】
[0028]为了解决现有技术的数据报文处理流程复杂化的问题,本发明提供了一种面向数据报文处理的缓冲区及使用方法,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
[0029]现有技术中,数据报文需要拷贝多次,硬件缓冲区到接收缓冲区中,发送缓冲区到物理地址连续缓冲区,同时需要回收不同的缓冲区,造成整体的处理流程复杂化。本发明通过CPU (Central Processing Unit,中央处理器)在用户面直接接收驱动的数据报文,接收到数据报文之后,将原数据报文中的内容进行处理,将处理的结果和原报文中的部分内容重新组成新的数据报文,然后通知硬件启动DMA (Direct Memory Access,存储器直接访问),将数据发送出去。
[0030]实施例一
[0031]如图1所示,本发明实施例提供一种面向数据报文处理的缓冲区使用方法,包括:
[0032]S101,将硬件缓冲区划分为头部区域、接收缓冲区和发送缓冲区;将所述头部区域的开始位置、所述接收缓冲区的开始位置和所述发送缓冲区的开始位置发送给所述存储器直接访问控制器。所述头部区域属于预留区域,具体地头部区域为分配缓冲区时预留的部分,这部分不作为接收和发送缓冲区使用,只用作参数记录或者用于标识缓冲区的特征。接收缓冲区,用于存储接收数据报文。发送缓冲区,用于存储处理后的数据报文。
[0033]将所述头部区域的开始位置、所述接收缓冲区的开始位置和所述发送缓冲区的开始位置发送给中央处理器的网络协处理器;
[0034]中央处理器的网络协处理器将所述接收缓冲区的开始位置和所述发送缓冲区的开始位置发送给所述存储器直接访问控制器。
[0035]S102,中央处理器接收数据报文,通过存储器直接访问控制器将所述数据报文存储在接收缓冲区中;也就是说,CPU接收到数据报文后,DMA控制器根据接收缓冲区的开始位置,将所述数据报文存储在接收缓冲区中。具体地,存储器直接访问控制器根据所述接收缓冲区的开始位置,将所述数据报文存储在物理地址连续的接收缓冲区中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1