CN112650452B - 一种数据查询方法和设备 - Google Patents

一种数据查询方法和设备 Download PDF

Info

Publication number
CN112650452B
CN112650452B CN202011622194.0A CN202011622194A CN112650452B CN 112650452 B CN112650452 B CN 112650452B CN 202011622194 A CN202011622194 A CN 202011622194A CN 112650452 B CN112650452 B CN 112650452B
Authority
CN
China
Prior art keywords
data
ddr
entry
network data
tcam
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
Application number
CN202011622194.0A
Other languages
English (en)
Other versions
CN112650452A (zh
Inventor
眭新光
周昔元
张强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Zhuoxun Zhian Technology Co ltd
Original Assignee
Chengdu Zhuoxun Zhian Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Zhuoxun Zhian Technology Co ltd filed Critical Chengdu Zhuoxun Zhian Technology Co ltd
Priority to CN202011622194.0A priority Critical patent/CN112650452B/zh
Publication of CN112650452A publication Critical patent/CN112650452A/zh
Application granted granted Critical
Publication of CN112650452B publication Critical patent/CN112650452B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

本发明公开了一种数据查询方法和设备,应用于包括TCAM表、DDR映射表及DDR共享表的计算机系统中,该方法包括:接收网络数据,当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据进行查询,所述第一表项的行数与所述第二表项的行数相同,当所述网络中的数据与所述TCAM表中的第一表项中的数据不匹配时,则未查询到所述网络数据,并退出查询,从而达到降低查询成本,让同样大小的TCAM支持更多的表项,提高了用户的使用体验。

Description

一种数据查询方法和设备
技术领域
本申请涉及数据查询领域,更具体地,涉及一种数据查询方法和设备。
背景技术
TCAM(ternary content addressable memory)是一种三态内容寻址存储器,主要用于快速查找ACL(Access Control Lists,访问控制列表)、路由等表项。TCAM有以下特点:
1、TCAM表内所有表项都可以并行访问,比如,如果有100条ACL,TCAM能一次就能对比这100条ACL进行对比操作,过去如果有100条ACL的话,需要第一条ACL对比完后再对比第二条,然后第三条,直至N条,效率很明显没有TCAM高。
2、TCAM得结构已经经过了优化,支持更抽象的操作,通常是基于二进制关键字匹配,查询相当快。正因为有上边的这些特性,所以无论表内有多少条数目,性能都不会减弱。
3、TCAM包含多组的Mask与Value对应关系,对应比例为1:8,一个Mask可对应8个Value。最长掩码位于TCAM顶部,如255.255.255.255位于最顶部,用于最长匹配,提升查找速率。
4、Mask用于表示Value的匹配方法,1为必须比较并匹配,0为不用比较。
5、TCAM的可用掩码、值模式、LOU表项有限,如果访问列表很大或需要很多第四层运算,TCAM表和寄存器很可能溢出。
6、TCAM成本比较高,存储空间的单位价格高于普通的sram,而且耗能也远远高于sram。
7、由于TCAM的并行查找特性和三态,存储必须以前缀形式来存储,比如一个range需要拆分成几个更小的可以表示成前缀形式的range才可以存储在TCAM中1。
如上所述,TCAM的查询速度相当快,但是成本却比较高,因此,如何降低查询成本,让同样大小的的TCAM能够支持更多的表项,是本领域有待解决的技术问题。
发明内容
本发明提供一种数据查询方法,用以解决现有技术中TCAM查询中成本过高的技术问题,应用于包括TCAM表、DDR映射表及DDR共享表的计算机系统中,所述方法包括:
接收网络数据;
当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据进行查询,所述第一表项的行数与所述第二表项的行数相同;
当所述网络中的数据与所述TCAM表中的第一表项中的数据不匹配时,则未查询到所述网络数据,并退出查询。
优选地,在接收网络数据之前,还包括:
基于预设初始表项的长度将预设原始表项进行简化处理;
将简化处理后的表项作为所述第一表项存入所述TCAM表中;
当所述预设初始表项为多条,则将第一条所述预设初始表项作为所述第二表项存入所述DDR映射表,并将其他所述预设初始表项作为所述第三表项存入所述DDR共享表;
当所述预设初始表项为一条,则将所述预设初始表项作为所述第二表项存入所述DDR映射表。
优选地,当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据进行查询,具体为:
当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,判断所述TCAM表中的第一表项中的数据与所述DDR映射表中的第二表项的数据是否一致;
若一致,则查询到所述网络数据并退出查询;
若不一致,则基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据对所述网络数据进行匹配。
优选地,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据对所述网络数据进行匹配,具体为:
当所述DDR映射表中的第二表项的数据与所述网络数据匹配时,则查询到所述网络数据并退出查询;
当所述DDR映射表中的第二表项的数据与所述网络数据不匹配时,则根据所述DDR共享表的第三表项的数据对所述网络数据进行匹配。
优选地,根据所述DDR共享表的第三表项的数据对所述网络数据进行匹配,具体为:
判断所述DDR共享表的第三表项的数据是否与所述网络数据匹配,直到所述DDR共享表中的第三表项的数据与所述网络数据全部匹配完毕。
相应的,本发明还提出了一种数据查询设备,应用于包括TCAM表、DDR映射表及DDR共享表的计算机系统中,所述设备包括:
接收模块,用于接收网络数据;
查询模块,用于当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据进行查询,所述第一表项的行数与所述第二表项的行数相同;
结束模块,用于当所述网络中的数据与所述TCAM表中的第一表项中的数据不匹配时,则未查询到所述网络数据,并退出查询。
优选地,所述查询模块,还用于:
基于预设初始表项的长度将预设原始表项进行简化处理;
将简化处理后的表项作为所述第一表项存入所述TCAM表中;
当所述预设初始表项为多条,则将第一条所述预设初始表项作为所述第二表项存入所述DDR映射表,并将其他所述预设初始表项作为所述第三表项存入所述DDR共享表;
当所述预设初始表项为一条,则将所述预设初始表项作为所述第二表项存入所述DDR映射表。
优选地,所述查询模块,具体用于:
当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,判断所述TCAM表中的第一表项中的数据与所述DDR映射表中的第二表项的数据是否一致;
若一致,则查询到所述网络数据并退出查询;
若不一致,则基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据对所述网络数据进行匹配。
优选地,所述查询模块,具体用于:
当所述DDR映射表中的第二表项的数据与所述网络数据匹配时,则查询到所述网络数据并退出查询;
当所述DDR映射表中的第二表项的数据与所述网络数据不匹配时,则根据所述DDR共享表的第三表项的数据对所述网络数据进行匹配。
优选地,所述查询模块,具体用于:
判断所述DDR共享表的第三表项的数据是否与所述网络数据匹配,直到所述DDR共享表中的第三表项的数据与所述网络数据全部匹配完毕。
与现有技术相比,本发明具备以下有益效果:
本发明公开了一种数据查询方法和设备,应用于包括TCAM表、DDR映射表及DDR共享表的计算机系统中,该方法包括:接收网络数据,当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据进行查询,所述第一表项的行数与所述第二表项的行数相同,当所述网络中的数据与所述TCAM表中的第一表项中的数据不匹配时,则未查询到所述网络数据,并退出查询,从而达到降低查询成本,让同样大小的TCAM支持更多的表项,提高了用户的使用体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提出的一种数据查询方法的流程示意图;
图2示出了本发明另一实施例提出的一种数据查询方法的流程示意图;
图3示出了本发明实施例提出的一种数据查询设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如背景技术中所述,现有的大容量高速数据筛选查询方法主要是通过TCAM进行处理,TCAM表内的所有表项都可以并行访问,查询速度快,但其可用掩码、值模式、LOU表项有限,如果访问列表很大或需要很多第四层运算,TCAM表和寄存器很可能会溢出,且TCAM成本较高,存储空间的单位价格高于普通的静态随机存取存储器,而且能耗也远远高于静态随机存取存储器。
因此,本申请提出了一种查询方法和设备,用以解决现有技术中利用TCAM表进行查询时成本过高的技术问题。
如图1所示为本发明实施例提出的一种数据查询方法的流程示意图,该方法包括以下步骤:
步骤S101、接收网络数据。
步骤S102、当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据进行查询,所述第一表项的行数与所述第二表项的行数相同。
具体的,本申请方案中接收到需要查询的网络数据时,需要先将网络中的数据与TCAM表中的第一表项中的数据进行匹配,当匹配上时,再基于DDR映射表中的第二表项的数据与DDR共享表的第三表项的数据进行查询,需要说明的是,该第一表项的行数与第二表项的行数相同。
为了更准确的对网络数据进行查询,在本申请实施例中,在接收网络数据之前,还包括:
基于预设初始表项的长度将预设原始表项进行简化处理;
将简化处理后的表项作为所述第一表项存入所述TCAM表中;
当所述预设初始表项为多条,则将第一条所述预设初始表项作为所述第二表项存入所述DDR映射表,并将其他所述预设初始表项作为所述第三表项存入所述DDR共享表;
当所述预设初始表项为一条,则将所述预设初始表项作为所述第二表项存入所述DDR映射表。
具体的,首先将预设原始表项进行简化处理,可根据预设初始表项的长度将预设原始表项进行简化,以使相同大小的TCAM能支持更多数量的表项,并将简化处理后的表项作为第一表项存入TCAM表中,如果预设初始表项为多条表项,则将第一条预设初始表项作为第二表项存入DDR映射表中,将其他预设初始表项作为第三表项存入DDR共享表中,如果预设初始表项为为一条表项,则将预设初始表项作为第二表项存入DDR映射表中。
需要说明的是,本领域技术人员可根据实际情况选择不同的方法将预设原始表项进行简化处理,这并不影响本申请的保护范围。
为了提高数据查询的效率,在本申请实施例中,当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据进行查询,具体为:
当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,判断所述TCAM表中的第一表项中的数据与所述DDR映射表中的第二表项的数据是否一致;
若一致,则查询到所述网络数据并退出查询;
若不一致,则基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据对所述网络数据进行匹配。
具体的,在查询网络数据时,先将网络数据中的数据与第一表项中的数据进行匹配,若匹配,则判断第一表项中的数据与DDR映射表中第二表项中的数据是否一致,若一致,则确定查询到对应的网络数据,并退出结束查询,若不一致,则根据第二表项的数据和DDR共享表中的第三表项的数据对网络数据进行查询匹配。
为了更准确的根据第二表项的数据和第三表项的数据对网络数据进行查询,在本申请实施例中,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据对所述网络数据进行匹配,具体为:
当所述DDR映射表中的第二表项的数据与所述网络数据匹配时,则查询到所述网络数据并退出查询;
当所述DDR映射表中的第二表项的数据与所述网络数据不匹配时,则根据所述DDR共享表的第三表项的数据对所述网络数据进行匹配。
具体的,首先将网络数据与第二表项中的数据进行匹配,若匹配,则确定查询到网络数据并退出结束查询,若不匹配,则将第三表项中的数据对网络数据进行匹配。
为了在第三表项中查询网络数据,在本申请实施例中,根据所述DDR共享表的第三表项的数据对所述网络数据进行匹配,具体为:
判断所述DDR共享表的第三表项的数据是否与所述网络数据匹配,直到所述DDR共享表中的第三表项的数据与所述网络数据全部匹配完毕。
具体的,判断第三表项的数据是否与网络数据匹配,且需要将第三表项的数据与网络数据进行全部匹配。
步骤S103、当所述网络中的数据与所述TCAM表中的第一表项中的数据不匹配时,则未查询到所述网络数据,并退出查询。
本发明公开了一种数据查询方法,应用于包括TCAM表、DDR映射表及DDR共享表的计算机系统中,该方法包括:接收网络数据,当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据进行查询,所述第一表项的行数与所述第二表项的行数相同,当所述网络中的数据与所述TCAM表中的第一表项中的数据不匹配时,则未查询到所述网络数据,并退出查询,从而达到降低查询成本,让同样大小的TCAM支持更多的表项,提高了用户的使用体验。
请参阅图2,本申请另一实施例提供一种数据查询方法,应用于包括TCAM表、DDR映射表及DDR共享表的计算机系统中,所述方法包括:
步骤S201、对预设原始表项进行简化处理。
需要先说明的是,应用的系统包含TCAM表、DDR映射表和DDR共享表,而TCAM表的行数与DDR映射表的行数相同,各表项也是一一对应关系,但TCAM表中的表项除了与DDR映射表中对应的表项外,还存在其他表项,当TCAM表命中时,需要确认是否需要继续查询DDR表,DDR映射表则继续指示是否要访问后续链表(位于DDR共享表)从而精准命中每个表项。DDR映射表和DDR共享表的表项数据结构完全相同。
首先根据预设初始表项的长度将预设原始表项进行简化,并将简化后的表项作为第一表项依次填充TCAM,对应的预设原始表项填入对应的DDR映射表,若对应的预设原始表项不止一条,则将第二条表项以及更多表项依次存入DDR共享表中,其中,DDR映射表中保存有更多预设原始表项指示,以及指向该条DDR共享表的链接,而DDR共享表中保存有下一条DDR共享表的链接,TCAM表中的每一项对应DDR映射表中的每一项。如果一条简化表项和原始表项相同,那么只需要查询TCAM表;如果不是,则需要到DDR映射表中查询是否真实命中;如果简化表项对应多个原始表项,当TCAM表命中后,需要查询DDR映射表和DDR共享表,判断是否真实命中。
其中,IPV6、字符串等表项因为长度较长,表项将阶段存储在TCAM中,这样多个表项将对应同一条TCAM,将这些表项存储在对应的DDR映射表中。
步骤S202、数据查询。
具体的,先获取网络数据,同时,网络数据进入TCAM表中,若TCAM表中不匹配数据则表示不命中没有查询到数据,退出结束查询。
若TCAM表中匹配数据,根据指示确定是否继续查询DDR映射表(TCAM简化表项同预设原始表项相同,不需要查询DDR映射表),若指示不需要查询DDR映射表,则退出结束查询。
若需要查询DDR映射表,则将DDR映射表保存的原始数据同对应位置的网络数据做比较,如果数据匹配,则表示命中查询到结果,然后退出结束查询,如果不匹配,则直接查询下一条DDR共享表中的原始数据,遍历DDR共享表链接的后继表项,在DDR共享表中查询到匹配的数据时,退出结束查询,没有查询到匹配的数据时,表示未查询结果,也退出结束查询。
也即是说,网络数据处理后进入TCAM表,TCAM表快速匹配,筛选出符合TCAM表的数据,此时数据量已经大大减少。如果需要进一步查询DDR映射表,则查询DDR映射表并确认是否匹配预设原始表项,如果匹配结束流程。如果不匹配,则继续查询DDR共享表,确认是否匹配其他预设原始表项,直到该TCAM表对应的原始表项全部查询完毕。
步骤S203、反馈查询结果。
具体的,将查询的结果,匹配的数据或未匹配到相应数据反馈给用户。
本方案将TCAM进行简化处理,使得相同大小的TCAM能支持更多数量的表项,从而使支持大容量表项得以实现,而且,TCAM的查询速度较快,即使只是一部分进行匹配,也能实现快速的预筛,提高整个系统的性能,可将此时的TCAM看作一个高速的预筛器,另外,使用快速DDR或其他方式存储有相同字段的表项,虽然速度降低,但因为数量不多,牺牲少量的效率换来支持大容量表项,从系统的角度看,整体效率得到大大提升。
为了达到以上技术目的,本申请实施例还提出了一种数据查询设备,应用于包括TCAM表、DDR映射表及DDR共享表的计算机系统中,如图3所示,所述设备包括:
接收模块301,用于接收网络数据;
查询模块302,用于当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据进行查询,所述第一表项的行数与所述第二表项的行数相同;
结束模块303,用于当所述网络中的数据与所述TCAM表中的第一表项中的数据不匹配时,则未查询到所述网络数据,并退出查询。
在具体的应用场景中,所述查询模块302,还用于:
基于预设初始表项的长度将预设原始表项进行简化处理;
将简化处理后的表项作为所述第一表项存入所述TCAM表中;
当所述预设初始表项为多条,则将第一条所述预设初始表项作为所述第二表项存入所述DDR映射表,并将其他所述预设初始表项作为所述第三表项存入所述DDR共享表;
当所述预设初始表项为一条,则将所述预设初始表项作为所述第二表项存入所述DDR映射表。
在具体的应用场景中,所述查询模块302,具体用于:
当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,判断所述TCAM表中的第一表项中的数据与所述DDR映射表中的第二表项的数据是否一致;
若一致,则查询到所述网络数据并退出查询;
若不一致,则基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据对所述网络数据进行匹配。
在具体的应用场景中,所述查询模块302,具体用于:
当所述DDR映射表中的第二表项的数据与所述网络数据匹配时,则查询到所述网络数据并退出查询;
当所述DDR映射表中的第二表项的数据与所述网络数据不匹配时,则根据所述DDR共享表的第三表项的数据对所述网络数据进行匹配。
在具体的应用场景中,所述查询模块302,具体用于:
判断所述DDR共享表的第三表项的数据是否与所述网络数据匹配,直到所述DDR共享表中的第三表项的数据与所述网络数据全部匹配完毕。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解装置中的模块可以按照实施场景描述分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种数据查询方法,应用于包括TCAM表、DDR映射表及DDR共享表的计算机系统中,其特征在于,所述方法包括:
接收网络数据;
当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据进行查询,所述第一表项的行数与所述第二表项的行数相同;
当所述网络中的数据与所述TCAM表中的第一表项中的数据不匹配时,则未查询到所述网络数据,并退出查询;
其中,在接收网络数据之前,还包括:
基于预设初始表项的长度将预设原始表项进行简化处理,将简化处理后的表项作为所述第一表项存入所述TCAM表中。
2.如权利要求1所述的方法,其特征在于,还包括:
当所述预设初始表项为多条,则将第一条所述预设初始表项作为所述第二表项存入所述DDR映射表,并将其他所述预设初始表项作为所述第三表项存入所述DDR共享表;
当所述预设初始表项为一条,则将所述预设初始表项作为所述第二表项存入所述DDR映射表。
3.如权利要求2所述的方法,其特征在于,当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据进行查询,具体为:
当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,判断所述TCAM表中的第一表项中的数据与所述DDR映射表中的第二表项的数据是否一致;
若一致,则查询到所述网络数据并退出查询;
若不一致,则基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据对所述网络数据进行匹配。
4.如权利要求3所述的方法,其特征在于,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据对所述网络数据进行匹配,具体为:
当所述DDR映射表中的第二表项的数据与所述网络数据匹配时,则查询到所述网络数据并退出查询;
当所述DDR映射表中的第二表项的数据与所述网络数据不匹配时,则根据所述DDR共享表的第三表项的数据对所述网络数据进行匹配。
5.如权利要求4所述的方法,其特征在于,根据所述DDR共享表的第三表项的数据对所述网络数据进行匹配,具体为:
判断所述DDR共享表的第三表项的数据是否与所述网络数据匹配,直到所述DDR共享表中的第三表项的数据与所述网络数据全部匹配完毕。
6.一种数据查询设备,应用于包括TCAM表、DDR映射表及DDR共享表的计算机系统中,其特征在于,包括:
接收模块,用于在接收网络数据之前,基于预设初始表项的长度将预设原始表项进行简化处理,将简化处理后的表项作为第一表项存入所述TCAM表中;
查询模块,用于当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据进行查询,所述第一表项的行数与所述第二表项的行数相同;
结束模块,用于当所述网络中的数据与所述TCAM表中的第一表项中的数据不匹配时,则未查询到所述网络数据,并退出查询。
7.如权利要求6所述的设备,其特征在于,所述查询模块,还用于:
当所述预设初始表项为多条,则将第一条所述预设初始表项作为所述第二表项存入所述DDR映射表,并将其他所述预设初始表项作为所述第三表项存入所述DDR共享表。
8.如权利要求7所述的设备,其特征在于,所述查询模块,具体用于:
当所述网络数据中的数据与所述TCAM表中的第一表项中的数据匹配时,判断所述TCAM表中的第一表项中的数据与所述DDR映射表中的第二表项的数据是否一致;
若一致,则查询到所述网络数据并退出查询;
若不一致,则基于所述DDR映射表中的第二表项的数据与所述DDR共享表的第三表项的数据对所述网络数据进行匹配。
9.如权利要求8所述的设备,其特征在于,所述查询模块,具体用于:
当所述DDR映射表中的第二表项的数据与所述网络数据匹配时,则查询到所述网络数据并退出查询;
当所述DDR映射表中的第二表项的数据与所述网络数据不匹配时,则根据所述DDR共享表的第三表项的数据对所述网络数据进行匹配。
10.如权利要求9所述的设备,其特征在于,所述查询模块,具体用于:
判断所述DDR共享表的第三表项的数据是否与所述网络数据匹配,直到所述DDR共享表中的第三表项的数据与所述网络数据全部匹配完毕。
CN202011622194.0A 2020-12-31 2020-12-31 一种数据查询方法和设备 Active CN112650452B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011622194.0A CN112650452B (zh) 2020-12-31 2020-12-31 一种数据查询方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011622194.0A CN112650452B (zh) 2020-12-31 2020-12-31 一种数据查询方法和设备

Publications (2)

Publication Number Publication Date
CN112650452A CN112650452A (zh) 2021-04-13
CN112650452B true CN112650452B (zh) 2021-11-26

Family

ID=75366835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011622194.0A Active CN112650452B (zh) 2020-12-31 2020-12-31 一种数据查询方法和设备

Country Status (1)

Country Link
CN (1) CN112650452B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116055191B (zh) * 2023-02-02 2023-09-29 成都卓讯智安科技有限公司 一种网络入侵检测方法、装置、电子设备和存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035060A (zh) * 2006-03-08 2007-09-12 中兴通讯股份有限公司 一种三重内容可寻址存储器报文分类的统一处理方法
CN100546257C (zh) * 2006-08-10 2009-09-30 华为技术有限公司 一种维护三态内容可寻址存储器表项的方法和系统
CN101478482B (zh) * 2009-01-08 2011-04-20 中国人民解放军信息工程大学 报文分类中的非规则匹配方法、装置和系统
CN102035727B (zh) * 2010-11-17 2013-01-09 杭州华三通信技术有限公司 一种路由的处理方法和设备
CN102402611B (zh) * 2011-12-12 2013-07-24 盛科网络(苏州)有限公司 一种用tcam实现关键字快速查找并读表的方法
CN103023782B (zh) * 2012-11-22 2016-05-04 北京星网锐捷网络技术有限公司 一种访问三态内容寻址存储器的方法及装置
CN107818151B (zh) * 2017-10-24 2020-12-11 湖南恒茂高科股份有限公司 数据查找方法、装置、计算机设备和存储介质
CN107967219B (zh) * 2017-11-27 2021-08-06 北京理工大学 一种基于tcam的大规模字符串高速查找方法
CN109067585B (zh) * 2018-08-15 2021-11-23 杭州迪普科技股份有限公司 一种查询acl表项下发方法及装置

Also Published As

Publication number Publication date
CN112650452A (zh) 2021-04-13

Similar Documents

Publication Publication Date Title
US8295286B2 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
US9424366B1 (en) Reducing power consumption in ternary content addressable memory (TCAM)
US7986696B1 (en) Method and apparatus for longest prefix matching
US8780926B2 (en) Updating prefix-compressed tries for IP route lookup
Bando et al. Flashtrie: Hash-based prefix-compressed trie for IP route lookup beyond 100Gbps
US20120136846A1 (en) Methods of hashing for networks and systems thereof
US7694068B1 (en) Re-entrant processing in a content addressable memory
US9049157B1 (en) Method and device for improving scalability of longest prefix match
US8180958B2 (en) Key selection device and process for content-addressable memory
CN101620623A (zh) 内容可寻址存储器表项管理方法和装置
US6378042B1 (en) Caching associative memory
CN112650452B (zh) 一种数据查询方法和设备
CN104239337B (zh) 基于tcam的查表处理方法及装置
US6917954B2 (en) Load balancing in IP address lookup
CN109981464A (zh) 一种在fpga中实现的tcam电路结构及其匹配方法
US20060190679A1 (en) Content addressable memory supporting multiple width searches
CN104253754A (zh) 一种acl快速匹配的方法和设备
US11899985B1 (en) Virtual modules in TCAM
CN107707479B (zh) 五元组规则的查找方法及装置
Huang et al. Approximately-perfect hashing: Improving network throughput through efficient off-chip routing table lookup
Lee et al. Improving bloom filter forwarding architectures
US20180032253A1 (en) Content addressable memory system
Baer et al. Memory hierarchy design for a multiprocessor look-up engine
US20050135135A1 (en) Content addressable memory for CIDR address searches
CN111444218B (zh) 组合规则的匹配方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant