联系hashgameCONTACT hashgame
地址:广东省广州市
手机:13988889999
电话:020-88889999
邮箱:admin@qq.com
查看更多
Rhashgamehashgame
你的位置: 首页 > hashgame

哈希表的处理方法及装置的制造方法HASH GAME - Online Skill Game ET 300

发布时间:2025-05-11 12:06:07  点击量:

  HASH GAME - Online Skill Game GET 300

哈希表的处理方法及装置的制造方法HASH GAME - Online Skill Game GET 300

  【专利摘要】本发明公开了一种哈希表的处理方法及装置。基于本发明,Key可以被替换为标签置入哈希表。由于标签具有比Key具有更小的长度,因此,当在硬件层使用哈希表时,可以减小哈希表中的哈希桶在硬件层占用的存储空间,从而可以在不增加硬件层存储空间的情况下实现更大容量的哈希表。而且,不同长度的Key所分别对应的标签具有统一的归一化长度,因此,当在硬件层使用哈希表时,可以使不同哈希表在硬件层的处理机制统一化,从而可以使哈希表在硬件层的使用易于实现。另外,冲突概率目标值或假命中率目标值可以约束标签的归一化长度的设定,以满足对冲突概率或假命中率的需求。

  [0042] 由此可见,基于上述的实施例,Key可以被替换为标签置入哈希表。由于标签具 有比Key具有更小的长度,因此,当在硬件层使用哈希表时,可以减小哈希表中的哈希桶在 硬件层占用的存储空间,从而可以在不增加硬件层存储空间的情况下实现更大容量的哈希 表。而且,不同长度的Key所分别对应的标签具有统一的归一化长度,因此,当在硬件层使 用哈希表时,可以使不同哈希表在硬件层的处理机制统一化,从而可以使哈希表在硬件层 的使用易于实现。

  [0053] 首先引入一个比较例,以便于能够更清楚地体现后续实施例所能够产生的技术效 果。请参见图1,在一个比较例中,应用哈希表的架构包括CPU 11、逻辑芯片12、以及第一 内存13和第二内存14。其中,CPU 11可以是单核或多核的处理器,逻辑芯片12可以是例 如FPGA(Field - Programmable Gate Array,现场可编程门阵列)等具有可编程的逻辑器 件,第一内存 13 和第二内存 14 可以是例如 DDR SDRAM (Double Date Rate Synchronous Dynamic Random Access Memory,双倍速率同步动态随机存储器)等存储介质。

  [0056] 请再参见图1,哈希表10包括哈希区10a和冲突区10b。哈希区10a和冲突区 l〇b中分别具有哈希桶100a和100b。每个哈希桶100a或100b中包含有至少一个哈希表 项。每个哈希表项中包含一对相互对应的Key和result (结果),因此,图1所示的比较 例中将哈希表项表示为Key&result 101。在图1中,虽然每个哈希桶100a或100b中的 Key&result 101的数量(即,哈希表项的数量)都为一个,但这并不表示哈希桶100a或 100b中的Key&result 101的数量(即,哈希表项的数量)只能为一个,而是应当理解为哈 希桶100a或100b中的Key&result 101的数量(即,哈希表项的数量)可以多于一个。

  [0057] 并且,图1所示的比较例是以链地址法形成冲突区10b为例,因此,每个哈希桶 100a或100b中还包括pointer (指针)102。相应地,哈希区10a中的哈希桶100a的pointer 102可以指向冲突区10b中的哈希桶100b,并且,冲突区10b中的哈希桶100b的pointer 102可以指向冲突区10b中的下一级的哈希桶(图1中并未示出),从而,由一个哈希桶100a 和至少一个哈希桶100b形成哈希桶链表。

  [0068] 例如,随着IPv6的普及,IP地址长度由IPv4的32bit变为128bit后,相应地,对 应IP地址的Key 121也会增长。以流(flow)表为代表的哈希表,五元组的长度也会从IPv4 的104bit变为IPv6的296bit。相应地,Key 121在表示IP地址时的长度就会骤然增加, 并导致KeyfcesultlOl的大小随之增大,这就使得存储容量有限的第二内存14中可存放的 Key&result 101条数骤减,从而阻碍了大规格的哈希表10在硬件层的使用。

  [0074] 请再参见图2,哈希表20包括哈希区20a和冲突区20b。哈希区20a和冲突区 20b中分别具有哈希桶200a和200b。每个哈希桶200a或200b中包含有至少一个哈希 表项。与图1所示的比较例不同的是,每个哈希表项中的Key被替换为长度小于Key的 Signature (标签),因此,图2所示的实施例中将哈希表项表示为Signature&result 201〇 在图2中,虽然每个哈希桶100a或100b中的Signature&result 201的数量(即,哈希 表项的数量)都为一个,但这并不表示哈希桶100a或100b中的Signature&result 201 的数量(即,哈希表项的数量)只能为一个,而是应当理解为哈希桶l〇〇a或100b中的 Signature&result 201的数量(即,哈希表项的数量)可以多于一个。

  [0086] 而且,在图2所示的实施例中,对于Key 221所可能具有的不同长度,Signature 223的长度都是一致的。即,不同长度的Key 221在图2所示的实施例中可以被转换为同一 长度的Signature 223。由此,Key 221转换为Signature 223的过程不但可以看作是一个 长度缩减的过程,而且还可以看作是一个长度归一化的过程。相应地,Signature 223的长 度可以认为是归一化长度。

  [0139] 并且,对于上述的哈希表50的添加,在图5示出的实施例中,若被Hash_idx 522 指向的某个哈希桶500a或500b中存在匹配的Signature&result 501,则在对匹配到的 Signature&result501执行添加操作之前,先利用哈希表10验证当前的匹配是否属于冲 突,即,利用哈希表10中的Key&result 101的Key值检验,即将执行的添加操作是否会导 致被当前的Hash_idx 522所指向的哈希桶500a和500b中发生标签冲突;

  [0184] 例如,请参见图8, 一种哈希表的处理装置包括内存801 (即上述的存储器)和与内 存801通过内部总线,并且,程序代码可以通过从存储介质中读取或 从通信网络下载的方式存入在内存801中,处理器802从内存801读取并运行程序代码可 实现上述处理方法活处理装置的功能。从而,可以认为,一种哈希表的处理装置可以包括用 于存放程序代码的内存801、以及通过内部总线并读取程序代码的处理器 802〇

  1. 一种哈希表的处理方法,其特征在于,所述处理方法包括: 根据当前的Key计算哈希地址; 利用计算得到的所述哈希地址在所述哈希表中索引对应的哈希桶; 根据所述Key计算具有归一化长度的标签,所述归一化长度小于所述Key的长度; 利用所述标签在索引到的所述哈希桶中匹配表项; 根据匹配结果执行对应的操作。2. 根据权利要求1所述的处理方法,其特征在于,所述处理方法进一步包括:根据预设 的冲突概率目标值设定所述归一化长度,使所述归一化长度满足:其中,P(N)表示所述冲突概率目标值,N表示所述哈希表中的当前表项数量,I表示所 述哈希地址的取值范围,S表示所述标签的取值范围。3. 根据权利要求1所述的处理方法,其特征在于,所述处理方法进一步包括:根据预设 的假命中概率目标值设定所述归一化长度,使所述归一化长度满足:其中,MTBF表示所述假命中概率目标值,N表示所述哈希表中的当前表项数量,I表示 所述哈希地址的取值范围,S表示所述标签的取值范围,rate为所述哈希表被访问的速率。4. 根据权利要求1所述的添加方法,其特征在于,当所述对应的操作为添加操作时,若 存在匹配的表项,则对匹配到的所述表项执行添加操作,否则,通过在所述哈希桶的空闲位 置插入带有所述标签的新表项来执行添加操作;并且,所述处理方法进一步包括: 在根据所述Key计算具有归一化长度的标签之前,依据索引到的所述哈希桶中的算法 选择字段,为所述标签的计算选择对应的算法; 在对匹配的所述表项执行所述添加操作之前,检验当前计算出的所述标签在被所哈希 地址指向的所述哈希桶中是否存在标签冲突; 若不存所述标签冲突,使能对匹配到的所述表项执行所述添加操作; 若存在所述标签冲突,则通过更换算法更新当前计算出的所述标签、W及被所哈希地 址指向的所述哈希桶中所有表项的标签值,并重新触发所述匹配; 当发生算法更换时,更新对应的哈希桶中的算法选择字段。5. 根据权利要求1所述的添加方法,其特征在于,当所述对应的操作为查找操作或删 除操作时,所述处理方法进一步包括:在根据所述Key计算具有归一化长度的标签之前,依 据索引到的所述哈希桶中的算法选择字段,为所述标签的计算选择对应的算法。6. -种哈希表的处理装置,其特征在于,所述处理装置包括: 地址计算模块,根据当前的Key计算哈希地址; 地址索引模块,利用计算得到的所述哈希地址在所述哈希表中索引对应的哈希桶; 标签转换模块,根据所述Key计算具有归一化长度的标签,所述归一化长度小于所述 Key的长度; 标签匹配模块,利用所述标签在索引到的所述哈希桶中匹配表项; 操作执行模块,根据匹配结果执行对应的操作。7. 根据权利要求6所述的处理装置,其特征在于,所述处理装置进一步包括:第一标 签长度约束模块,根据预设的冲突概率目标值设定所述归一化长度,使所述归一化长度满 足:其中,P(N)表示所述冲突概率目标值,N表示所述哈希表中的当前表项数量,I表示所 述哈希地址的取值范围,S表示所述标签的取值范围。8. 根据权利要求6所述的处理装置,其特征在于,所述处理装置进一步包括:第二标签 长度约束模块,根据预设的假命中概率目标值设定所述归一化长度,使所述归一化长度满 足:其中,MTBF表示所述假命中概率目标值,N表示所述哈希表中的当前表项数量,I表示 所述哈希地址的取值范围,S表示所述标签的取值范围,rate为所述哈希表被访问的速率。9. 根据权利要求6所述的处理装置,其特征在于,当所述对应的操作为添加操作时, 若存在匹配的表项,则所述操作执行模块对匹配到的所述表项执行添加操作,否则,所述操 作执行模块通过在所述哈希桶的空闲位置插入带有所述标签的新表项来执行添加操作;并 且,所述处理装置进一步包括: 算法选择模块,在所述标签转换模块根据所述Key计算具有归一化长度的标签之前, 依据索引到的所述哈希桶中的算法选择字段,为所述标签的计算选择对应的算法; 冲突检验模块,在所述操作执行模块对匹配的所述表项执行所述添加操作之前,检验 当前计算出的所述标签在被所哈希地址指向的所述哈希桶中是否存在标签冲突; 添加使能模块,若不存所述标签冲突,使能对匹配到的所述表项执行所述添加操作; 冲突处理模块,若存在所述标签冲突,则通过更换算法更新当前计算出的所述标签、W 及被所哈希地址指向的所述哈希桶中所有表项的标签,并重新触发所述匹配; 字段维护模块,当发生算法更换时,更新对应的哈希桶中的算法选择字段。10. 根据权利要求6所述的处理装置,其特征在于,当所述对应的操作为查找操作或删 除操作时,所述处理装置进一步包括:算法选取模块,在所述标签转换模块根据所述Key计 算具有归一化长度的标签之前,依据索引到的所述哈希桶中的算法选择字段,为所述标签 的计算选择对应的算法。

【返回列表页】

顶部

地址:广东省广州市  电话:020-88889999 手机:13988889999
Copyright © 2018-2025 哈希游戏(hash game)官方网站 版权所有 非商用版本 ICP备案编: