[发明专利]多链式哈希栈的硬件开销优化方法及系统有效
申请号: | 201910559199.4 | 申请日: | 2019-06-26 |
公开(公告)号: | CN110348250B | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 陈李维;许奇臻;李锦峰;史岗;孟丹 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/72 | 分类号: | G06F21/72 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 马瑞 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 链式 哈希栈 硬件 开销 优化 方法 系统 | ||
1.一种多链式哈希栈的硬件开销优化方法,其特征在于,包括:
在硬件上添加发射队列;其中,所述发射队列包括顺序排列的多个项目,每一个所述项目代表一条链式哈希栈,每一条所述链式哈希栈用于存储一次哈希运算的输入及输出;
当哈希运算的输入送入所述发射队列中对应的所述项目时,将所述项目置为排队计算状态;
当哈希模块结束计算状态后,查询所述发射队列中是否还存在处于所述排队计算状态的所述项目;若存在,则所述哈希模块根据排队顺序计算下一个所述项目中的所述哈希运算;
其中,每一个所述项目包括:queue位、callret位、ret_addr位、old_hash位和new_hash位;
所述queue位用于指示所述项目是否处于所述排队计算状态;
所述callret位用于指示所述项目中所述哈希运算的类型,所述哈希运算的类型包括哈希值更新运算或者哈希值校验运算;
所述ret_addr位用于存储返回地址;
所述old_hash位用于存储原始哈希值;
所述new_hash位用于存储对所述原始哈希值进行所述哈希值更新运算后获得的新的哈希值;
所述在硬件上添加发射队列之后,还包括:若全部的所述项目的哈希运算的类型为哈希值更新运算,或者全部的所述项目的哈希运算的类型为哈希值校验运算,则与所述哈希运算的类型相同的后续哈希运算需等待最早进入排队项目的哈希运算完成后进入所述发射队列;和/或,
若所述哈希模块正在进行所述哈希值校验运算,且所述后续哈希运算的类型为哈希值更新运算,则所述后续哈希运算需等待所述哈希值校验运算结束后进入所述发射队列。
2.根据权利要求1所述的多链式哈希栈的硬件开销优化方法,其特征在于,所述发射队列包括:head指针和calculating指针;
所述head指针用于指向下一次所述哈希运算所要存储的一个所述项目;所述calculating指针用于指向当前正在进行所述哈希运算的一个所述项目。
3.根据权利要求1所述的多链式哈希栈的硬件开销优化方法,其特征在于,所述当哈希运算的输入送入所述发射队列中对应的所述项目时,将所述项目置为排队计算状态,包括:
将函数头部的所述哈希值更新运算的输入送入所述发射队列中的一个所述项目中,并将所述项目的queue位置为所述项目处于所述排队计算状态的值,不停顿流水线继续执行;
在所述哈希值更新运算结束后,将获得的新的哈希值保存至所述new_hash位中。
4.根据权利要求1所述的多链式哈希栈的硬件开销优化方法,其特征在于,所述在硬件上添加发射队列之后,还包括:
在所述哈希模块进行函数尾部的所述哈希值校验运算时,若所述callret位指示所述项目进行哈希运算的类型为所述哈希值更新运算,则匹配所述链式哈希栈中所述返回地址及哈希值与所述发射队列中存储的输入是否相同;
若相同,则将所述queue位置为指示所述项目不处于所述排队计算状态的值,并不排队计算所述项目,将所述old_hash位中的值赋给所述new_hash位;若不同,则抛出异常;
若所述callret位指示所述项目进行哈希运算的类型为所述哈希值校验运算,则将待校验的哈希运算的输入送入所述发射队列中对应的所述项目时,将所述项目置为排队计算状态,包括:
将函数尾部的所述哈希值校验运算的输入送入所述发射队列中的一个所述项目中,并将所述项目的queue位置为所述项目处于所述排队计算状态的值,不停顿流水线继续执行;
在所述哈希值校验运算结束后,与所述项目的new_hash进行对比,如果相同,则用所述项目的old_hash更新new_hash,将所述项目的queue位置为0,其中,0代表不再排队计算;如果不同,则报错。
5.根据权利要求4所述的多链式哈希栈的硬件开销优化方法,其特征在于,所述若相同,则将所述queue位置为指示所述项目不处于所述排队计算状态的值,并不排队计算所述项目,将所述old_hash位中的值赋给所述new_hash位,还包括:
若所述哈希模块正在对所述项目进行计算,则终止所述哈希模块的计算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910559199.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于存储器内计算的处理器结构
- 下一篇:基于信任区的操作系统和方法