当前位置: 首页 > 专利查询>凯为公司专利>正文

用以优化分组缓冲器空间的分组处理系统、方法和设备技术方案

技术编号:13899990 阅读:89 留言:0更新日期:2016-10-25 14:12
一种分组处理设备的缓冲器逻辑单元,其被配置为如果页面上所存储的当前分组没有完全填满单个页面,则将单个的页面分配给两个或更多分组,以及存储并维持用于页面上所存储的分组数据中的每个分组数据的特定于页面分段的页面状态数据。

【技术实现步骤摘要】

本专利技术涉及一种分组处理系统。更特别地,本专利技术涉及优化分组处理系统中的分组缓冲器空间。
技术介绍
分组处理设备(如交换机微芯片)经常需要在该设备处理分组时将它们缓冲到具有一个或多个库(bank)的分组存储器(PM)中。用以将分组存储在设备的分组存储器中的当前解决方案是向每个分组指配分组存储器的多个区块(chunk,称为页面),而不是单个大区块。利用这种方案,分组没有连续地被存储在分组存储器的库中,而是被分散在一个或多个页面中,该一个或多个页面一起形成页面的链表,该链表贯穿分组存储器的多个库进行映射。进一步地,多个这些库(和映射到它们的页面)能够逻辑地被归组到(库和相关联的页面的)池中。因此,特定分组在分组缓冲器中使用的所有页面的链表需要被维持在交换机中(在缓冲器管理器或BM中);这一链表在分组从分组缓冲器中被读取出以用于传输时被遍历。每个页面关联了状态,该状态包含与页面有关的一些信息。分组处理器设备中的所有页面的状态被维持在交换机中。分组关联了描述符或标记(token),该描述符或标记除了其他字段之外还包含指向第一页面的指针。利用这一起始指针,通过对利用不同页面状态的下一页面指针所构建的链表进行遍历,由分组所使用的所有页面能够按照它们被用来存储传入分组的相同顺序被取回。作为结果,特定分组使用的所有页面(并且因此,库)的链表被维持在交换机中,并且然后被遍历以从分组存储器定位和读取出分组来用于传输。在这些基于页面的分组处理设备中,被浪费的分组存储器与缓冲器管理器上所施加的带宽需求之间存在折中。页面中的每个页面的大小越大,用以读取和写入分组数据所需要的访问就越少,并且因此缓冲器管理器的带宽上的压力越小。然而,页面的大小越大意味着分组存储器的更大的部分可能被浪费或者未使用,因为没有填满整个页面的分组将导致该页面的剩余部分未使用。另一方面,页面大小越小,平均被浪费或未使用的分组存储器就越少,但是归因于用以读取每个分组和将每个分组写入较小页面所要求的访问的数目上的增加,应用到缓冲器管理器的压力更大。另外,在一些分组处理设备中,如果两个或更多分组的一部分具有分组数据的匹配(matching)部分(例如,头部部分或者主体部分),则这些分组能够共享存储有分组数据的匹配部分的一个页面或多个页面,从而匹配数据没有在不同的位置(例如,不同的页面)被存储两次。为了保持跟踪需要使用页面的分组的数目,缓冲器管理器维持用于页面中的每个页面的参考计数值,其指示共享该页面并且还没有从该页面读取出分组数据的页面的数目。例如,在设备确定更多分组需要使用页面时(例如,更多分组具有与该页面上所存储的数据的部分相匹配的部分),该设备能够使参考计数值递增以说明(account for)需要使用该页面的所添加分组。类似地,在数据从这些页面被读取以用于分组中的一个或多个分组时(从而该页面不再需要被使用用于这些分组),该设备能够使参考计数值递减以说明需要使用该页面的分组的较少数量。因此,当参考计数被减少到零时,该设备能够回收该页面用于与其他数据一起重新使用,因为不再有分组需要使用该页面上存储的数据。
技术实现思路
一种分组处理设备的缓冲器逻辑单元被配置为,如果页面上所存储的当前分组没有完全填满页面,则将单个的页面分配给两个或更多分组。作为结果,该缓冲器逻辑单元能够通过减少页面中的每个页面上的未使用空间的量,来减少被浪费的分组存储器空间的量。第一方面针对一种在分组处理设备上的分组处理系统。该系统包括:包括多个物理存储器单元的非瞬态计算机可读分组存储器,该多个物理存储器单元逻辑地被划分为多个页面,从而页面中的每个页面定义物理存储器单元的分离部分;以及至少部分地被存储在非瞬态计算机可读缓冲器存储器上的缓冲器逻辑,其中该缓冲器逻辑被配置为:分配页面中的一个页面来存储多个分组中的第一分组的分组数据;以及如果页面中的该页面被确定为未充分被第一分组的分组数据占用,则分配页面中的该页面的未占用的剩余部分的至少一分部分来存储该多个分组中的一个或多个另外分组的分组数据,以使得页面中的该页面被分配给该多个分组中的两个或更多分组。在一些实施例中,页面中的每个页面包括多个分段,并且如果未占用的剩余部分包括页面中的该页面的分段中的至少一个分段,则缓冲器存储器逻辑确定页面中的该页面未充分被占用。在一些实施例中,缓冲器存储器包括用于页面中的每个页面的参考计数值,该参考计数值指示该多个分组中的多少分组使用该页面,并且另外其中缓冲器逻辑被配置为,一旦页面中的该页面已经被分配来存储第一分组的分组数据,如果页面中的该页面在存储第一分组的分组数据之后被确定为未充分被占用,就将页面中的该页面的参考计数值设置为大于一的整数。在一些实施例中,大于一的该整数是二。在一些实施例中,针对该多个分组中的其分组数据被分配给页面中的该页面的每个分组,缓冲器逻辑被配置为,如果页面中的该页面在存储该分组的分组数据之后被确定为未充分被占用,则使页面中的该页面的参考计数值递增一。在一些实施例中,针对该多个分组中的其分组数据被分配给页面中的该页面的每个分组,缓冲器逻辑被配置为,如果页面中的该页面在存储该分组的分组数据之后被确定为不再是未充分被占用,则避免使页面中的该页面的参考计数值递增一。在一些实施例中,缓冲器存储器存储用于页面中的每个页面的状态数据,其中页面中的每个页面的状态数据包括用于该页面的分段中的每个分段的单独状态值。在一些实施例中,用于分段中的每个分段的状态值包括如下组中的一项或多项,该组包括:所使用数据计数值,指示该分段的多少当前正存储有数据;分组起始值,指示分组中的一个分组的起始是否被存储在该分段中;以及分组末尾值,指示分组中的一个分组的末尾是否被存储在该分段中。在一些实施例中,缓冲器逻辑被配置为生成用于页面中的一个或多个页面上所存储的分组中的每个分组的描述符,其中描述符包括页面指示符和分段指示符,页面指示符指示该分组的起始被存储在页面中的哪个页面上,分段指示符指示该分组的起始被存储在所指示的页面的分段中的哪个分段上。在一些实施例中,针对分组中的每个分组,在将分组的末尾(例如,头部的末尾或者整个分组的末尾)存储在这些页面中的页面的分段中的一个分段上之后,缓冲器逻辑保留页面的邻近后续分段中的一个或多个分段作为保留分段,保留分段仅能够在该分组的数据的大小增加时存储来自该分组的数据。在一些实施例中,在确定页面中的该页面是否未充分被占用时,缓冲器逻辑将保留分段考虑为被占用,以使得保留分段不是未占用的剩余部分的一部分。第二方面针对一种被存储在非瞬态计算机可读缓冲器存储器上的缓冲器逻辑单元,其中该缓冲器逻辑被配置为:分配多个页面中的一个页面来存储多个分组中的第一分组的分组数据;以及如果页面中的该页面被确定为未充分被第一分组的分组数据占用,则分配页面中的该页面的未占用的剩余部分的至少一分部分来存储该多个分组中的一个或多个另外分组的分组数据,以使得页面中的该页面被分配给该多个分组中的两个或更多分组,其中该多个页面中的每个页面包括多个分段并且定义多个物理存储器单元的分离部分。在一些实施例中,页面中的每个页面包括多个分段,并且如果未占用的剩余部分包括页面中的该页面的分段中的至少一个分段,则缓冲器存储器逻辑确定页面中的该本文档来自技高网
...

【技术保护点】
一种在分组处理设备上的分组处理系统,所述系统包括:包括多个物理存储器单元的非瞬态计算机可读分组存储器,所述多个物理存储器单元逻辑地被划分为多个页面,从而所述页面中的每个页面定义所述物理存储器单元的分离部分;以及至少部分地被存储在非瞬态计算机可读缓冲器存储器上的缓冲器逻辑,其中所述缓冲器逻辑被配置为:分配所述页面中的一个页面来存储多个分组中的第一分组的分组数据;以及如果所述页面中的所述一个页面被确定为未充分被所述第一分组的分组数据占用,则分配所述页面中的所述一个页面的未占用的剩余部分的至少一分部分来存储所述多个分组中的一个或多个另外分组的分组数据,以使得所述页面中的所述一个页面被分配给所述多个分组中的两个或更多分组。

【技术特征摘要】
2015.03.30 US 14/673,8131.一种在分组处理设备上的分组处理系统,所述系统包括:包括多个物理存储器单元的非瞬态计算机可读分组存储器,所述多个物理存储器单元逻辑地被划分为多个页面,从而所述页面中的每个页面定义所述物理存储器单元的分离部分;以及至少部分地被存储在非瞬态计算机可读缓冲器存储器上的缓冲器逻辑,其中所述缓冲器逻辑被配置为:分配所述页面中的一个页面来存储多个分组中的第一分组的分组数据;以及如果所述页面中的所述一个页面被确定为未充分被所述第一分组的分组数据占用,则分配所述页面中的所述一个页面的未占用的剩余部分的至少一分部分来存储所述多个分组中的一个或多个另外分组的分组数据,以使得所述页面中的所述一个页面被分配给所述多个分组中的两个或更多分组。2.根据权利要求1所述的系统,其中所述页面中的每个页面包括多个分段,并且如果所述未占用的剩余部分包括所述页面中的所述一个页面的分段中的至少一个分段,则缓冲器存储器逻辑确定所述页面中的所述一个页面未充分被占用。3.根据权利要求2所述的系统,其中所述缓冲器存储器包括用于所述页面中的每个页面的参考计数值,所述参考计数值指示所述多个分组中的多少分组使用所述页面,并且另外其中所述缓冲器逻辑被配置为,一旦所述页面中的所述一个页面已经被分配来存储所述第一分组的分组数据,如果所述页面中的所述一个页面在存储所述第一分组的分组数据之后被确定为未充分被占用,就将所述页面中的所述一个页面的所述参考计数值设置为大于一的整数。4.根据权利要求3所述的系统,其中大于一的所述整数是二。5.根据权利要求4所述的系统,其中针对所述多个分组中的其分组数据被分配给所述页面中的所述一个页面的每个分组,所述缓冲器逻辑被配置为,如果所述页面中的所述一个页面在存储所述分组的分组数据之后被确定为未充分被占用,则使所述页面中的所述一个页面的所述参考计数值递增一。6.根据权利要求5所述的系统,其中针对所述多个分组中的其分组数据被分配给所述页面中的所述一个页面的每个分组,所述缓冲器逻辑被配置为,如果所述页面中的所述一个页面在存储所述分组的分组数据之后被确定为不再是未充分被占用,则避免使所述页面中的所述一个页面的所述参考计数值递增一。7.根据权利要求6所述的系统,其中所述缓冲器存储器存储用于所述页面中的每个页面的状态数据,其中所述页面中的每个页面的所述状态数据包括用于所述页面的分段中的每个分段的单独状态值。8.根据权利要求7所述的系统,其中用于分段中的每个分段的所述状态值包括如下组中的一项或多项,所述组包括:所使用数据计数值,指示所述分段的多少当前正存储有数据;分组起始值,指示所述分组中的一个分组的起始是否被存储在所述分段中;以及分组末尾值,指示所述分组中的一个分组的末尾是否被存储在所述分段中。9.根据权利要求8所述的系统,其中所述缓冲器逻辑被配置为生成用于所述页面中的一个或多个页面上所存储的所述分组中的每个分组的描述符,其中所述描述符包括页面指示符和分段指示符,所述页面指示符指示所述分组的起始被存储在所述页面中的哪个页面上,所述分段指示符指示所述分组的起始被存储在所指示的页面的分段中的哪个分段上。10.根据权利要求9所述的系统,其中针对所述分组中的每个分组,在将所述分组的末尾存储在所述页面中的页面的分段中的一个分段上之后,所述缓冲器逻辑保留所述页面的邻近后续分段中的一个或多个分段作为保留分段,所述保留分段仅能够在所述分组的数据的大小增加时存储来自所述分组的数据。11.根据权利要求10所述的系统,其中在确定所述页面中的所述一个页面是否未充分被占用时,所述缓冲器逻辑将所述保留分段考虑为被占用,以使得所述保留分段不是所述未占用的剩余部分的一部分。12.一种被存储在非瞬态计算机可读缓冲器存储器上的缓冲器逻辑单元,其中所述缓冲器逻辑被配置为:分配多个页面中的一个页面来存储多个分组中的第一分组的分组数据;以及如果所述页面中的所述一个页面被确定为未充分被所述第一分组的分组数据占用,则分配所述页面中的所述一个页面的未占用的剩余部分的至少一分部分来存储所述多个分组中的一个或多个另外分组的分组数据,以使得所述页面中的所述一个页面被分配给所述多个分组中的两个或更多分组,其中所述多个页面中的每个页面包括多个分段并且定义多个物理存储器单元的分离部分。13.根据权利要求12所述的缓冲器逻辑单元,其中所述页面中的每个页面包括多个分段,并且如果所述未占用的剩余部分包括所述页面中的所述一个页面的分段中的至少一个分段,则所述缓冲器存储器逻辑确定所述页面中的所述一个页面未充分被占用。14.根据权利要求13所述的缓冲器逻辑单元,其中所述缓冲器存储器包括用于所述页面中的每个页面的参考计数值,所述参考计数值指示所述多个分组中的多少分组使用所述页面,并且另外其中所述缓冲器逻辑被配置为,一旦所述页面中的所述一个页面已经被分配来存储所述第一分组的分组数据,如果所述页面中的所述一个页面在存储所述第一分组的分组数据之后被确定为未充分被占用,就将所述页面中的所述一个页面的所述参考计数值设置为大于一的整数。15.根据权利要求14所述的缓冲器逻辑单元,其中大于一的所述整数是二。16.根据权利要求15所述的缓冲器逻辑单元,其中针对所述多个分组中的其分组数据被分配给所述页面中的所述一个页面的每个分组,所述缓冲器逻辑被配置为,如果所述页面中的所述一个页面在存储所述分组的分组数据之后被确定为未充分被占用,则使所述页面中的所述一个页面的所述参考计数值递增一。17.根据权利要求16所述的缓冲器逻辑单元,其中针对所述多个分组中的其分组数据被分配给所述页面中的所述一个页面的每个分组,所述缓冲器逻辑被配置为,...

【专利技术属性】
技术研发人员:E·穆索尔
申请(专利权)人:凯为公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1