CN103259694A - 用于网络设备的空间高效计数器 - Google Patents

用于网络设备的空间高效计数器 Download PDF

Info

Publication number
CN103259694A
CN103259694A CN2013101223765A CN201310122376A CN103259694A CN 103259694 A CN103259694 A CN 103259694A CN 2013101223765 A CN2013101223765 A CN 2013101223765A CN 201310122376 A CN201310122376 A CN 201310122376A CN 103259694 A CN103259694 A CN 103259694A
Authority
CN
China
Prior art keywords
counter
counting
mantissa
data cell
bit
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
CN2013101223765A
Other languages
English (en)
Other versions
CN103259694B (zh
Inventor
C·阿拉德
G·利维
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.)
Marvell Israel MISL Ltd
Original Assignee
Marvell Israel MISL 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 Marvell Israel MISL Ltd filed Critical Marvell Israel MISL Ltd
Publication of CN103259694A publication Critical patent/CN103259694A/zh
Application granted granted Critical
Publication of CN103259694B publication Critical patent/CN103259694B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明的实施例涉及用于网络设备的空间高效计数器。特别地,涉及一种网络设备,包括存储器和计数器更新逻辑模块。存储器被配置为存储多个比特。计数器更新逻辑模块被配置为基于数据流中多个数据单元的统计抽样来估计多个数据单元中量的计数,并将估计的量的计数在存储器中存储为m个尾数比特和e个指数比特。m个尾数比特代表尾数值M并且e个指数比特代表指数值E。

Description

用于网络设备的空间高效计数器
交叉引用的相关申请
本公开要求了以下申请的权益:U.S.临时专利申请No.61/587,928,名称为“Increasing Device Counters”,2012年1月18日提交;U.S.临时专利申请No.61/644,345,名称为“Increase Device Counters”,2012年5月8日提交;U.S.临时专利申请No.61/652,794,名称为“Increase Device Counters”,2012年5月29日提交,这些申请的公开内容通过引用整体上结合于此。
技术领域
本公开内容总体上涉及计数器,并且更具体地,涉及通信网络中使用的计数器。
背景技术
这里提供的背景技术描述是出于总体上呈现本公开内容的上下文的目的。到在本背景技术部分中所描述程度的当前具名的发明人的工作,以及在提交申请时没有被作为背景技术的说明书的方面,既没有被明示也没有被暗示地承认为是针对本公开内容的现有技术。
通信网络典型地采用诸如网桥和路由器这样的网络设备来在网络内转发信息。对通信网络的有效管理需要监控网络设备的各种操作属性,以及网络本身的操作属性。监控这样的属性经常需要计数器,近些年对计数器的使用已经获得引人注目的发展。用来容纳网络应用中使用的所有不同计数器所需要的物理空间也已相应地增长。
发明内容
在一个实施例中,网络设备包括存储器和计数器更新逻辑模块。该存储器被配置用于存储多个比特。该计数器更新逻辑模块被配置用于基于数据流中的多个数据单元的统计抽样来估计该多个数据单元内量的计数,并将该估计的量的计数在存储器中存储为m个尾数比特和e个指数比特。该m个尾数比特代表尾数值M,并且该e个指数比特代表指数值E。
在另一个实施例中,网络设备中的方法包括基于数据流中的多个数据单元的统计抽样来估计该多个数据单元内量的计数,并将该估计的量的计数在存储器中存储为m个尾数比特和e个指数比特。该m个尾数比特代表尾数值M,并且该e个指数比特代表指数值E。
在另一个实施例中,网络设备包括被配置为存储多个比特的存储器、第一计数器、第二计数器和控制器。该第一计数器被配置为提供第一多个数据单元内的第一量的精确计数,并将该第一量的精确计数在存储器中存储为二进制数字。该第二计数器被配置为提供第二多个数据单元内的第二量的估计的计数,并将该第二量的估计的计数在存储器中存储为m个尾数比特和e个指数比特。该m个尾数比特代表尾数值M并且该e个指数比特代表指数值E。该控制器被配置为响应于所需计数器精度的一个或多个指示,(i)采用该第一计数器以用于在第一应用中使用,以及(ii)采用该第二计数器以用于在与第一应用不同的第二应用中使用。
在另一个实施例中,网络设备中的方法包括使用第一计数器来提供第一多个数据单元内的第一量的精确计数,并将该第一量的精确计数在存储器中存储为二进制数;使用第二计数器来提供第二多个数据单元内的第二量的估计的计数,并将该第二量的估计的计数在存储器中存储为m个尾数比特和e个指数比特。该个m尾数比特代表尾数值M并且该e个指数比特代表指数值E。该方法还包括响应于所需计数器精度的一个或多个指示,(i)采用该第一计数器以用于在第一应用中使用,以及(ii)采用该第二计数器以用于在与第一应用不同的第二应用中使用。
附图说明
图1是根据一个实施例的利用本公开内容的计数技术的示例计数器的框图。
图2是根据一个实施例的使用统计计数器估计网络设备中计数的示例方法的流程图。
图3是根据一个实施例的图示一个示例计数器更新过程的操作的框图。
图4是根据一个实施例的利用本公开内容的计数器配置技术的示例计数器系统的框图。
图5是根据一个实施例及场景的图4的计数器系统的计数器块内存储器的示例配置的框图。
图6是根据一个实施例的配置网络设备中的计数器资源的示例方法的流程图。
图7是根据一个实施例的配置网络设备中的计数器资源的另一个示例方法的流程图。
具体实施例
在一些应用中,并不需要穿过网络设备的数据单元(例如,包或者元)的精确计数或者这些数据单元内的总字节数。例如,指示数据单元流是否是相对高带宽或者生成示出跨各种范围或类别的数据单元的分布的直方图的一些应
用,可在不知任何精确数据单元计数或字节计数的情况下传递有用的信息。在下面描述的一些实施例中,网络设备中的计数器使用统计方法估计数据单元计数或字节计数,以便无需必须降低最大计数器值就可减少用于这样的应用的计数器数目。为了表示统计计数器的值,一个或多个比特被分配给尾数值,并且一个或多个比特被分配给指数值。在一个实施例中,如果确实发生的话,则通过将尾数值增加1或者当已经达到最大尾数值时将指数值增加1(并滚计(rollover)尾数值)来增加计数器值。此外,尽管传统的二进制(精确)计数器对于每个检测到的数据单元(或字节)都增加计数器值,而在一个实施例中,统计计数器仅以随指数值增加而降低的概率增加计数器值。因此,在该实施例中,对数据单元计数的概率随着指数值(以及因此的计数器值)的增加而降低,但是每个相继“被计数”的数据单元将大量增加计数器值。在统计计数器计数字节而不是数据单元的一些实施例中,对于每个检测到的数据单元仍以特定的概率增加计数器值,但该概率是以如下因数增长的,该因数与被检测到的数据单元的长度或由被检测到的数据单元的多个最低有效位表示的量成正比例。
在下面描述的其他实施例中,网络设备是可配置的,从而使得可以基于特定客户端/应用的需要来分配有限的计数器资源。在这些实施例中,应用请求计数器资源(例如,比特存储和计数器更新逻辑),这些计数器资源能够提供所需数量的具有各种计数器参数的计数器。在一个实施例中,计数器参数包括每个请求的计数器(例如,在实施例中,不管计数器是精确或统计计数器,和/或大量的尾数比特)所需要的准确度或精度,以及计数器比特的数目。在一个实施例中,为每个精确计数器指定单一数目的比特,而为每个统计计数器指定多个尾数比特和多个指数比特。继而,在一个实施例中,通过根据所需要的计数器参数设置计数器更新逻辑,以及通过根据确定的比特分配来分配存储器的比特来对计数器资源进行配置。因此,可以按照满足特定应用的需求而无浪费过量比特的方式来分配有限的计数器资源。例如,在一个实施例中,最大计数器值可以被设置为最低可接受的水平,只要不需要精确的数据单元或字节计数就可以使用统计计数器来代替比特密集的二进制计数器,并且统计计数器的准确度可被设置为最低可接受的水平。图1是根据一个实施例的利用本发明公开内容的数据单元(例如,包或元(cell))计数技术和/或字节计数技术的示例计数器块10的框图。例如,计数器块10被包括在网络设备12中,网络设备12为诸如路由器、网桥或其他网络交换机。在一个实施例中,网络设备12被配置为在以太网通信系统内操作。为了解释方便,下面具体参考包来描述图1的实施例。然而,可以理解,其他类似的实施例作为替代关于其他适合类型的数据单元操作。例如,在一些实施例中,实施例对元(或字节,或元内的其他单元等)而不是包进行计数。
计数器块10包括计数器更新策略模块12,该计数器更新策略模块12包括管理计数器块10内的N个计数器的操作的逻辑。为了改变计数器块10中的计数器的当前值,计数器更新策略模块14操纵计数值比特20-1至20-N内的特定比特,其存储在存储器16中,代表计数器值。计数器比特20-1至20-N各自包括一个或多个尾数比特以及一个或多个指数比特。在一些实施例和/或场景中,尾数比特和/或指数比特的数目因计数器不同而不同。例如,在各种实施例和/或场景中,计数值比特20-1比计数值比特20-2包括更多或更少的尾数比特,和/或更多或更少的指数比特。在一个备选实施例中,存储器16中仅包括对应于单个计数器的计数值比特20-1。在一个实施例中,计数器块10内的每个计数器都具有等于M*2E的计数器值C,其中M是由对应的尾数比特所表示的尾数值,并且E是由对应的指数比特所表示的指数值。为了解释方便,下面具体参考对应于计数值比特20-1的计数器的操作来描述图1的实施例。在一些实施例中,其他(N-1)计数器中的每个计数器以类似方式来操作。
计数器更新策略模块14基于由计数器更新策略模块14所接收到的“计数事件”和“权重”指示符来增加计数器的计数器值。在一个实施例中,每个“计数事件”指示符指示特定的包符合一个或多个标准,诸如具有一个或多个包特征(例如,属于如由一个或多个包字段值所标识的特定流,超过特定字节长度,具有在特定地址范围内的源或目的地地址,等等)和/或为特定的包状态(例如,接受的,转发的,列队的,丢弃的等等)。在各种不同的实施例中,“计数事件”指示符由包检测器(图1中未示出)生成,该包检测器对接收到的包(例如,由网络设备12接收到的包),或者对头部、描述符,或其他与接收到的包相关联的信息进行操作。为了方便说明,“检测包”在这里指的是确定该包具有一个或多个特定特征和/或处于一个或多个特定状态,并且“被检测到的包”在这里指的是已经被检测为具有必需特征和/或处于必需状态的包。
当计数器更新策略模块14接收到“计数事件”指示符时,计数器更新策略模块14仅以概率P增加由计数值比特20-1所表示的计数器值。在一个实施例中,当计数器值被增加时,其是通过将尾数值M加1来增加的,除非已经达到最大尾数值(例如,可以通过计数值比特20-1的尾数比特表示的最大值),在这种情况下,指数值E被增加1并且尾数值M滚计。
如上所述,计数器更新策略模块14仅以概率P来增加计数器值。在对包进行计数的一个实施例中,针对给定“计数事件”指示符而增加计数器值的概率是P=1/2E。因此,随着指数和计数器值以上述方式来增加,每个附加的检测到的包将被“计数”(即,使得计数器值增加)的机会越来越小。然而,这是通过以下事实来补偿的,即随着指数值增加,被计数的每个被检测到的包将以越来越大的数量增加计数器值。尽管该方法仅提供对被检测到的包的实际计数的统计近似,但与精确的二进制计数器相比其允许固定数目的比特来表示高得多的最大计数器值。例如,具有8比特的二进制计数器可以指示计数器值最大到28-1,或者255,而具有8比特的统计计数器可以指示大得多的值(例如,对于3个尾数比特和5个指数比特来说,可达到7*231,或者15032385536)。最大计数器值随着分配给指数(例如,计数值比特20-1中的指数比特)的比特数量被增加而急剧增加,并且随着分配给尾数(例如,计数值比特20-1中的尾数比特)的比特数量被增加而达到较小程度。计数器值中的分辨度,以及由此的相对于被检测到的包的实际计数的计数器准确度和精度,也随着尾数比特数量被增加而增加。在一个实施例中,至少两个尾数比特被包括在计数值比特20-1中。
在一个实施例中,为了测试是否应当响应于接收到“计数事件”指示符而增加计数器值,计数器更新策略模块14内的概率计数器更新模块24进行以下两个操作:(1)基于由计数值比特20-1内的指数比特所指示的当前指数值E,计算为每个“计数事件”指示符增加计数器值的概率P=1/2E;以及(2)比较计算的概率P与由伪随机数生成器26生成并从其接收的伪随机数。在一个实施例中,伪随机数生成器26以均匀分布方式在0和1之间生成数,并且概率P总是大于0而小于1。在一个实施例中,伪随机数生成器26提供伪随机数以用于由计数器块10内的N个计数器中的每一个来使用。
在一些实施例和/或场景中,计数器块10内的一个或多个计数器对字节而不是对包进行计数。在一个实施例中,为了对基于“计数事件”指示符的字节计数进行近似,对字节的“块”而不是对单个字节进行计数,因此,计数器值应当乘以字节块大小(例如,通过数字处理器对由计数值比特20-1所表示的计数器值进行抽样)以便确定估计的字节计数。例如,在一个实施例中,计数在q字节的块中执行,其中q是计数量单元(即,以q的倍数来执行计数)。在各种实施例中,q反映了最小包长度(例如,用于以太网包的64字节),和/或提供对于特定联网应用来说足够的计数准确度/精度的任何其他适合量。在一些实施例和/或联网应用中,q等于1(例如,一个字节)。
在一字节计数的实施例中,概率计数器更新模块24针对每个“计数事件”指示符计算增加概率P,其中P基于以下来确定:(1)对应于“计数事件”指示符的包的包长度L;(2)计数量单元q;以及(3)当前指数值E。具体地,在一个实施例中,包长度L被标准化为计数量q以确定标准化的包长度Lq=L/q,继而通过将Lq的E个最低有效位(LSB)除以2E来确定P。同样,在该实施例中,当Lq具有除E个LSB之外的一个或多个非零比特时,将尾数值M增加附加量。下面将参考图3对该实施例进行更详细的描述。
每个包的长度是基于“权重”指示符来确定的,在各种实施例中,其是包长度L、标准化的包长度Lq,或者指示包长度的另一个合适度量。在一个实施例中,计数器更新策略模块14从另一个处理单元(图1中未示出)接收检测到的包的“权重”指示符,并且因此概率计数器更新模块24知道每个包的字节长度。如果所有包具有相同长度,则在一个实施例中对包而不是对字节(例如,可以独立于计数器10来确定字节,简单地通过将计数器值乘以固定包长度)计数是足够的。因此,在该实施例和/或场景中,增加概率P等于1/2E。在所有包具有相同长度或对包而不是对字节进行计数的一些实施例中,没有“权重”指示符被提供给计数器更新策略模块14。
在一个实施例中,其中计数器是字节计数器,其中P等于Lq的E个LSB除以2E的结果,并且其中计数器值C=M*2E,对于示例的包计数器,尾数值和指数值以如上所述相同方式被增加(即,将尾数值增加1直到达到最大值,在该最大值点尾数值滚计并且指数值加1)。然而,在一些实例中,尾数值M和/或指数值E可增加多于1,如下参考图3所描述的。为了确定估计的字节计数,在一个实施例中,计数器值C=M*2E乘以q(例如,通过对计数器值C进行抽样的数字处理器),从而使得估计的字节数目等于Cest=q*M*2E
在上述的字节计数实施例中,计数器对等于最小包长度(以字节)的单元进行计数。然而,在各种其他实施例中,计数器对任何其他适合量的单元进行计数。因此,通过改变q能够获得针对比特、半字节、字节、字等的计数器估计,不管是单独的还是以任何大小的块。
表1图示了对于一个包计数器和一个字节计数器的示例情况,如何通过使用类似于计数器块10的计数器的统计计数器而不是精确计数器来保存计数器比特(以及由此的片区域):
Figure BSA00000876485200071
如表1中所示,一半的比特可以用来提供大得多的包及字节计数器值。代价是由于由尾数比特、计数量q所提供的计数分辨度所导致的计数不准确度,以及由于统计计数方法所导致的固有的不准确度。如上所述,尾数比特的数目确定诸如计数器块10的计数器之类的统计计数器的准确度和精度。
图2是根据一个实施例的使用统计计数器估计网络设备中的计数的示例方法50的流程图。在各种实施例中,方法50被全部地或部分地由图1的网络设备12中的计数器更新策略模块14实施。如图1一样,具体参考包来描述图2的实施例。然而,再次应当理解其他实施例作为替代关于其他适合类型的数据单元(如,元)进行操作。
方法50估计量的计数,其中每个量是任何适当的计数单元(例如,包,最小包长度中的字节的数目等等)。此外,在一个实施例中,关于特定包流中的包对量进行计数,其中包流可以按照任何适当的方式来定义(例如,具有特定头部字段值的包,已经接收到的包,已被丢弃的包,等等)。在一个实施例中,对于多个包中的每个包重复方法50。
在块52,接收包指示符。该包指示符对应于相关“流”内的特定包,并且指示该包已被检测到。在各种实施例中,包指示符是从实施方法50的相同网络设备中的包处理单元接收到的信号,或者从不同网络设备接收到的信号。例如,在一个实施例中,接收到的信号正常在“低”电平,并且每当信号转变为“高”电平时指示包(反之亦然)。在一个实施例中,包指示符类似于参考图1所描述的“计数事件”指示符中的一个指示符。
在块54,确定当前计数器值C。在一个实施例中,通过从存储器中读取比特(诸如在图1的存储器16中存储的计数值比特20-1中所包括的尾数和指数比特)确定计数器值。在一个实施例中,计数器值C等于M*2E,其中M是由m个尾数比特所表示的尾数值,并且E是由e个指数比特所表示的指数值。
在块56,确定增加概率P。在一个实施例中,增加概率P是随着指数值E被增加(并且由此随着计数器值C增加)而指数地减少的值。在方法50表示包计数器的操作(即,其中计数器值C是对包的数目的估计)的一个实施例中,增加概率P等于1/2E。在方法50表示字节计数器的操作的一个实施例中,并且其中包具有等于计数量q的最小字节长度,增加概率P等于Le/2E,其中Le等于L/q(例如,下面参考图3进行更详细的描述)的E个LSB。
在块60,以概率P来增加计数器值C,其中P是在块56确定的概率P。在一个实施例中,对是否增加计数器值C的确定是通过比较伪随机数与概率P来做出的。在一个实施例中,伪随机数是由与图1的伪随机数生成器26类似的伪随机数生成器来生成的。在方法50表示包计数器的操作的一个实施例中,增加计数器值C包括将尾数值M增加1,或者如果M达到其最大值并滚计则增加指数值E(并重置M)。在方法50表示字节计数器的操作的一个实施例中,增加计数器值C包括根据图3的过程或适合的等同过程来增加尾数值M和/或指数值E。
在块62,m个尾数比特和e个指数比特的更新值(即,代表对应于于增加的计数器值C的尾数值M和指数值E的二进制值)被写入计数器存储器。在一些实施例中,只有在作为块60的增加结果而使得比特值被改变时才在块62写入或重写这些比特。在一个实施例中,例如,当在块60没有发生增加的情况中,在块62没有比特被重写。在其他实施例中,比特在块62被重写而不管块60处的结果(例如,对每个尾数比特和/或每个指数比特发生写入操作,即使仅仅是以相同的比特值来重写这些比特)。
在一些实施例中,方法50的块的发生顺序与图2中可见的顺序的不同。例如,在一个实施例中,当在块52接收包指示符之前在块56确定增加概率P。在另一个示例实施例中,当在块62写入更新的计数器值比特之前或者同时,在块52接收针对第二个检测到的包的包指示符(在方法50的第二次迭代中),对于方法50的第一次迭代中的第一个被检测到的包,在块60以概率P增加计数器值C,和/或在块56确定增加概率P。
图3是根据一个实施例的图示示例的计数器更新过程的操作的框图。在一个实施例中,图3中所示的操作对应于在其中计数器更新策略模块14接收“计数事件”指示符以及指定包长度的对应“权重”指示符的场景。
在图3中,一组初始计数器值比特100包括m个尾数比特和E个尾零(例如,等于由e个指数比特所表示指数的当前整数值的多个尾零)。添加E个尾零用来将尾数值M转换为当前整数计数值,M*2E。然而,应当理解,图3以及这里所附的描述仅仅是旨在有助于对根据一个实施例的计数器更新过程的理解。例如,在一些实施例中,实际的实施方式执行等同于图3的操作的操作而无需在计数器值比特和整数格式之间转换(例如,无需插入E个尾零等)。
包长度比特110表示检测到的包的量长度Lq(即,包长度L被标准化到计数量q,从而使得Lq=L/q)。例如,在包是如511量一样大的一个实施例中,包长度比特110包括至少n=9个比特。如图3中所示,与初始计数器值比特100的被移位的尾数比特重叠的包长度比特110的最高有效位(MSB)被添加到尾数值M,从而形成第一和比特120。在图3的示例实施例中,该添加仅发生在n比E大的情况下(即,如果包长度比阈值长度大,其中阈值长度随着E的增加而增加),在这种情况下,包长度比特的(n-E)个MSB被添加到尾数值M。在一个实施例中,与初始计数器值比特100的E个尾零重叠的包长度比特110的LSB没有被添加到初始计数器值比特100或者第一和比特120。然而,在一个实施例中,比特130以等于Le/2E的增加概率P被添加到第一和比特120,其中Le等于包长度比特110的E个LSB。因此,虽然在该实施例中包长度比特的E个LSB没有被添加到计数器值,但它们影响包的增加概率P。由于E随着计数器值增加,当计数器值远大于Lq时,增加概率P降低到Lq/2E
比特130当被添加到比特120时,尾数值M增加了1。形成的新计数器值比特140提供新计数器值的整数表示,其根据增加概率P与比特130的添加结合或不与其结合。在一个实施例中,一旦该新计数器值140被确定,则新计数器值140被转换到指数表示M*2E。在一个实施例中,为了转换新计数器值,新计数器值比特140的m个MSB(起始于且包括在比特140中所包括的最高有效(即最左侧)“1”值)在存储器中被存储为m个尾数比特,并且比特140中该m个尾数比特的右边的比特数等于指数值E。在一个实施例中,将指数值E转换到二进制数提供了存储在存储器中的e个指数比特。
以上述方式将新计数器值比特140转换到指数表示的结果使得固有地发生了两个操作。首先,当尾数值M滚计(即,以“回绕(wrap-around)”形式)时,新尾数值M等于0加上加法的任意余数。此外,如果表示尾数值M的比特m的数目相当小,则尾数值M可以在单个的计数器更新操作中环绕多次,从而使得E增加多于1。然而,再次地,在一些实施例中,实际实施方式作为替代执行等同于图3的操作的其他操作而无需在计数器值比特和整数格式之间转换。
在一些实施例中,数字处理器(例如,CPU)通过实施数字计数器来提高计数器10的有效最大计数器值,其中该数字计数器偶尔(如周期性地)抽样计数器10的尾数和指数比特,处理器计算对应于尾数和指数比特的每个抽样组的计数器值,并将尾数和指数比特重置为0。在一些实施例和/或应用中,数字处理器将每个计数器值添加到该数字计数器值。在其他实施例和/或应用中,数字处理器利用计数器10的抽样值,但是并不保留或计算数字计数器值。
图4是根据一个实施例的利用本公开内容的计数器配置技术的示例计数器系统300的框图。在一个实施例中,计数器系统300例如被包括在诸如路由器、网桥或其他网络交换机之类的网络设备中。在一个实施例中,计数器系统300被包含在被配置为运行于以太网系统内的网络设备中。
计数器系统300包括表示网络设备内的各种应用的客户端302-1至302-N,其中每个客户端执行利用一个或多个计数器的操作。这些应用可能需要对符合特定标准的数据单元(例如,包或元)的数目的计数,这些标准例如诸如有多少数据单元处于特定状态,和/或有多少数据单元具有特定特征。例如,流量测量应用可以基于由网络设备接收(或转发)的数据单元的数目或者被识别为属于特定时间帧中的特定流的数据单元的数目来生成流量带宽的指示符。作为另一个示例,调试应用可以基于被网络设备丢弃的数据单元的数目来生成网络性能的指示符。其他应用作为替代可能需要对在符合标准的数据单元中所包括的字节的总数目进行计数。例如,在包具有可变长度的系统中,更精确的流量测量应用可以基于由网络设备所接收(或转发)的包中的字节的总数目来生成流量带宽的指示符。
为了支持所需的计数器,计数器系统300包括计数器资源304(例如,计数器逻辑和用于计数值比特的储存器)。在图4中所示的实施例中,计数器资源304包括多个计数器资源块306,每个计数器资源块306包括计数器逻辑310,计数器逻辑310部分地通过操纵存储在相应存储器312中的计数值比特管理一个或多个计数器的操作。为了清楚目的,在图4中计数器逻辑310和存储器312仅针对单个计数器资源块306示出。在一个备选实施例中,计数器资源304仅包括单个计数器资源块306。
在一个实施例中,包括在计数器资源304中的每个计数器资源块306可被配置为单个计数器或者多个计数器。此外,在一个实施例中,计数器资源块306的每个计数器可被配置为作为计数器估计器(例如,具有与如上关于图1、图2和/或图3所述的操作类似的操作的统计计数器)、或精确的二进制计数器来运行。因此,在各种不同实施例中,每个计数器资源块306的计数器逻辑310可被配置为管理多个二进制计数器、多个统计计数器或者一个或多个二进制计数器与一个或多个统计计数器的混合体的操作。根据这些不同的场景,相应的存储器312可以存储二进制计数器比特的一个或多个组,和/或尾数和指数比特的一个或多个组。在一个备选实施例中,一些计数器资源块306仅可以被配置为精确计数器,而其他计数器资源库仅可以被配置为统计计数器。
图5是根据一个实施例和场景的图4的计数器系统的计数器块306内的存储器312的示例配置313A、313B的框图。在一个实施例中,计数器值比特314的每个组对应于单个计数器。在一个实施例中,第一配置313A是由请求两个二进制计数器和两个计数器估计器的客户端(例如,图4的客户端302-1)所产生的。因此,存储器312被配置以使得计数值比特314-1和314-2专用于相应的二进制计数器,并且以使得计数值比特314-3和314-4专用于相应的计数器估计器(统计计数器)。在一个实施例中,4组计数值比特314-1至314-4中的每一组基于不同计数事件而被更新。例如,在一个实施例和场景中,每当网络设备接收到包时,计数值比特314-1被更新以便增加计数器,每当包被丢弃时,计数值比特314-2被更新以便增加计数器等等。
第二配置313B是由相同的应用(例如,客户端302-1)或者请求6个计数器估计器而不要二进制计数器的不同应用(例如客户端302-2)所产生的。因此,存储器312被配置以使得计数值比特314-1至314-6专用于相应的计数器估计器。例如,第一配置313A可以代表在其中客户端302要求两个计数器的100%准确度的场景,而第二配置313B可以代表在其中客户端302要求更多的计数器而较少的准确度或精度的场景。在一个实施例中,六组计数值比特314-1至314-6中的每一组基于不同计数事件而被更新。例如,在一个实施例和场景中,每当网络设备接收到包时,计数值比特314-1被增加(以增加概率P1),每当包被确定为超过特定包长度时计数值比特314-2被增加(以增加概率P2),等等。
再次参考图4,示例计数器系统300还包括控制器324(例如,在一个实施例中的软件控制器),其中控制器324包括计数器资源管理器326和流管理器328两者。为了便于说明,参考单个客户端(客户端302-1)来描述控制器324的操作。在一个实施例中,客户端302-1向计数器资源管理器324请求计数器资源。在一个实施例中,该请求包括计数器的所需数目以及那些计数器中的每个计数器的所需要的属性(例如,计数器准确度,以及计数器是对数据单元进行计数还是对字节进行计数)。继而,在一个实施例中,计数器资源管理器324将一个或多个计数器资源块306与客户端302-1相关联。特别地,在一个实施例中,计数器资源管理器324配置硬件映射表来将该特定计数器块306与客户端302-1相关联。
在一个实施例中,计数器资源管理器324还基于在来自客户端302-1的请求中所指定的计数器参数来配置相关联的计数器资源块306。在一个实施例中,在每个相关联的计数器资源块306内,该配置包括逻辑310的配置(例如,对于精确或统计操作),并且包括比特的分配(例如,对尾数和指数比特或一个或多个计数器,和/或对二进制计数器的比特)。在各种实施例中,计数器资源管理器324对请求的统计计数器进行配置以使其以与上述参考图1、图2和/或图3所描述的类似方式来进行操作。
在一个实施例中,客户端302-1进一步请求流管理器328为各种计数器安装(install)流。在一个实施例中,每个安装的流与计数器相关联。在一个实施例中,一旦被安装,则流中每个被检测到的数据单元用作对应计数器的计数事件,类似于参考图1所描述的“计数事件”指示符。
示例计数器系统300还包括生成伪随机数的伪随机数生成器330,所述伪随机数被提供给被配置为支持至少一个统计计数器的每个计数器资源块306的计数器逻辑310(即,与由计数器逻辑310所确定的增加概率进行比较)。在一个备选实施例中,每个计数器资源块306包括不同的专用伪随机数生成器,其类似于伪随机数生成器330(例如,类似于图1中所示的实施例,其中计数器块10包括专用的伪随机数生成器26)。
在一些实施例中,在计数器操作期间,客户端302-1还发送附加信息给每个相关联的计数器块306的计数器逻辑310,该信息为诸如与图1的“权重”指示符类似的数据单元长度(例如,在其中数据单元长度被用来计算统计数据单元计数器的增加概率的实施例和场景中),和/或与图1的“计数事件”指示符类似的数据单元指示符。在一些实施例中,客户端302-1还与该附加信息一起发送计数器索引,或者其他计数器标识符,从而使得计数器逻辑310可以标识该附加信息所对应的计数器。例如,在一个实施例中,客户端302-1将计数器编号与每个计数事件指示符一起发送,从而使得接收该信息的计数器逻辑310可以响应于该指示符标识哪个计数器应当被增加。
下面的表2-5以不同的表图示了计数器系统300的一个实施例的各种不同示例场景,其中这些不同的表对应于来自客户端302-1至302-N中的不同客户端的请求,或者对应于来自客户端302-1至302-N中的单个客户端在不同时间的请求。在对应于表2-5的场景的实施例中,基于每个请求所确定的计数器参数包括指示每个所请求的计数器是数据单元(例如,包或元)计数器还是字节计数器的第一计数器类型,指示每个所请求的计数器是精确计数器还是统计计数器的第二计数器类型,以及指定二进制计数器比特大小(对于每个所请求的精确计数器),或者尾数比特大小和指数比特大小两者(对于每个所请求的统计计数器)的比特分配。在表2-5的每一个表中还示出了当使用对应的计数器参数时所形成的最大计数值。
此外,对应于表2-5的实施例是如下实施例,其中提交请求的客户端被分配计数器资源块306中的单个块,并且其中每个存储器312可以存储多达72个比特以用来表示由客户端所请求的所有计数器的计数器值。然而,在其他实施例中,单个客户端302可被分配多于一个的计数器资源块306,和/或每个计数器资源块306包括具有多于或少于72个比特的存储器312。在各种实施例中,每个计数器资源块306可以支持最大2至8个计数器。在其他实施例中,每个计数器资源块306可以支持多于8个计数器。
在第一示例场景中,客户端302-1至302-N中的一个客户端请求一个精确数据单元计数器和一个精确字节计数器:
Figure BSA00000876485200141
表2
在第二示例场景中,客户端302-1至302-N中的一个客户端请求3个精确包计数器:
Figure BSA00000876485200142
Figure BSA00000876485200151
表3
由于存储器312的比特预算固定在72个比特,因此这3个数据单元计数器无法平均地专用于与表2的第一示例场景相关的计数器值一样多的比特,其转而限制表3中所示的最大计数器值。
在第三示例场景中,客户端302-1至302-N中的一个客户端请求两个统计数据单元计数器和两个统计字节计数器:
Figure BSA00000876485200152
表4
如表4中所示,与表2和表3的精确计数器相比,每个所请求的计数器具有高得多的最大计数器值,尽管事实上是在表4中请求了更高数目的计数器。然而,与用精确计数器应达到的水平相比,这种配置导致每个计数器的较低水平的计数器准确度和精度。
在第四示例场景中,客户端302-1至302-N中的一个客户端请求三个统计数据单元计数器和三个统计字节计数器:
Figure BSA00000876485200153
Figure BSA00000876485200161
表5
如表5中所示,每个所请求的计数器仍然具有非常高的最大计数器值,尽管事实上是请求了相对大数目的计数器。然而,与表4中示出的配置相比,该配置导致了每个计数器更高级别的不准确度和不精确度,这是因为尾数比特的数目较小。
如上表2-5的示例实施例和场景中所示,在分配固定数目的计数器资源(例如,存储器的比特)给多个计数器时可以提供大程度的灵活性,伴随着在计数器的数目、每个计数器的准确度或精度以及每个计数器的最大计数器值之间的许多可能的折衷。因此,仅在要求100%或非常接近100%准确度或精度时,可通过请求精确计数器来使得计数器资源被更高效地利用。例如,为检测“肥流”或“大象流”(即,传递大量信息的流)的应用请求计数器的客户端可以仅需要对给定时间帧中包的数目的大致近似值。如果是这样,该客户端可请求具有高最大值(由于指数比特的数目大)但是准确度小于100%的统计计数器。可接受统计计数器的其他应用包括生成特定类型的直方图的数据的应用,该数据位诸如队列填充级别(例如,为了延迟估计),或设备内先入先出(FIFO)缓冲器级别(例如,为了基于专用集成电路(ASIC)中的统计现象来评估结构设计)。其他应用可能需要精确计数器,或者统计计数器中的尾数比特的数目高的惊人以具有非常高准确度的计数器。例如,可能需要精确计数器的应用包括用于调试应用的丢包计数器,其中预期仅有少量包可能被丢弃。
图6是根据一个实施例的配置网络设备中的计数器资源的示例方法350的流程图。在一个实施例中,方法350由图4的控制器324和计数器资源304来实施。
在块352,使用第一计数器提供对第一多个数据单元内的第一量的精确计数。在一个实施例中,第一量类似于上述的计数量q,并且是任何合适的单元(例如,包,元,字节的块,等等)。在一个实施例中,第一多个数据单元对应于特定流内的数据单元。在块354,第一量的精确计数在存储器中被存储为二进制数据。
在块356,使用第二计数器提供对第二多个数据单元内的第二量的估计的计数。在一个实施例中,第二量类似于以上参考图1描述的计数量q,并且是任何合适的单元(例如,包,元,字节的块,等等)。在一些场景中,第二量不同于第一量。在各种实施例中,第二计数器被布置为根据参考图1描述的方法和/或图3的过程(或等效过程)来操作。在一个实施例中,第二多个数据单元对应于特定流内的数据单元,其中该流与使用第一计数器监视的流相同或者不同。在块360,第二量的估计的计数在存储器中被存储为表示尾数值M的m个尾数比特和表示指数值E的e个指数比特。
在块362,响应于对所需计数器精度的一个或多个指示,第一计数器被采用以用于在第一应用中使用,并且第二计数器被采用以用于在第二应用中使用。例如,在一个实施例中,第一计数器被采用以用于由图4的客户端302-1使用,并且第二计数器被采用以用于由图4的客户端302-2使用。在一个实施例中,所需计数器精度的指示是从请求计数器资源的客户端/应用接收的。在一个实施例和/或场景中,与来自第二应用的对计数器资源的第二请求相比,来自第一应用的对计数器资源的第一请求对应于较高级别的所需计数器精度。在一个实施例中,所需计数器精度的每个指示包括一个或多个计数器参数,诸如计数器类型(统计或精确),以及用于统计计数器的尾数比特的数目。
在一些实施例中,图6中所示的块并不以所描述的顺序发生。例如,在一个实施例和/或场景中,第一计数器和第二计数器并不存在,直到适当的计数器逻辑被配置以支持这些计数器。在这样的实施例中,块362发生在块352、354、356和360之前。
图7是根据一个实施例的配置网络设备中的计数器资源的另一个示例方法400的流程图。在一个实施例中,方法400全部或部分地由图4的控制器324来实施。
在块410,接收到对计数器资源的请求。例如,在一个实施例中,该请求是从类似于图4的客户端302-1的客户端接收的。在一个实施例中,计数器参数的请求指定了每个所请求的计数器的计数器类型(统计或精确),以及对每个所请求的计数器的比特分配。在一个实施例中,对特定的所请求的计数器的比特分配指定了表示整数值的比特的数目(用于精确计数器),或者表示尾数值的尾数比特的数目和表示指数值的指数比特的数目(用于统计计数器)。在一些实施例中,计数器参数组还包括其他计数器参数,诸如每个所请求的计数器是否是“权重使能的”(即,计数器是否采用了类似于参考图1所描述的“权重”指示符)。在一个实施例中,如果计数器是字节计数器而不是数据单元计数器,则该计数器是权重使能的。
在块420,响应于在块410接收到的请求,将计数资源与客户端相关联。在一个实施例中,类似于图4的计数器资源块306的一个或多个资源块,以基于客户端的需求(例如,所需计数器的数目和所需准确度或精度)所确定的块的数目,与该客户端相关联。在一个实施例中,在块420,至少部分地通过配置映射表来将资源与客户端相关联。
在块430,在块420与客户端相关联的计数资源是根据在块410接收的请求来配置的。在一个实施例中,为此,方法400配置计数资源块内的逻辑以根据由请求所指定的计数器参数来操作。对于精确计数器,计数器逻辑被配置为每当发生计数事件时增加每个计数器值。对于统计计数器,计数器逻辑被配置为对每个计数事件计算增加概率P,并且以概率P增加尾数(以及指数值,如果尾数值滚计的话)。例如,在一个实施例中,对于每个统计计数器,计数器逻辑被配置为以类似于图1的计数器块10中的计数器的方式和/或根据图3的过程(或适合的等效的过程)来操作统计计数器。进一步地,在一个实施例中,在块430,用于每个计数器的适当数目的存储比持(为了满足在块410处接收的客户端请求中的计数器参数)被分配给每个计数器。在一些实施例中,在块430还基于存储器中的可用比特的数目来配置计数器。例如,在一个实施例中,方法400基于针对计数器资源的每个请求来确定“最佳”匹配,但是仍将配置比特分配,即使按照计数器类型、计数器准确度/精确度级别以及比特的可用数目不能完全支持请求的计数器参数。
在块440,根据来自客户端的请求来安装流。根据不同实施例,该客户端请求是在块410接收的请求,或者单独的请求。在一个实施例中,一旦流被安装,则流中每个被检测到的包用来作为对应计数器的计数事件,类似于参考图1所描述的“计数事件”指示符。
在一些实施例中,至少部分上述的计数技术是以硬件或固件来实施的。例如,在一个实施例中,至少图1的计数器10的计数器更新策略模块14和存储器16是以硬件实施的,从而允许计数器10实时且线速地对数据单元或字节进行计数。作为另一个示例,在一个实施例中,图4的计数器系统300(以及在一些实施例中,计数器矩阵连接320)的计数器资源304是以硬件实施的。在一些实施例中,例如,块、操作、技术等是在客户集成电路(IC)、专用集成电路(ASIC)、可编程逻辑设备(PLD)、现场可编程逻辑阵列(FPGA)、可编程逻辑阵列(PLA)等中实施的。在一个实施例中,图1的控制器324是全部或部分以软件实施的。
本公开内容的实施例可以在任何类型的在有线或无线通信系统中使用的网络设备中实施,例如,这些系统包括使用在包括或连接到有线或无线LAN、或者有线或无线WAN、因特网、基于电缆和卫星的通信系统(如因特网、数据、视频和语音通信系统)、无线电话系统(包括蜂窝电话系统,基于语音的因特网协议(VoIP)系统,基于家庭的无线电话系统)等中的网络设备。
虽然本发明是参考特定示例来进行描述的,这仅旨在示例而并不是限制本发明,在不脱离本发明实质和范围的情况下可以对公开的实施例做出改变、增加和/或删除,这对于本领域普通技术人员来说是显然的。

Claims (27)

1.一种网络设备,包括:
存储器,被配置为存储多个比特;
计数器更新逻辑模块,被配置为:
基于数据流中多个数据单元的统计抽样来估计所述多个数据单元内量的计数,以及
将估计的量的计数在所述存储器中存储为m个尾数比特和e个指数比特,其中所述m个尾数比特代表尾数值M并且所述e个指数比特代表指数值E。
2.如权利要求1所述的网络设备,其中所述多个数据单元内的所述量的计数是以下之一:
所述多个数据单元内数据单元的计数;或者
所述多个数据单元内长度为q的块的计数,其中q是大于或等于1的整数。
3.如权利要求1所述的网络设备,其中所述计数器更新逻辑模块被配置为至少部分地通过以下方式估计所述量的计数:
对于所述多个数据单元内的每个数据单元,更新所述m个尾数比特以用增加概率P来增加所述尾数值M;以及
当所述尾数值M滚计时,更新所述e个指数比特以增加所述指数值E。
4.如权利要求3所述的网络设备,其中所述增加概率P随着所述指数值E的增加而指数地减少。
5.如权利要求1所述的网络设备,其中所述多个数据单元内的所述量的计数是所述多个数据单元内长度为q的块的计数,并且其中长度q等于对应于所述多个数据单元的指定最小数据单元长度。
6.如权利要求5所述的网络设备,其中所述多个数据单元是多个包,并且其中所述长度q是字节数。
7.如权利要求5所述的网络设备,其中所述计数器更新逻辑模块被配置为至少部分地通过以下方式估计所述量的计数:
对于所述多个数据单元内的每个数据单元,
更新所述m个尾数比特以用增加概率P来增加所述尾数值M;以及
当相应的数据单元超过阈值长度时,更新所述m个尾数比特以增加所述尾数值M;以及
当所述尾数值M滚计时,更新所述e个指数比特以增加所述指数值E。
8.如权利要求7所述的网络设备,其中所述增加概率P基于所述指数值E、所述指定最小数据单元长度和所述长度q。
9.如权利要求1所述的网络设备,其中所述估计的量的计数等于M*2E
10.如权利要求1所述的网络设备,其中m大于或等于2。
11.如权利要求1所述的网络设备,其中所述计数器更新逻辑模块进一步被配置为接收多个指示符,每个指示符对应于所述多个数据单元中相应的一个,并且其中所述多个数据单元的统计抽样包括所述多个指示符的统计抽样。
12.如权利要求11所述的网络设备,其中所述多个指示符中的每个指示符是通过所述网络设备发送所述多个数据单元中相应的数据单元的指示符。
13.如权利要求11所述的网络设备,其中所述多个指示符中的每个指示符是在所述网络设备中处理所述多个数据单元中相应的数据单元的指示符。
14.一种网络设备中的方法,所述方法包括:
基于数据流中多个数据单元的统计抽样来估计所述多个数据单元内量的计数,
以及
将估计的量的计数在存储器中存储为m个尾数比特和e个指数比特,其中,所述m个尾数比特代表尾数值M并且所述e个指数比特代表指数值E。
15.如权利要求14所述的方法,其中估计所述量的计数包括:
对于所述多个数据单元中的每个数据单元,更新所述m个尾数比特以用增加概率P来增加所述尾数值M;以及
当所述尾数值M滚计时,更新所述e个指数比特以增加所述指数值E。
16.如权利要求15所述的方法,其中所述增加概率P随着所述指数值E的增加而指数地减少。
17.如权利要求14所述的方法,其中所述多个数据单元内的所述量的计数是所述多个数据单元内长度为q的块的计数,并且其中所述长度q等于对应于所述多个数据单元的指定最小数据单元长度。
18.如权利要求17所述的方法,其中估计所述量的计数包括:
对于所述多个数据单元内的每个数据单元,
更新所述m个尾数比特以用增加概率P来增加所述尾数值M;以及
当相应的数据单元超过阈值长度时,更新所述m个尾数比特以增加所述尾数值M;以及
当所述尾数值M滚计时,更新所述e个指数比特以增加所述指数值E。
19.如权利要求18所述的方法,其中所述增加概率P基于所述指数值E、所述指定最小数据单元长度和所述长度q。
20.如权利要求14所述的方法,其中,m大于或等于2。
21.一种网络设备,包括:
存储器,被配置为存储多个比特;
第一计数器,被配置为:
提供第一多个数据单元内第一量的精确计数;
将所述第一量的精确计数在所述存储器中存储为二进制数;
第二计数器,被配置为:
提供第二多个数据单元内第二量的估计的计数;
将所述第二量的估计的计数在所述存储器中存储为m个尾数比特和e个指数比特,其中所述m个尾数比特代表尾数值M并且所述e个指数比特代表指数值E;以及
控制器,被配置为响应于所需计数器精度的一个或多个指示,(i)采用所述第一计数器以用于在第一应用中使用,以及(ii)采用所述第二计数器以用于在与所述第一应用不同的第二应用中使用。
22.如权利要求21所述的网络设备,其中
所述第一多个数据单元内的所述第一量的精确计数是以下之一:
所述第一多个数据单元内数据单元的精确计数;或者
所述多个数据单元内的长度为q1的块的精确计数,其中q1是大于或等于1的整数;以及
所述第二多个数据单元内的所述第二量的估计的计数是以下之一:
所述第二多个数据单元内数据单元的估计的计数;或
所述多个数据单元内长度为q2的块的估计的计数,其中q2是大于或等于1的整数。
23.如权利要求21所述的网络设备,其中所述第二计数器被配置为至少部分地通过以下方式来提供所述第二量的估计的计数:
对于所述第二多个数据单元内的每个数据单元,更新所述m个尾数比特以用增加概率P来增加所述尾数值M,其中,所述增加概率P随着所述指数值E被增加而指数地减少;
当所述尾数值M滚计时,更新所述e个指数比特以增加所述指数值E。
24.如权利要求21所述的网络设备,其中,所述所需计数器精度的一个或多个指示包括:
从所述第一应用接收的对计数器资源的第一请求;以及
从所述第二应用接收的对计数器资源的第二请求;以及
其中,与所述对计数器资源的第二请求相比,所述对计数器资源的第一请求对应于更高级别的所需计数器精度。
25.一种网络设备中的方法,所述方法包括:
使用第一计数器来提供第一多个数据单元内第一量的精确计数;
将所述第一量的精确计数在存储器中存储为二进制数;
使用第二计数器来提供第二多个数据单元内第二量的估计的计数;
将所述第二量的估计的计数在存储器中存储为m个尾数比特和e个指数比特,其中所述m个尾数比特代表尾数值M并且所述e个指数比特代表指数值E;以及
响应于所需计数器精度的一个或多个指示,(i)采用所述第一计数器以用于在第一应用中使用,以及(ii)采用所述第二计数器以用于在与所述第一应用不同的第二应用中使用。
26.如权利要求25所述的方法,其中提供所述第二量的估计的计数包括:
对于所述第二多个数据单元内的每个数据单元,更新所述m个尾数比特以用增加概率P来增加所述尾数值M,其中,所述增加概率P随着所述指数值E的增加而指数地减少;以及
当所述尾数值M滚计时,更新所述e个指数比特以增加所述指数值E。
27.如权利要求25所述的方法,进一步包括接收所述所需计数器精度的一个或多个指示,其中接收所述一个或多个指示包括:
从所述第一应用接收对计数器资源的第一请求;以及
从所述第二应用接收对计数器资源的第二请求;以及
其中,与所述对计数器资源的第二请求相比,所述对计数器资源的第一请求对应于更高级别的所需计数器精度。
CN201310122376.5A 2012-01-18 2013-01-18 用于网络设备的空间高效计数器 Active CN103259694B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201261587928P 2012-01-18 2012-01-18
US61/587,928 2012-01-18
US201261644345P 2012-05-08 2012-05-08
US61/644,345 2012-05-08
US201261652794P 2012-05-29 2012-05-29
US61/652,794 2012-05-29

Publications (2)

Publication Number Publication Date
CN103259694A true CN103259694A (zh) 2013-08-21
CN103259694B CN103259694B (zh) 2018-01-12

Family

ID=48780741

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310122376.5A Active CN103259694B (zh) 2012-01-18 2013-01-18 用于网络设备的空间高效计数器

Country Status (2)

Country Link
US (1) US9507756B2 (zh)
CN (1) CN103259694B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105278912A (zh) * 2014-06-11 2016-01-27 凯为公司 具有溢出fifo的计数器及其方法
US10680957B2 (en) 2014-05-28 2020-06-09 Cavium International Method and apparatus for analytics in a network switch
CN111989897A (zh) * 2018-04-10 2020-11-24 奈特朗茨公司 计算机网络的测量指标
CN112910731A (zh) * 2021-01-28 2021-06-04 三维通信股份有限公司 计数器的确定方法及装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8964931B2 (en) * 2013-03-15 2015-02-24 Hewlett-Packard Development Company, L.P. Frequency scaling counter
WO2014188277A2 (en) * 2013-05-03 2014-11-27 Marvell World Trade Ltd. Time efficient counters and meters architecture
WO2017032401A1 (en) * 2015-08-24 2017-03-02 Telefonaktiebolaget Lm Ericsson (Publ) Counter with reduced memory access
ZA202100191B (en) 2020-01-20 2023-12-20 EXFO Solutions SAS Method and device for estimating a number of distinct subscribers of a telecommunication network impacted by network issues
US11847386B1 (en) 2023-02-23 2023-12-19 Hart Felix LLC Artificial intelligence based on cellular automata

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040228197A1 (en) * 2000-09-14 2004-11-18 Nima Mokhlesi Compressed event counting technique and application to a flash memory system
US20050226201A1 (en) * 1999-05-28 2005-10-13 Afx Technology Group International, Inc. Node-to node messaging transceiver network with dynamec routing and configuring
CN101286889A (zh) * 2008-05-23 2008-10-15 杭州华三通信技术有限公司 一种状态记录的方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1168727B1 (en) 2000-06-19 2006-05-03 Broadcom Corporation Memory management unit architecture for switch fabric
JP4080911B2 (ja) 2003-02-21 2008-04-23 株式会社日立製作所 帯域監視装置
US7349342B2 (en) 2003-03-17 2008-03-25 International Business Machines Corporation Traffic metering in data networks
US7397848B2 (en) 2003-04-09 2008-07-08 Rambus Inc. Partial response receiver
US7304994B2 (en) 2003-04-09 2007-12-04 Nec Laboratories America, Inc. Peer-to-peer system and method with prefix-based distributed hash table
US7554978B1 (en) 2004-03-30 2009-06-30 Extreme Networks, Inc. System for accessing content-addressable memory in packet processor
KR100819271B1 (ko) 2006-06-30 2008-04-03 삼성전자주식회사 패킷 스위치 장비 및 이의 대역폭 제어 방법
JP4659850B2 (ja) 2008-04-10 2011-03-30 富士通株式会社 ネットワーク監視プログラム、ネットワーク監視方法およびネットワーク監視装置
KR101152954B1 (ko) 2008-12-12 2012-06-08 한국전자통신연구원 이더넷 스위칭 장치 및, 이더넷 스위칭 장치에서의 전력 소모 절감 방법
US8462815B2 (en) 2010-09-02 2013-06-11 Juniper Networks, Inc. Accurate measurement of packet size in cut-through mode
EP2490379B1 (en) 2011-02-18 2017-08-30 Alcatel Lucent An improved token bucket controller
WO2014188277A2 (en) 2013-05-03 2014-11-27 Marvell World Trade Ltd. Time efficient counters and meters architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050226201A1 (en) * 1999-05-28 2005-10-13 Afx Technology Group International, Inc. Node-to node messaging transceiver network with dynamec routing and configuring
US20040228197A1 (en) * 2000-09-14 2004-11-18 Nima Mokhlesi Compressed event counting technique and application to a flash memory system
CN101286889A (zh) * 2008-05-23 2008-10-15 杭州华三通信技术有限公司 一种状态记录的方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10680957B2 (en) 2014-05-28 2020-06-09 Cavium International Method and apparatus for analytics in a network switch
US11627087B2 (en) 2014-05-28 2023-04-11 Marvell Asia Pte, LTD Method and apparatus for flexible and efficient analytics in a network switch
CN105278912A (zh) * 2014-06-11 2016-01-27 凯为公司 具有溢出fifo的计数器及其方法
CN105278912B (zh) * 2014-06-11 2021-03-12 马维尔亚洲私人有限公司 具有溢出fifo的计数器及其方法
CN111989897A (zh) * 2018-04-10 2020-11-24 奈特朗茨公司 计算机网络的测量指标
US11595273B2 (en) 2018-04-10 2023-02-28 Juniper Networks, Inc. Measuring metrics of a computer network
CN111989897B (zh) * 2018-04-10 2023-09-01 瞻博网络公司 计算机网络的测量指标
CN112910731A (zh) * 2021-01-28 2021-06-04 三维通信股份有限公司 计数器的确定方法及装置

Also Published As

Publication number Publication date
US9507756B2 (en) 2016-11-29
CN103259694B (zh) 2018-01-12
US20130185343A1 (en) 2013-07-18

Similar Documents

Publication Publication Date Title
CN103259694A (zh) 用于网络设备的空间高效计数器
JP7039685B2 (ja) トラフィック測定方法、デバイス、およびシステム
CN109032801B (zh) 一种请求调度方法、系统及电子设备和存储介质
CN110830322B (zh) 一种基于概率测量数据结构Sketch的网络流量测量方法和系统
CN112671611A (zh) 基于sketch的大流检测方法和装置
US20220038374A1 (en) Microburst detection and management
CN101534222A (zh) 端到端网络时延抖动测量方法、装置及系统
CN105308906A (zh) 时间上高效的计数器和计量器架构
US20130315259A1 (en) Method and Apparatus for Internal/External Memory Packet and Byte Counting
CN110149282B (zh) 流量调度方法和装置
CN112688837B (zh) 基于时间滑动窗口的网络测量方法与装置
US11050649B2 (en) Delay measurement method of network node device, apparatus, and network node device
CN104869079A (zh) 基于动态加权循环法的队列调度方法及装置
CN108512727A (zh) 一种中央处理器利用率的确定方法及装置
US6647413B1 (en) Method and apparatus for measuring performance in packet-switched networks
CN115174432A (zh) Rdma网络状态监测方法、装置、设备及可读存储介质
CN112771816B (zh) 一种预测网络速率的方法及预测装置
CN104219102B (zh) 一种网络数据压缩统计的方法、装置和系统
CN109831251B (zh) 基于动态资源分配算法的误码率获取方法及设备
CN109756384B (zh) 数据源状态判定方法及装置、计算机可读存储介质
US20040249933A1 (en) Network interface parameters
JP5482028B2 (ja) 情報処理装置、伝送装置及び情報処理方法
JP4228296B2 (ja) 可変長パケット蓄積装置及び方法
CN102356608B (zh) 一种实时业务带宽分配方法及基站
KR20150074391A (ko) 버퍼의 용량 설정방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Israel Yuekeni Mourinho

Applicant after: Marvell, Israel (M

Applicant after: I

Applicant after: S

Applicant after: L) Ltd

Address before: Israel Yuekeni Mourinho

Applicant before: Marvell Israel (M.I.S.L.) Ltd.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant