报文接收方法、报文接收模块、装置及系统制造方法及图纸

技术编号:7917612 阅读:177 留言:0更新日期:2012-10-25 02:25
本发明专利技术提供一种报文接收方法、报文接收模块、装置及系统,其中报文接收方法包括接收到报文之后,将报文与第一描述符队列内的第一描述符中的物理地址和虚拟地址,以及第一描述符队列内的第二描述符中的虚拟地址构造为总线报文;将总线报文发送至内存中与第一描述符中的物理地址对应的当前报文缓冲区,以供中央处理器根据当前报文缓冲区对应的虚拟地址,读取当前报文缓冲区中的报文;清除第一描述符中的物理地址和虚拟地址之后,将第一描述符队列中的描述符顺序进行移位。从而使得中央处理器通过轮询的方式即可顺序读取报文缓冲区中的内容,有效地提高了系统的处理效率,减小了系统开销。

【技术实现步骤摘要】

本专利技术涉及计算机通信技术,尤其涉及一种报文接收方法、报文接收模块、装置及系统
技术介绍
直接访问内存(Direct Memory Access, DMA)技术是一种外设与内存之间高速传输数据的方法,外部设备接口卡以DMA方式可以直接访问主机存储器中的数据。DMA传输技术采用两种关键技术,即报文缓冲区描述符维护和中断处理例程。报文缓冲区描述符维护主要用于对描述符以及描述符所指的报文缓冲区的申请和管理;中断处理例程主要涉及缓冲区内报文处理和缓冲区的释放。但是,接收和发送描述符的同步需要软硬件协同维护,需要设置多种寄存器,例如,描述符基地址寄存器、中断寄存器、中断阈值寄存器、描述符数量寄存器和超时寄存器等,不仅处理复杂,而且占用了大量中央处理器(Central Processing Unit, CPU)的开销以及硬件逻辑资源。中断触发机制需要根据设定的阈值向CPU产生中断,若中断次数过于频繁,会造成大量的进程切换开销,影响CPU的工作效率。因此,现有技术中的DMA传输技术存在系统处理效率较低的问题。
技术实现思路
本专利技术提供一种用于提高DMA传输技术的处理效率,并减小系统开销的报文接收方法、报文接收模块、装置及系统。本专利技术的第一个方面是提供一种报文接收方法,包括接收到报文之后,将所述报文与第一描述符队列内的第一描述符中的物理地址和虚拟地址,以及所述第一描述符队列内的第二描述符中的虚拟地址构造为总线报文;其中,所述第一描述符包括内存中当前报文缓冲区的物理地址和虚拟地址;所述第二描述符顺序排列在所述第一描述符之后,包括所述内存中所述当前报文缓冲区后的下一个报文缓冲区的物理地址和虚拟地址;将所述总线报文发送至所述内存中与所述第一描述符中的物理地址对应的所述当前报文缓冲区,以供中央处理器根据所述当前报文缓冲区对应的虚拟地址,读取所述当前报文缓冲区中的报文;清除所述第一描述符中的物理地址和虚拟地址之后,将所述第一描述符队列中的描述符顺序进行移位,以使所述第二描述符中的物理地址和虚拟地址成为更新后的第一描述符中的物理地址和虚拟地址。本专利技术的另一个方面是提供一种报文接收模块,包括第一接收单元,用于在接收到报文之后,将所述报文与第一描述符队列内的第一描述符中的物理地址和虚拟地址,以及所述第一描述符队列内的第二描述符中的虚拟地址构造为总线报文;、其中,所述第一描述符包括内存中当前报文缓冲区的物理地址和虚拟地址;所述第二描述符顺序排列在所述第一描述符之后,包括所述内存中所述当前报文缓冲区后的下一个报文缓冲区的物理地址和虚拟地址;第一发送单元,用于将所述总线报文发送至所述内存中与所述第一描述符中的物理地址对应的所述当前报文缓冲区,以供中央处理器根据所述当前报文缓冲区对应的虚拟地址,读取所述当前报文缓冲区中的报文;第一处理单元,用于在清除所述第一描述符中的物理地址和虚拟地址之后,将所述第一描述符队列中的描述符顺序进行移位,以使所述第二描述符中的物理地址和虚拟地址成为更新后的第一描述符中的物理地址和虚拟地址。 本专利技术的又一个方面是提供一种网络接口卡,包括上述报文接收模块。本专利技术还提供了一种报文接收系统,包括上述网络接口卡、内存和中央处理器。本专利技术提供的报文接收方法、报文接收模块、装置及系统,通过将接收到的报文构造为包括内存中当前报文缓冲区的描述符和下一报文缓冲区的描述符的总线报文,使得CPU从内存中读取当前报文缓冲区的报文时能够获知下一报文缓冲区的虚拟地址,从而能够通过轮询的方式顺序读取报文缓冲区中的内容,不需要使用多种寄存器进行配合,也不需要向CPU产生中断,有效地提高了系统的处理效率,减小了系统开销。附图说明图I为本专利技术报文接收方法一实施例的流程图;图2为本专利技术实施例内存中报文缓冲区格式的示意图;图3为本专利技术报文接收方法另一实施例的流程图;图4为本专利技术实施例报文接收模块接收报文的流程图;图5为本专利技术实施例中央处理器接收报文的流程图;图6为本专利技术报文接收模块实施例的结构示意图;图7为本专利技术报文接收系统实施例的结构示意图;图8为本专利技术实施例报文接收系统的一种系统结构。具体实施例方式本专利技术各实施例中的技术方案,是对主机内存从DMA控制器接收报文的方法进行的改进。DMA控制器采用DMA技术实现与主机内存之间的报文收发,其中,DMA控制器包括DMA发送引擎和DMA接收引擎。DMA发送引擎用于将主机内存中的报文发送至外置设备或者网络设备等;DMA接收引擎用于将从外置设备或网络设备接收到的报文发送至主机内存。本专利技术各实施例中的报文接收模块包括DMA接收引擎和相关的功能模块,即在以下各实施例中的报文接收模块具有DMA接收引擎的功能以及相关的控制和处理功能;主机内存在以下各实施例中还被简称为内存;中央处理器在以下各实施例中还被简称为CPU。图I为本专利技术报文接收方法一实施例的流程图,如图I所示,该方法包括步骤101、接收到报文之后,将所述报文与第一描述符队列内的第一描述符中的物理地址和虚拟地址,以及所述第一描述符队列内的第二描述符中的虚拟地址构造为总线报文。其中,所述第一描述符包括内存中当前报文缓冲区的物理地址和虚拟地址;所述第二描述符顺序排列在所述第一描述符之后,包括所述内存中所述当前报文缓冲区后的下一个报文缓冲区的物理地址和虚拟地址。报文接收模块从外置设备或者网络设备接收到报文之后,需要将接收到的报文构造为总线报文,该总线报文包括描述符域和报文域。 具体的构造方法为,从该报文接收模块中存储的第一描述符队列中读取第一描述符和第二描述符,将第一描述符中的物理地址和虚拟地址,第二描述符中的虚拟地址,以及控制信息与接收到的报文构造为总线报文。其中,第一描述符中的物理地址和虚拟地址,第二描述符中的虚拟地址和控制信息存储在总线报文的描述符域中,接收到的报文存储在总线报文的报文域中。总线报文中所包含信息的顺序由报文接收模块和预先存储在CPU中的软件程序进行控制,根据通信双方的协议进行构造即可。其中,报文接收模块中存储的第一描述符队列,包括至少两个顺序排列的描述符,每个描述符均包括一个物理地址和一个虚拟地址,并且同一个描述符中物理地址和虚拟地址对应着内存中的同一存储空间。区别在于,物理地址是内存中存储报文的存储空间的实际地址,用于供其他装置或模块根据该物理地址将报文写入内存中对应的存储空间中,当CPU需要读取内存中该存储空间的报文时,则需要根据虚拟地址访问该存储空间,物理地址和虚拟地址指向的是内存中的同一存储空间。由于第一描述符队列中的描述符是顺序排列的,因此将其中位于队列起始位置的描述符定义为第一描述符,将顺序排列在第一描述之后的描述符定义为第二描述符。第一和第二仅用于标记描述符在队列中的位置次序。在构造总线报文时,将第一描述符中的物理地址和虚拟地址所指向的内存中的存储空间,作为该总线报文的目的地;除了包括目的地地址以外,还在总线报文中携带第二描述符中的虚拟地址,该第二描述符中的虚拟地址所指向的内存中的存储空间,是顺序排列在总线报文发送目的地之后的存储空间,即下一报文缓冲区。控制信息中包括该总线报文的传输状态信息,此外还包括该总线报文的报文域中报文的长度和传输报文的端口信息等保证报文正常传输的信息。将第一描述符中的物理地址和虚拟地址、第二描述符本文档来自技高网...

【技术保护点】
一种报文接收方法,其特征在于,包括:接收到报文之后,将所述报文与第一描述符队列内的第一描述符中的物理地址和虚拟地址,以及所述第一描述符队列内的第二描述符中的虚拟地址构造为总线报文;其中,所述第一描述符包括内存中当前报文缓冲区的物理地址和虚拟地址;所述第二描述符顺序排列在所述第一描述符之后,包括所述内存中所述当前报文缓冲区后的下一个报文缓冲区的物理地址和虚拟地址;将所述总线报文发送至所述内存中与所述第一描述符中的物理地址对应的所述当前报文缓冲区,以供中央处理器根据所述当前报文缓冲区对应的虚拟地址,读取所述当前报文缓冲区中的报文;清除所述第一描述符中的物理地址和虚拟地址之后,将所述第一描述符队列中的描述符顺序进行移位,以使所述第二描述符中的物理地址和虚拟地址成为更新后的第一描述符中的物理地址和虚拟地址。

【技术特征摘要】

【专利技术属性】
技术研发人员:吕高锋唐路孙志刚陈一骄李韬徐东来杨安石巍
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

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

1