本发明专利技术的实施例提供了一种数据扩容方法及可编程交换机,涉及数据扩容领域。该方法应用于可编程交换机,方法通过将布隆过滤器位图划分为n个子位图,并分别存储到n个匹配单元中,各个匹配单元依次判断待存储数据是否命中,实现了在可编程交换机中应用布隆过滤器并对数据的过滤,从而使得可编程交换机可以支持数百万甚至数千万的表项。并且该方法相对现有技术来讲还具有成本低、吞吐量高的特点。吞吐量高的特点。吞吐量高的特点。
【技术实现步骤摘要】
一种数据扩容方法及可编程交换机
[0001]本专利技术涉及数据扩容领域,具体而言,涉及一种数据扩容方法及可编程交换机。
技术介绍
[0002]可编程交换机作为一种新兴的技术,具有低延时、低功耗以及灵活性高的特点,但是由于可编程交换芯片的硬件资源有限,所支持的表项数有限,其远远不能满足大容量表项的需求。
[0003]现有技术往往采用将多台可编程交换机串联,不同可编程交换机配置不同表项的方式来提高其容量,但是,这种方法成本高,且吞吐量也只有单台可编程交换机的一半。
技术实现思路
[0004]本专利技术的目的在于提供了一种数据扩容方法及可编程交换机,其能够至少部分的解决上述问题。
[0005]为了实现上述目的,本专利技术实施例采用的技术方案如下:
[0006]一方面,一种数据扩容方法,应用于可编程交换机,所述可编程交换机包括第一处理器、第一存储器和可编程芯片,所述可编程芯片包括处理单元和n个匹配单元,所述处理单元分别与第一处理器、第一存储器以及n个所述匹配单元连接,所述n个匹配单元依次连接,n≥1,且n为自然数,所述第一处理器与所述第一存储器连接,所述方法包括:
[0007]所述第一处理器将原始名单发送至所述处理单元;
[0008]所述处理单元根据所述原始名单构建布隆过滤器位图,将所述布隆过滤器位图划分为n个子位图,并将n个所述子位图分别存储到n个所述匹配单元中;
[0009]n个所述匹配单元得到n个所述子位图;
[0010]所述处理单元接收待存储数据,并通过n个所述匹配单元的子位图依次判断所述待存储数据是否命中,若命中,则得到命中数据,并将所述命中数据存储至所述第一存储器,否则,将所述待存储数据丢弃。
[0011]可选的,所述将所述命中数据存储至所述第一存储器的步骤之后,所述方法还包括:
[0012]所述第一处理器将所述原始名单写入到数据结构中,生成原始名单结构表,并将所述命中数据与所述原始名单结构表进行匹配,若匹配成功,则得到精确数据,并将所述精确数据存储到所述第一存储器中,否则将所述命中数据丢弃。
[0013]可选的,所述处理单元接收待存储数据,并通过n个所述匹配单元判断所述待存储数据是否命中的步骤包括:
[0014]所述处理单元接收待存储数据,通过m个哈希函数对所述待存储数据进行计算,得到m个哈希值,并将m个哈希值发送至第一个匹配单元;
[0015]部分或全部所述匹配单元依次判断m个哈希值是否存在于对应的子位图中,若存在,则取出对应的位置值,若对应的位置值为1,则将所述哈希值的匹配结果置为1;
[0016]所述处理单元判断m个所述哈希值的匹配结果是否都为1;
[0017]若是,则判定所述待存储数据命中。
[0018]可选的,所述部分或全部所述匹配单元依次判断m个哈希值是否存在于对应的子位图中的步骤包括:
[0019]第一个匹配单元依次判断m个所述哈希值是否存在于第一个匹配单元的子位图中,并将不存在的所述哈希值发送至下一个匹配单元进行判断,直至n个匹配单元都判断完成或m个所述哈希值都存在于所述子位图中,则判断完成。
[0020]可选的,所述第一个匹配单元依次判断m个所述哈希值是否存在于第一个匹配单元的子位图中的步骤包括:
[0021]将m个所述哈希值分别减去得到m个计算值;
[0022]当所述计算值大于等于0且小于时,则判定所述计算值对应的所述哈希值存在于第一个匹配单元的子位图中;
[0023]其中,x为布隆过滤器位图的位数。
[0024]可选的,所述n个所述匹配单元得到n个所述子位图的步骤包括:
[0025]在n个所述匹配单元中分别设置一个缺省匹配表项,所述匹配单元根据所述缺省匹配表项进行处理动作后,得到所述子位图。
[0026]另一方面,一种可编程交换机,所述可编程交换机包括第一处理器、第一存储器和可编程芯片,所述可编程芯片包括处理单元和n个匹配单元,所述处理单元分别与第一处理器、第一存储器以及n个所述匹配单元连接,所述n个匹配单元依次连接,n≥1,且n为自然数,所述第一处理器与所述第一存储器连接;
[0027]所述第一处理器用于将原始名单发送至所述处理单元;
[0028]所述处理单元用于根据所述原始名单构建布隆过滤器位图,将所述布隆过滤器位图划分为n个子位图,并将n个所述子位图分别存储到n个匹配单元中;
[0029]n个所述匹配单元用于得到n个所述子位图;
[0030]所述处理单元还用于接收待存储数据,并通过n个所述匹配单元的子位图依次判断所述待存储数据是否命中,若命中,则得到命中数据,并将所述命中数据存储至所述第一存储器,否则,将所述待存储数据丢弃。
[0031]可选的,所述第一处理器还用于:
[0032]将所述原始名单写入到数据结构中,生成原始名单结构表,并将所述命中数据与所述原始名单结构表进行匹配,若匹配成功,得到精确数据,并将所述精确数据存储到所述第一存储器中,否则将所述命中数据丢弃。
[0033]可选的,所述数据结构包括hash表或树结构。
[0034]可选的,所述可编程交换机还包括第二处理器和第二存储器,所述第二处理器分别第一处理器、可编程芯片以及第二存储器连接;
[0035]所述第一处理器用于将原始名单发送至所述第二处理器;
[0036]所述可编程芯片用于将所述命中数据发送至所述第二处理器;
[0037]所述第二处理器用于将所述原始名单存储到数据结构中,生成原始名单结构表,
并将所述命中数据与所述原始名单结构表进行匹配,若匹配成功,得到精确数据,并将所述精确数据存储到所述第二存储器中,否则将所述命中数据丢弃。
[0038]相对于现有技术,本专利技术具有以下有益效果:
[0039]本申请提供了一种数据扩容方法及可编程交换机,该方法通过将布隆过滤器位图划分为n个子位图,并分别存储到n个匹配单元中,各个匹配单元依次判断待存储数据是否命中,实现了在可编程交换机中应用布隆过滤器并对数据的过滤,从而使得可编程交换机可以支持数百万甚至数千万的表项。并且该方法相对现有技术来讲还具有成本低、吞吐量高的特点。
附图说明
[0040]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0041]图1为本申请实施例提供的可编程交换机结构框图之一;
[0042]图2为本申请实施例提供的数据扩容方法流程图之一;
[0043]图3为本申请实施例提供的数据扩容方法流程图之二;
[0044]图4为本申请实施例提供的数据扩容方法流程图之三;
[0045]图5为本申请实施例提供的可编程交换机结构框图之二。
[本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种数据扩容方法,其特征在于,应用于可编程交换机,所述可编程交换机包括第一处理器、第一存储器和可编程芯片,所述可编程芯片包括处理单元和n个匹配单元,所述处理单元分别与第一处理器、第一存储器以及n个所述匹配单元连接,所述n个匹配单元依次连接,n≥1,且n为自然数,所述第一处理器与所述第一存储器连接,所述方法包括:所述第一处理器将原始名单发送至所述处理单元;所述处理单元根据所述原始名单构建布隆过滤器位图,将所述布隆过滤器位图划分为n个子位图,并将n个所述子位图分别存储到n个所述匹配单元中;n个所述匹配单元得到n个所述子位图;所述处理单元接收待存储数据,并通过n个所述匹配单元的子位图依次判断所述待存储数据是否命中,若命中,则得到命中数据,并将所述命中数据存储至所述第一存储器,否则,将所述待存储数据丢弃。2.根据权利要求1所述数据扩容方法,其特征在于,所述将所述命中数据存储至所述第一存储器的步骤之后,所述方法还包括:所述第一处理器将所述原始名单写入到数据结构中,生成原始名单结构表,并将所述命中数据与所述原始名单结构表进行匹配,若匹配成功,则得到精确数据,并将所述精确数据存储到所述第一存储器中,否则将所述命中数据丢弃。3.根据权利要求1所述的数据扩容方法,其特征在于,所述处理单元接收待存储数据,并通过n个所述匹配单元判断所述待存储数据是否命中的步骤包括:所述处理单元接收待存储数据,通过m个哈希函数对所述待存储数据进行计算,得到m个哈希值,并将m个哈希值发送至第一个匹配单元;部分或全部所述匹配单元依次判断m个哈希值是否存在于对应的子位图中,若存在,则取出对应的位置值,若对应的位置值为1,则将所述哈希值的匹配结果置为1;所述处理单元判断m个所述哈希值的匹配结果是否都为1;若是,则判定所述待存储数据命中。4.根据权利要求3所述的数据扩容方法,其特征在于,所述部分或全部所述匹配单元依次判断m个哈希值是否存在于对应的子位图中的步骤包括:第一个匹配单元依次判断m个所述哈希值是否存在于第一个匹配单元的子位图中,并将不存在的所述哈希值发送至下一个匹配单元进行判断,直至n个匹配单元都判断完成或m个所述哈希值都存在于所述子位图中,则判断完成。5.根据权利要求4所述的数据扩容方法,其特征在于,所述第一个匹配单元依次判断m个所述哈希值是否存在...
【专利技术属性】
技术研发人员:蔡自彬,
申请(专利权)人:北京知道创宇信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。