Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DIRECT TABLE STORAGE METHOD AND DEVICE
Document Type and Number:
WIPO Patent Application WO/2014/198161
Kind Code:
A1
Abstract:
Disclosed are a method and device for direct table storage, said method comprising: determining whether the internal table entry storage space of a chip is exhausted and storing the table entries of the direct table within the internal statistical storage space of the chip. The present direct table is able to be directly accessed via a storage medium. The present invention solves the problem of reduced forwarding performance caused by methods of table entry storage in the prior art, and increases forwarding performance.

Inventors:
GU XIA (CN)
ZHANG QISHEN (CN)
Application Number:
PCT/CN2014/076160
Publication Date:
December 18, 2014
Filing Date:
April 24, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZTE CORP (CN)
International Classes:
G06F3/06
Foreign References:
CN102193871A2011-09-21
CN103019956A2013-04-03
Other References:
See also references of EP 3009926A4
Attorney, Agent or Firm:
KANGXIN PARTNERS,P.C. (CN)
北京康信知识产权代理有限责任公司 (CN)
Download PDF:
Claims:
权 利 要 求 书

1. 一种直接表的存储方法, 包括:

确定芯片的内部表项存储空间已用完; 将直接表的表项存储到所述芯片的内部统计存储空间中, 其中, 所述直接 表为能够通过存储介质直接访问的表。

2. 根据权利要求 1所述的方法, 其中, 将所述直接表的表项存储到所述芯片的所 述内部统计存储空间中包括: 判断要存储的表是否为所述直接表;

若是,则将所述直接表的表项存储到所述芯片的所述内部统计存储空间中。

3. 根据权利要求 2所述的方法, 其中, 将所述直接表的表项存储到所述芯片的所 述内部统计存储空间中包括:

使用所述内部统计存储空间中的一部分存储所述直接表。

4. 根据权利要求 3所述的方法, 其中, 使用所述内部统计存储空间中的一部分存 储所述直接表包括:

判断所述直接表的表项条目的总数是否超出预设的所述内部统计存储空间 中设置为存储表类型为直接表的表项条目的数量;

在判断结果为是的情况下, 将所述直接表的表项存储到所述芯片的所述内 部统计存储空间中。

5. 根据权利要求 1至 4中任一项所述的方法, 其中, 将所述直接表的表项存储到 所述芯片的所述内部统计存储空间中还包括: 将所述直接表的每个表项条目依次存储到所述内部统计存储空间中连续的 位置。

6. 根据权利要求 1至 4中任一项所述的方法, 其中, 所述内部统计存储空间中存 储多个所述直接表, 将所述直接表的表项存储到所述芯片的所述内部统计存储 空间中还包括: 将多个所述直接表存储到所述内部统计存储空间中连续的位置。 一种直接表的存储装置, 包括:

确定模块, 设置为确定芯片的内部表项存储空间已用完; 存储模块,设置为将直接表的表项存储到所述芯片的内部统计存储空间中, 其中, 所述直接表为能够通过存储介质直接访问的表。 根据权利要求 7所述的装置, 其中, 所述存储装置还包括: 判断模块, 设置为判断要存储的表是否为所述直接表;

所述存储模块设置为在所述判断模块的判断结果为是的情况下, 将所述直 接表的表项存储到所述芯片的所述内部统计存储空间中。 根据权利要求 7或 8所述的装置, 其中, 所述存储装置还包括: 查询模块, 设置为通过所述存储模块从所述芯片的内部统计存储空间中读 取所述直接表。 根据权利要求 7或 8所述的装置, 其中, 所述存储模块还设置为在所述内部统 计存储空间中存储多个所述直接表的情况下, 将多个所述直接表存储到所述内 部统计存储空间中连续的位置。

Description:
直接表的存储方法和装置 技术领域 本发明涉及通信领域, 具体而言, 涉及一种直接表的存储方法和装置。 背景技术 随着运营商的需求的不断增加, 设备商不得不在已有的设备上添加新的功能。 但 是如何在保证不影响芯片转发性能的前提下, 再添加新的功能, 在相关技术中尚未提 出解决办法。 对于一款给定的芯片, 存储大小和处理速度都是固定的, 也就是查表带宽是固定 的。开发者经常会遇到这么一个情况:在查表 速度极高的内部表项存储空间已经用完, 同时查表性能也接近瓶颈的情况下, 一个业务需要再添加一个小的功能, 该小的功能 涉及到添加一张小表, 此时, 开发者会将该小表放在外部表项存储空间。 但是外部表 项存储空间的查表性能相比于内部表项存储空 间低很多。 这势必会导致业务在添加新 的功能之后, 转发性能降低, 不能满足业务的使用要求。 针对相关技术中存储表项的方式导致转发性能 降低的问题, 目前尚未提出有效的 解决方案。 发明内容 本发明实施例提供了一种直接表的存储方法和 装置, 以至少解决上述相关技术中 存储表项的方式导致转发性能降低的问题。 根据本发明的一个方面, 提供了一种直接表的存储方法, 包括: 确定芯片的内部 表项存储空间已用完; 将直接表的表项存储到所述芯片的内部统计存 储空间中,其中, 所述直接表为能够通过存储介质直接访问的表 。 优选地, 将所述直接表的表项存储到所述芯片的所述内 部统计存储空间中包括: 判断要存储的表是否为所述直接表; 若是, 则将所述直接表的表项存储到所述芯片的 所述内部统计存储空间中。 优选地, 将所述直接表的表项存储到所述芯片的所述内 部统计存储空间中包括: 使用所述内部统计存储空间中的一部分存储所 述直接表。 优选地, 使用所述内部统计存储空间中的一部分存储所 述直接表包括: 判断所述 直接表的表项条目的总数是否超出预设的所述 内部统计存储空间中用于存储表类型为 直接表的表项条目的数量; 在判断结果为是的情况下, 将所述直接表的表项存储到所 述芯片的所述内部统计存储空间中。 优选地,将所述直接表的表项存储到所述芯片 的所述内部统计存储空间中还包括: 将所述直接表的每个表项条目依次存储到所述 内部统计存储空间中连续的位置。 优选地, 所述内部统计存储空间中存储多个所述直接表 , 将所述直接表的表项存 储到所述芯片的所述内部统计存储空间中还包 括: 将多个所述直接表存储到所述内部 统计存储空间中连续的位置。 根据本发明的另一方面, 还提供了一种直接表的存储装置, 包括: 确定模块, 设 置为确定芯片的内部表项存储空间已用完; 存储模块, 设置为将直接表的表项存储到 所述芯片的内部统计存储空间中, 其中, 所述直接表为能够通过存储介质直接访问的 表。 优选地, 所述装置还包括: 判断模块, 设置为判断要存储的表是否为所述直接表; 所述存储模块设置为在所述判断模块的判断结 果为是的情况下, 将所述直接表的表项 存储到所述芯片的所述内部统计存储空间中。 优选地, 所述装置还包括: 查询模块, 设置为通过所述存储模块从所述芯片的内 部统计存储空间中读取所述直接表。 优选地, 所述存储模块还设置为在所述内部统计存储空 间中存储多个所述直接表 的情况下, 将多个所述直接表存储到所述内部统计存储空 间中连续的位置。 通过本发明的上述实施例, 采用确定芯片的内部表项存储空间已用完; 将能够通 过存储介质直接访问的直接表的表项存储到芯 片的内部统计存储空间中的方式, 解决 了相关技术中存储表项的方式导致转发性能降 低的问题, 提高了转发性能。 附图说明 此处所说明的附图用来提供对本发明的进一步 理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。 在附图 中: 图 1是根据本发明实施例的直接表的存储方法的 程图; 图 2是根据本发明实施例的直接表的存储装置的 构框图; 图 3是根据本发明实施例的直接表的存储装置的 选结构框图一; 图 4是根据本发明实施例的直接表的存储装置的 选结构框图二; 以及 图 5是根据本发明优选实施例的表存储方法的流 示意图。 具体实施方式 下文中将参考附图并结合实施例来详细说明本 发明。 需要说明的是, 在不冲突的 情况下, 本申请中的实施例及实施例中的特征可以相互 组合。 需要说明的是, 在附图的流程示意图示出的步骤可以在诸如一 组计算机可执行指 令的计算机系统中执行, 并且, 虽然在流程示意图中示出了逻辑顺序, 但是在某些情 况下, 可以以不同于此处的顺序执行所示出或描述的 步骤。 本实施例提供了一种直接表的存储方法, 图 1是根据本发明实施例的直接表的存 储方法的流程图, 如图 1所示, 该方法包括如下步骤: 步骤 S102, 确定芯片的内部表项存储空间已用完; 步骤 S104, 将直接表的表项存储到芯片的内部统计存储空 间中, 其中, 直接表为 能够通过存储介质直接访问的表。 通过上述步骤, 在内部表项存储空间用完的情况下, 将直接表存储在用于统计的 内部统计存储空间中, 由于内部统计存储空间的查表速度比外部表项 存储空间快, 解 决了在内部表项存储空间使用完后, 将直接表存储在外部表项存储空间中导致转发 性 能降低的问题, 提升了转发性能。 其中, 直接表包括可以通过其表项中的键值直接访问 其存储位置的表。 优选地, 将直接表的表项存储到芯片的内部统计存储空 间中包括: 判断要存储的 表是否为直接表; 若是, 则将直接表的表项存储到芯片的内部统计存储 空间中。 通过 这样的方式, 将直接影响查表速度、 转发性能的直接表存储在内部统计存储空间中 , 而将对查表速度、 转发性能影响较小的表, 例如哈希表存储在外部表项存储空间中, 从而节约了内部统计存储空间。 优选地, 内部统计存储空间用于芯片的统计功能, 因此可以只使用内部统计存储 空间中的一部分存储直接表, 另一部分预留出来实现统计功能。 内部统计存储空间的大小也是固定的, 一部分预留出来用于实现统计功能后, 另 一部分的大小也是有限的, 对于超出其处理能力的直接表, 内部统计存储空间的处理 能力有限。 在一个优选的实施方式中, 先判断直接表的表项条目的总数是否超出预设 的内部统计存储空间中用于存储表类型为直接 表的表项条目的数量; 在判断结果为是 的情况下, 将直接表的表项存储到芯片的内部统计存储空 间中。 通过这样的方式, 能 够确保每一个被存储在内部统计存储空间中的 直接表都能够被很好地处理。 优选地, 将直接表的表项存储到芯片的内部统计存储空 间中还包括: 将直接表的 每个表项条目依次存储到内部统计存储空间中 连续的位置。 例如, 将直接表 1 的第 1-300表项条目存储在内部统计存储空间的第 501-800个条目中,且直接表 1的每个表 项条目存储在内部统计存储空间的相应条目中 的位置都是在第 0-15字节的位置,其中, 上述的直接表 1中的表项(即直接表的结果)大小为 16字节。通过这样的方式存储表 项, 提高了查表的效率。 优选地, 在需要向内部统计存储空间中存储多个直接表 的情况下, 可以将多个直 接表存储到内部统计存储空间中连续的位置。 例如, 在上述例子中, 如果还要存储一 张表项条目数为 200的直接表 2,则将直接表 2的第 1-200表项条目存储在内部统计存 储空间的第 501-700个条目中, 且直接表 1的每个表项条目的存储位置都是在内部统 计存储空间的相应条目的第 16-23字节的位置, 其中, 直接表 2的表项大小为 8字节。 通过这样的方式, 节约了内部统计存储空间的存储空间, 并提高了查表的效率。 本实施例还提供了一种直接表的存储装置, 该装置用于实现上述直接表的存储方 法。 在该装置中涉及的相应功能的描述在上述方法 中已经进行过详细的描述和说明, 在此不再赘述。 图 2是根据本发明实施例的直接表的存储装置的 构框图, 如图 2所示, 该装置 包括: 确定模块 22和存储模块 24, 其中, 确定模块 22, 设置为确定芯片的内部表项 存储空间已用完; 存储模块 24耦合至上述确定模块 22, 设置为将直接表的表项存储 到芯片的内部统计存储空间中, 其中, 直接表为能够通过存储介质直接访问的表。 通过上述装置,采用了确定模块 22确定芯片的内部表项存储空间已用完;存储 块 24将直接表的表项存储到芯片的内部统计存储 间中的方式,其中,直接表为能够 通过存储介质直接访问的表。 由于内部统计存储空间的查表速度比外部表项 存储空间 快, 解决了在内部表项存储空间使用完后, 将直接表存储在外部表项存储空间中导致 转发性能降低的问题, 提升了转发性能。 本实施例中所涉及到的模块、 单元可以通过软件的方式实现, 也可以通过硬件的 方式来实现。 本实施例中所描述的模块、 单元也可以设置在处理器中, 例如, 可以描 述为: 一种处理器包括确定模块 22和存储模块 24。 其中, 这些模块的名称在某些情 况下并不构成对该模块本身的限定, 例如, 确定模块 22还可以描述为"设置为确定芯 片的内部表项存储空间已用完的模块"。 图 3是根据本发明实施例的直接表的存储装置的 选结构框图一, 如图 3所示, 该装置还可以包括: 判断模块 32, 设置为判断要存储的表是否为直接表; 存储模块 24 设置为在判断模块 32的判断结果为是的情况下,将直接表的表项 储到芯片的内部统 计存储空间中。 图 4是根据本发明实施例的直接表的存储装置的 选结构框图二, 如图 4所示, 该装置还可以包括: 查询模块 42耦合至存储模块 24, 设置为通过存储模块 24从芯片 的内部统计存储空间中读取直接表。 优选地, 存储模块 24还设置为在内部统计存储空间中存储多个直 表的情况下, 将多个直接表存储到内部统计存储空间中连续 的位置。 例如, 在直接表的每个条目的 结果大小为 M字节的情况下, 将直接表的结果添加到内部统计存储空间的 N个条目 中每个条目的 [P, P+M]的字节位置, 其中, P为非负整数, 且 P+M不大于该内部统计 存储空间提供给用于存储直接表的条目的最大 大小。 下面结合优选实施例和附图对上述实施例的实 现过程进行详细说明。 本优选实施例利用芯片的内部统计内存 (statistic memory, 即上述内部统计存储 空间) 查表, 该功能既不会占用芯片的存放表内存, 同时查表只会占用很少的查表带 宽, 从而最优的添加了新的功能。 图 5是根据本发明优选实施例的表存储方法的流 示意图, 如图 5所示, 该流程 包括如下步骤:

步骤 S502, 判断表 1是否为直接表, 同时总条目数是否小于 4000, 如果是, 执行 步骤 S504; 如果不是, 执行步骤 S512; 需要说明的是, 上述的 4000总条目数仅是内 部统计内存提供给用于存储直接表条目数的最 大条目数, 在实际设计中, 该总条目的 数目是可以设置的。 步骤 S504, 将直接表 1放在内部 statistics memory的某一块, 同时占用每个条目 (entry) 的 byteO-byte(Nl-l), 即 0号字节至 (N1-1 ) 号字节, 其中, N1为表 1的结 果大小 (result size), 为整数。 执行步骤 S506; 步骤 S506, 判断表 2是否为直接表, 同时总条目数是否小于 4000, 如果是, 执行 步骤 S508; 如果不是, 执行步骤 S512; 步骤 S508, 将直接表 2放在内部 statistics memory, 与表 1共用 entry, 占用每个 entry的 byteNl-byte(Nl+N2-l), 其中, N2为表 2的 result size。 执行步骤 S510; 步骤 S510: 以此类推, 继续放其余可放的表。 当所有放在内部 statistics memory 中的表的 result size之和大于 64字节时, 就认为已经满了, 无法再共用该 entry。 即,如果 Nl+N2+N3+...+Nn>64字节(B),就无法再将第 n张表放至内部 statistics memory;如果 Nl+N2+N3+...+Nn≤64B,则没有问题,可以将第 n张表放至内部 statistics memory。 步骤 S512, 将该表项放置在外部内存 (memory, 即上述的外部表项存储空间) 中。 上述方式适用于所有使用 EZchip (—家高速网络处理器芯片公司) 芯片的交换设 备。 采用上述方法, 提高了芯片的查表性能, 使交换机设备的性能达到最优。 下面结合另一个优选实施例对上述实施例的实 现过程进行详细说明。 图表 I是根据本发明优选实施例的待存储表的信息 如下表所示:

针对图表 I中的: 表 1 : 首先判断其为直接表, 且表项的 entry数目不大于 4000, 可以将表 1放在内 部 statistic memory中。 然后选择放在内部 statistic memory的 entry 1000- entry 4999, 同时所有的表项放在 entry的 byte0~bytel5 ; 表 2: 首先判断表 2是哈希表, 不是直接表, 选择直接放在别的内存中, 例如, 外部表项存储空间中; 表 3 : 虽然为直接表, 但其表项的 entry数目大于 4000, 也只能选择放在别的内存 中; 表 4:首先判断其为直接表,且表项的 entry数目不大于 4000,可以放在内部 statistic memory中。然后选择放在内部 statistic memory的 entry 1000- entry 4999, 同时所有的 表项放在 entry的 bytel6~byte23; 表 5 :首先判断其为直接表,且表项的 entry数目不大于 4000,可以放在内部 statistic memory中。然后选择放在内部 statistic memory的 entry 1000- entry 4999, 同时所有的 表项放在 entry的 byte24~byte39; 表 6:首先判断其为直接表,且表项的 entry数目不大于 4000,可以放在内部 statistic memory中。然后选择放在内部 statistic memory的 entry 1000- entry 4999, 同时所有的 表项放在 entry的 byte40~byte71 ; 此时发现, 最后放置的字节数已经到了 71, 远远超 过了 63, 所以表 5无法继续放在 entry 1000- entry 4999中, 可以选择放在内部 statistic memory的别的 entry (即 entry 1000~entry 4999之外的其他 entry) 中。 但是由于本优 选实施例中的内部 statistic memory的 entry条目最多支持 8000, 还要空出一些 (在本 优选实施例中预留了 4000个 entry )给统计用,所以表 5无法再放在内部 statistic memory 中, 只能选择放在其他内存中。 在上述实施例和优选实施例中提供了一种新的 排布小容量表项的方法, 从而在保 证芯片处理性能的情况下, 能够成功增加小的新功能。 同时, 通过将小容量直接表项 放在内部 statistic memory中的思想, 解决了芯片的查表性能瓶颈, 提升了转发性能。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算装置所 组成的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现 , 从而可以将 它们存储在存储装置中由计算装置来执行,或 者将它们分别制作成各个集成电路模块, 或者将它们中的多个模块或步骤制作成单个集 成电路模块来实现。 这样, 本发明不限 制于任何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的 任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。