CN1437327A - 一种网络处理器中内核与微引擎间的通信方法 - Google Patents
一种网络处理器中内核与微引擎间的通信方法 Download PDFInfo
- Publication number
- CN1437327A CN1437327A CN 02103659 CN02103659A CN1437327A CN 1437327 A CN1437327 A CN 1437327A CN 02103659 CN02103659 CN 02103659 CN 02103659 A CN02103659 A CN 02103659A CN 1437327 A CN1437327 A CN 1437327A
- Authority
- CN
- China
- Prior art keywords
- pointer
- core
- message
- unit
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络处理器中内核与微引擎间的通信方法,其中,为微引擎uE从网络上转发报文给内核Core的过程在网络处理器内部存储单元scratch_pad中设置用于存放指向报文的指针BD的单元,该单元中的BD由uE分配并写入,由Core启动任务查询和读取;为Core通过uE发送报文到网络上的过程在scratch_pad中也设置用于存放BD的单元,该BD由uE在初始化时分配一定数量,Core把发送报文的信息写入BD,uE读取该BD后再将新分配的BD指针写入存放BD指针的单元,使转发速率有了明显提高,且BD由uE统一管理,避免了内存空间泄漏的情况。
Description
技术领域
本发明涉及网络处理器,尤其涉及一种网络处理器中内核与微引擎间的通信方法。
背景技术
网络处理器是用于完成网络数据报文的转发功能的器件,其核心处理模块通常由多个独立的uE(微引擎)和一个Core(内核)组成。多个独立并行处理的uE主要完成网络数据的接收、处理、存储和转发;Core主要完成转发表项的配置、管理以及控制报文处理等集中处理功能。在实际应用中,网络上需要发给Core处理以及Core需要发送到网络上的报文通常都是由uE来转发的,因此,uE与Core之间的通信方法会直接影响到网络处理器的效率。现有技术的实现方法包括以下两个过程:
一、uE从网络上转发报文给Core,步骤如图1所示:
a1、网络数据报文进入网络处理器的网络接口NetworkInterface;
a2、uE从网络接口接收报文,处理;
a3、uE在指针存储器SRAM中分配用于指向报文的指针BD,把报文存放到报文存储器SDRAM中与BD对应的地址;
a4、uE把报文的相关信息写入BD;
a5、uE把BD指针写入用于从uE至Core传送BD指针的单元Maibox0中;
a6、uE给Core发送接收报文的中断信号;
a7、Core收到中断信号以后,到Maibox0中读取BD指针;
a8、Core根据BD指针,读取BD内的报文信息
a9、Core根据BD的信息把报文从SDRAM中取走;
a10、Core把BD指针写入用于从Core至uE传送BD指针的单元Maibox1中;
a11、Core发中断信号通知uE释放BD;
a12、uE从Maibox1读取BD指针,释放BD。
二、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中发送到网络接口上,然后释放BD:
b12、网络接口把报文发到网络上。
该方法中uE和Core之间采用发送中断信号的通信机制,步骤比较复杂,通过测试,64字节报文的转发速率只有5000pps(数据包每秒)左右;其次由于Core也直接参与BD的管理,需要专门的队列来管理接收报文的BD和发送报文时申请的BD,满负荷时容易导致BD丢失,从而导致相应内存空间无法使用的泄漏情况。
发明内容
本发明的目的在于提供一种提高uE和Core之间通信效率防止内存泄漏的通信方法。
为达到上述目的,本发明采用的技术方案是:一种网络处理器中内核与微引擎间的通信方法,方法包括微引擎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操作的安全性和可靠性。
附图说明
图1是现有技术中uE从网络上转发报文给Core的过程示意图;
图2是现有技术中Core通过uE发送报文到网络的过程示意图;
图3是本发明方法uE从网络上转发报文给Core的过程示意图;
图4是本发明方法Core通过uE发送报文到网络的过程示意图。
具体实施方式
下面结合附图和实施例对本发明方法作进一步说明。
本发明方法为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后,对该标志位进行清除。
Claims (4)
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)网络接口把报文发到网络上
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02103659 CN1214541C (zh) | 2002-02-04 | 2002-02-04 | 一种网络处理器中内核与微引擎间的通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02103659 CN1214541C (zh) | 2002-02-04 | 2002-02-04 | 一种网络处理器中内核与微引擎间的通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1437327A true CN1437327A (zh) | 2003-08-20 |
CN1214541C CN1214541C (zh) | 2005-08-10 |
Family
ID=27627909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02103659 Expired - Lifetime CN1214541C (zh) | 2002-02-04 | 2002-02-04 | 一种网络处理器中内核与微引擎间的通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1214541C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100440854C (zh) * | 2004-06-25 | 2008-12-03 | 中国科学院计算技术研究所 | 一种网络处理器的数据包接收接口部件及其存储管理方法 |
CN100561908C (zh) * | 2003-12-22 | 2009-11-18 | 联想(新加坡)私人有限公司 | 通过多个区域进行密钥高速缓存管理的方法和安全架构 |
CN101136852B (zh) * | 2007-06-01 | 2010-05-19 | 武汉虹旭信息技术有限责任公司 | 微引擎的深度包处理方法 |
CN101436989B (zh) * | 2008-12-26 | 2010-10-27 | 福建星网锐捷网络有限公司 | 一种转发报文的方法及装置 |
-
2002
- 2002-02-04 CN CN 02103659 patent/CN1214541C/zh not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100561908C (zh) * | 2003-12-22 | 2009-11-18 | 联想(新加坡)私人有限公司 | 通过多个区域进行密钥高速缓存管理的方法和安全架构 |
CN100440854C (zh) * | 2004-06-25 | 2008-12-03 | 中国科学院计算技术研究所 | 一种网络处理器的数据包接收接口部件及其存储管理方法 |
CN101136852B (zh) * | 2007-06-01 | 2010-05-19 | 武汉虹旭信息技术有限责任公司 | 微引擎的深度包处理方法 |
CN101436989B (zh) * | 2008-12-26 | 2010-10-27 | 福建星网锐捷网络有限公司 | 一种转发报文的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1214541C (zh) | 2005-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1828556A (zh) | 一种数据存储的方法、系统及设备 | |
CN1222951C (zh) | 闪速存储器的实时处理方法 | |
CN100343826C (zh) | 一种实现内存管理的方法 | |
CN101030864A (zh) | 一种计算机和移动终端之间数据文件传输的方法 | |
CA2242074A1 (en) | System and method for remote buffer allocation and management for message passing between network nodes | |
WO2023155531A1 (zh) | 数据读写方法、装置及相关设备 | |
CN102891809A (zh) | 多核网络设备报文按接口保序方法及系统 | |
CN1819544A (zh) | 一种基于bitmap表的缓存管理方法 | |
CN1295633C (zh) | 一种多cpu通信的方法 | |
CN1214541C (zh) | 一种网络处理器中内核与微引擎间的通信方法 | |
CN101035130A (zh) | 一种基于浏览器/服务器结构的信息分配方法及系统 | |
CN1920796A (zh) | 用于将文件的数据存储在存储块中的高速缓存方法及系统 | |
CN1295613C (zh) | 通用Windows程序运行日志信息记录方法 | |
CN1863132A (zh) | 一种缓存管理系统与方法 | |
KR20130098265A (ko) | 컴퓨터 시스템 및 그것의 운영을 위한 방법 | |
CN1655130A (zh) | 一种获取硬盘中数据的方法 | |
CN1502198A (zh) | 通过将限定符插入控制块中链接帧数据 | |
CN1889038A (zh) | 以类为单位的远程构件生命周期的管理方法 | |
WO2017001305A1 (en) | Automatic memory management using a memory management unit | |
CN1214581C (zh) | 一种实现缓存去抖的大容量实时流处理方法 | |
CN101079753A (zh) | 一种多链路抓包系统、方法及网络审计系统 | |
CN1946035A (zh) | 一种网元数据配置管理的方法及网元 | |
CN1913495A (zh) | 数据转发方法和装置 | |
CN1177458C (zh) | 在数据网和/或通信网内的间接传输信息设备 | |
CN1870708A (zh) | 一种话单传送方法、话单传送系统及交换设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20050810 |
|
CX01 | Expiry of patent term |