LOOKUP3哈希算法的处理电路、芯片和终端制造技术

技术编号:31980899 阅读:13 留言:0更新日期:2022-01-20 01:37
本申请实施例涉及一种LOOKUP3哈希算法的处理电路、芯片和终端,LOOKUP3哈希算法的处理电路,包括:第一混合模块,用于当输入数据的字节长度大于n时,根据输入数据进行对应的第一组合逻辑运算;截取模块,用于截取去除输入数据中的n个字节;第二混合模块,用于当输入数据的字节长度小于或等于n时,根据输入数据进行对应的第二组合逻辑运算;结果确定模块,用于根据接收到的运算结果进行对应的第三组合逻辑运算;其中,第一混合模块和结果确定模块中的至少一个为目标运算模块,目标运算模块包括i级运算单元和i

【技术实现步骤摘要】
LOOKUP3哈希算法的处理电路、芯片和终端


[0001]本申请实施例涉及芯片
,特别是涉及一种LOOKUP3哈希算法的处理电路、芯片和终端。

技术介绍

[0002]散列(Hash)算法把固定或任意长度的输入变换成固定长度的输出,该输出就是散列值。Hash算法具有数据的查询效率高以及数据传递的安全性高的特点,因此,Hash算法被广泛地应用在各种终端中。例如,LOOKUP3(查找3)哈希算法能够根据输入数据计算对应的内存地址,并具有良好的雪崩性,即,更改输入数据的任何一位,就将引起输出结果中一半以上的位发生变化。因此,LOOKUP3哈希算法的均衡效果也优于其他的Hash算法,从而可以应用于存储缓存系统,以对数据进行均衡地存储,并能够对数据或对象进行快速地查找和读取。但是,随着通信技术的不断发展,现有的LOOKUP3哈希算法的处理速度已经无法满足目前的通信需求。

技术实现思路

[0003]本申请实施例提供了一种LOOKUP3哈希算法的处理电路、芯片和终端,可以优化哈希算法的处理速度。
[0004]一种LOOKUP3哈希算法的处理电路,包括:
[0005]第一混合模块,用于当输入数据的字节长度大于n时,根据所述输入数据进行对应的第一组合逻辑运算,以获取n字节的运算结果,其中,所述n为正整数;
[0006]截取模块,与所述第一混合模块连接,用于截取去除所述输入数据中的n个字节,并将截取后剩余的数据作为新的所述输入数据;
[0007]第二混合模块,用于当所述输入数据的字节长度小于或等于n时,根据所述输入数据进行对应的第二组合逻辑运算,以获取n字节的运算结果;
[0008]结果确定模块,与所述第二混合模块连接,用于接收所述第二混合模块的运算结果,并根据接收到的运算结果进行对应的第三组合逻辑运算,以获取n字节的LOOKUP3哈希算法的处理结果;
[0009]其中,所述第一混合模块和所述结果确定模块中的至少一个为目标运算模块,所述目标运算模块包括i级运算单元和i

1个触发器组,i级所述运算单元用于串行执行对应的组合逻辑运算,第j

1个所述触发器组用于对第j

1级所述运算单元的运算结果进行锁存,并将锁存的运算结果输出至第j级所述运算单元,i和j均为正整数,且1<j≤i<n。
[0010]一种芯片,包括如上述的LOOKUP3哈希算法的处理电路。
[0011]一种终端,包括如上述的芯片。
[0012]上述LOOKUP3哈希算法的处理电路,通过硬件结构实现哈希算法的处理过程,基于LOOKUP3哈希算法的处理电路内部实际连接的电路结构数据,无需受控于外部的指令信号或控制信号,因此能够大大提升数据处理的速度。而且,触发器组能够基于确定的时钟信号
对各运算单元的运算结果进行锁存,以减小处理逻辑链路上的总延迟。相应地,由于总延迟减小,就可以提升处理电路的综合频率,从而有效提升LOOKUP3哈希算法的处理电路的处理速度。即,本实施例提供了一种处理速度较快的LOOKUP3哈希算法的处理电路。
附图说明
[0013]为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1为一实施例的LOOKUP3哈希算法的处理电路的结构示意图之一;
[0015]图2为一实施例的运算单元与触发器组的连接关系示意图之一;
[0016]图3为一实施例的运算单元与触发器组的连接关系示意图之二;
[0017]图4为一实施例的第一混合模块的结构示意图;
[0018]图5为一实施例的第一混合模块和触发器组的连接示意图之一;
[0019]图6为一实施例的第一混合模块和触发器组的连接示意图之二;
[0020]图7为一实施例的结果确定模块的结构示意图;
[0021]图8为一实施例的结果确定模块和触发器组的连接示意图之一;
[0022]图9为一实施例的结果确定模块和触发器组的连接示意图之二;
[0023]图10为一实施例的LOOKUP3哈希算法的处理电路的结构示意图之二。
[0024]元件标号说明:
[0025]第一混合模块:100;运算单元:110;结果确定模块:200;截取模块:300;第二混合模块:400;函数调用模块:500;触发器组:600;触发器:610。
具体实施方式
[0026]为了便于理解本申请实施例,下面将参照相关附图对本申请实施例进行更全面的描述。附图中给出了本申请实施例的首选实施例。但是,本申请实施例可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本申请实施例的公开内容更加透彻全面。
[0027]除非另有定义,本文所使用的所有的技术和科学术语与属于本申请实施例的
的技术人员通常理解的含义相同。本文中在本申请实施例的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请实施例。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0028]可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一混合模块称为第二混合模块,且类似地,可将第二混合模块称为第一混合模块。第一混合模块和第二混合模块两者都是混合模块,但其不是同一混合模块。
[0029]此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者
隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。在本申请的描述中,“若干”的含义是至少一个,例如一个,两个等,除非另有明确具体的限定。
[0030]本实施例提供了一种LOOKUP3哈希算法的处理电路,如
技术介绍
部分的记载,本实施例的采用LOOKUP3哈希算法,可以根据输入的输入数据(key)确定对应的内存地址,从而可以用于在内存中缓存数据,以实现缓存数据的高速读写。
[0031]其中,一示例性地,输入数据可以是来自外部器件的原始数据。原始数据例如为报文数据,报文数据可以为IP报文或隧道报文。IP报文具体可以为但不限于二元组、三元组、四元组、五元组和七元组等。其中,七元组包括源IP地址、目的IP地址、协议号、源端口、目的端口,服务类型以及接口索引。隧道报文则包括报文的外层和内层的上述字段。另一示例性地,输入数据还可以是中间数据,中间数据可以理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种LOOKUP3哈希算法的处理电路,其特征在于,包括:第一混合模块,用于当输入数据的字节长度大于n时,根据所述输入数据进行对应的第一组合逻辑运算,以获取n字节的运算结果,其中,所述n为正整数;截取模块,与所述第一混合模块连接,用于截取去除所述输入数据中的n个字节,并将截取后剩余的数据作为新的所述输入数据;第二混合模块,用于当所述输入数据的字节长度小于或等于n时,根据所述输入数据进行对应的第二组合逻辑运算,以获取n字节的运算结果;结果确定模块,与所述第二混合模块连接,用于接收所述第二混合模块的运算结果,并根据接收到的运算结果进行对应的第三组合逻辑运算,以获取n字节的LOOKUP3哈希算法的处理结果;其中,所述第一混合模块和所述结果确定模块中的至少一个为目标运算模块,所述目标运算模块包括i级运算单元和i

1个触发器组,i级所述运算单元用于串行执行对应的组合逻辑运算,第j

1个所述触发器组用于对第j

1级所述运算单元的运算结果进行锁存,并将锁存的运算结果输出至第j级所述运算单元,i和j均为正整数,且1<j≤i<n。2.根据权利要求1所述的处理电路,其特征在于,所述运算单元的运算结果包括三个参数的参数值,所述触发器组包括三个触发器,三个所述触发器分别用于一一对应对三个所述参数值进行锁存。3.根据权利要求2所述的处理电路,其特征在于,各所述运算单元分别用于对全部所述参数进行至少一次运算。4.根据权利要求3所述的处理电路,其特征在于,第j

1级所述运算单元最后执行的逻辑运算所运算的参数与第j级所述运算单元最先执行的逻辑运算所运算的参数不同。5.根据权利要求2至4任一项所述的处理电路,其特征在于,所述第一混合模块为所述目标运算模块,所述第一组合逻辑运算包括循环执行的减法运算、移位异或运算和加法运算。6.根据权利要求5所述的处理电路,其特征在于,三个所述参数分别记为a、b和c,所述第一混合模块用于分别接收三个所述参数当前的参数值,并根据第一运算公式和当前的三个所述参数值进行所述第一组合逻辑运算,以分别获取三个所述参数运算后的参数值作为所述第一混合模块的运算结果,所述第一运算公式包括:a=a

c;a=a^rot(c,4);c=c+b;b=b

a;b=b^rot(a,6);a=a+c;c=c

b;c=c^rot(b,8);b=b+a;a=a

c;a=a^rot(c,16);c=c+b;b=b

a;b=b^rot(a,19);a=a+c;c=c

b;c=c^rot(b,4);b=b+a。7.根据权利要求6所述的处理电路,其特征在于,所述第一混合模块包括级联的两个所述运算单元,其中,第一级所述运算单元用于获取三个所述参数当前的参数值,对当前的所述参数值进行a=a

c;a=a^rot(c,4);c=c+b;b=b

a;b=b^rot(a,6);a=a+c;c=c

b;c=c^rot(b,8);b=b+a的组合运算操作,并将运算结果传输至第一个所述触发器组进行锁存;第二级所述运算单元用于从第一个所述触发器组获取三个所述参数值,对获取到的所述参数值进行a=a

c;a=a^rot(c,16);c=c+b;b=b

a;b=b^rot(a,19);a=a+c;c=c

b;c=c^rot(b,4);b=b+a的组合运算操作,第二级所述运算单元运算后的参数值作为所述第
一混合模块的运算结果。8.根据权利要求6所述的处理电路,其特征在于,所述第一混合模块包括级联的四个所述运算单元,其中,第一级所述运算单元用于获取三个所述参数当前的参数值,对当前的所述参数值进行a=a

c;a=a^rot(c,4);c=c+b;b=b

a;b=b^rot(a,6)的组合运算操作,并将运算结果传输至第一个所述触发器组进行锁存;第二级所述运算单元用于从第一个所述触发器组获取三个所述参数值,对获取到的所述参数值进行a=a+c;c=c

b;c=c^rot(b,8);b=b+a的组合运算操作,并将运算结果传输至第二个所述触发器组进行锁存;第三级所述运算单元用于从第二个所述触发器...

【专利技术属性】
技术研发人员:王增丽苑志刚
申请(专利权)人:哲库科技北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1