一种降低cpu处理负荷的媒体流数据处理方法

文档序号:7663169阅读:143来源:国知局

专利名称::一种降低cpu处理负荷的媒体流数据处理方法
技术领域
:本发明属于数据传输
技术领域
,特别涉及一种用来实现在CDMA(CodeDivisionMultipleAccess)系统的基站(BaseTransceiverStation,縮写为BTS)侧进行数据通信时降低中央处理单元(CentralProcessingUnit,縮写为CPU)处理负荷的数据处理方法。
背景技术
:常用的嵌入式多以太网通信设备一般由CPU单元、内存单元、以太网芯片和硬件逻辑单元等部件构成。现在普遍采用的硬件逻辑为现场可编程门阵列(FieldProgrammableGateArray,縮写为FPGA)、可擦除可编程逻辑器件(ErasableProgrammableLogicDevice,縮写为EPLD)等,硬件逻辑配合能够完成物理信号和数据处理能力,在一些应用场合,能够代替CPU完成数据处理工作。目前在BTS基站中,对E1信号的处理都是通过逻辑来实现的反向处理发送El数据,前向处理接收E1数据。按照现行数据处理流程,逻辑每接收到一个完整的媒体面报文后就产生一次中断,通知CPU来进行发送或者接收数据,这样就导致CPU需要频繁进入该中断处理流程,造成CPU的数据处理负荷偏高,进而导致系统工作不稳定的隐患。这种处理机制下,在需要处理更多话务时,一般要通过升级单板的CPU处理器来实现。目前,嵌入式通信设备一般都具有多通道通信、多协议交换处理能力,为了保证通信的实时性且能够处理庞大的数据流量,需要设备中的CPU具有较高的处理能力。如何利用性能较低的CPU满足通信设备的前述处理能力要求,以尽可能降低设备成本和减少功耗,是通信设备制造商研究的重点之一。
发明内容本发明要解决的技术问题是针对现有数据处理流程下CPU数据处理负荷偏高的问题,提出一种降低CPU处理负荷的媒体流数据处理方法。在不改变硬件配置情况下,该方法能够通过改进数据处理流程明显减轻的CPU处理负荷,为降低设备成本和能耗创造条件。为解决上述技术问题,本发明提出的降低CPU处理负荷的媒体流数据处理方法是这样的设备接收到从上级设备发送来的媒体面的数据包时,按照如下步骤进行媒体流数据处理:(1)设备的逻辑按照并包的格式把若干个媒体面的单包组合成一个并包;(2)逻辑把该并包的数据报文发送给CPU协议栈处理;(3)CPU协议栈把接收到的并包数据拆分为单包后提供给下级设备处理。设备接收到从下级设备发送来的媒体面的数据包时,按照如下步骤进行媒体流数据处理:(1)设备的CPU按照并包的格式把若干个媒体面的单包组合成一个并包;(2)CPU把该并包的数据报文提供给逻辑来处理;(3)逻辑把接收到的并包数据拆分为单包后进行相应的处理;(4)逻辑把处理后的单包数据传送给上级设备进行处理。本发明方法所述逻辑为硬件逻辑单元,如FPGA器件。采用上述方法后,逻辑处理CPU发来的数据包的过程如下(1)逻辑收到CPU发来的数据包时,将其写到内部第一先入先出(FirstInputFirstOutput,縮写为FIFO)存储区中;(2)逻辑查询第一先入先出存储区中是否接收到新的数据包,如果有新的数据包则把接收到的数据包根据数据包类型进行相应处理若数据包为单包,逻辑按照单包处理流程予以处理后将数据存储到第二先入先出存储区中;若数据包为并包,逻辑按照拆包处理流程予以处理后将数据存储到第二先入先出存储区中;(3)逻辑把第二先入先出存储区中的数据按照原处理流程处理后提供给上级设备处理。采用上述方法后,逻辑处理上级设备发来的数据包的过程如下(1)逻辑接收上级设备发送过来的数据时,将其写到内部第三先入先出存储区中;(2)逻辑读取第三先入先出存储区中的数据并根据其是否为媒体流数据包进行相应处理把媒体流数据包放置到内部第四先入先出存储区中,把其它的数据包放置到内部第五先入先出存储区中,并且对第四先入先出存储区中的数据进行并包处理;(3)逻辑轮流查询第四和第五先入先出存储区,如果第四先入先出存储区中接收的数据包的数量或者数据包长度达到一定要求,或者第五先入先出存储区中接收到一个完整的数据包,则将其发送到内部第六先入先出存储区中;(4)逻辑把第六先入先出存储区中的数据发送给CPU。本发明方法仅通过对收发包的格式做一定的变更,通过CPU协议栈和逻辑增加对该格式报文的处理流程,减少了产生中断的次数,从而达到降低CPU处理负荷的效果,进而达到了降低设备成本和能耗的目的。本发明只涉及设备内部数据包处理流程的改动,不会影响到与上级或者下级设备之间的协议更改。图1是本发明中媒体流处理流程示意图;图2是本发明中逻辑处理反向拆包的控制流程示意图;图3是本发明中逻辑前向组包的控制流程示意图。具体实施方式下面结合附图与具体实施方式对本发明作进一步详细说明。图l是本发明中媒体流处理流程示意图。如图所示,下级设备把数据发送给CPU,CPU协议栈按照并包的格式把若干个媒体面的单包组合成一个并包,并按照并包的格式在该数据包前增加并包数据头后发送到逻辑;逻辑把接收到的并包数据拆分为单包后进行相应处理,并把处理后的单包数据提供给上级设备;对于从上级设备输入到逻辑的媒体面的数据单包,逻辑按照并包的格式把若干个媒体面的单包组合成一个数据包,并按照并包的格式在该数据包前增加并包数据头后发送给CPU的协议栈处理,CPU协议栈把接收到的并包数据拆分为单包后提供给上层软件处理,再把处理后的单包数据发送给下级设备。并包由并包数据头和多个单包数据组成。并包数据头占用4个字节,其中包括1个字节的"并包标志符"、l个字节的"网络服务质量(QualityofService,缩写为QoS)"和2个字节的"并包中的数据包总长度"。一个并包可以包括多个单包数据,但在一个并包中包含的单包个数在2~30个之间较好,因为数据包个数太少会由于增加并包数据头而达不到降低CPU处理负荷的作用,数据包个数太大会引起通讯延时和合并后数据包过大的故障。并包的格式参见下表<table>tableseeoriginaldocumentpage6</column></row><table>单包数据的格式如下表:<table>tableseeoriginaldocumentpage6</column></row><table>可以看到,本发明只需要在设备内部的CPU协议栈进行数据包处理流程中增加数据包的合并及相关功能,再通过逻辑来对相关并包进行处理即可实现,而不会影响到上级或者下级设备的协议更改。图2是本发明中逻辑处理反向拆包的控制流程示意图。如图所示,逻辑收到CPU发来的数据包时,将其写到内部第一先入先出存储区中。逻辑査询第一先入先出存储区中是否接收到新的数据包,如果有新的数据包则把接收到的数据包根据数据包类型进行相应处理若数据包为单包,逻辑按照单包处理流程予以处理后将数据存储到第二先入先出存储区中;若数据包为并包,逻辑按照并包处理流程将其拆分为单包后将数据存储到第二先入先出存储区中;最后,逻辑把第二先入先出存储区中的数据按照原处理流程处理后的发送到上级设备。图3是本发明中逻辑前向组包的控制流程示意图。如图所示,逻辑接收上级设备发送过来的数据时,将其写到内部第三先入先出存储区中;逻辑读取第三先入先出存储区中的数据并根据其是否为媒体流数据包进行相应处理把媒体流数据包放置到第四先入先出存储区中,把其它的数据包放置到第五先入先出存储区中,并且对第四先入先出存储区中的数据进行并包处理;逻辑轮流査询第四和第五先入先出存储区,如果第四先入先出存储区中接收的数据包的数量或者数据包长度达到一定要求,如数据包达到20个、数据包长度达到1024字节,或者第五先入先出存储区中接收到一个完整的数据包,则将其发送到内部第六先入先出存储区中;最后,逻辑把第六先入先出存储区中的数据发送给CPU处理。下面以收发一次完整的数据包为例,结合附图对本发明作进一步的描述。(1)下级设备把数据发送给CPU,CPU协议栈按照并包格式把多个媒体面的数据包组合成并包后通过BSP发送到逻辑;(2)逻辑把从BSP发送来的数据写到图2所示的第一先入先出存储区中;(3)逻辑査询第一先入先出存储区中是否接收到新的数据包,如果有新的数据包则把接收到的数据包根据数据包类型进行分类处理,并存储到图2所示的第二先入先出存储区中;(4)逻辑把第二先入先出存储区中的数据按照原处理流程处理后发送到上级设备;(5)逻辑接收上级设备发送过来的数据并放置到图3所示的第三先入先出存储区中;(6)逻辑把第三先入先出存储区中的数据读取出来后根据数据包的类型进行相应的处理,把其中的媒体流数据包放置到图3所示的第四先入先出存储区中,把其它的数据包放置到图3所示的第五先入先出存储区中,并且对第四先入先出存储区中的数据进行相应的并包处理(7)逻辑轮流査询第四和第五先入先出存储区是否有复合条件的数据包,即第四先入先出存储区中接收的数据包是否达到要求的数量或者数据包长度达到要求的字节数,或者第五先入先出存储区中是否接收到一个完整的数据包,如有则将其发送到图3所示的第六先入先出存储区中(8)逻辑把第六先入先出存储区中的数据发送给CPU;(9)CPU协议栈在接收到逻辑发送的数据包后,査询接收到的数据包的类型进行相应的处理;(10)CPU把处理后的数据提供给下级设备处理。通过上述方法,可以实现仅更改本单板的相关协议即可实现降低CPU的处理负荷。经过实际测试证明,通过上述方法进行处理后CPU的处理负荷能够降低达30。/。左右,并且话务量越大对降低CPU的处理负荷效果越明显。本发明方法简单、实用,伴随着数据通讯在不同领域的广泛应用,该方法也将具有丰富和巨大的应用潜力。权利要求1、一种降低CPU处理负荷的媒体流数据处理方法,其特征在于设备接收到从上级设备发送来的媒体面的数据包时,按照如下步骤进行媒体流数据处理(1)设备的逻辑按照并包的格式把若干个媒体面的单包组合成一个并包;(2)逻辑把该并包的数据报文发送给CPU协议栈处理;(3)CPU协议栈把接收到的并包数据拆分为单包后提供给下级设备处理;设备接收到从下级设备发送来的媒体面的数据包时,按照如下步骤进行媒体流数据处理(1)设备的CPU按照并包的格式把若干个媒体面的单包组合成一个并包;(2)CPU把该并包的数据报文提供给逻辑来处理;(3)逻辑把接收到的并包数据拆分为单包后进行相应的处理;(4)逻辑把处理后的单包数据传送给上级设备进行处理。2、根据权利要求1所述的媒体流数据处理方法,其特征在于,所述并包由并包数据头和多个单包数据组成;并包数据头内包含"并包标志符"、"网络服务质量"和"并包中的数据包总长度"。3、根据权利要求2所述的媒体流数据处理方法,其特征在于,一个所述并包中包含的单包个数在2~30个之间。4、根据权利要求1或2或3所述的媒体流数据处理方法,其特征在于,逻辑处理CPU发来的数据包的过程如下U)逻辑收到CPU发来的数据包时,将其写到内部第一先入先出存储区中;(2)逻辑査询第一先入先出存储区中是否接收到新的数据包,如果有新的数据包则把接收到的数据包根据数据包类型进行相应处理若数据包为单包,逻辑按照单包处理流程予以处理后将数据存储到第二先入先出存储区中;若数据包为并包,逻辑按照拆包处理流程予以处理后将数据存储到第二先入先出存储区中;(3)逻辑把第二先入先出存储区中的数据按照原处理流程处理后提供给上级设备处理。5、根据权利要求1或2或3所述的媒体流数据处理方法,其特征在于,逻辑处理上级设备发来的数据包的过程如下(1)逻辑接收上级设备发送过来的数据时,将其写到内部第三先入先出存储区中;(2)逻辑读取第三先入先出存储区中的数据并根据其是否为媒体流数据包进行相应处理把媒体流数据包放置到内部第四先入先出存储区中,把其它的数据包放置到内部第五先入先出存储区中,并且对第四先入先出存储区中的数据进行并包处理;(3)逻辑轮流査询第四和第五先入先出存储区,如果第四先入先出存储区中接收的数据包的数量或者数据包长度达到一定要求,或者第五先入先出存储区中接收到一个完整的数据包,则将其发送到内部第六先入先出存储区中;(4)逻辑把第六先入先出存储区中的数据发送给CPU。6、根据权利要求4所述的媒体流数据处理方法,其特征在于,逻辑处理上级设备发来的数据包的过程如下(1)逻辑接收上级设备发送过来的数据时,将其写到内部第三先入先出存储区中;(2)逻辑读取第三先入先出存储区中的数据并根据其是否为媒体流数据包进行相应处理把媒体流数据包放置到内部第四先入先出存储区中,把其它的数据包放置到内部第五先入先出存储区中,并且对第四先入先出存储区中的数据进行并包处理;(3)逻辑轮流查询第四和第五先入先出存储区,如果第四先入先出存储区中接收的数据包的数量或者数据包长度达到一定要求,或者第五先入先出存储区中接收到一个完整的数据包,则将其发送到内部第六先入先出存储区中;(4)逻辑把第六先入先出存储区中的数据发送给CPU。7、根据权利要求1或2或3所述的媒体流数据处理方法,其特征在于,所述逻辑为硬件逻辑单元,是现场可编程门阵列器件。8、根据权利要求4所述的媒体流数据处理方法,其特征在于,所述逻辑为硬件逻辑单元,是现场可编程门阵列器件。9、根据权利要求5所述的媒体流数据处理方法,其特征在于,所述逻辑为硬件逻辑单元,是现场可编程门阵列器件。10、根据权利要求6所述的媒体流数据处理方法,其特征在于,所述逻辑为硬件逻辑单元,是现场可编程门阵列器件。全文摘要本发明公开了一种降低CPU处理负荷的媒体流数据处理方法。设备的逻辑按照并包的格式把若干个媒体面的单包组合成一个并包,然后把该并包的数据报文发送给CPU协议栈处理,CPU协议栈把接收到的并包数据拆分为单包后提供给下级设备处理;设备的CPU按照并包的格式把若干个媒体面的单包组合成一个并包,然后把该并包的数据报文提供给逻辑来处理,逻辑把接收到的并包数据拆分为单包后进行相应的处理,再传送给上级设备进行处理。本发明方法仅通过对收发包的格式做一定的变更,通过CPU协议栈和逻辑增加对该格式报文的处理流程,减少了产生中断的次数,从而达到降低CPU处理负荷的效果,进而达到了降低设备成本和能耗的目的。文档编号H04L29/02GK101150562SQ20071016544公开日2008年3月26日申请日期2007年10月29日优先权日2007年10月29日发明者叶学谦申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1