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

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

Info

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
Application number
CN 02103659
Other languages
English (en)
Other versions
CN1214541C (zh
Inventor
曹定波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN 02103659 priority Critical patent/CN1214541C/zh
Publication of CN1437327A publication Critical patent/CN1437327A/zh
Application granted granted Critical
Publication of CN1214541C publication Critical patent/CN1214541C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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)网络接口把报文发到网络上
CN 02103659 2002-02-04 2002-02-04 一种网络处理器中内核与微引擎间的通信方法 Expired - Lifetime CN1214541C (zh)

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)

* Cited by examiner, † Cited by third party
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 福建星网锐捷网络有限公司 一种转发报文的方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
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