一种网络处理器中内核与微引擎间的通信方法

文档序号:7646860阅读:271来源:国知局
专利名称:一种网络处理器中内核与微引擎间的通信方法
技术领域
本发明涉及网络处理器,尤其涉及一种网络处理器中内核与微引擎间的通信方法。
二、Core通过uE发送报文到网络上,步骤如图2所示b1、Core发送中断信号给uE,通知uE分配BD;b2、uE分配BD后,把BD指针写入用于从uE至Core传送BD指针的单元Mailbox3中;b3、uE发送中断信号给Core,通知Core取BD指针;b4、Core从Mailbox3中取出BD指针;b5、Core根据BD指针把报文写入对应的SDRAM地址中;b6、Core把发送报文的信息写入BD中;b7、Core把发送报文的BD指针写入用于从Core至uE传送BD指针的单元Mailbox2中;b8、Core发送中断信号给uE,通知uE有报文发送;b9、uE从Maibox2中取出发送报文的BD指针;b10、uE根据BD指针读取BD的信息;b11、uE根据BD把报文从SDRAM中发送到网络接口上,然后释放BDb12、网络接口把报文发到网络上。
该方法中uE和Core之间采用发送中断信号的通信机制,步骤比较复杂,通过测试,64字节报文的转发速率只有5000pps(数据包每秒)左右;其次由于Core也直接参与BD的管理,需要专门的队列来管理接收报文的BD和发送报文时申请的BD,满负荷时容易导致BD丢失,从而导致相应内存空间无法使用的泄漏情况。
为达到上述目的,本发明采用的技术方案是一种网络处理器中内核与微引擎间的通信方法,方法包括微引擎uE从网络上转发报文给内核Core的过程和Core通过uE发送报文到网络上的过程,其中,为uE从网络上转发报文给Core的过程在网络处理器内部存储单元scratch_pad中设置用于存放指向报文的指针BD的单元,该单元中的BD由uE分配并写入,由Core启动任务查询和读取;为Core通过uE发送报文到网络上的过程在网络处理器内部存储单元scratch_pad中也设置用于存放指向报文的指针BD的单元,该BD由uE在初始化时分配一定数量,Core把发送报文的信息写入BD,uE读取该BD后再将新分配的BD指针写入存放BD指针的单元。
由于采用以上技术方案,uE与Core之间的报文转发步骤得到简化,速率有了明显提高,通过测试,64字节报文的转发速率达到9300pps左右,几乎提高了近一倍,而且BD都是由uE统一管理,Core不用设置队列来存放申请的和需要释放的BD,克服了BD丢失而导致相应内存空间泄漏的情况,提高了BD操作的安全性和可靠性。
本发明方法为uE从网络上转发报文给Core的过程在网络处理器内部存储单元scratch_pad中设置用于存放指向报文的指针BD的单元,该单元中的BD由uE分配并写入,由Core启动任务查询和读取;为Core通过uE发送报文到网络上的过程在scratch_pad中也设置用于存放指向报文的指针BD的单元,该BD由uE在初始化时分配一定数量,Core把发送报文的信息写入BD,uE读取该BD后再将新分配的BD指针写入存放BD指针的单元。参照图3、图4,具体实施中uE从网络上转发报文给Core的过程中uE侧的执行步骤为c1、网络数据报文进入网络处理器的网络接口;c2、uE从网络接口接收报文,处理;c3、uE分配BD,把报文存放到BD对应的报文存储器SDRAM中的地址;c4、uE把报文的相关信息写入BD;c5、uE读取存放BD指针的单元,其中有BD指针则释放BD,没有BD指针则继续步骤c6;c6、uE把当前接收报文的BD指针写入存放BD指针的单元;Core侧的执行步骤为c7、Core查询存放BD指针的单元,如有BD指针则读取;c8、Core读取BD内的报文信息;c9、Core根据BD的信息把报文从SDRAM中取走;c10、Core把BD指针放回存放BD指针的单元中。
在Core通过uE发送报文到网络上的过程中,首先经初始化步骤d1将uE给Core分配的一定个数BD指针写入存放BD指针的单元中,Core侧的执行步骤为d2、Core从存放BD指针的单元中取BD指针;d3、Core根据BD指针把报文写入对应的报文存储器SDRAM地址中;d4、Core把发送报文的信息写入BD中;d5、Core发送信号给uE,通知uE有报文发送;uE侧的执行步骤为d6、uE从存放BD指针的单元中取出发送报文的BD指针;d7、uE再分配一个BD,把BD指针写入存放BD指针的单元中;d8、uE读取BD的信息;d9、uE根据BD把报文从SDRAM中发送到网络接口上,并释放BD;d10、网络接口把报文发到网络上作为本发明的具体事实例,在uE从网络上转发报文给Core的过程中,可于存放BD指针的单元中设置用于标识有无BD指针的标志位,执行所述uE把当前接收报文的BD指针写入存放BD指针的单元的步骤c6后,对该标志位进行设置,执行所述Core把BD指针放回存放BD指针的单元中的步骤c10后,对该标志位进行清除。
权利要求
1.一种网络处理器中内核与微引擎间的通信方法,包括微引擎uE从网络上转发报文给内核Core的过程和Core通过uE发送报文到网络上的过程,其特征在于为uE从网络上转发报文给Core的过程在网络处理器内部存储单元scratch pad中设置用于存放指向报文的指针BD的单元,该单元中的BD由uE分配并写入,由Core启动任务查询和读取;为Core通过uE发送报文到网络上的过程在网络处理器内部存储单元scratch_pad中也设置用于存放指向报文的指针BD的单元,该BD由uE在初始化时分配一定数量,Core把发送报文的信息写入BD,uE读取该BD后再将新分配的BD指针写入存放BD指针的单元。
2.如权利要求1所述的网络处理器中内核与微引擎间的通信方法,其特征在于uE从网络上转发报文给Core的过程中uE侧的执行步骤为(1)网络数据报文进入网络处理器的网络接口;(2)uE从网络接口接收报文,处理;(3)uE分配BD,把报文存放到BD对应的报文存储器SDRAM中的地址;(4)uE把报文的相关信息写入BD;(5)uE读取存放BD指针的单元,其中有BD指针则释放BD,没有BD指针则继续步骤(6);(6)uE把当前接收报文的BD指针写入存放BD指针的单元;Core侧的执行步骤为(7)Core查询存放BD指针的单元,如有BD指针则读取;(8)Core读取BD内的报文信息;(9)Core根据BD的信息把报文从SDRAM中取走;(10)Core把BD指针放回存放BD指针的单元中。
3.如权利要求2所述的网络处理器中内核与微引擎间的通信方法,其特征在于在存放BD指针的单元中设置用于标识有无BD指针的标志位,执行所述uE把当前接收报文的BD指针写入存放BD指针的单元的步骤(6)后,对该标志位进行设置,执行所述Core把BD指针放回存放BD指针的单元中的步骤(10)后,对该标志位进行清除。
4.如权利要求1所述的网络处理器中内核与微引擎间的通信方法,其特征在于首先经初始化步骤(1)将uE给Core分配的一定个数BD指针写入存放BD指针的单元中,在Core通过uE发送报文到网络上的过程中Core侧的执行步骤为(2)Core从存放BD指针的单元中取BD指针;(3)Core根据BD指针把报文写入对应的报文存储器SDRAM地址中;(4)Core把发送报文的信息写入BD中;(5)Core发送信号给uE,通知uE有报文发送;uE侧的执行步骤为(6)uE从存放BD指针的单元中取出发送报文的BD指针;(7)uE再分配一个BD,把BD指针写入存放BD指针的单元中;(8)uE读取BD的信息;(9)uE根据BD把报文从SDRAM中发送到网络接口上,并释放BD;(10)网络接口把报文发到网络上
全文摘要
本发明公开了一种网络处理器中内核与微引擎间的通信方法,其中,为微引擎uE从网络上转发报文给内核Core的过程在网络处理器内部存储单元scratch_pad中设置用于存放指向报文的指针BD的单元,该单元中的BD由uE分配并写入,由Core启动任务查询和读取;为Core通过uE发送报文到网络上的过程在scratch_pad中也设置用于存放BD的单元,该BD由uE在初始化时分配一定数量,Core把发送报文的信息写入BD,uE读取该BD后再将新分配的BD指针写入存放BD指针的单元,使转发速率有了明显提高,且BD由uE统一管理,避免了内存空间泄漏的情况。
文档编号H04L29/10GK1437327SQ02103659
公开日2003年8月20日 申请日期2002年2月4日 优先权日2002年2月4日
发明者曹定波 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1