首页> 中国专利> 通道化逻辑单通道统计的方法和装置

通道化逻辑单通道统计的方法和装置

摘要

本发明公开了一种通道化逻辑单通道统计的方法和装置,属于网络管理领域。所述方法包括:将通道号缓存到FIFO中,并分配RAM的地址范围;从FIFO中读出通道号,并将其译码为地址,发送到RAM;在需要读取统计计数时,读出统计计数,并对RAM中与通道号对应的地址中的数据写为零;在不需要读取统计计数时,对RAM中存储的与地址对应的统计计数进行累加,得到并存储新的统计计数。所述装置包括:用于存储通道号和统计计数的存储模块、用于通道号译码的译码模块、用于统计计数累加的累加模块和用于读出统计计数及清零的读出清零模块。本发明通过对每个单通道的统计和读清操作,具有通道化逻辑的统计更加细化、更加有效的效果。

著录项

  • 公开/公告号CN101141296A

    专利类型发明专利

  • 公开/公告日2008-03-12

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN200710120348.4

  • 发明设计人 汤成;刘文一;史朋斌;

    申请日2007-08-16

  • 分类号H04L12/24(20060101);H04L12/56(20060101);

  • 代理机构11138 北京三高永信知识产权代理有限责任公司;

  • 代理人何文彬

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-17 19:54:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-10

    未缴年费专利权终止 IPC(主分类):H04L12/24 授权公告日:20100324 终止日期:20160816 申请日:20070816

    专利权的终止

  • 2010-03-24

    授权

    授权

  • 2008-05-07

    实质审查的生效

    实质审查的生效

  • 2008-03-12

    公开

    公开

说明书

技术领域

本发明涉及网络管理领域,特别涉及一种通道化逻辑单通道统计的方法和装置。

背景技术

当前逻辑中的统计基本上都是采用循环溢出式统计方法来进行统计,而通过写清操作来对寄存器进行清零。当前逻辑中的统计方法为:首先通过一个或者几个独立的寄存器组成计数器,寄存器溢出循环计数;在需要读出数据时,通过地址直接将计数器表征的数值读出;在需要对计数器清零的时候,向另一个地址写入清零使能值,便将一个或者几个或者全部寄存器清零,而大多数情况下是一次性将所有的寄存器都清零。在通道化逻辑中(如果存在通道化需求),一般通过地址的规划来区分通道或者不做通道化计数处理,这样统计的结果要么会有数量庞大的地址和寄存器映射给每个通道,要么只有所有通道总的计数统计,而没有具体每个通道的统计计数。例如在ECCO(E1/CPOS Channelized Operation-E1/CPOS通道化操作)通道化逻辑中,逻辑中共有256个通道,同时报文内容需要区分优先级,如果做对报文数量的统计,如果不打算应用繁琐的地址和计数器规划,则只能做出高低优先级收到报文数量的各两个统计,而且每个统计的计数器的位宽会很大,会占用多个地址,这样就无法区分通道,并且无论怎么样都无法观测到每个单通道的状况。如果希望有精确的单通道统计,则处理起来会非常繁琐——当前逻辑中的统计方法没有方便的寄存器规划,如果地址规划不当,那么将直接影响代码的可读性和可维护性,尤其是通道化逻辑。如果需要做单通道的统计,那么通道数会很多,统计起来将非常繁杂,比如128个通道,每个通道32bits统计信息,那么就需要512个地址来一一映射,这还仅仅是一个统计项,如果统计项多的话,逻辑模块与外部CPU的联系而产生的代码将占据相当大的篇幅,重复代码增加将导致工作效率降低。另外,当前计数器的清零操作大多是通过写清操作来对许多计数器清零,不能够随心所欲的将某个计数器清零,大多数情况下是一次写清操作会将所有的计数器清零,否则需要对每一个计数器配置单独的写清地址,这样不仅增加了重复代码,而且规划和应用起来非常不力便。

发明内容

为了使通道化逻辑的统计更加细化、更加有效,本发明实施例提供了一种通道化逻辑单通道统计的方法,所述方法包括:

将单通道的通道号缓存到先入先出队列中,并分配随机存取存储器的地址范围;

从所述先入先出队列中读出所述单通道的通道号,将所述通道号译码为所述随机存取存储器的地址,并将所述地址发送到所述随机存取存储器;

所述随机存取存储器收到所述地址后,在外部需要读取所述单通道的统计计数时,读出当前存储的与所述地址对应的统计计数,并对所述随机存取存储器中与所述单通道的通道号对应的地址中的数据写为零;在外部不需要读取所述单通道的统计计数时,对当前存储的与所述地址对应的统计计数进行累加,得到所述单通道新的统计计数,并存储该新的统计计数。

本发明实施例还提供了一种通道化逻辑单通道统计的装置,该装置包括存储模块、译码模块、累加模块和读出清零模块;

所述存储模块用于存储单通道的通道号和统计计数;

所述译码模块用于从所述存储模块中读出单通道的通道号,将所述通道号译码为随机存取存储器的地址,并将所述地址发送到所述累加模块和读出清零模块;

所述累加模块用于接收到所述译码模块发送的地址后,对所述随机存取存储器当前存储的与所述地址对应的统计计数进行累加,得到新的统计计数,并将所述新的统计计数发送到所述存储模块;

所述读出清零模块用于从所述存储模块中读出单通道的统计计数,并对所述随机存取存储器中与所述单通道的通道号对应的地址中的数据写为零。

本发明实施例提供的技术方案的有益效果是:通过对每个单通道的统计和读清操作,使通道化逻辑的统计更加细化、更加有效,便于查看逻辑内部详细的情况,及时定位问题。

附图说明

图1是本发明实施例提供的通道化逻辑单通道统计的方法流程图;

图2是本发明实施例提供的通道化逻辑单通道统计的装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例以RAM(Random Access Memory-随机存取存储器)作为通道化逻辑中单通道统计的基础,对RAM分配一个地址范围,逻辑根据分配给RAM的地址范围自动区分不同的通道,对相应通道执行操作;当时钟上升沿到来时,对RAM当前存储的单通道的统计计数执行加1操作;通过读清操作对单通道的统计计数清零,每次外部CPU读出单通道的统计计数后,对该通道的统计计数清零。

参见图1,本发明实施例提供的通道化逻辑单通道统计的方法,具体包括以下步骤:

步骤101:单通道统计计数的通道号缓存到FIFO(First In First Out-先入先出)队列中,并向RAM分配地址范围;

本发明实施例将通道增量使能信号定义为一个时钟周期的高电平信号,在实施过程中将该信号作为FIFO的写信号,将通道号作为FIFO的写数据,在通道增量使能信号出现高电平即FIFO的写信号有效时,FIFO的写数据端口写入一个单通道统计计数的通道号,而后根据流程顺序对该通道的统计计数执行加1操作;

为了单通道统计计数的累加方便,本实施例采用两个RAM,但不限于此,将这两个RAM分别标记为RAM0和RAM1,RAM0用作统计计数,RAM1用作RAM0的备份,并且RAM0的读数据信号一直有效,即一直在进行读数据操作;或者RAM1用作统计计数,RAM0用作RAM1的备份,并且RAM1的读数据信号一直有效,即一直在进行读数据操作。本实施例用RAM0作统计计数,RAM1作RAM0的备份,向RAM0和RAM1分配相同的地址范围,地址范围由通道的数目来决定,例如有256个通道,就有256个地址,即0~255;有512个通道,就有512个地址,即0~511,逻辑根据分配给RAM0和RAM1的地址范围自动区分不同的通道,对相应通道执行操作;

步骤102:空闲状态的系统查看外部CPU是否要读取一个单通道的统计计数,如果是,则执行步骤103,否则执行步骤106;

步骤103:将外部CPU要读取统计计数的通道号译码为地址,并将该地址发送到RAM0和RAM1的读地址上;

将外部CPU要读取统计计数的通道号译码为地址具体为:将要读取统计计数的通道号作为RAM0和RAM1的地址;

步骤104:RAM0和RAM1的读地址收到地址后,进行一次读操作,读出收到的地址中存储的对应通道的统计计数,并将该统计计数发送到CPU的数据总线上;

由于RAM0的读数据信号一直有效,所以RAM0的读地址收到地址后,可以读出收到的地址中存储的对应通道的统计计数;由于RAM1的读数据信号不是一直有效的,所以预先要给RAM1的读数据信号发送一个高电平信号,这样RAM1读地址收到地址后,也可以读出收到的地址中存储的对应通道的统计计数;由于RAM0和RAM1收到的地址中存储的对应通道的统计计数相同,所以发送到CPU的数据总线上的统计计数为一个数据;

步骤105:对RAM0和RAM1中与读取统计计数通道相对应的地址中的数据写为零,进行读清操作,系统回到空闲状态,执行步骤102;

对RAM0和RAM1中与读取统计计数通道相对应的地址中的数据写为零具体为:将数据0分别发送到RAM0和RAM1的数据线上,将译码得到的与统计计数的通道对应的地址分别发送到RAM0和RAM1的地址线上,并向RAM0和RAM1的写数据信号发送一个高电平信号,依据RAM芯片的物理特性,RAM0和RAM1的写数据信号收到一个高电平信号后,会将数据线上的数据写入到RAM0和RAM1的地址线中;

步骤106:空闲状态的系统查看FIFO是否为非空,如果是,则执行步骤107,否则执行步骤109;

FIFO非空说明有通道的统计计数要增加,即该通道的统计计数要加1;

步骤107:系统从FIFO队列中读出一个通道号,将该通道号译码为RAM的地址,并将该地址发送到RAM0和RAM1的读地址上;

系统将通道号译码为RAM的地址具体为:系统将从FIFO队列中读出的通道号作为RAM0和RAM1的地址;

步骤108:RAM0和RAM1的读地址收到地址后,RAM0读出当前存储的统计计数,并将该统计计数加1,重新写入RAM0和RAM1中,系统回到空闲状态,执行步骤102;

由于RAM0的读数据信号一直有效,所以当RAM0的读地址收到地址后,就可以读出收到的地址中存储的对应通道的统计计数;由于RAM1的读数据信号不是一直有效的,所以RAM1的读地址收到地址后,不会读出收到的地址中存储的对应通道的统计计数;

RAM0将加1后的统计计数分别发送到自身的数据线和RAM1的数据线上,将译码得到的与统计计数的通道对应的地址分别发送到RAM0和RAM1的地址线上,并分别向RAM0和RAM1的写数据信号发送一个高电平信号,依据RAM芯片的物理特性,RAM0和RAM1的写数据信号收到一个高电平信号后,会将数据线上的数据写入到RAM0和RAM1的地址线中;

步骤109:系统保持空闲状态,执行步骤102。

为了更加清楚地描述本实施例的具体步骤,下面通过一个具体的例子加以说明:

假设一个通道化逻辑有256个通道,这256个通道的通道号可以用8bits来表示,即00000000~11111111,也就是十进制数0~255;缓存通道号的FIFO是8bits位宽,256深度,即可以存储256个通道;RAM0和RAM1的地址线8bits位宽,数据线32bits位宽,深度256,即每一个通道对应一个地址,每个地址里存储的数据是32bits位宽,直接应用通道号作为RAM0和RAM1的地址。如果CPU要读出25通道的统计计数,那么首先CPU将通道号25译码为地址25,然后将地址25送到RAM0和RAM1的读地址上,进行一次读数据操作,这样就会依次从RAM0和RAM1中读出一个32bits位宽的数据,送到CPU数据总线上,最后将RAM0和RAM1的地址25写入零,进行读清操作。如果FIFO非空,且CPU没有读数据操作,那么系统从FIFO中读出一个通道号,例如34,即34通道的统计计数要执行加1操作,然后将通道号34译码为地址34,并将地址34发送到RAM0和RAM1的读地址上,RAM0读出34通道的统计计数,并将该统计计数加1,重新写入RAM0和RAM1中。

另外,本发明实施例还可以采用一个RAM来实现,实现原理为:如果外部CPU读取一个单通道的统计计数,那么首先将该单通道的通道号译码为RAM的地址,并将该地址发送到RAM的读地址上;RAM发起一个时钟周期的读操作,读出与该单通道的通道号对应的地址中存储的统计计数;在接下来的一个时钟周期,将读取出来的统计计数发送到CPU数据总线上;接下来再对RAM发起一个时钟周期的写操作,向与该单通道的通道号对应的地址写入零,完成读清操作;如果存储单通道通道号的FIFO非空,且没有外部CPU发起读取数据的操作,那么从FIFO中读出一个单通道的通道号,并该通道号译码为RAM的地址,发送到RAM的读地址上;RAM发起一个时钟周期的读操作,读出与该单通道的通道号对应的地址中存储的统计计数;在接下来的一个时钟周期,将读取出来的统计计数加1;接下来再对RAM发起一个时钟周期的写操作,将加1之后的统计计数写入与该单通道的通道号对应的地址中,完成累加过程。

本实施例通过对每个单通道的统计,相关的地址分配方案和读清操作,使通道化逻辑的统计更加细化、更加有效。

本发明实施例所述技术方案的一个典型应用是ECCO通道化逻辑的分通道统计,ECCO通道化逻辑做了分通道的9个统计:从PHY(数据处理芯片)经逻辑到NP(Net Processor-网络处理器)的通路在逻辑中的入口统计、出口统计、CRC(循环冗余校验码)错包统计、长包统计、短包统计,从NP经逻辑到PHY的通路在逻辑中的入口统计、出口统计、高优先级反压丢包统计、低优先级反压丢包统计,这些统计占用的地址不少,但是都是按地址块,即地址范围给出,相当于9个地址。在这9个统计中,每个统计占用一块RAM和一块地址,通过驱动方面的配合,每次需要查询一个通道的统计的时候,就从RAM中调出一个通道的统计计数,并将该通道的统计计数清零,而不影响其它通道的统计计数,由此定位了报文在逻辑中是否丢失,是否是反压(丢包主要原因)引起丢包,以及每次两个数据通路方向中精确具体的单通道接收、发送报文数量错包、优先级反压丢包数量。在我们逻辑所处的这个环境中,通常是接收上层软件方面发送过来的数据,处理过后发送给底层软件去处理,上层和底层软件都是应用ASIC(专用集成电路,固化型)作为处理芯片。在调试问题的时候,会出现一种状况——在创建很多通道之后,某一条通道的路径中有报文丢失,而报文丢失在哪个环节大家都不清楚。于是逻辑的统计就可以作为分界点:逻辑入口处的分通道读清报文统计和出口处的分通道读清报文统计可以确定报文丢弃在逻辑上方还是逻辑下方,或者丢弃在逻辑中;如果是丢弃在逻辑中,通过其他的分通道计数还可以查看是不是因为某种已知可控的原因造成的报文丢弃。这种在多通道情况下才出现的问题,数据处理上各方面想排除嫌疑都相当困难,如果其中逻辑能够作为一个分界线,就会很快将问题分析到某一个小的范围,这如果通过以往的非单通道化计数,也不是读清的,分析起来会异常困难,涉及到各个方面的配合问题分析起来就非常繁琐。通过该统计,从最开始逻辑和软件共同进行系统级调试的时候,NP和PHY是否有发送过来的报文及发送过来报文的正误到后来稳定状态下的系统可以运行,进行性能达标测试,应用丢包计数进行的概率计算,很快分析清除了逻辑方面的近10个故障的原因,并协助软件方面成功分析清除了20多个故障的原因,这对以往的统计方案来说,是不可能在通道化逻辑中有如此迅速显著的效果的。

在实际应用中,如果一个流程正在进行,而另一个流程的启动条件已经满足,那么得等到正在进行的流程进行完毕,回到空闲状态之后,才可以启动另一个流程。例如当CPU正在读取通道统计计数,而通道统计计数加1的启动条件已经满足,那么得等到CPU读完通道统计计数,回到空闲状态之后,通道统计计数加1的流程才可以启动。另外,还可以通过寄存器组组成的RAM作为通道化逻辑中分通道统计的基础,进行统计操作。

参见图2,本发明实施例还提供了一种通道化逻辑单通道统计的装置,该装置包括存储模块、译码模块、累加模块和读出清零模块;

存储模块用于存储单通道的通道号和统计计数;

译码模块用于从存储模块中读出单通道的通道号,将通道号译码为随机存取存储器的地址,并将地址发送到累加模块和读出清零模块;

累加模块用于接收到译码模块发送的地址后,对随机存取存储器当前存储的与地址对应的统计计数进行累加,得到新的统计计数,并将新的统计计数发送到存储模块;

读出清零模块用于从存储模块中读出单通道的统计计数,并对随机存取存储器中与单通道的通道号对应的地址中的数据写为零。

累加模块包括读取单元、计数单元和发送单元;

读取单元用于接收到译码模块译码发送的地址后,读出随机存取存储器当前存储的与地址对应的统计计数,并将统计计数发送给计数单元;

计数单元用于接收到读取单元发送的统计计数后,对统计计数加1,得到新的统计计数,并将新的统计计数发送给发送单元;

发送单元用于接收到计数单元发送的新的统计计数后,将新的统计计数发送给存储模块。

读出清零模块包括读取单元和写零单元;

读取单元用于读出存储模块中存储的单通道的统计计数,将读出的统计计数发送到CPU数据总线上,并向写零单元发送写零通知;

写零单元用于接收到读取单元发送的写零通知后,将数据0和译码模块发送的地址分别发送到随机存取存储器的数据线和地址线上,并在随机存取存储器的写数据信号收到高电平信号后,将随机存取存储器中与单通道的通道号对应的地址中的数据写为零。

本实施例通过译码模块、累加模块和读出清零模块实现了对每个通道的统计和读清操作,使通道化逻辑的统计更加细化、更加有效。

本发明实施例通过对每个通道的统计,相关的地址分配方案和读清操作,使通道化逻辑的统计更加细化、更加有效,便于查看逻辑内部详细的情况,及时定位问题。

本发明实施例可以利用软件实现,例如利用C语言、汇编语言实现,相应的软件可以存储在可读取的存储介质中,例如计算机的硬盘、内存中。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号