CN104158744B - 用于网络处理器的建表和查找方法 - Google Patents
用于网络处理器的建表和查找方法 Download PDFInfo
- Publication number
- CN104158744B CN104158744B CN201410326150.1A CN201410326150A CN104158744B CN 104158744 B CN104158744 B CN 104158744B CN 201410326150 A CN201410326150 A CN 201410326150A CN 104158744 B CN104158744 B CN 104158744B
- Authority
- CN
- China
- Prior art keywords
- page
- hash tables
- hash
- key
- label
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000003860 storage Methods 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 15
- 230000005055 memory storage Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 235000013399 edible fruits Nutrition 0.000 claims description 4
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种应用于网络处理器中的建表和查表方法,采用建立不同类型的hash表,各表互不相干,独立进行两级查找,首先,根据待建表项的大小建立不同类型的hash表,为各个表分配不同的存储空间,指定表的大小和首地址,然后在查找时,根据从报文提取的信息获得查找关键字key、查找表的类型和该表的首地址,同时对关键字key进行两次hash转换,第一次把key转换成偏移地址以确定其在索引表中的索引值,第二次把key转换成标签用来区分冲突项,接着根据该索引值从结果表中读取内容进行匹配,以获得查找的结果。本发明有效地降低了对存储器的访存次数,进一步提高了网络处理器的查表速度和存储器的资源利用率。
Description
技术领域
本发明涉及网络通信领域,具体地,涉及一种用于网络处理器的建表和查找方法。
背景技术
随着因特网速度的不断提高、网络流量的不断增加和路由表项数目的不断增大,使得查表效率越来越成为网络处理器设备性能的瓶颈。影响查表效率的因素主要有两个方面:一是表的结构即建表的方法,二是查表的方法,即以尽可能少的存储资源,获得较快的查表速度。
在传统的数据结构中,如线性表、trie等,记录在结构中的相对位置是随机的,和记录的关键字key之间不存在确定的关系,查找过程中需要大量的存储器访问操作。建立在比较基础上的这一类的查找算法,随着数据的增长,查找的速度由于查找过程中所进行的比较次数的增加而下降,而且也将占有更多的存储资源。
理想的情形是不经过任何比较,一次访存就能得到所查的结果。这就要求在key和其存储位置之间建立一个确定的对应关系,在查找时,只要根据这个对应关系即可找到给定key的映射f(key),直接获得结果,这种对应关系称为hash函数,建立的表称为hash表。而hash函数是一个压缩映射函数,在hash表中不同的key可能得到同一hash地址,即不可避免的会产生冲突(Collision)。
现有技术中可以通过选择一个较好的hash函数来减少冲突,例如假定选择的hash函数发生冲突的概率为20%,对冲突的key采用传统多次hash的方式加以区分。那么,经过第一次查找,命中率为80%,此时将有20%的key需要第二次查找。经过第二次查找后,命中率将提高到96%。然而,此时仍将有4%的key需要再一次查找,通常,需要多达10次甚至更多次才能解决完全查找到这些冲突的key。而且通常在这种情形下,每一次查找所对应的hash表的填充率只能达到20%左右,这就意味着一个存储位置被key填充的概率只有20%,从而浪费了80%的存储资源。因此,现有数据结构的建表、查表方法存在查找次数多、查表速度慢且浪费存储资源的缺点。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种用于网络处理器的建表和查找方法。
根据本发明的一个方面,提供一种用于网络处理器的建表和查找方法,包括以下步骤:
步骤1:根据所需建立的表项的容量大小,分别建立内部int_hash表、外部ext_hash表和内外部混合mix_hash表,分配各个表的存储空间,指定各个索引表的大小和首地址;
步骤2:建立hash表,每个hash表均由索引表和结果表两个子表构成,确定索引表中每个表项的容量大小,并为每个hash表配置一个空闲地址队列,每个队列存放结果表的所有地址,索引表的一个存储位置对应一个page,结果表的每个表项entry中存放关键字key和相应的结果;
步骤3:建立冲突解决策略,对关键字key进行两次hash转换,第一次把key转换成一个偏移量,第二次把key转换成一个标签,首地址和偏移量共同确定一个page在索引表中的位置;
步骤4:建表
步骤41:根据关键字key和其类型,获取所属的hash表类型以及该表的首地址信息,根据hash表的类型信息,确定待建立的表属于内部int_hash表、外部ext_hash表还是内外部混合mix_hash表;
步骤42:把key转换成一个地址偏移量和一个标签,首地址和这个偏移量确定了该标签在索引表中的存放位置,然后读出该存放位置中的page信息,同时,从空闲地址队列中读出一个空闲地址作为索引值;
步骤43:若page中存放的标签已满,此时下一页地址有效,标签和索引值存放于下一个page中;否则,找出第一个标签为空的行,把标签和索引值存放于该行中;
步骤5:查表
步骤51:从接收的报文中提取用于查表的关键字key以及hash表的类型和该表的首地址信息,根据hash表的类型信息,确定待查找的表项位于内部int_hash表、外部ext_hash表还是内外部混合mix_hash表,把key转换成一个地址偏移量和一个标签,该偏移量和首地址共同确定一个page在索引表中的位置;
步骤52:采用两级查找的方式进行查找,第一次查找时读出page信息,遍历比较该page下的所有标签,第二次查找时通过与标签相匹配所对应的索引值读出结果表中的表项entry,如果该entry中存放的key和查找的key相同,说明查找成功,返回相应的结果,查找结束;否则,如果尚有其它标签匹配的表项,则以相同的方式读出下一个entry进行匹配,如果没有其它标签匹配的表项,而此时下一页有效,则读出该page继续进行查找,否则返回查找失败的结果,查找结束。
优选地,步骤3中,当key发生hash冲突时,所有的相关信息都存放在一个page下,但位于不同的行,通过标签加以区分。
优选地,步骤1中所述的内部int_hash表为索引表和结果表容量都较小的表,其存放在访存速度高但存储容量小的内部存储器中;所述外部ext_hash表为索引表和结果表容量都较大的表,其存放在访存速度不高但存储容量大的外部存储器中;内外部混合mix_hash表为索引表容量较小而结果表容量较大的表,其分别存放于内、外部存储器中。
优选地,步骤2中,所述空闲地址的数目为索引表大小的4倍。
优选地,每个所述page包括n行的两列信息:标签label和索引值entry_addr。
优选地,每个所述page还包括下一页有效位link_page_valid和下一页地址link_page_addr信息。
优选地,n的取值范围为2~8。
优选地,对于内部int_hash表和内外部混合mix_hash表,n的典型值为8,对于外部ext_hash表,n为6。
优选地,所述结果表的一个存储位置对应一个entry,每个entry包括两行信息:关键字key和结果result。
本发明在存取速度高的内部存储器中存放数据较小的表,在容量大的外部存储器中存放数据较大的表,以此建立不同类型的hash表,合理地利用内外部存储资源,以解决存储资源和查找速度的平衡问题。并优化hash表的结构,建立两级查找表,解决hash表填充率和查找效率的问题。
当发生hash冲突时,冲突项都存放在一个相同的存储位置上,对各个冲突项打上标签加以区分,解决hash冲突的问题。同时,采用两级查找的方式,减少存储器的访存次数,以缩短查找时间,解决hash查找速度的问题。与现有技术相比,本发明具有如下的有益效果:
1、本发明根据表项所需容量的大小和对查找速度的要求,建立不同类型的hash表,把关键字key及其索引值分块存放,有效地利用了内部存储器访存速度高和外部存储器容量大的特点,兼顾了存储资源和查找速度的均衡。
2、本发明建立两级hash查找表,有效的提高了hash表填充率和查找效率。
如相对于填充率仅有20%的传统多hash方式的hash表,本发明通过建立两级hash表,其索引表的大小只有关键字key数量的1/4,相应地,hash表的填充概率达到传统方式的4倍,即80%。假设所有的key散列均匀,则每个page中平均可存放4个key的信息。
在查找时,首先对关键字key进行两次hash转换,所有相冲突的key的索引值都存放在第一个hash函数所确定的位置,而这些冲突的key,可以很容易地通过第二个hash函数产生的标签label来加以区分,那么经过两次存储器的访问,查找成功的概率将达到98%以上,在极少的情形下,才需要多次的存储器的访问。
3、通过建立两级hash表,进一步提高了存储资源的利用率。
虽然索引表的地址是通过hash散列计算得到的,然而在索引表中并不存放实际的关键字key,而是用来存放key的索引值等少量数据,并且所有的冲突项都存放在同一地址下的不同行,所需存储空间较小。同时在结果表中,存放key和相应结果的地址是通过空闲地址队列获得的,从而保证了其地址的连续性,即key和结果是顺序存放的。和传统的多hash方式相比,有效地节省了存储资源。
4、在98%以上的情形下,只需两次存储器的访问即可查找到所期望的结果result,从而有效地减少了存储器的访存次数,极大地提高了网络处理器的查找速度。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是本发明的hash表的索引表结构示意图;
图2是本发明的hash表的结果表结构示意图;
图3是本发明的hash表的两个子表间的链接关系结构示意图;
图4是本发明的hash表的索引表中两个page间的链接关系结构示意图;
图5是本发明的建表过程的流程原理图;
图6是本发明的查表过程的流程原理图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
一种用于网络处理器的建表和查找方法,包括以下步骤:
步骤1:根据所需建立的表项的容量大小,分别建立内部int_hash表、外部ext_hash表和内外部混合mix_hash表,分配各个表的存储空间,指定各个索引表的大小和首地址。
具体地,根据待建的hash表的容量大小,兼顾查找速度和存储资源的平衡,把索引表和结果表容量都较小的表都存放在访存速度高但存储容量小的内部存储器中,把索引表和结果表容量都较大的表都存放在访存速度不高但存储容量大的外部存储器中,把索引表容量较小而结果表容量较大的表分别存放于内、外部存储器中,即分别建立内部int_hash表、外部ext_hash表和内外部混合mix_hash表。同时,分配各个表的存储空间,输出各个索引表的大小和首地址等信息。
步骤2:建立hash表,每个hash表均由索引表和结果表两个子表构成,确定索引表中每个表项的容量大小,并为每个hash表配置一个空闲地址队列,每个队列存放结果表的所有地址,索引表的一个存储位置对应一个page,结果表的每个表项entry中存放关键字key和相应的结果。
本发明建立一种新型结构的hash表,每个hash表由两个子表构成,其中,第一个子表为索引表,第二个子表为结果表,可根据实际需要确定索引表中每个表项的容量大小。同时为每个hash表配置一个空闲地址队列,空闲地址队列的个数和hash表一一对应,每个队列存放结果表的所有地址,这些地址作为空闲地址,空闲地址的数目为索引表大小的4倍。
索引表的一个存储位置对应一个page,结果表的每个表项entry中存放关键字key和相应的结果。
在索引表中,每个page包括n行的两列信息:标签label和索引值entry_addr。n的取值范围为2~8,典型地,对于内部hash表和内外部混合hash表,n为8,对于外部hash表,n为6。
每个述page还包括下一页有效位link_page_valid和下一页地址link_page_addr信息。
结果表的一个存储位置对应一个entry,每个entry包括两行信息:关键字key和结果result。
步骤3:建立冲突解决策略,对关键字key进行两次hash转换,第一次把key转换成一个偏移量,第二次把key转换成一个标签,首地址和偏移量共同确定一个page在索引表中的位置。
对于所有产生hash冲突的key,相关信息都存入一个page,但位于不同的行,通过标签加以区分。如,当key发生hash冲突时,所有的相关信息都存放在一个page下,位于不同的行,通过标签加以区分。
步骤4:建表
步骤41:根据关键字key和其类型,获取所属的hash表类型以及该表的首地址信息,根据hash表的类型信息,确定待建立的表属于内部int_hash表、外部ext_hash表还是内外部混合mix_hash表;
步骤42:把key转换成一个地址偏移量和一个标签,首地址和这个偏移量确定了该标签在索引表中的存放位置,然后读出该存放位置中的page信息,同时,从空闲地址队列中读出一个空闲地址作为索引值;
步骤43:若page中存放的标签已满,此时下一页地址有效,标签和索引值存放于下一个page中;否则,找出第一个标签为空的行,把标签和索引值存放于该行中;
步骤5:查表
查表时采用两级查找的方式,第一次查找其在索引表中的索引值,第二次根据这个索引值查找其在结果表中的匹配值。
步骤51:从接收的报文中提取用于查表的关键字key以及hash表的类型和该表的首地址等信息,根据hash表的类型信息,确定待查找的表项位于内部int_hash表、外部ext_hash表还是内外部混合mix_hash表,把key转换成一个地址偏移量和一个标签,该偏移量和首地址共同确定一个page在索引表中的位置;
步骤52:采用两级查找的方式进行查找,第一次查找时读出page信息,遍历比较该page下的所有标签,第二次查找时通过与标签相匹配所对应的索引值读出结果表中的表项entry,如果该entry中存放的key和查找的key相同,说明查找成功,返回相应的结果,查找结束;否则,如果尚有其它标签匹配的表项,则以相同的方式读出下一个entry进行匹配,如果没有其它标签匹配的表项,而此时下一页有效,则读出该page继续进行查找,否则返回查找失败的结果,查找结束。
具体地,以下同时结合图1至图6对本发明进行进一步详细说明:
1.构造两级结构的hash表,每个hash表由两个子表构成,其中,第一个子表为索引表,第二个子表为结果表。同时为每个hash表配置一个空闲地址队列,空闲地址的数目为索引表大小的4倍。
索引表的一个存储位置对应一个page,如图1所示,每个page包括n行的两列信息:标签label和索引值entry_addr,此外还包括下一页有效位link_page_valid和下一页地址link_page_addr等一行信息。
结果表的一个存储位置对应一个entry,如图2所示,每个entry包括两行信息:关键字key和结果result。
label用来区分hash冲突,当key发生冲突时,通过和label位于同一行的索引值entry_addr确定key和result在结果表中的存放位置,如图3所示。
当多于n个key产生hash冲突时,表明该page已满,此时link_page_valid置1,通过link_page_addr来链接下一个page,如图4所示,label和entry_addr存放于该page下。
在索引表中,n的取值范围为2~8,典型地,对于内部hash表和内外部混合hash表,n为8,对于外部hash表,n为6。
2.建表过程,如附图5所示:
a.从接收的报文中提取用于建表的关键字key以及hash表的类型hash_type和该表的首地址base_address等信息,根据hash表的类型信息,确定待建立的表属于内部inthash表、外部ext hash表还是内外部混合mix hash表。
b.把关键字key转换成一个地址偏移量offset和一个标签label,该偏移量和首地址共同确定了一个page在索引表中的存放位置。
c.读出索引表中的page信息。
d.如果该page中标签未满,从空闲地址队列中获得一个空闲地址作为索引值。把标签和索引值等信息存放在标签为空的第一行,把key和result写入结果表中索引值所指向的位置。
e.如果该page中标签已满,而此时下一页有效位link_page_valid为0,则创建下一个page。首先从空闲地址队列中获得两个空闲地址,其中第一个空闲地址作为下一页地址link_page_addr,第二个作为索引值,然后把标签和索引值等信息存放在该page的第一行,把key和result写入结果表中索引值所指向的位置。
f.如果该page中标签已满,此时link_page_valid为1,重复上述步骤。
3.查找过程,如附图6所示:
a.从接收的报文中提取用于建表的关键字key以及hash表的类型hash_type和该表的首地址base_address等信息,根据hash表的类型信息,确定待建立的表属于内部hash表、外部hash表还是内外部混合hash表。
b.把key转换成一个地址偏移量offset和一个标签label,该偏移量和首地址共同确定了一个page在索引表中的存放位置。
c.读出索引表中的page信息。
d.如果该page中至少有一个标签匹配,则根据位于标签同一行的索引值读出结果表中的表项entry。
e.如果该entry中的key和查找的key相匹配,说明查找成功,返回entry中的结果result,查找结束。
f.如果key不匹配,而此时尚有其它的标签匹配项,转入向骤d,否则转向步骤g。
g.该page中下一页有效位link_page_valid为1,根据link_page_addr读出相应的page信息,转向步骤d,否则,返回查找失败的结果,查找结束。
本发明根据表项所需容量的大小和对查找速度的要求,建立不同类型的hash表,把关键字key及其索引值分块存放,有效地利用了内部存储器访存速度高和外部存储器容量大的特点,兼顾了存储资源和查找速度的均衡,有效的提高了hash表填充率和查找效率,查找成功的概率将达到98%以上,提高了存储资源的利用率,极大地提高了网络处理器的查找速度。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (8)
1.一种用于网络处理器的建表和查找方法,其特征在于,包括以下步骤:
步骤1:根据所需建立的表项的容量大小,分别建立内部int_hash表、外部ext_hash表和内外部混合mix_hash表,分配各个表的存储空间,指定各个索引表的大小和首地址;
步骤2:建立hash表,每个hash表均由索引表和结果表两个子表构成,确定索引表中每个表项的容量大小,并为每个hash表配置一个空闲地址队列,每个队列存放结果表的所有地址,索引表的一个存储位置对应一个page,结果表的每个表项entry中存放关键字key和相应的结果;
步骤3:建立冲突解决策略,对关键字key进行两次hash转换,第一次把key转换成一个偏移量,第二次把key转换成一个标签,首地址和偏移量共同确定一个page在索引表中的位置;
步骤4:建表:
步骤41:根据关键字key和其类型,获取所属的hash表类型以及该表的首地址信息,根据hash表的类型信息,确定待建立的表属于内部int_hash表、外部ext_hash表还是内外部混合mix_hash表;
步骤42:把key转换成一个地址偏移量和一个标签,首地址和这个偏移量确定了page在索引表中的存放位置,然后读出该存放位置中的page信息,同时,从空闲地址队列中读出一个空闲地址作为索引值;
步骤43:若page中存放的标签已满,此时下一页地址有效,标签和索引值存放于下一个page中;否则,找出第一个标签为空的行,把标签和索引值存放于该行中;
步骤5:查表:
步骤51:从接收的报文中提取用于查表的关键字key以及hash表的类型和该表的首地址信息,根据hash表的类型信息,确定待查找的表项位于内部int_hash表、外部ext_hash表还是内外部混合mix_hash表,把key转换成一个地址偏移量和一个标签,该偏移量和首地址共同确定一个page在索引表中的位置;
步骤52:采用两级查找的方式进行查找,第一次查找时读出page信息,遍历比较该page下的所有标签,第二次查找时通过与标签相匹配所对应的索引值读出结果表中的表项entry,如果该entry中存放的key和查找的key相同,说明查找成功,返回相应 的结果,查找结束;否则,如果尚有其它标签匹配的表项,则以相同的方式读出下一个entry进行匹配,如果没有其它标签匹配的表项,而此时下一页有效,则读出该page继续进行查找,否则返回查找失败的结果,查找结束;
步骤1中所述的内部int_hash表为索引表和结果表容量都较小的表,其存放在访存速度高但存储容量小的内部存储器中;所述外部ext_hash表为索引表和结果表容量都较大的表,其存放在访存速度不高但存储容量大的外部存储器中;内外部混合mix_hash表为索引表容量较小而结果表容量较大的表,其分别存放于内、外部存储器中。
2.根据权利要求1所述的用于网络处理器的建表和查找方法,其特征在于,步骤3中,当key发生hash冲突时,所有的相关信息都存放在一个page下,但位于不同的行,通过标签加以区分。
3.根据权利要求1所述的用于网络处理器的建表和查找方法,其特征在于,步骤2中,所述空闲地址的数目为索引表大小的4倍。
4.根据权利要求1所述的用于网络处理器的建表和查找方法,其特征在于,每个所述page包括n行的两列信息:标签label和索引值entry_addr。
5.根据权利要求4所述的用于网络处理器的建表和查找方法,其特征在于,每个所述page还包括下一页有效位link_page_valid和下一页地址link_page_addr信息。
6.根据权利要求4所述的用于网络处理器的建表和查找方法,其特征在于,n的取值范围为2~8。
7.根据权利要求6所述的用于网络处理器的建表和查找方法,其特征在于,对于内部int_hash表和内外部混合mix_hash表,n为8,对于外部ext_hash表,n为6。
8.根据权利要求1所述的用于网络处理器的建表和查找方法,其特征在于,所述结果表的一个存储位置对应一个entry,每个entry包括两行信息:关键字key和结果result。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410326150.1A CN104158744B (zh) | 2014-07-09 | 2014-07-09 | 用于网络处理器的建表和查找方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410326150.1A CN104158744B (zh) | 2014-07-09 | 2014-07-09 | 用于网络处理器的建表和查找方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104158744A CN104158744A (zh) | 2014-11-19 |
CN104158744B true CN104158744B (zh) | 2017-07-11 |
Family
ID=51884153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410326150.1A Active CN104158744B (zh) | 2014-07-09 | 2014-07-09 | 用于网络处理器的建表和查找方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104158744B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155939B (zh) * | 2015-03-30 | 2019-05-31 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN107517161B (zh) * | 2016-06-15 | 2021-11-12 | 中兴通讯股份有限公司 | 一种网络处理器查表方法、网络处理器和查表系统 |
CN107291628B (zh) * | 2017-07-04 | 2020-09-01 | 北京京东尚科信息技术有限公司 | 访问数据存储设备的方法和装置 |
CN108255912B (zh) * | 2017-08-17 | 2020-02-11 | 新华三技术有限公司 | 一种表项数据存储、查询方法及其装置 |
US10700974B2 (en) * | 2018-01-30 | 2020-06-30 | Marvell Israel (M.I.S.L) Ltd. | Dynamic allocation of memory for packet processing instruction tables in a network device |
CN110365626B (zh) * | 2018-04-09 | 2022-12-06 | 厦门雅迅网络股份有限公司 | 防撞库的用户登录安全认证方法、终端设备及存储介质 |
CN111352931A (zh) * | 2018-12-21 | 2020-06-30 | 中兴通讯股份有限公司 | 一种哈希冲突的处理方法、装置及计算机可读存储介质 |
CN111833496B (zh) * | 2020-07-17 | 2022-05-03 | 长园共创电力安全技术股份有限公司 | 基于智能钥匙的开锁方法、装置及存储介质 |
TWI761992B (zh) * | 2020-10-16 | 2022-04-21 | 創鑫智慧股份有限公司 | 資料計算裝置及其操作方法 |
CN113448996B (zh) * | 2021-06-11 | 2022-09-09 | 成都三零嘉微电子有限公司 | 一种IPSec安全策略数据库高速查找方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350788A (zh) * | 2008-08-25 | 2009-01-21 | 中兴通讯股份有限公司 | 一种网络处理器内外混合查表方法 |
CN101540730A (zh) * | 2009-04-28 | 2009-09-23 | 华为技术有限公司 | 地址查找方法、交换机和网络系统 |
CN101604337A (zh) * | 2009-07-13 | 2009-12-16 | 中兴通讯股份有限公司 | 一种哈希表项存储、查找装置及方法 |
CN102682116A (zh) * | 2012-05-14 | 2012-09-19 | 中兴通讯股份有限公司 | 基于哈希表的表项处理方法及其装置 |
-
2014
- 2014-07-09 CN CN201410326150.1A patent/CN104158744B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350788A (zh) * | 2008-08-25 | 2009-01-21 | 中兴通讯股份有限公司 | 一种网络处理器内外混合查表方法 |
CN101540730A (zh) * | 2009-04-28 | 2009-09-23 | 华为技术有限公司 | 地址查找方法、交换机和网络系统 |
CN101604337A (zh) * | 2009-07-13 | 2009-12-16 | 中兴通讯股份有限公司 | 一种哈希表项存储、查找装置及方法 |
CN102682116A (zh) * | 2012-05-14 | 2012-09-19 | 中兴通讯股份有限公司 | 基于哈希表的表项处理方法及其装置 |
Non-Patent Citations (1)
Title |
---|
《两级Hash算法在网络处理器上实现多连接包分类》;康婧,郭健;《现代电子技术》;20090501;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104158744A (zh) | 2014-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104158744B (zh) | 用于网络处理器的建表和查找方法 | |
CN100470550C (zh) | 一种信息存储的方法、信息查找的方法及引擎装置 | |
CN105117417B (zh) | 一种读优化的内存数据库Trie树索引方法 | |
CN110309196A (zh) | 区块链数据存储和查询方法、装置、设备及存储介质 | |
CN103399902B (zh) | 一种并行环境下的有向图可达性链表生成及查询方法 | |
CN101692651B (zh) | 一种哈希查找表的方法和装置 | |
CN102484610B (zh) | 路由表建立方法和装置及路由表查找方法和装置 | |
CN104392010B (zh) | 一种子图匹配的查询方法 | |
US9871727B2 (en) | Routing lookup method and device and method for constructing B-tree structure | |
CN102663007B (zh) | 一种支持敏捷开发和横向扩展的数据存储与查询方法 | |
CN106815267A (zh) | 数据存储方法和装置 | |
CN106503008A (zh) | 文件存储方法和装置及文件查询方法和装置 | |
CN105808358A (zh) | 一种用于众核系统的数据相关性线程分组映射方法 | |
CN106897458A (zh) | 一种面向机电设备数据的存储及检索方法 | |
CN108134739A (zh) | 一种基于索引特里树的路由查找方法及装置 | |
CN101277252A (zh) | 多分支Trie树的遍历方法 | |
US20140052710A1 (en) | Device and method of mass data storage based on tree structure | |
CN102663068B (zh) | 锅炉控制中的基于opc服务器的实时数据库实现数据实时更新的装置及数据实时更新方法 | |
CN109033159A (zh) | 一种基于顶点影响力的图数据布局方法 | |
CN112269784B (zh) | 一种基于硬件实现的哈希表装置以及插入、查询和删除方法 | |
CN106776810B (zh) | 一种大数据的数据处理系统及方法 | |
CN103092767A (zh) | 一种对云计算内部物理机信息内存池的管理方法 | |
CN111291058B (zh) | 一种基于分层pc-trie结构的LPM规则存储方法 | |
CN103064901B (zh) | 一种ram、网络处理系统和一种ram查表方法 | |
CN104090942A (zh) | 应用于网络处理器中的Trie搜索方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |