【技术实现步骤摘要】
哈希函数电路、芯片及通信设备
[0001]本专利技术实施例涉及芯片
,尤其涉及一种哈希函数电路、芯片及通信设备。
技术介绍
[0002]在网络数据处理的应用中,针对同一个客户端的会话请求,需要路由到同一台机器,以保证数据的一致性,在该路由过程中就需要借助哈希(Hash)算法来实现,哈希算法是把任意长度的输入,压缩变换成固定长度的输出,该输出称为哈希值,具体的,可以通过提取输入的网络数据包中的IP地址和端口地址等关键字段,进行哈希计算,得到哈希值,并将哈希至与目的地址对应保存,作为哈希变的地址查表,以实现负载均衡。近年来提出的奇异哈希(SpookyHash)算法可以实现更好的均衡效果,SpookyHash可以根据任意长度的输入,生成128位、64位和32位的哈希值。但是SpookyHash因为计算过程较复杂,因此并未在专用集成电路(Application Specific Integrated Circuit,ASIC)中进行硬件应用,因此实现SpookyHash的硬件应用是亟需解决的问题。
技术实现思路
[0003]本专利技术实施例提供哈希函数电路、芯片及通信设备,可以实现SpookyHash的硬件应用。
[0004]为了解决上述技术问题,本专利技术实施例是这样实现的:
[0005]第一方面,提供一种哈希函数电路,用于实现SpookyHash函数的运算,包括:
[0006]求余运算模块,用于根据输入的第一字段的字节数,对所述第一字段进行第一逻辑运算得到第二字段,并输出所述 ...
【技术保护点】
【技术特征摘要】
1.一种哈希函数电路,其特征在于,用于实现奇异哈希SpookyHash函数的运算,包括:求余运算模块,用于根据输入的第一字段的字节数,对所述第一字段进行第一逻辑运算得到第二字段,并输出所述第二字段,所述第一逻辑运算与所述第一字段的字节数对应,所述第一字段的字节数小于16字节;结束运算模块,用于对所述求余运算模块输出的所述第二字段进行多级第二逻辑运算,以得到目标哈希字段,所述第二逻辑运算为进行异或运算和左移运算之后,再将异或运算结果和左移运算结果进行加法运算的运算。2.根据权利要求1所述的哈希函数电路,其特征在于,所述哈希函数电路还包括:判断控制模块,用于在确定输入字段小于16字节时,将所述输入字段作为所述第一字段输入至所述求余运算模块。3.根据权利要求2所述的哈希函数电路,其特征在于,所述哈希函数实现电路还包括:混合运算模块;所述判断控制模块,还用于在确定所述输入字段大于或等于16字节时,将第三字段输入至所述混合运算模块,所述第三字段为所述输入字段的部分或全部字段;所述混合运算模块,用于针对所述第三字段进行至少一次多级第三逻辑运算,以得到目标运算字段,并将所述目标运算字段和所述第一字段输出至所述求余运算模块,所述第一字段为所述第三字段经过所述至少一次多级逻辑运算后的第一剩余字段;所述求余运算模块,具体用于根据所述混合运算模块输出的所述第一字段的字节数和所述目标运算字段,对所述第一字段,进行第一逻辑运算得到第二字段。4.根据权利要求2所述的哈希函数电路,其特征在于,所述判断控制模块,还用于在确定所述输入字段大于或等于16字节时,将所述输入字段作为所述第一字段输入至所述求余运算模块;所述求余运算模块,具体用于根据输入的所述第一字段的字节数和预设初始字段,对所述第一字段进行第一逻辑运算得到第二字段。5.根据权利要求3所述的哈希函数电路,其特征在于,所述判断控制模块,具体用于在确定所述输入字段小于32字节,且大于或等于16字节时,将所述输入字段与预设初始字段进行异或运算得到所述第三字段,并将所述第三字段输入至所述混合运算模块;所述混合运算模块,具体用于对所述第三字段的前32个字节进行一次多级第三逻辑运算,以得到所述目标运算字段,所述第一字段为所述第三字段中除前32个字节以外的字段。6.根据权利要求3所述的哈希函数电路,其特征在于,所述判断控制模块,具体用于在确定所述输入字段大于或等于32字节时,将所述输入字段作为所述第三字段输入至所述混合运算模块;所述混合运算模块,具体用于对所述第三字段的前32个字节,进行多级第三逻辑运算以得到第一运算字段,并将所述第三字段中除前32个字节以外的第二剩余字段输入至所述判断控制模块;所述判断控制模块,还用于:在确定所述第二剩余字段大于或等于32个字节时,将所述第二剩余字段与所述第一运算字段进行异或运算,并将异或运算的结果作为所述第三字段,再次输入至所述混合运算
模块;在确定所述第二剩余字段小于16个字节时,将所述第二剩余字段作为所述第一字段输入至所述求余运算模块,所述第一运算字段作为所述目标运算字段;在确定所述第二剩余字段小于32字节,且大于或等于16字节时,将所述第二剩余字段与所述第一运算字段进行异或运算,并将异或运算的结果作为所述第三字段,再次输入至所述混合运算模块;所述混合运算模块,具体用于对所述第三字段的前32个字节进行一次多级第三逻辑运算,以得到所述目标运算字段。7.根据权利要求3或4所述的哈希函数电路,其特征在于,所述求余运算模块的结构包括:16个逻辑运算支路,每个逻辑运算支路对应于0至15个字节数;所述求余运算模块,用于根据输入的第一字段的字节数,确定用于进行第一逻辑运算的目标支路。8.根据权利要求7所述的哈希函数电路,其特征在于,所述16个逻辑运算支路包括:对应于第一字节数的逻辑运算支路包括:左移单元和第一加法单元,所述左移单元用于对所述第一字段进行左移运算,将左移运算结果输出至所述第一加法单元,所述第一加法单元用于对所述左移运算结果和目标字段进行加法运算,以得到所述第二字段;所述第一字节数为以下字节数中的一种:2、3、5、6、7、10、11、13、14、15;对应于第二字节数的逻辑运算支路包括:第二加法单元,用于对所述第一字段和所述目标字段进行加法运算,以得到所述第二字段;所述第二字节数为以下字节数中的一种:1、4、8、9;字节数为0的逻辑运算支路包括:两个第一子支路,每个第一子支路中包括一个第三加法单元,所述两个第一子支路对应不同比特数据;所述第三加法单元用于对预设常数和所述目标字段进行加法运算,以得到所述第二字段;字节数为12的逻辑运算支路包括:两个第二子支路,每个第二子支路中包括一个第四加法单元,所述两个第二子支路对应不同比特数据;所述第四加法单元用于对所述第一字段和所述目标字段进行加法运算;其中,所述目标字段为目标运算字段或者预设初始字段。9.根据权利要求1至6任一项所述的哈希函数电路,其特征在于,所述结束运算模块,包括:11级第一逻辑单元;每级第一逻辑单元中包括:异或单元、左移单元和加法单元,每级第一逻辑单元中异或单元的输出端和左移单元的输出端,分别连接所述加法单元的不同输入端。10.根据权利要求9所述的哈希函数电路,其特征在于,4≤i≤8,第i级中异...
【专利技术属性】
技术研发人员:王增丽,
申请(专利权)人:OPPO广东移动通信有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。