直接表的存储方法和装置制造方法

文档序号:6504189阅读:214来源:国知局
直接表的存储方法和装置制造方法
【专利摘要】本发明公开了一种直接表的存储方法和装置,其中,该方法包括:确定芯片的内部表项存储空间已用完;将直接表的表项存储到该芯片的内部统计存储空间中,其中,该直接表为能够通过存储介质直接访问的表。通过本发明,解决了相关技术中存储表项的方式导致转发性能降低的问题,提高了转发性能。
【专利说明】直接表的存储方法和装置

【技术领域】
[0001] 本发明涉及通信领域,具体而言,涉及一种直接表的存储方法和装置。

【背景技术】
[0002] 随着运营商的需求的不断增加,设备商不得不在已有的设备上添加新的功能。但 是如何在保证不影响芯片转发性能的前提下,再添加新的功能,在相关技术中尚未提出解 决办法。
[0003] 对于一款给定的芯片,存储大小和处理速度都是固定的,也就是查表带宽是固定 的。开发者经常会遇到这么一个情况:在查表速度极高的内部表项存储空间已经用完,同 时查表性能也接近瓶颈的情况下,一个业务需耍再添加一个小的功能,该小的功能涉及到 添加一张小表,此时,开发者会将该小表放在外部表项存储空间。但是外部表项存储空间的 查表性能相比于内部表项存储空间低很多。这势必会导致业务在添加新的功能之后,转发 性能降低,不能满足业务的使用要求。
[0004] 针对相关技术中存储表项的方式导致转发性能降低的问题,目前尚未提出有效的 解决方案。


【发明内容】

[0005] 本发明的主要目的在于提供一种直接表的存储方法和装置,以至少解决上述相关 技术中存储表项的方式导致转发性能降低的问题。
[0006] 根据本发明的一个方面,提供了一种直接表的存储方法,包括:确定芯片的内部 表项存储空间已用完;将直接表的表项存储到所述芯片的内部统计存储空间中,其中,所 述直接表为能够通过存储介质直接访问的表。
[0007] 优选地,将所述直接表的表项存储到所述芯片的所述内部统计存储空间中包括: 判断要存储的表是否为所述直接表;若是,则将所述直接表的表项存储到所述芯片的所述 内部统计存储空间中。
[0008] 优选地,将所述直接表的表项存储到所述芯片的所述内部统计存储空间中包括使 用所述内部统计存储空间中的一部分存储所述直接表。
[0009] 优选地,使用所述内部统计存储空间中的一部分存储所述直接表包括:判断所述 直接表的表项条目的总数是否超出预设的所述内部统计存储空间中用于存储表类型为直 接表的表项条目的数量;在判断结果为是的情况下,将所述直接表的表项存储到所述芯片 的所述内部统计存储空间中。
[0010] 优选地,将所述直接表的表项存储到所述芯片的所述内部统计存储空间中还包 括:将所述直接表的每个表项条目依次存储到所述内部统计存储空间中连续的位置。
[0011] 优选地,所述内部统计存储空间中存储多个所述直接表,将所述直接表的表项存 储到所述芯片的所述内部统计存储空间中还包括:将多个所述直接表存储到所述内部统 计存储空间中连续的位置。
[0012] 根据本发明的另一方面,还提供了一种直接表的存储装置,包括:确定模块,用于 确定芯片的内部表项存储空间已用完;存储模块,用于将直接表的表项存储到所述芯片的 内部统计存储空间中,其中,所述直接表为能够通过存储介质直接访问的表。
[0013] 优选地,所述装置还包括:判断模块,用于判断要存储的表是否为所述直接表;所 述存储模块用于在所述判断模块的判断结果为是的情况下,将所述直接表的表项存储到所 述芯片的所述内部统计存储空间中。
[0014] 优选地,所述装置还包括查询模块,用于通过所述存储模块从所述芯片的内部统 计存储空间中读取所述直接表。
[0015] 优选地,所述存储模块还用于在所述内部统计存储空间中存储多个所述直接表的 情况下,将多个所述直接表存储到所述内部统计存储空间中连续的位置。
[0016] 通过本发明,采用确定芯片的内部表项存储空间已用完;将能够通过存储介质直 接访问的直接表的表项存储到芯片的内部统计存储空间中的方式,解决了相关技术中存储 表项的方式导致转发性能降低的问题,提高了转发性能。

【专利附图】

【附图说明】
[0017] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0018] 图1是根据本发明实施例的直接表的存储方法的流程图;
[0019] 图2是根据本发明实施例的直接表的存储装置的结构框图;
[0020] 图3是根据本发明实施例的直接表的存储装置的优选结构框图一;
[0021] 图4是根据本发明实施例的直接表的存储装置的优选结构框图二;
[0022] 图5是根据本发明优选实施例的表存储方法的流程示意图。

【具体实施方式】
[0023] 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的 情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0024] 需要说明的是,在附图的流程示意图示出的步骤可以在诸如一组计算机可执行指 令的计算机系统中执行,并且,虽然在流程示意图中示出了逻辑顺序,但是在某些情况下, 可以以不同于此处的顺序执行所示出或描述的步骤。
[0025] 本实施例提供了一种直接表的存储方法,图1是根据本发明实施例的直接表的存 储方法的流程图,如图1所示,该方法包括如下步骤:
[0026] 步骤S102,确定芯片的内部表项存储空间已用完;
[0027] 步骤S104,将直接表的表项存储到芯片的内部统计存储空间中,其中,直接表为能 够通过存储介质直接访问的表。
[0028] 通过上述步骤,在内部表项存储空间用完的情况下,将直接表存储在用于统计的 内部统计存储空间中,由于内部统计存储空间的查表速度比外部表项存储空间快,解决了 在内部表项存储空间使用完后,将直接表存储在外部表项存储空间中导致转发性能降低的 问题,提升了转发性能。
[0029] 其中,直接表包括可以通过其表项中的键值直接访问其存储位置的表。
[0030] 优选地,将直接表的表项存储到芯片的内部统计存储空间中包括:判断要存储的 表是否为直接表;若是,则将直接表的表项存储到芯片的内部统计存储空间中。通过这样 的方式,将直接影响查表速度、转发性能的直接表存储在内部统计存储空间中,而将对查表 速度、转发性能影响较小的表,例如哈希表存储在外部表项存储空间中,从而节约了内部统 计存储空间。
[0031] 优选地,内部统计存储空间用于芯片的统计功能,因此可以只使用内部统计存储 空间中,的一部分存储直接表,另一部分预留出来实现统计功能。
[0032] 内部统计存储空间的大小也是固定的,一部分预留出来用于实现统计功能后,另 一部分的大小也是有限的,对于超出其处理能力的直接表,内部统计存储空间的处理能力 有限。在一个优选的实施方式中,先判断直接表的表项条目的总数是否超出预设的内部统 计存储空间中用于存储表类型为直接表的表项条目的数量;在判断结果为是的情况下,将 直接表的表项存储到芯片的内部统计存储空间中。通过这样的方式,能够确保每一个被存 储在内部统计存储空间中的直接表都能够被很好地处理。
[0033] 优选地,将直接表的表项存储到芯片的内部统计存储空间中还包括:将直接表的 每个表项条目依次存储到内部统计存储空间中连续的位置。例如,将直接表1的第1-300 表项条目存储在内部统计存储空间的第501-800个条目中,且直接表1的每个表项条目存 储在内部统计存储空间的相应条目中的位置都是在第0-15字节的位置,其中,上述的直接 表1中的表项(即直接表的结果)大小为16字节。通过这样的方式存储表项,提高了查表 的效率。
[0034] 优选地,在需要向内部统计存储空间中存储多个直接表的情况下,可以将多个直 接表存储到内部统计存储空间中连续的位置。例如,在上述例子中,如果还要存储一张表项 条目数为200的直接表2,则将直接表2的第1-200表项条目存储在内部统计存储空间的 第501-700个条目中,且直接表1的每个表项条目的存储位置都是在内部统计存储空间的 相应条目的第16-23字节的位置,其中,直接表2的表项大小为8字节。通过这样的方式, 节约了内部统计存储空间的存储空间,并提高了查表的效率。
[0035] 本实施例还提供了一种直接表的存储装置,该装置用于实现上述直接表的存储方 法。在该装置中涉及的相应功能的描述在上述方法中已经进行过详细的描述和说明,在此 不再赘述。
[0036] 图2是根据本发明实施例的直接表的存储装置的结构框图,如图2所示,该装置包 括:确定模块22和存储模块24,其中,确定模块22,用于确定芯片的内部表项存储空间已 用完;存储模块24耦合至上述确定模块22,用于将直接表的表项存储到芯片的内部统计存 储空间中,其中,直接表为能够通过存储介质直接访问的表。
[0037] 通过上述装置,采用了确定模块22确定芯片的内部表项存储空间已用完;存储模 块24将直接表的表项存储到芯片的内部统计存储空间中的方式,其中,直接表为能够通过 存储介质直接访问的表。由于内部统计存储空间的查表速度比外部表项存储空间快,解决 了在内部表项存储空间使用完后,将直接表存储在外部表项存储空间中导致转发性能降低 的问题,提升了转发性能。
[0038] 本实施例中所涉及到的模块、单元可以通过软件的方式实现,也可以通过硬件的 方式来实现。本实施例中所描述的模块、单元也可以设置在处理器中,例如,可以描述为: 一种处理器包括确定模块22和存储模块24。其中,这些模块的名称在某些情况下并不构成 对该模块本身的限定,例如,确定模块22还可以描述为"用于确定芯片的内部表项存储空 间已用完的模块〃。
[0039] 图3是根据本发明实施例的直接表的存储装置的优选结构框图一,如图3所示,该 装置还可以包括:判断模块32,用于判断要存储的表是否为直接表;存储模块24用于在判 断模块32的判断结果为是的情况下,将直接表的表项存储到芯片的内部统计存储空间中。
[0040] 图4是根据本发明实施例的直接表的存储装置的优选结构框图二,如图4所示,该 装置还可以包括:查询模块42耦合至存储模块24,用于通过存储模块24从芯片的内部统 计存储空间中读取直接表。
[0041] 优选地,存储模块24还用于在内部统计存储空间中存储多个直接表的情况下,将 多个直接表存储到内部统计存储空间中连续的位置。例如,在直接表的每个条目的结果大 小为M字节的情况下,将直接表的结果添加到内部统计存储空间的N个条目中每个条目的 [P,P+M]的字节位置,其中,P为非负整数,且P+M不大于该内部统计存储空间提供给用于存 储直接表的条目的最大大小。
[0042] 下面结合优选实施例和附图对上述实施例的实现过程进行详细说明。
[0043] 本优选实施例利用芯片的内部统计内存(statistic memory,即上述内部统计存 储空间)查表,该功能既不会占用芯片的存放表内存,同时查表只会占用很少的查表带宽, 从而最优的添加了新的功能。
[0044] 图5是根据本发明优选实施例的表存储方法的流程示意图,如图5所示,该流程包 括如下步骤:
[0045] 步骤S502,判断表1是否为直接表,同时总条目数是否小于4000,如果是,执行步 骤S504;如果不是,执行步骤S512;需要说明的是,上述的4000总条目数仅是内部统计内 存提供给用于存储直接表条目数的最大条目数,在实际设计中,该总条目的数目是可以设 置的。
[0046] 步骤S504,将直接表1放在内部statistics memory的某一块,同时占用每个条 目(entry)的byte〇-byte (Nl-I),即0号字节至(Nl-I)号字节,其中,Nl为表1的结果大 小(result size),为整数。执行步骤S506;
[0047] 步骤S506,判断表2是否为直接表,同时总条目数是否小于4000,如果是,执行步 骤S508;如果不是,执行步骤S512;
[0048] 步骤S508,将直接表2放在内部statistics memory,与表1共用entry,占用每个 entry 的 byteNl_byte(Nl+N2_l),其中,N2 为表 2 的 result size。执行步骤 S510;
[0049] 步骤S510:以此类推,继续放其余可放的表。当所有放在内部statistics memory 中的表的result size之和大于64字节时,就认为已经满了,无法再共片该entry。
[0050] S卩,如果N1+N2+N3+. . . +Nn > 64字节(B),就无法再将第η张表放至内部 statistics memory;如果Ν1+Ν2+Ν3+. .. +Nn < 64Β,则没有问题,可以将第η张表放至内部 statistics memory。
[0051] 步骤S512,将该表项放置在外部内存(memory,即上述的外部表项存储空间)中。
[0052] 上述方式适用于所有使用EZchip (-家高速网络处理器芯片公司)芯片的交换设 备。
[0053] 采用上述方法,提高了芯片的查表性能,使交换机设备的性能达到最优。
[0054] 下面结合另一个优选实施例对上述实施例的实现过程进行详细说明。
[0055] 图表I是根据本发明优选实施例的待存储表的信息,如下表所示:
[0056]

【权利要求】
1. 一种直接表的存储方法,其特征在于包括 确定芯片的内部表项存储空间已用完; 将直接表的表项存储到所述芯片的内部统计存储空间中,其中,所述直接表为能够通 过存储介质直接访问的表。
2. 根据权利要求1所述的方法,其特征在于,将所述直接表的表项存储到所述芯片的 所述内部统计存储空间中包括: 判断要存储的表是否为所述直接表; 若是,则将所述直接表的表项存储到所述芯片的所述内部统计存储空间中。
3. 根据权利要求2所述的方法,其特征在于,将所述直接表的表项存储到所述芯片的 所述内部统计存储空间中包括: 使用所述内部统计存储空间中的一部分存储所述直接表。
4. 根据权利要求3所述的方法,其特征在于,使用所述内部统计存储空间中的一部分 存储所述直接表包括: 判断所述直接表的表项条目的总数是否超出预设的所述内部统计存储空间中用于存 储表类型为直接表的表项条目的数量; 在判断结果为是的情况下,将所述直接表的表项存储到所述芯片的所述内部统计存储 空间中。
5. 根据权利要求1至4中任一项所述的方法,其特征在于,将所述直接表的表项存储到 所述芯片的所述内部统计存储空间中还包括: 将所述直接表的每个表项条目依次存储到所述内部统计存储空间中连续的位置。
6. 根据权利要求1至4中任一项所述的方法,其特征在于,所述内部统计存储空间中存 储多个所述直接表,将所述直接表的表项存储到所述芯片的所述内部统计存储空间中还包 括: 将多个所述直接表存储到所述内部统计存储空间中连续的位置。
7. -种直接表的存储装置,其特征在于包括: 确定模块,用于确定芯片的内部表项存储空间已用完; 存储模块,用于将直接表的表项存储到所述芯片的内部统计存储空间中,其中,所述直 接表为能够通过存储介质直接访问的表。
8. 根据权利要求7所述的装置,其特征在于,还包括: 判断模块,用于判断要存储的表是否为所述直接表; 所述存储模块用于在所述判断模块的判断结果为是的情况下,将所述直接表的表项存 储到所述芯片的所述内部统计存储空间中。
9. 根据权利要求7或8所述的装置,其特征在于,还包括: 查询模块,用于通过所述存储模块从所述芯片的内部统计存储空间中读取所述直接 表。
10. 根据权利要求7或8所述的装置,其特征在于,所述存储模块还用于在所述内部统 计存储空间中存储多个所述直接表的情况下,将多个所述直接表存储到所述内部统计存储 空间中连续的位置。
【文档编号】G06F3/06GK104238953SQ201310233497
【公开日】2014年12月24日 申请日期:2013年6月13日 优先权日:2013年6月13日
【发明者】顾霞, 张启申 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1