一种网络处理器微引擎活性检测的方法

文档序号:7662591阅读:95来源:国知局
专利名称:一种网络处理器微引擎活性检测的方法
技术领域
本发明涉及处理器领域,更具体的说,涉及一种网络处理器中微引擎活性测的方法。
技术背景由于话音、图像以及多々某体业务在Internet中的出现和广泛应用, Internet的业务量正以指数级的速率增长,飞速增长的Internet业务量 对已有的网络带宽提出了新的要求。为了满足这些新要求,各大网络 设备提供商纷纷对千兆/万兆(1G/10G)级别以上的网络设备进行研 发投入并迅速抢占市场。但由于网络的迅速发展,网络设备的生命周 期却越来越短,导致频繁更新已有设备的压力越来越大,为改变传统 网格设备的频繁更新,网络处理器登上历史舞台。网络处理器(NP, Network Processor)结合了 ASIC (Applicaion Specific Integerated Circuit,专用集成电路)和通用CPU的优势,具有 较高的性能,能够保证线速的业务处理能力。通过编程可以支持多种 应用,扩展了设备的使用范围,而且可满足网络协议不断变化的需求, 延长了设备的生命周期。网络处理器开发周期短,开发成本低,用 户可以利用软件编译平台迅速开发新的应用。网络处理器一般由若干个微处理器引擎(微引擎)组成,同时内 嵌CPU或预留与通用CPU的标准接口。网络处理器常见的应用模式 是在内嵌的CPU或外挂的CPU上运行操作系统作为控制面和管理面,而微引擎通过运行专用的汇编指令(微码)并行完成分组的处理。由于CPU上运行操作系统,因此在运行过程中如果出现异常,则操作系统崩溃并抛出异常,从而使用网络处理器的设备不能正常工作。
但是微引擎是并行处理,如果部分微引擎出现异常,则只影响一部分 分组处理并且可以通过单独复位出现异常的微引擎使其重新正常工 作。由于微引擎上运行专用汇编指令,因此出现异常时不容易发现, 因此需要寻找一种方法能够自动检测网络处理器中微引擎的活性,即 微引擎是否正常工作。

发明内容
本发明解决的技术问题是,提供一种网络处理器中微引擎活性检 测的方法,以解决网络处理器中微引擎异常时不能及时发现而影响部 分分组处理的问题。
鉴于上述问题,本发明所述的一种网络处理器中微引擎活性检测的方法包括以下步骤A处理器创建活性检测任务,所述活性检测任务为各个微引擎分 配fb提区;B微引擎中设置计数器,该计数器的计数值存放在数据区中,计 数器的计数值根据微引擎运行的次数相应增加;C网络处理器运行后,活性检测任务定时扫描各个数据区,将扫 描数据区获得的计数值与上次扫描获得的计数值比较,若比较结果相 同,则认为微引擎异常,通过设置相应的硬件寄存器复位异常微引擎。
上述的方法,其中,步骤A中,活性检测任务运行后,为各个 微引擎在微引擎和处理器共同使用的内存中分配用来存放计数值的 数据区;并针对各个微引擎设置次数计数器,所述次数计数器用于记 录比较结果相同的次数。
上述的方法,其中,步骤C中,将扫描数据区获得的计数值与上 次扫描获得的计数值做差值,若各差值为零,对差值为零的微引擎的 次数计数器进行加l操作,判断次数计数器是否大于设定数值,若大 于,清除该微引擎对应的次数计数器和数据区。 上述的方法,其中,活性;险测任务设置活性;险测定时器,在活性 检测定时器超时后活性检测任务扫描各微引擎的数据区。本发明利用微引擎运行的微码中增加计数操作后只要微引擎正 常工作,计数值就会增加的原理来检测微引擎是否正常工作。由于微 码中只增加一条计数指令,因此对微引擎处理性能没有任何影响。由 于CPU上活性检测任务是定时扫描,因此对CPU性能也没有影响。 但是采用该方法可以自动检测出微引擎出现异常并可以自动复位出 现异常的微引擎而使其重新工作。因此采用本发明的网络处理器的设 备在发生非致命性异常时可以自动复位而继续使用,这样可以大大缩 短设备宕机恢复时间,减少对用户的影响和用户的投诉,提高用户对 产品的满意度。由于能自动检测出微引擎异常并自动复位,因此可以 省去人工监控而大大节省设备的维护费用,具有4艮好的经济性。


图l是本发明应用的网络处理器示意图;图2是本发明提供的一种网络处理器微引擎活性检测的方法;图3是本发明中活性检测任务处理流程图。
具体实施方式
下面结合附图对本发明的具体实施方式
进一步说明。 图l是本发明应用的网络处理器示意图;网络处理器包括处CPU和微引擎,CPU上运行活性检测任务 101,活性检测任务101根据微引擎个数为各微引擎初始化用于存放 计数值的数据区102,在微引擎运行的微码103中设置一个计数器, 微引擎运行后计数器的计数值不断增加。图2是本发明提供的一种网络处理器微引擎活性检测的方法,包 括以下步骤
201、 CPU运行时创建活性;险测任务。
202、 活性检测任务运行后根据网络处理器中微引擎个数为各微 引擎初始化用于存放计数值的数据区,然后等待微引擎上电。
203、 在微引擎运行的微码的开始处增加计数操作指令,计数值 存放在活性检测任务为其初始化的数据区中。
204、 微引擎开始上电运行后,数据区中计数值不断增加。
205、 活性检测任务检测到微引擎上电后,设置活性检测定时器, 定时器超时后开始扫描各数据区。
206、 活性检测任务取出数据区中计数值,与上次读取数据区获 得的计数值做差。如果连续几次(一般:f又3次)差值为0,则说明该 数据区对应的微引擎出现异常,否则微引擎工作正常。
207、 活性检测任务检测到微引擎异常后设置该微引擎对应的硬 件寄存器,复位出现异常的微引擎。
上述具体实施方式
中,CPU上活性检测任务的具体处理流程如 图3所示
步骤301,活性检测任务运行后根据微引擎的个数在微引擎和 CPU都可以操作的内存中为各微引擎分配用来存放计数值的数据区, 大小为4字节;
步骤302,活性检测任务等待微引擎上电;
步骤303,微引擎是否上电成功,如果有微引擎没有上电成功, 则转步骤302继续等待,否则转步骤304;
步骤304,活性检测任务设置活性检测定时器,并针对各微引擎 初始化次数计数器和上次计数值,有多少微引擎就有多少次数计数器 和上次计数值;
步骤305,判断活性4企测定时器是否超时,如果定时器没有超时, 则继续等待,否则转步骤306;
步骤306,活性检测定时器超时后活性检测任务扫描各微引擎的 计数数据区,取出各数据区的数值;
步骤307,将该次读取的计数值与上次读取的计数值做差值;
步骤308,判断各差值是否为零,如果差值都不等于0,则转步 骤312,否则转步骤309;
步骤309,对差值等于0的微引擎的次数计数器进行加1操作, 然后转步骤310;
步骤310,判断次数计数器是否大于某个规定数值(比如3次), 如果都不大于规定数值,则转步骤312,否则转步骤311;
步骤311 ,清除该微引擎对应的次数计数器和存放计数的数据区, 上次计数值赋零,设置硬件寄存器复位微引擎,然后转到步骤305继 续进行活性检测;
步骤312:将本次读取的计数值赋给上次计数值,然后转到步骤 305继续进行活性检测;
以上所述仅为本发明的优选实施例而已,并不用于限制本发明, 对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应 包含在本发明的保护范围之内。
权利要求
1、一种网络处理器微引擎活性检测的方法,所述网络处理器包括多个微引擎与处理器,其特征在于,所述方法包括A处理器创建活性检测任务,所述活性检测任务为各个微引擎分配数据区;B微引擎中设置计数器,该计数器的计数值存放在数据区中,计数器的计数值根据微引擎运行的次数相应增加;C网络处理器运行后,活性检测任务定时扫描各个数据区,将扫描数据区获得的计数值与上次扫描获得的计数值比较,若比较结果相同,则认为微引擎异常,通过设置相应的硬件寄存器复位异常微引擎。
2、 根据权利要求1所述的方法,其特征在于,步骤A中,活性 检测任务运行后,为各个微引擎在微引擎和处理器共同使用的内存中 分配用来存放计数值的数据区。
3、 根据权利要求2所述的方法,其特征在于,步骤A中,活性 检测任务运行后,针对各个微引擎设置次数计数器,所述次数计数器 用于记录比较结果相同的次数。
4、 根据权利要求3所述的方法,其特征在于,步骤C中,将扫 描数据区获得的计数值与上次扫描获得的计数值做差值,若各差值为 零,对差值为零的微引擎的次数计数器进行加l操作,判断次数计数 器是否大于设定数值,若大于,清除该微引擎对应的次数计数莽和数 据区。
5、 根据权利要求3所述的方法,其特征在于,活性检测任务设 置活性检测定时器,在活性检测定时器超时后活性检测任务扫描各微 引擎的数据区。
全文摘要
本发明旨在提供一种网络处理器中微引擎活性检测的方法,该方法包括以下步骤处理器创建活性检测任务,活性检测任务为各个微引擎分配数据区;微引擎中设置计数器,该计数器的计数值存放在数据区中,计数器的计数值根据微引擎运行的次数相应增加;网络处理器运行后,活性检测任务定时扫描各个数据区,将扫描数据区获得的计数值与上次扫描获得的计数值比较,若比较结果相同,则认为微引擎异常,通过设置相应的硬件寄存器复位异常微引擎。采用本发明的方法可以更好地提高网络处理器的应用性能。
文档编号H04L12/02GK101126997SQ20071016236
公开日2008年2月20日 申请日期2007年9月26日 优先权日2007年9月26日
发明者超 范, 郭树波 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1