本发明专利技术涉及分级统计多路复用计数器及其方法。本发明专利技术的实施例涉及一种架构,该架构使用分级统计多路复用计数器来将计数器寿命延长多个数量级。每个级别都包括统计多路复用计数器。该统计多路复用计数器包括P个基础计数器和S个子计数器,其中S个子计数器与P个基础计数器动态地级联。当一个级别中的行溢出发生时,上面的下一级别中的计数器被用来延长计数器寿命。分级统计多路复用计数器可以与溢出FIFO一起使用以进一步延长计数器寿命。
【技术实现步骤摘要】
本专利技术涉及高速网络交换机中的计数器。更具体地,本专利技术涉及。
技术介绍
统计计数器被用于在高速网络设备中执行数据分析。为了有用,需要一种架构来存储大量的计数器。尽管可以使用片外DRAM(动态随机存取存储器),但其不能容纳高速计数器更新。片上SRAM(静态随机存取存储器)允许更高的速度,但非常昂贵。由于存储器是S0C(片上系统)中最昂贵的资源之一,高效地并灵活地利用存储器是至关重要的。当处理存储多个计数器时,存在更少的较大计数器或更多的较小计数器之间的权衡。理想地,每个计数器都足够长以避免整数溢出、计数器的环绕。然而,在标准的实践中,这会导致超量配置,为所有计数器分配最差情况数量的比特。
技术实现思路
本专利技术的实施例涉及一种架构,该架构使用分级统计多路复用计数器来将计数器寿命延长多个数量级。每个级别都包括统计多路复用计数器。该统计多路复用计数器包括P个基础计数器和S个子计数器,其中S个子计数器与P个基础计数器动态地级联。当一个级别中的行溢出发生时,上面的下一级别中的计数器被用来延长计数器寿命。分级统计多路复用计数器可以与溢出FIFO —起使用以进一步延长计数器寿命。在一个方面中,提供了一种计数器架构。该计数器架构被实施在网络设备中,诸如网络交换机。该计数器架构包括统计多路复用计数器的多个级别。每个级别的统计多路复用计数器包括N个计数器。在一些实施例中,N个计数器是环绕式的。N个计数器被布置在N/P行中。N/P行中的每一行包括P个基础计数器和S个子计数器,其中P个基础计数器中的任何基础计数器能够与S个子计数器中的一个或多个子计数器动态地级联以灵活地扩展计数容量。在一些实施例中,P个基础计数器中的每个基础计数器都初始地使用s个子计数器中的一个子计数器。为了最优实施,P通常被选择为2的幂。在一些实施例中,多个级别包括至少两个级别。在一些实施例中,多个级别包括至少三个级别。在一些实施例中,N/P行中的每一行还包括开销,其中开销是S个子计数器到P个基础计数器的S位映射。在计数器扩展时以及在计数器收缩时更新映射。在一些实施例中,多个级别中的第一级别中的相同行中的计数器被置乱到多个级别中的第二级别中的不同行中。置乱的随机化是计数器的计数器标识符的比特倒序、哈希函数、或者按另一顺序的比特排列。在一些实施例中,计数器架构实施镜像的移位逻辑,其中,该镜像的移位逻辑包括下移逻辑和上移逻辑,该上移逻辑是该下移逻辑的镜像。具有排名(rank)〈P/2的子计数器与下移逻辑相关联,其中下移逻辑将子计数器向上移位。具有排名多P/2的子计数器与上移逻辑相关联,其中上移逻辑将子计数器向下移位。子计数器的排名与前一子计数器到基础计数器的指派的位置相关。在一些实施例中,该计数器架构还包括溢出FIFO,该溢出FIFO由多个级别中的最高级别中的N个计数器使用和共享,其中该溢出FIFO存储正在溢出的所有计数器的相关联的计数器标识符连同溢出宽度。在一些实施例中,该计数器架构还包括向CPU发送以读取溢出FIFO中的数据以及读取和清除来自多个级别中的每个级别的计数器中的数据的至少一个中断。在另一方面中,提供了一种计数器架构。该计数器架构被实施在网络设备中。该计数器架构包括统计多路复用计数器的级别的层级,其中级别的层级中的每个级别都包括比特的多个行,其中每一行包括第一组连续比特、第二组连续比特和第三组连续比特。在一些实施例中,第一组连续比特由S个子计数器均匀地共享,第二组连续比特由P个基础计数器均匀地共享,并且第三组连续比特表示S个子计数器到P个基础计数器的映射。计数器通过将S个子计数器中的一个或多个子计数器级联至P个基础计数器中的一个基础计数器而被扩展。计数器通过从P个基础计数器中的一个基础计数器中移除S个子计数器中的一个或多个子计数器而被收缩。在一些实施例中,当发生在层级中的一个级别中的行溢出发生时,上面的下一级别中的计数器被用来延长计数器寿命。在一些实施例中,层级中的一个级别中的计数器被置乱到层级中的上面的下一级别的不同行中。该计数器架构还包括溢出FIFO,该溢出FIFO由级别的层级中的最高级别中的所有计数器使用和共享,其中该溢出FIFO存储在级别的层级中的最高级别中正在溢出的计数器中的任何计数器的相关联的计数器标识符。在又一方面中,提供了一种更新计数器架构中的计数器的方法。该计数器架构包括统计多路复用计数器的级别的层级。该方法包括确定级别的层级中的当前级别中的计数器的对应行是否溢出。在一些实施例中,当前级别是级别的层级中的最低级别。该方法包括,基于确定当前级别中的对应行没有溢出,通过使用第一例程来处理当前级别以下的每个级别,并且通过使用第二例程来处理当前级别。在一些实施例中,第一例程包括递增对应级别中的计数器以及收缩对应级别中的计数器。在一些实施例中,第二例程包括递增对应级别中的计数器,其中如果必要则扩展对应级别中的计数器的大小。该方法包括,基于确定当前级别中的对应行确实溢出,确定上面的下一级别中的计数器的对应行是否溢出。该方法包括,基于确定上面的下一级别中的计数器的对应行没有溢出,通过使用第一例程来处理上面的下一级别以下的每个级别并且通过使用第二例程来处理上面的下一级别。再次,第一例程包括递增对应级别中的计数器以及收缩对应级别中的计数器;以及,第二例程包括递增对应级别中的计数器,其中如果必要则扩展对应级别中的计数器的大小。该方法包括,基于确定上面的下一级别中的计数器的对应行溢出,当上面的下一级别不是级别的层级中的最高级别时,返回到确定上面的下一级别中的计数器的对应行是否溢出的步骤;否则,当上面的下一级别是级别的层级中的最高级别时,通过使用第一例程来处理上面的下一级别以及上面的下一级别以下的每个级别,并且更新溢出队列。再次,第一例程包括递增对应级别中的计数器以及收缩对应级别中的计数器。在一些实施例中,溢出队列通过将计数器的计数器标识符和溢出宽度推入溢出队列而被更新。在一些实施例中,该方法还包括,处理溢出队列中的数据、通过溢出队列中的数据来标识环绕计数器、读取每个级别中经标识的计数器的存储的值、以及清除每个级别中的经标识的计数器。在又一方面中,提供了一种更新计数器架构中的计数器的方法。该计数器架构包括统计多路复用计数器的级别的层级。该方法包括,在发生第一事件时,通过使用第一例程来连续地处理层级中的最高级别以下的每个级别并且通过使用第二例程来处理层级中的最高级别。该方法还包括,在发生第二事件时,由第一例程连续地处理包括层级中的最高级别和层级中的最高级别以下的每个级别,并且更新溢出队列。在一些实施例中,第一事件是在层级中的最高级别以下的每个级别中存在行溢出但是在层级中的最高级别中不存在行溢出。在一些实施例中,第二事件是在包括层级中的最尚级别和层级中的最尚级别以下的每个级别中存在彳丁溢出。在一些实施例中,第一例程包括递增对应级别中的计数器以及收缩对应级别中的计数器。在一些实施例中,第二例程包括递增对应级别中的计数器。在一些实施例中,递增计数器包括扩展对应级别中的计数器的大小。在一些实施例中,更新溢出队列包括将计数器的计数器标识符和溢出宽度推入溢出队列。在又一方面中,提供了一种网络设备。该网络设备包括公共存储器池,其中来自公共存储器池的本文档来自技高网...
【技术保护点】
一种计数器架构,所述计数器架构被实施在网络设备中,所述计数器架构包括统计多路复用计数器的多个级别,其中统计多路复用计数器的所述级别中的每个级别包括N个计数器,所述N个计数器被布置在N/P行中,其中所述N/P行中的每一行包括P个基础计数器和S个子计数器,其中所述P个基础计数器中的任何基础计数器能够与所述S个子计数器中的一个或多个子计数器动态地级联以灵活地扩展计数容量。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:王炜煌,G·施密特,S·阿特鲁里,W·马,S·S·鲁,
申请(专利权)人:凯为公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。