网络处理器异常检测方法及系统.pdf

上传人:1*** 文档编号:1282152 上传时间:2018-04-12 格式:PDF 页数:12 大小:429.12KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010526967.5

申请日:

2010.10.29

公开号:

CN101976217A

公开日:

2011.02.16

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 11/267申请日:20101029|||公开

IPC分类号:

G06F11/267

主分类号:

G06F11/267

申请人:

中兴通讯股份有限公司

发明人:

朱寅; 伍益荣

地址:

518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

优先权:

专利代理机构:

北京市浩天知识产权代理事务所 11276

代理人:

刘云贵

PDF下载: PDF下载
内容摘要

本发明公开了一种网络处理器异常检测方法及系统,其中方法包括:网络处理器各个线程的执行流程中增加有异常检测操作代码,当网络处理器运行到当前线程的异常检测操作代码时,网络处理器将共享内存中异常保护标记数据区内当前线程对应的标记位置为第一标记;当定时器周期到达时,协处理器检测异常保护标记数据区的所有标记位,若检测出所有标记位不全为第一标记,则确定不为第一标记的标记位对应的线程出现异常;若检测出所有标记位全为第一标记,则协处理器将所有标记位置为第二标记。本发明利用了网络处理器软件流程的特点,能够及时、有效地对线程的异常进行检测,大大提升了以网络处理器为核心单元的网络设备运行期间故障的检测能力。

权利要求书

1: 一种网络处理器异常检测方法, 其特征在于, 包括 : 网络处理器各个线程的执行流程中增加有异常检测操作代码, 当网络处理器运行到当 前线程的所述异常检测操作代码时, 网络处理器将共享内存中异常保护标记数据区内所述 当前线程对应的标记位置为第一标记 ; 当定时器周期到达时, 协处理器检测共享内存中异常保护标记数据区的所有标记位, 若检测出所有标记位不全为第一标记, 则确定不为第一标记的标记位对应的线程出现异 常; 若检测出所有标记位全为第一标记, 则协处理器将所有标记位置为第二标记。
2: 根据权利要求 1 所述的方法, 其特征在于, 所述网络处理器各个线程的执行流程中 增加有异常检测操作代码包括 : 网络处理器各个线程的执行流程的公共流程中增加有异常 检测操作代码 ; 或者, 网络处理器各个线程的执行流程的分支流程中增加有异常检测操作 代码。
3: 根据权利要求 1 或 2 所述的方法, 其特征在于, 所述网络处理器为单核网络处理器, 所述当网络处理器运行到当前线程的所述异常检测操作代码时, 网络处理器将共享内存中 异常保护标记数据区内所述当前线程对应的标记位置为第一标记包括 : 当网络处理器运行到当前线程的所述异常检测操作代码时, 读取网络处理器的状态寄 存器, 提取当前线程的线程号 ; 网络处理器根据当前线程的线程号和共享内存中异常保护标记数据区的起始地址, 计 算得到所述当前线程对应的标记位 ; 网络处理器将所述当前线程对应的标记位置为第一标记。
4: 根据权利要求 1 或 2 所述的方法, 其特征在于, 所述网络处理器为多核网络处理器, 所述当网络处理器运行到当前线程的所述异常检测操作代码时, 网络处理器将共享内存中 异常保护标记数据区内所述当前线程对应的标记位置为第一标记包括 : 当网络处理器运行到当前线程的所述异常检测操作代码时, 读取网络处理器的状态寄 存器, 提取当前线程所在的处理器核号和当前线程的线程号 ; 网络处理器根据所述处理器核号和当前线程的线程号, 计算所述当前线程在网络处理 器所有线程中的序号 ; 网络处理器根据所述当前线程在网络处理器所有线程中的序号和共享内存中异常保 护标记数据区的起始地址, 计算得到所述当前线程对应的标记位 ; 网络处理器将所述当前线程对应的标记位置为第一标记。
5: 根据权利要求 1 所述的方法, 其特征在于, 所述定时器周期 T 定时器周期根据下式来设 定: T 定时器周期≥ max[1/f 网络处理器频率 *T 平均指令周期 *N 指令行 +T 外设访问时间 ] 其中, f 网络处理器频率表示正常工作时所述网络处理器的频率 ; T 平均指令周期表示正常工作时 所述网络处理器执行每条指令平均消耗的周期 ; N 指令行表示程序中指令行数 ; T 外设访问时间表示 程序中最差情况下输入 / 输出操作消耗的时间。
6: 一种网络处理器异常检测系统, 其特征在于, 包括 : 网络处理器, 所述网络处理器各个线程的执行流程中增加有异常检测操作代码, 所述 网络处理器用于当运行到当前线程的所述异常检测操作代码时, 将共享内存中异常保护标 记数据区内所述当前线程对应的标记位置为第一标记 ; 2 协处理器, 用于当定时器周期到达时, 检测共享内存中异常保护标记数据区的所有标 记位, 若检测出所有标记位不全为第一标记, 则确定不为第一标记的标记位对应的线程出 现异常 ; 若检测出所有标记位全为第一标记, 则协处理器将所有标记位置为第二标记 ; 共享内存, 用于存储所述网络存储器和所述协处理器写入的数据, 供所述协处理器访 问。
7: 根据权利要求 6 所述的系统, 其特征在于, 所述网络处理器各个线程的执行流程的 公共流程中增加有异常检测操作代码 ; 或者, 所述网络处理器各个线程的执行流程的分支 流程中增加有异常检测操作代码。
8: 根据权利要求 6 或 7 所述的系统, 其特征在于, 所述网络处理器为单核网络处理器, 所述网络处理器包括 : 第一读取模块, 用于当运行到当前线程的所述异常检测操作代码时, 读取网络处理器 的状态寄存器, 提取当前线程的线程号 ; 第一计算模块, 用于根据当前线程的线程号和共享内存中异常保护标记数据区的起始 地址, 计算得到所述当前线程对应的标记位 ; 第一写入模块, 用于将所述当前线程对应的标记位置为第一标记。
9: 根据权利要求 6 或 7 所述的系统, 其特征在于, 所述网络处理器为多核网络处理器, 所述网络处理器包括 : 第二读取模块, 用于当运行到当前线程的所述异常检测操作代码时, 读取网络处理器 的状态寄存器, 提取当前线程所在的处理器核号和当前线程的线程号 ; 第二计算模块, 用于根据所述处理器核号和当前线程的线程号, 计算所述当前线程在 网络处理器所有线程中的序号 ; 第三计算模块, 用于根据所述当前线程在网络处理器所有线程中的序号和共享内存中 异常保护标记数据区的起始地址, 计算得到所述当前线程对应的标记位 ; 第二写入模块, 用于将所述当前线程对应的标记位置为第一标记。
10: 根据权利要求 6 所述的系统, 其特征在于, 所述定时器周期 T 定时器周期根据下式来设 定: T 定时器周期≥ max[1/f 网络处理器频率 *T 平均指令周期 *N 指令行 +T 外设访问时间 ] 其中, f 网络处理器频率表示正常工作时所述网络处理器的频率 ; T 平均指令周期表示正常工作时 所述网络处理器执行每条指令平均消耗的周期 ; N 指令行表示程序中指令行数 ; T 外设访问时间表示 程序中最差情况下输入 / 输出操作消耗的时间。

说明书


网络处理器异常检测方法及系统

    【技术领域】
     本发明涉及通信技术领域, 更具体地说, 涉及一种网络处理器异常检测方法及系统。 背景技术 网络处理器 (Net Processor, 简称 : NP) 是面向网络应用领域的应用特定指令处 理器, 是面向数据分组处理的、 具有体系结构特征和 / 或特定电路的软件可编程器件。目前 在数据通信行业, 主流交换机和路由器几乎都以网络处理器作为流量转发和业务处理的核 心部件。 网络处理器的稳定运行, 是保证数据通信产品流量高性能转发的基础, 也是业务处 理安全、 稳定的基本条件。
     近年来, 随着网络服务的日益丰富, 网络应用越来越复杂, 对网络处理器业务处理 能力的需求不断攀升, 业务实现方案日趋复杂, 对网络处理器转发性能的要求也越来越高, 这些必然导致网络处理器运行期间出现异常的可能性也随之增加。在各种故障中, 由于软 件和硬件原因导致的网络处理器死机异常占了较大比例, 主要包括处理器硬件异常死机和
     硬件问题导致软件程序局部死循环, 例如访问外设异常导致的程序死循环等。这类故障对 网络中运营的业务危害极大, 一旦发生而不能及时进行处理将导致大量丢包、 长时间断流, 严重的甚至导致网络瘫痪, 必然会给运营商和网络用户造成巨大的经济损失。
     目前, 业内设备制造商面对网络处理器运行期间出现的问题多采用人工排查的方 式, 耗费了大量的人力、 物力和财力, 也提高了运维成本, 给企业增加了额外的负担。 为了降 低企业的设备运维开销, 亟需一种能够检测网络处理器软硬件死机异常的技术方案, 以便 使处理器软件能在第一时间自动检测出故障。
     专利申请号为 200410015057.5、 公开号为 CN1641600 的中国专利申请公开了一种 预报电子装置死机机率的方法, 该方法主要是通过统计系统执行侦错次数的指针值与预先 建立的用以预测系统执行状态系统状态的预测表进行比对, 以此作为判断系统状态稳定与 否的依据。该检测方法主要是侧重 “死机” 的预测, 且需要预先建立预测表, 而网络处理器 的业务处理往往较为复杂, 处理不同业务时, 系统状态大相径庭, 难以保持一成不变, 因此 该方法很难应用于网络处理器的死机异常检测。
     专利申请号为 200910169532.7、 公开号为 CN101645035 的中国专利申请公开了 一种检测程序代码运行位置的方法和嵌入式系统, 通过运行插入有预定输出指令的程序代 码, 输出指令包含本预定输出指令在程序代码中的位置信息 ; 以及在运行到预定输出指令 时, 向外部接口输出位置信息, 由外部接口根据该位置信息控制在该外部接口上的发光二 极管显示预定输出指令在程序代码中的位置。该方案侧重序代码运行位置的检测, 且需要 外接发光二极管进行显示。 现有以网络处理器为核心的转发设备硬件组网均不会将其与发 光二极管这类外设连接, 且网络处理器运行频率相当高, 程序位置更新相当快, 无法通过外 接发光二极管的方式进行显示。发明内容 本发明所要解决的技术问题是针对现有技术的缺陷, 提出一种网络处理器异常检 测方法及系统, 用以提升以网络处理器为核心单元的网络设备运行期间故障的检测能力。
     为了解决上述技术问题, 本发明提供了一种网络处理器异常检测方法, 包括 :
     网络处理器各个线程的执行流程中增加有异常检测操作代码, 当网络处理器运行 到当前线程的所述异常检测操作代码时, 网络处理器将共享内存中异常保护标记数据区内 所述当前线程对应的标记位置为第一标记 ;
     当定时器周期到达时, 协处理器检测共享内存中异常保护标记数据区的所有标记 位, 若检测出所有标记位不全为第一标记, 则确定不为第一标记的标记位对应的线程出现 异常 ; 若检测出所有标记位全为第一标记, 则协处理器将所有标记位置为第二标记。
     进一步的, 所述网络处理器各个线程的执行流程中增加有异常检测操作代码包 括: 网络处理器各个线程的执行流程的公共流程中增加有异常检测操作代码 ; 或者, 网络 处理器各个线程的执行流程的分支流程中增加有异常检测操作代码。
     进一步的, 所述网络处理器可以为单核网络处理器, 所述当网络处理器运行到当 前线程的所述异常检测操作代码时, 网络处理器将共享内存中异常保护标记数据区内所述 当前线程对应的标记位置为第一标记包括 :
     当网络处理器运行到当前线程的所述异常检测操作代码时, 读取网络处理器的状 态寄存器, 提取当前线程的线程号 ;
     网络处理器根据当前线程的线程号和共享内存中异常保护标记数据区的起始地 址, 计算得到所述当前线程对应的标记位 ;
     网络处理器将所述当前线程对应的标记位置为第一标记。
     进一步的, 所述网络处理器还可以为多核网络处理器, 所述当网络处理器运行到 当前线程的所述异常检测操作代码时, 网络处理器将共享内存中异常保护标记数据区内所 述当前线程对应的标记位置为第一标记包括 :
     当网络处理器运行到当前线程的所述异常检测操作代码时, 读取网络处理器的状 态寄存器, 提取当前线程所在的处理器核号和当前线程的线程号 ;
     网络处理器根据所述处理器核号和当前线程的线程号, 计算所述当前线程在网络 处理器所有线程中的序号 ;
     网络处理器根据所述当前线程在网络处理器所有线程中的序号和共享内存中异 常保护标记数据区的起始地址, 计算得到所述当前线程对应的标记位 ;
     网络处理器将所述当前线程对应的标记位置为第一标记。
     进一步的, 所述定时器周期 T 定时器周期可以根据下式来设定 :
     T 定时器周期≥ max[1/f 网络处理器频率 *T 平均指令周期 *N 指令行 +T 外设访问时间 ]
     其中, f 网络处理器频率表示正常工作时所述网络处理器的频率 ; T 平均指令周期表示正常工 作时所述网络处理器执行每条指令平均消耗的周期 ; N 指令行表示程序中指令行数 ; T 外设访问时间 表示程序中最差情况下输入 / 输出操作消耗的时间。
     本发明还提供了一种网络处理器异常检测系统, 包括 :
     网络处理器, 所述网络处理器各个线程的执行流程中增加有异常检测操作代码, 所述网络处理器用于当运行到当前线程的所述异常检测操作代码时, 将共享内存中异常保
     护标记数据区内所述当前线程对应的标记位置为第一标记 ;
     协处理器, 用于当定时器周期到达时, 检测共享内存中异常保护标记数据区的所 有标记位, 若检测出所有标记位不全为第一标记, 则确定不为第一标记的标记位对应的线 程出现异常 ; 若检测出所有标记位全为第一标记, 则协处理器将所有标记位置为第二标 记;
     共享内存, 用于存储所述网络存储器和所述协处理器写入的数据, 供所述协处理 器访问。
     进一步的, 所述网络处理器各个线程的执行流程的公共流程中增加有异常检测操 作代码 ; 或者, 所述网络处理器各个线程的执行流程的分支流程中增加有异常检测操作代 码。
     进一步的, 所述网络处理器可以为单核网络处理器, 所述网络处理器包括 :
     第一读取模块, 用于当运行到当前线程的所述异常检测操作代码时, 读取网络处 理器的状态寄存器, 提取当前线程的线程号 ;
     第一计算模块, 用于根据当前线程的线程号和共享内存中异常保护标记数据区的 起始地址, 计算得到所述当前线程对应的标记位 ; 第一写入模块, 用于将所述当前线程对应的标记位置为第一标记。
     进一步的, 所述网络处理器还可以为多核网络处理器, 所述网络处理器包括 :
     第二读取模块, 用于当运行到当前线程的所述异常检测操作代码时, 读取网络处 理器的状态寄存器, 提取当前线程所在的处理器核号和当前线程的线程号 ;
     第二计算模块, 用于根据所述处理器核号和当前线程的线程号, 计算所述当前线 程在网络处理器所有线程中的序号 ;
     第三计算模块, 用于根据所述当前线程在网络处理器所有线程中的序号和共享内 存中异常保护标记数据区的起始地址, 计算得到所述当前线程对应的标记位 ;
     第二写入模块, 用于将所述当前线程对应的标记位置为第一标记。
     进一步的, 所述定时器周期 T 定时器周期可以根据下式来设定 :
     T 定时器周期≥ max[1/f 网络处理器频率 *T 平均指令周期 *N 指令行 +T 外设访问时间 ]
     其中, f 网络处理器频率表示正常工作时所述网络处理器的频率 ; T 平均指令周期表示正常工 作时所述网络处理器执行每条指令平均消耗的周期 ; N 指令行表示程序中指令行数 ; T 外设访问时间 表示程序中最差情况下输入 / 输出操作消耗的时间。
     本发明提供的网络处理器异常检测方法及系统, 利用了网络处理器软件流程的特 点, 能够及时、 有效地对线程的异常进行检测, 在不影响网络处理器转发性能和业务处理流 程的前提下, 大大提升了以网络处理器为核心单元的网络设备运行期间故障的检测能力。
     附图说明
     图 1 为本发明提供的网络处理器异常检测方法一实施例中网络处理器的处理流 程示意图 ;
     图 2 为本发明提供的网络处理器异常检测方法一实施例中协处理器的处理流程 示意图 ;
     图 3 为本发明提供的网络处理器异常检测系统一实施例的结构示意图。具体实施方式
     本发明针对网络处理器为核心的典型转发设备的硬件和软件流程特点, 提出一种 网络处理器异常检测方法及系统, 其核心思想是预先在网络处理器各个线程的执行流程中 增加异常检测操作代码, 网络处理器和协处理器共享使用共享内存。当网络处理器运行到 当前线程的异常检测操作代码时, 网络处理器将共享内存中异常保护标记数据区内当前线 程对应的标记位置为第一标记 ; 当定时器周期到达时, 协处理器检测共享内存中异常保护 标记数据区的所有标记位, 若检测出所有标记位不全为第一标记, 则确定不为第一标记的 标记位对应的线程出现异常 ; 若检测出所有标记位全为第一标记, 则协处理器将所有标记 位置为第二标记。 本发明利用了网络处理器软件流程的特点, 能够及时、 有效地对线程的异 常进行检测, 在不影响网络处理器转发性能和业务处理流程的前提下, 大大提升了以网络 处理器为核心单元的网络设备运行期间故障的检测能力。
     在以下实施例中, 主要针对死机这种异常进行示范性描述, 但本发明所述的异常 不仅限于此。
     网络处理器是本发明的核心模块, 也是异常检测的对象。网络处理器中运行流量 转发和网络业务实现的相关程序, 本发明中, 网络处理器主要利用软件在运行期间反馈各 个线程的状态信息, 具体地将共享内存中异常保护标记数据区内当前线程对应的标记位置 为第一标记。网络处理器反馈的状态信息以下也称为死机信息。 协处理器通常可以为 ARM 等芯片, 其上一般运行操作系统, 负责管理内存、 加载网 络处理器源代码及响应中断等。协处理器的主频往往远低于网络处理器。本发明中协处理 器的主要作用是负责对网络处理器反馈的死机信息进行监控, 当发现状态异常时, 进行相 应处理。
     共享内存可为网络处理器片内的可访问存储区, 例如 : 静态随机存储器 (Static Random Access Memory, 简称 : SRAM)、 动态随机存储器 (DynamicRandom Access Memory, 简 称: DRAM) 或双倍数据传输速率 (Double DataRate, 简称 : DDR) 存储器等存储单元。共享内 存可被网络处理器和协处理器共享使用。 本发明中共享内存的主要作用是存储网络处理器 反馈的死机信息, 并供协处理器进行访问。
     下面结合附图及优选实施方式对本发明技术方案进行详细说明。
     图 1 为本发明提供的网络处理器异常检测方法一实施例中网络处理器的处理流 程示意图, 如图 1 所示, 包括以下步骤 :
     步骤 101、 在网络处理器各个线程的执行流程中增加异常检测操作代码 ;
     为了达到较高的转发性能, 网络处理器通常具有多条线程并行运行, 每个线程可 独立运行, 对网络流量分阶段进行处理。 虽然各个线程处理任务不同, 但由于流量转发和业 务处理持续性的需要, 各个线程的软件执行流程基本是按照业务处理无限次循环的方式设 计, 即当线程完成初始化后, 以 “收包——处理——发包——收包” 这样的流程不断循环实 现其功能, 因而各个线程基本都存在与业务处理无关的公共流程, 例如 “收包” 或 “发包” 的 流程。在实际运行期间, 这些公共流程都必然会执行至少一次。因此本实施例可以在网络 处理器各个线程的执行流程的公共流程中增加异常检测操作代码。
     对于某些线程由于功能需求不存在公共流程的情况, 可在网络处理器这些线程的
     执行流程的分支流程中增加异常检测操作代码。
     当然本实施例也可以直接在网络处理器各个线程的执行流程的分支流程中增加 有异常检测操作代码。
     通过在网络处理器各个线程的执行流程中增加异常检测操作代码, 确保在正常执 行时, 线程能够周期性的运行异常检测操作代码 ; 若线程在运行过程中发生死循环、 死等信 号、 挂起等死机异常时, 则异常检测操作代码无法得到执行机会。
     步骤 102、 当网络处理器运行到当前线程的所述异常检测操作代码时, 读取网络处 理器的状态寄存器, 提取当前线程的线程号 ;
     步骤 103、 网络处理器根据当前线程的线程号和共享内存中异常保护标记数据区 的起始地址, 计算得到当前线程对应的标记位 ;
     步骤 104、 网络处理器将当前线程对应的标记位置为第一标记。
     本实施例中, 共享内存需开辟一块区域 ( 即异常保护标记数据区 ) 用于使网络处 理器与协处理器进行死机信息的交互。 网络处理器各个线程的死机信息与该区域的特定标 记位一一对应。 举例来说, 当网络处理器运行到当前线程的所述异常检测操作代码时, 表明 当前进程运行正常, 网络处理器将当前线程对应的标记位置为 “1” , 即标记位置 “1” 表示此 标记位对应的线程运行正常。 也即, 当线程完成一次循环时, 会在共享内存中对应的标记位 置 “1” 一次 ; 而当线程出现死机异常时, 程序无法执行到异常检测操作代码, 则无法完成置 “1” 操作。 上述步骤 102-104 适用于网络处理器为单核网络处理器的情况, 对于网络处理器 为多核网络处理器的情况, 步骤 102-104 可替换为 : 当网络处理器运行到当前线程的异常 检测操作代码时, 读取网络处理器的状态寄存器, 提取当前线程所在的处理器核号和当前 线程的线程号 ; 网络处理器根据处理器核号和当前线程的线程号, 计算当前线程在网络处 理器所有线程中的序号 ; 网络处理器根据当前线程在网络处理器所有线程中的序号和共享 内存中异常保护标记数据区的起始地址, 计算得到当前线程对应的标记位 ; 网络处理器将 当前线程对应的标记位置为第一标记。
     图 2 为本发明提供的网络处理器异常检测方法一实施例中协处理器的处理流程 示意图, 如图 2 所示, 包括以下步骤 :
     步骤 201、 协处理器设定定时器 ;
     该定时器的周期 T 定时器周期可根据下式来设定 :
     T 定时器周期≥ max[1/f 网络处理器频率 *T 平均指令周期 *N 指令行 +T 外设访问时间 ]
     其中, f 网络处理器频率表示正常工作时网络处理器的频率 ; T 平均指令周期表示正常工作时 网络处理器执行每条指令平均消耗的周期 ; N 指令行表示程序中指令行数 ; T 外设访问时间表示程序 中最差情况下输入 / 输出操作消耗的时间。
     为了降低网络处理器死机异常的误判概率, 定时器的周期不能设置过短。同时为 了保证系统死机异常检测的灵敏性, 本发明中, 定时器的周期 T 定时器周期大于或等于各线程计 算的最大值, 从而保证死机异常检测不会出现误测的情况。
     在一开始设定定时器时, 还需初始化共享内存的异常保护标记数据区, 将其全部 置为 “0” 。
     步骤 202、 判断网络处理器状态是否进入正常运行阶段, 若是, 则执行步骤 203 ; 否
     则继续等待网络处理器进入正常运行阶段 ;
     步骤 203、 协处理器等待定时器产生的有效的信号或中断 ;
     本实施例中, 定时器产生有效的信号或中断表示定时器周期到达。
     步骤 204、 当接收到定时器产生的有效的信号或中断时, 协处理器检测共享内存中 异常保护标记数据区的所有标记位 ;
     本实施例中, 当接收到定时器产生的有效的信号或中断时, 协处理器可以先判断 死机检测功能是否启用, 具体可以为判断死机检测功能标记是否为有效的 ; 在启用的条件 下, 再去检测共享内存中异常保护标记数据区, 否则跳转步骤 203。
     步骤 205、 判断所有标记位是否全为第一标记, 若是, 执行步骤 206 ; 否则执行步骤 207 ;
     参照上述例子, 协处理器判断所有标记位是否全为 “1” , 若是, 则表明所有线程运 行正常 ; 若不是, 则表明不为 “1” 的标记位对应的线程出现异常。
     步骤 206、 协处理器将所有标记位置为第二标记, 跳转步骤 203 ;
     参照上述例子, 协处理器将所有标记位置为 “0” , 也即将共享内存中异常保护标记 数据区全部清 “0” 。
     步骤 207、 确定不为第一标记的标记位对应的线程出现异常, 进一步根据设备情 况, 复位网络处理器、 设备重启。
     本实施例中, 协处理器在初始化阶段, 将异常保护标记数据区全部清 “0” ; 系统正 常运行后, 定时读取共享内存中的异常保护标记数据区 ; 在正常运行情况下, 协处理器读取 到的异常保护标记数据区中各线程对应的标记位全部置 “1” , 表示各个线程运行正常 ; 此 后, 将异常保护标记数据区再次全部清 “0” , 从而等待网络处理器线程下一次置位 ; 当协处 理器读取到的异常保护标记数据区中某些标记位依然置 “0” 时, 表示该线程已处于死机异 常的状态 ; 这时协处理器可以采取复位网络处理器、 设备重启等方式, 使线程从死机状态中 恢复, 并采集故障信息。
     图 3 为本发明提供的网络处理器异常检测系统一实施例的结构示意图。如图 3 所 示, 该系统包括 : 网络处理器 11、 协处理器 12 和共享内存 13, 其中 :
     网络处理器 11 中具有多个线程并行运行, 各个线程的执行流程中增加有异常检 测操作代码, 网络处理器 11 用于当运行到当前线程的异常检测操作代码时, 将共享内存 13 中异常保护标记数据区内当前线程对应的标记位置为第一标记 ;
     协处理器 12 用于当定时器周期到达时, 检测共享内存 13 中异常保护标记数据区 的所有标记位, 若检测出所有标记位不全为第一标记, 则确定不为第一标记的标记位对应 的线程出现异常 ; 若检测出所有标记位全为第一标记, 则协处理器将所有标记位置为第二 标记 ;
     共享内存 13 用于存储网络存储器 11 和协处理器 12 写入的数据, 供协处理器 12 访问。
     网络处理器 11 各个线程的执行流程的公共流程中可增加有异常检测操作代码 ; 或者, 网络处理器 11 各个线程的执行流程的分支流程中增加有异常检测操作代码。
     图 3 所示的网络处理器 11 为单核网络处理器, 进一步的, 该网络处理器 11 可以包 括: 第一读取模块, 用于当运行到当前线程的异常检测操作代码时, 读取网络处理器的状态寄存器, 提取当前线程的线程号 ; 第一计算模块, 用于根据当前线程的线程号和共享内存中 异常保护标记数据区的起始地址, 计算得到当前线程对应的标记位 ; 第一写入模块, 用于将 当前线程对应的标记位置为第一标记。
     可选地, 网络处理器也可以为多核网络处理器, 这样网络处理器包括 : 第二读取模 块, 用于当运行到当前线程的异常检测操作代码时, 读取网络处理器的状态寄存器, 提取当 前线程所在的处理器核号和当前线程的线程号 ; 第二计算模块, 用于根据处理器核号和当 前线程的线程号, 计算当前线程在网络处理器所有线程中的序号 ; 第三计算模块, 用于根据 当前线程在网络处理器所有线程中的序号和共享内存中异常保护标记数据区的起始地址, 计算得到当前线程对应的标记位 ; 第二写入模块, 用于将当前线程对应的标记位置为第一 标记。
     协处理器 12 的定时器的周期 T 定时器周期可根据下式来设定 :
     T 定时器周期≥ max[1/f 网络处理器频率 *T 平均指令周期 *N 指令行 +T 外设访问时间 ]
     其中, f 网络处理器频率表示正常工作时网络处理器的频率 ; T 平均指令周期表示正常工作时 网络处理器执行每条指令平均消耗的周期 ; N 指令行表示程序中指令行数 ; T 外设访问时间表示程序 中最差情况下输入 / 输出操作消耗的时间。 为了降低网络处理器死机异常的误判概率, 定时器的周期不能设置过短。同时为 了保证系统死机异常检测的灵敏性, 本发明中, 定时器的周期 T 定时器周期大于或等于各线程计 算的最大值, 从而保证死机异常检测不会出现误测的情况。
     本发明提供的网络处理器异常检测方法及系统, 利用了网络处理器软件流程的特 点, 能够及时、 有效地对线程的异常进行检测, 同时在检测到异常后进行自动恢复。在不影 响网络处理器转发性能和业务处理流程的前提下, 大大提升了以网络处理器为核心单元的 网络设备运行期间故障的检测能力和修复能力, 能够明显提高企业的经济效益。另外, 为 了尽可能降低操作共享内存对系统性能带来的影响, 结合系统硬件方案, 本发明选用输入 / 输出速度较快的共享内存。
     最后, 需要注意的是 : 以上列举的仅是本发明的具体实施例子, 当然本领域的技术 人员可以对本发明进行改动和变型, 倘若这些修改和变型属于本发明权利要求及其等同技 术的范围之内, 均应认为是本发明的保护范围。
    

网络处理器异常检测方法及系统.pdf_第1页
第1页 / 共12页
网络处理器异常检测方法及系统.pdf_第2页
第2页 / 共12页
网络处理器异常检测方法及系统.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《网络处理器异常检测方法及系统.pdf》由会员分享,可在线阅读,更多相关《网络处理器异常检测方法及系统.pdf(12页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101976217A43申请公布日20110216CN101976217ACN101976217A21申请号201010526967522申请日20101029G06F11/26720060171申请人中兴通讯股份有限公司地址518057广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部72发明人朱寅伍益荣74专利代理机构北京市浩天知识产权代理事务所11276代理人刘云贵54发明名称网络处理器异常检测方法及系统57摘要本发明公开了一种网络处理器异常检测方法及系统,其中方法包括网络处理器各个线程的执行流程中增加有异常检测操作代码,当网络处理器运行到当前线程的异常检测操作。

2、代码时,网络处理器将共享内存中异常保护标记数据区内当前线程对应的标记位置为第一标记;当定时器周期到达时,协处理器检测异常保护标记数据区的所有标记位,若检测出所有标记位不全为第一标记,则确定不为第一标记的标记位对应的线程出现异常;若检测出所有标记位全为第一标记,则协处理器将所有标记位置为第二标记。本发明利用了网络处理器软件流程的特点,能够及时、有效地对线程的异常进行检测,大大提升了以网络处理器为核心单元的网络设备运行期间故障的检测能力。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书7页附图2页CN101976222A1/2页21一种网络处理器异常检测方法,其特。

3、征在于,包括网络处理器各个线程的执行流程中增加有异常检测操作代码,当网络处理器运行到当前线程的所述异常检测操作代码时,网络处理器将共享内存中异常保护标记数据区内所述当前线程对应的标记位置为第一标记;当定时器周期到达时,协处理器检测共享内存中异常保护标记数据区的所有标记位,若检测出所有标记位不全为第一标记,则确定不为第一标记的标记位对应的线程出现异常;若检测出所有标记位全为第一标记,则协处理器将所有标记位置为第二标记。2根据权利要求1所述的方法,其特征在于,所述网络处理器各个线程的执行流程中增加有异常检测操作代码包括网络处理器各个线程的执行流程的公共流程中增加有异常检测操作代码;或者,网络处理器。

4、各个线程的执行流程的分支流程中增加有异常检测操作代码。3根据权利要求1或2所述的方法,其特征在于,所述网络处理器为单核网络处理器,所述当网络处理器运行到当前线程的所述异常检测操作代码时,网络处理器将共享内存中异常保护标记数据区内所述当前线程对应的标记位置为第一标记包括当网络处理器运行到当前线程的所述异常检测操作代码时,读取网络处理器的状态寄存器,提取当前线程的线程号;网络处理器根据当前线程的线程号和共享内存中异常保护标记数据区的起始地址,计算得到所述当前线程对应的标记位;网络处理器将所述当前线程对应的标记位置为第一标记。4根据权利要求1或2所述的方法,其特征在于,所述网络处理器为多核网络处理器。

5、,所述当网络处理器运行到当前线程的所述异常检测操作代码时,网络处理器将共享内存中异常保护标记数据区内所述当前线程对应的标记位置为第一标记包括当网络处理器运行到当前线程的所述异常检测操作代码时,读取网络处理器的状态寄存器,提取当前线程所在的处理器核号和当前线程的线程号;网络处理器根据所述处理器核号和当前线程的线程号,计算所述当前线程在网络处理器所有线程中的序号;网络处理器根据所述当前线程在网络处理器所有线程中的序号和共享内存中异常保护标记数据区的起始地址,计算得到所述当前线程对应的标记位;网络处理器将所述当前线程对应的标记位置为第一标记。5根据权利要求1所述的方法,其特征在于,所述定时器周期T定。

6、时器周期根据下式来设定T定时器周期MAX1/F网络处理器频率T平均指令周期N指令行T外设访问时间其中,F网络处理器频率表示正常工作时所述网络处理器的频率;T平均指令周期表示正常工作时所述网络处理器执行每条指令平均消耗的周期;N指令行表示程序中指令行数;T外设访问时间表示程序中最差情况下输入/输出操作消耗的时间。6一种网络处理器异常检测系统,其特征在于,包括网络处理器,所述网络处理器各个线程的执行流程中增加有异常检测操作代码,所述网络处理器用于当运行到当前线程的所述异常检测操作代码时,将共享内存中异常保护标记数据区内所述当前线程对应的标记位置为第一标记;权利要求书CN101976217ACN10。

7、1976222A2/2页3协处理器,用于当定时器周期到达时,检测共享内存中异常保护标记数据区的所有标记位,若检测出所有标记位不全为第一标记,则确定不为第一标记的标记位对应的线程出现异常;若检测出所有标记位全为第一标记,则协处理器将所有标记位置为第二标记;共享内存,用于存储所述网络存储器和所述协处理器写入的数据,供所述协处理器访问。7根据权利要求6所述的系统,其特征在于,所述网络处理器各个线程的执行流程的公共流程中增加有异常检测操作代码;或者,所述网络处理器各个线程的执行流程的分支流程中增加有异常检测操作代码。8根据权利要求6或7所述的系统,其特征在于,所述网络处理器为单核网络处理器,所述网络处。

8、理器包括第一读取模块,用于当运行到当前线程的所述异常检测操作代码时,读取网络处理器的状态寄存器,提取当前线程的线程号;第一计算模块,用于根据当前线程的线程号和共享内存中异常保护标记数据区的起始地址,计算得到所述当前线程对应的标记位;第一写入模块,用于将所述当前线程对应的标记位置为第一标记。9根据权利要求6或7所述的系统,其特征在于,所述网络处理器为多核网络处理器,所述网络处理器包括第二读取模块,用于当运行到当前线程的所述异常检测操作代码时,读取网络处理器的状态寄存器,提取当前线程所在的处理器核号和当前线程的线程号;第二计算模块,用于根据所述处理器核号和当前线程的线程号,计算所述当前线程在网络处。

9、理器所有线程中的序号;第三计算模块,用于根据所述当前线程在网络处理器所有线程中的序号和共享内存中异常保护标记数据区的起始地址,计算得到所述当前线程对应的标记位;第二写入模块,用于将所述当前线程对应的标记位置为第一标记。10根据权利要求6所述的系统,其特征在于,所述定时器周期T定时器周期根据下式来设定T定时器周期MAX1/F网络处理器频率T平均指令周期N指令行T外设访问时间其中,F网络处理器频率表示正常工作时所述网络处理器的频率;T平均指令周期表示正常工作时所述网络处理器执行每条指令平均消耗的周期;N指令行表示程序中指令行数;T外设访问时间表示程序中最差情况下输入/输出操作消耗的时间。权利要求书。

10、CN101976217ACN101976222A1/7页4网络处理器异常检测方法及系统技术领域0001本发明涉及通信技术领域,更具体地说,涉及一种网络处理器异常检测方法及系统。背景技术0002网络处理器NETPROCESSOR,简称NP是面向网络应用领域的应用特定指令处理器,是面向数据分组处理的、具有体系结构特征和/或特定电路的软件可编程器件。目前在数据通信行业,主流交换机和路由器几乎都以网络处理器作为流量转发和业务处理的核心部件。网络处理器的稳定运行,是保证数据通信产品流量高性能转发的基础,也是业务处理安全、稳定的基本条件。0003近年来,随着网络服务的日益丰富,网络应用越来越复杂,对网络处。

11、理器业务处理能力的需求不断攀升,业务实现方案日趋复杂,对网络处理器转发性能的要求也越来越高,这些必然导致网络处理器运行期间出现异常的可能性也随之增加。在各种故障中,由于软件和硬件原因导致的网络处理器死机异常占了较大比例,主要包括处理器硬件异常死机和硬件问题导致软件程序局部死循环,例如访问外设异常导致的程序死循环等。这类故障对网络中运营的业务危害极大,一旦发生而不能及时进行处理将导致大量丢包、长时间断流,严重的甚至导致网络瘫痪,必然会给运营商和网络用户造成巨大的经济损失。0004目前,业内设备制造商面对网络处理器运行期间出现的问题多采用人工排查的方式,耗费了大量的人力、物力和财力,也提高了运维成。

12、本,给企业增加了额外的负担。为了降低企业的设备运维开销,亟需一种能够检测网络处理器软硬件死机异常的技术方案,以便使处理器软件能在第一时间自动检测出故障。0005专利申请号为2004100150575、公开号为CN1641600的中国专利申请公开了一种预报电子装置死机机率的方法,该方法主要是通过统计系统执行侦错次数的指针值与预先建立的用以预测系统执行状态系统状态的预测表进行比对,以此作为判断系统状态稳定与否的依据。该检测方法主要是侧重“死机”的预测,且需要预先建立预测表,而网络处理器的业务处理往往较为复杂,处理不同业务时,系统状态大相径庭,难以保持一成不变,因此该方法很难应用于网络处理器的死机异。

13、常检测。0006专利申请号为2009101695327、公开号为CN101645035的中国专利申请公开了一种检测程序代码运行位置的方法和嵌入式系统,通过运行插入有预定输出指令的程序代码,输出指令包含本预定输出指令在程序代码中的位置信息;以及在运行到预定输出指令时,向外部接口输出位置信息,由外部接口根据该位置信息控制在该外部接口上的发光二极管显示预定输出指令在程序代码中的位置。该方案侧重序代码运行位置的检测,且需要外接发光二极管进行显示。现有以网络处理器为核心的转发设备硬件组网均不会将其与发光二极管这类外设连接,且网络处理器运行频率相当高,程序位置更新相当快,无法通过外接发光二极管的方式进行显。

14、示。说明书CN101976217ACN101976222A2/7页5发明内容0007本发明所要解决的技术问题是针对现有技术的缺陷,提出一种网络处理器异常检测方法及系统,用以提升以网络处理器为核心单元的网络设备运行期间故障的检测能力。0008为了解决上述技术问题,本发明提供了一种网络处理器异常检测方法,包括0009网络处理器各个线程的执行流程中增加有异常检测操作代码,当网络处理器运行到当前线程的所述异常检测操作代码时,网络处理器将共享内存中异常保护标记数据区内所述当前线程对应的标记位置为第一标记;0010当定时器周期到达时,协处理器检测共享内存中异常保护标记数据区的所有标记位,若检测出所有标记位。

15、不全为第一标记,则确定不为第一标记的标记位对应的线程出现异常;若检测出所有标记位全为第一标记,则协处理器将所有标记位置为第二标记。0011进一步的,所述网络处理器各个线程的执行流程中增加有异常检测操作代码包括网络处理器各个线程的执行流程的公共流程中增加有异常检测操作代码;或者,网络处理器各个线程的执行流程的分支流程中增加有异常检测操作代码。0012进一步的,所述网络处理器可以为单核网络处理器,所述当网络处理器运行到当前线程的所述异常检测操作代码时,网络处理器将共享内存中异常保护标记数据区内所述当前线程对应的标记位置为第一标记包括0013当网络处理器运行到当前线程的所述异常检测操作代码时,读取网。

16、络处理器的状态寄存器,提取当前线程的线程号;0014网络处理器根据当前线程的线程号和共享内存中异常保护标记数据区的起始地址,计算得到所述当前线程对应的标记位;0015网络处理器将所述当前线程对应的标记位置为第一标记。0016进一步的,所述网络处理器还可以为多核网络处理器,所述当网络处理器运行到当前线程的所述异常检测操作代码时,网络处理器将共享内存中异常保护标记数据区内所述当前线程对应的标记位置为第一标记包括0017当网络处理器运行到当前线程的所述异常检测操作代码时,读取网络处理器的状态寄存器,提取当前线程所在的处理器核号和当前线程的线程号;0018网络处理器根据所述处理器核号和当前线程的线程号。

17、,计算所述当前线程在网络处理器所有线程中的序号;0019网络处理器根据所述当前线程在网络处理器所有线程中的序号和共享内存中异常保护标记数据区的起始地址,计算得到所述当前线程对应的标记位;0020网络处理器将所述当前线程对应的标记位置为第一标记。0021进一步的,所述定时器周期T定时器周期可以根据下式来设定0022T定时器周期MAX1/F网络处理器频率T平均指令周期N指令行T外设访问时间0023其中,F网络处理器频率表示正常工作时所述网络处理器的频率;T平均指令周期表示正常工作时所述网络处理器执行每条指令平均消耗的周期;N指令行表示程序中指令行数;T外设访问时间表示程序中最差情况下输入/输出操作。

18、消耗的时间。0024本发明还提供了一种网络处理器异常检测系统,包括0025网络处理器,所述网络处理器各个线程的执行流程中增加有异常检测操作代码,所述网络处理器用于当运行到当前线程的所述异常检测操作代码时,将共享内存中异常保说明书CN101976217ACN101976222A3/7页6护标记数据区内所述当前线程对应的标记位置为第一标记;0026协处理器,用于当定时器周期到达时,检测共享内存中异常保护标记数据区的所有标记位,若检测出所有标记位不全为第一标记,则确定不为第一标记的标记位对应的线程出现异常;若检测出所有标记位全为第一标记,则协处理器将所有标记位置为第二标记;0027共享内存,用于存储。

19、所述网络存储器和所述协处理器写入的数据,供所述协处理器访问。0028进一步的,所述网络处理器各个线程的执行流程的公共流程中增加有异常检测操作代码;或者,所述网络处理器各个线程的执行流程的分支流程中增加有异常检测操作代码。0029进一步的,所述网络处理器可以为单核网络处理器,所述网络处理器包括0030第一读取模块,用于当运行到当前线程的所述异常检测操作代码时,读取网络处理器的状态寄存器,提取当前线程的线程号;0031第一计算模块,用于根据当前线程的线程号和共享内存中异常保护标记数据区的起始地址,计算得到所述当前线程对应的标记位;0032第一写入模块,用于将所述当前线程对应的标记位置为第一标记。0。

20、033进一步的,所述网络处理器还可以为多核网络处理器,所述网络处理器包括0034第二读取模块,用于当运行到当前线程的所述异常检测操作代码时,读取网络处理器的状态寄存器,提取当前线程所在的处理器核号和当前线程的线程号;0035第二计算模块,用于根据所述处理器核号和当前线程的线程号,计算所述当前线程在网络处理器所有线程中的序号;0036第三计算模块,用于根据所述当前线程在网络处理器所有线程中的序号和共享内存中异常保护标记数据区的起始地址,计算得到所述当前线程对应的标记位;0037第二写入模块,用于将所述当前线程对应的标记位置为第一标记。0038进一步的,所述定时器周期T定时器周期可以根据下式来设定。

21、0039T定时器周期MAX1/F网络处理器频率T平均指令周期N指令行T外设访问时间0040其中,F网络处理器频率表示正常工作时所述网络处理器的频率;T平均指令周期表示正常工作时所述网络处理器执行每条指令平均消耗的周期;N指令行表示程序中指令行数;T外设访问时间表示程序中最差情况下输入/输出操作消耗的时间。0041本发明提供的网络处理器异常检测方法及系统,利用了网络处理器软件流程的特点,能够及时、有效地对线程的异常进行检测,在不影响网络处理器转发性能和业务处理流程的前提下,大大提升了以网络处理器为核心单元的网络设备运行期间故障的检测能力。附图说明0042图1为本发明提供的网络处理器异常检测方法一。

22、实施例中网络处理器的处理流程示意图;0043图2为本发明提供的网络处理器异常检测方法一实施例中协处理器的处理流程示意图;0044图3为本发明提供的网络处理器异常检测系统一实施例的结构示意图。说明书CN101976217ACN101976222A4/7页7具体实施方式0045本发明针对网络处理器为核心的典型转发设备的硬件和软件流程特点,提出一种网络处理器异常检测方法及系统,其核心思想是预先在网络处理器各个线程的执行流程中增加异常检测操作代码,网络处理器和协处理器共享使用共享内存。当网络处理器运行到当前线程的异常检测操作代码时,网络处理器将共享内存中异常保护标记数据区内当前线程对应的标记位置为第一。

23、标记;当定时器周期到达时,协处理器检测共享内存中异常保护标记数据区的所有标记位,若检测出所有标记位不全为第一标记,则确定不为第一标记的标记位对应的线程出现异常;若检测出所有标记位全为第一标记,则协处理器将所有标记位置为第二标记。本发明利用了网络处理器软件流程的特点,能够及时、有效地对线程的异常进行检测,在不影响网络处理器转发性能和业务处理流程的前提下,大大提升了以网络处理器为核心单元的网络设备运行期间故障的检测能力。0046在以下实施例中,主要针对死机这种异常进行示范性描述,但本发明所述的异常不仅限于此。0047网络处理器是本发明的核心模块,也是异常检测的对象。网络处理器中运行流量转发和网络业。

24、务实现的相关程序,本发明中,网络处理器主要利用软件在运行期间反馈各个线程的状态信息,具体地将共享内存中异常保护标记数据区内当前线程对应的标记位置为第一标记。网络处理器反馈的状态信息以下也称为死机信息。0048协处理器通常可以为ARM等芯片,其上一般运行操作系统,负责管理内存、加载网络处理器源代码及响应中断等。协处理器的主频往往远低于网络处理器。本发明中协处理器的主要作用是负责对网络处理器反馈的死机信息进行监控,当发现状态异常时,进行相应处理。0049共享内存可为网络处理器片内的可访问存储区,例如静态随机存储器STATICRANDOMACCESSMEMORY,简称SRAM、动态随机存储器DYNA。

25、MICRANDOMACCESSMEMORY,简称DRAM或双倍数据传输速率DOUBLEDATARATE,简称DDR存储器等存储单元。共享内存可被网络处理器和协处理器共享使用。本发明中共享内存的主要作用是存储网络处理器反馈的死机信息,并供协处理器进行访问。0050下面结合附图及优选实施方式对本发明技术方案进行详细说明。0051图1为本发明提供的网络处理器异常检测方法一实施例中网络处理器的处理流程示意图,如图1所示,包括以下步骤0052步骤101、在网络处理器各个线程的执行流程中增加异常检测操作代码;0053为了达到较高的转发性能,网络处理器通常具有多条线程并行运行,每个线程可独立运行,对网络流量。

26、分阶段进行处理。虽然各个线程处理任务不同,但由于流量转发和业务处理持续性的需要,各个线程的软件执行流程基本是按照业务处理无限次循环的方式设计,即当线程完成初始化后,以“收包处理发包收包”这样的流程不断循环实现其功能,因而各个线程基本都存在与业务处理无关的公共流程,例如“收包”或“发包”的流程。在实际运行期间,这些公共流程都必然会执行至少一次。因此本实施例可以在网络处理器各个线程的执行流程的公共流程中增加异常检测操作代码。0054对于某些线程由于功能需求不存在公共流程的情况,可在网络处理器这些线程的说明书CN101976217ACN101976222A5/7页8执行流程的分支流程中增加异常检测操。

27、作代码。0055当然本实施例也可以直接在网络处理器各个线程的执行流程的分支流程中增加有异常检测操作代码。0056通过在网络处理器各个线程的执行流程中增加异常检测操作代码,确保在正常执行时,线程能够周期性的运行异常检测操作代码;若线程在运行过程中发生死循环、死等信号、挂起等死机异常时,则异常检测操作代码无法得到执行机会。0057步骤102、当网络处理器运行到当前线程的所述异常检测操作代码时,读取网络处理器的状态寄存器,提取当前线程的线程号;0058步骤103、网络处理器根据当前线程的线程号和共享内存中异常保护标记数据区的起始地址,计算得到当前线程对应的标记位;0059步骤104、网络处理器将当前。

28、线程对应的标记位置为第一标记。0060本实施例中,共享内存需开辟一块区域即异常保护标记数据区用于使网络处理器与协处理器进行死机信息的交互。网络处理器各个线程的死机信息与该区域的特定标记位一一对应。举例来说,当网络处理器运行到当前线程的所述异常检测操作代码时,表明当前进程运行正常,网络处理器将当前线程对应的标记位置为“1”,即标记位置“1”表示此标记位对应的线程运行正常。也即,当线程完成一次循环时,会在共享内存中对应的标记位置“1”一次;而当线程出现死机异常时,程序无法执行到异常检测操作代码,则无法完成置“1”操作。0061上述步骤102104适用于网络处理器为单核网络处理器的情况,对于网络处理。

29、器为多核网络处理器的情况,步骤102104可替换为当网络处理器运行到当前线程的异常检测操作代码时,读取网络处理器的状态寄存器,提取当前线程所在的处理器核号和当前线程的线程号;网络处理器根据处理器核号和当前线程的线程号,计算当前线程在网络处理器所有线程中的序号;网络处理器根据当前线程在网络处理器所有线程中的序号和共享内存中异常保护标记数据区的起始地址,计算得到当前线程对应的标记位;网络处理器将当前线程对应的标记位置为第一标记。0062图2为本发明提供的网络处理器异常检测方法一实施例中协处理器的处理流程示意图,如图2所示,包括以下步骤0063步骤201、协处理器设定定时器;0064该定时器的周期T。

30、定时器周期可根据下式来设定0065T定时器周期MAX1/F网络处理器频率T平均指令周期N指令行T外设访问时间0066其中,F网络处理器频率表示正常工作时网络处理器的频率;T平均指令周期表示正常工作时网络处理器执行每条指令平均消耗的周期;N指令行表示程序中指令行数;T外设访问时间表示程序中最差情况下输入/输出操作消耗的时间。0067为了降低网络处理器死机异常的误判概率,定时器的周期不能设置过短。同时为了保证系统死机异常检测的灵敏性,本发明中,定时器的周期T定时器周期大于或等于各线程计算的最大值,从而保证死机异常检测不会出现误测的情况。0068在一开始设定定时器时,还需初始化共享内存的异常保护标记。

31、数据区,将其全部置为“0”。0069步骤202、判断网络处理器状态是否进入正常运行阶段,若是,则执行步骤203;否说明书CN101976217ACN101976222A6/7页9则继续等待网络处理器进入正常运行阶段;0070步骤203、协处理器等待定时器产生的有效的信号或中断;0071本实施例中,定时器产生有效的信号或中断表示定时器周期到达。0072步骤204、当接收到定时器产生的有效的信号或中断时,协处理器检测共享内存中异常保护标记数据区的所有标记位;0073本实施例中,当接收到定时器产生的有效的信号或中断时,协处理器可以先判断死机检测功能是否启用,具体可以为判断死机检测功能标记是否为有效的。

32、;在启用的条件下,再去检测共享内存中异常保护标记数据区,否则跳转步骤203。0074步骤205、判断所有标记位是否全为第一标记,若是,执行步骤206;否则执行步骤207;0075参照上述例子,协处理器判断所有标记位是否全为“1”,若是,则表明所有线程运行正常;若不是,则表明不为“1”的标记位对应的线程出现异常。0076步骤206、协处理器将所有标记位置为第二标记,跳转步骤203;0077参照上述例子,协处理器将所有标记位置为“0”,也即将共享内存中异常保护标记数据区全部清“0”。0078步骤207、确定不为第一标记的标记位对应的线程出现异常,进一步根据设备情况,复位网络处理器、设备重启。007。

33、9本实施例中,协处理器在初始化阶段,将异常保护标记数据区全部清“0”;系统正常运行后,定时读取共享内存中的异常保护标记数据区;在正常运行情况下,协处理器读取到的异常保护标记数据区中各线程对应的标记位全部置“1”,表示各个线程运行正常;此后,将异常保护标记数据区再次全部清“0”,从而等待网络处理器线程下一次置位;当协处理器读取到的异常保护标记数据区中某些标记位依然置“0”时,表示该线程已处于死机异常的状态;这时协处理器可以采取复位网络处理器、设备重启等方式,使线程从死机状态中恢复,并采集故障信息。0080图3为本发明提供的网络处理器异常检测系统一实施例的结构示意图。如图3所示,该系统包括网络处理。

34、器11、协处理器12和共享内存13,其中0081网络处理器11中具有多个线程并行运行,各个线程的执行流程中增加有异常检测操作代码,网络处理器11用于当运行到当前线程的异常检测操作代码时,将共享内存13中异常保护标记数据区内当前线程对应的标记位置为第一标记;0082协处理器12用于当定时器周期到达时,检测共享内存13中异常保护标记数据区的所有标记位,若检测出所有标记位不全为第一标记,则确定不为第一标记的标记位对应的线程出现异常;若检测出所有标记位全为第一标记,则协处理器将所有标记位置为第二标记;0083共享内存13用于存储网络存储器11和协处理器12写入的数据,供协处理器12访问。0084网络处。

35、理器11各个线程的执行流程的公共流程中可增加有异常检测操作代码;或者,网络处理器11各个线程的执行流程的分支流程中增加有异常检测操作代码。0085图3所示的网络处理器11为单核网络处理器,进一步的,该网络处理器11可以包括第一读取模块,用于当运行到当前线程的异常检测操作代码时,读取网络处理器的状态说明书CN101976217ACN101976222A7/7页10寄存器,提取当前线程的线程号;第一计算模块,用于根据当前线程的线程号和共享内存中异常保护标记数据区的起始地址,计算得到当前线程对应的标记位;第一写入模块,用于将当前线程对应的标记位置为第一标记。0086可选地,网络处理器也可以为多核网络。

36、处理器,这样网络处理器包括第二读取模块,用于当运行到当前线程的异常检测操作代码时,读取网络处理器的状态寄存器,提取当前线程所在的处理器核号和当前线程的线程号;第二计算模块,用于根据处理器核号和当前线程的线程号,计算当前线程在网络处理器所有线程中的序号;第三计算模块,用于根据当前线程在网络处理器所有线程中的序号和共享内存中异常保护标记数据区的起始地址,计算得到当前线程对应的标记位;第二写入模块,用于将当前线程对应的标记位置为第一标记。0087协处理器12的定时器的周期T定时器周期可根据下式来设定0088T定时器周期MAX1/F网络处理器频率T平均指令周期N指令行T外设访问时间0089其中,F网络。

37、处理器频率表示正常工作时网络处理器的频率;T平均指令周期表示正常工作时网络处理器执行每条指令平均消耗的周期;N指令行表示程序中指令行数;T外设访问时间表示程序中最差情况下输入/输出操作消耗的时间。0090为了降低网络处理器死机异常的误判概率,定时器的周期不能设置过短。同时为了保证系统死机异常检测的灵敏性,本发明中,定时器的周期T定时器周期大于或等于各线程计算的最大值,从而保证死机异常检测不会出现误测的情况。0091本发明提供的网络处理器异常检测方法及系统,利用了网络处理器软件流程的特点,能够及时、有效地对线程的异常进行检测,同时在检测到异常后进行自动恢复。在不影响网络处理器转发性能和业务处理流。

38、程的前提下,大大提升了以网络处理器为核心单元的网络设备运行期间故障的检测能力和修复能力,能够明显提高企业的经济效益。另外,为了尽可能降低操作共享内存对系统性能带来的影响,结合系统硬件方案,本发明选用输入/输出速度较快的共享内存。0092最后,需要注意的是以上列举的仅是本发明的具体实施例子,当然本领域的技术人员可以对本发明进行改动和变型,倘若这些修改和变型属于本发明权利要求及其等同技术的范围之内,均应认为是本发明的保护范围。说明书CN101976217ACN101976222A1/2页11图1说明书附图CN101976217ACN101976222A2/2页12图2图3说明书附图CN101976217A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1