哈希值存储方法、装置及芯片制造方法及图纸

技术编号:8323567 阅读:248 留言:0更新日期:2013-02-14 01:26
本发明专利技术实施例公开了哈希值存储方法、装置及芯片,所述方法包括:计算文件中多个数据块的哈希值;选择所述多个数据块中每个数据块的哈希值对应的哈希子表;将所述每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述对应的哈希子表中。本发明专利技术实施例可以通过硬件实现同时计算并存储多个数据块的哈希值,因此当文件中的数据块数量较多时,可以加快哈希值的处理速度,提高哈希值的存储效率。

【技术实现步骤摘要】

本专利技术涉及数据存储
,特别涉及哈希值存储方法、装置及芯片
技术介绍
随着资讯信息更新速度的加快,以及网络科技的蓬勃发展,产生了大量需要存储的文件数据。为了节约存储空间,需要对文件数据进行压缩编码后再进行存储。现有技术中的一种压缩方式为,如果文件中存在两块内容相同的数据块,则可以获取其中一个数据块的位置和大小后,对另一个数据块进行替换。由于在查找两块内容相同的数据块时,将当前位置的数据块与已出现过的数据块逐一进行对比,以获取相同的数据块时,处理速度比较慢,因此现有技术中计算每个数据块的hash (哈希)值,通过比较数据块的hash值,查找相同的数据块,以提高查找效率。现有技术中通过建立hash表存储每个数据块的hash值,通常由计算机的中央处理器(Central Processing Unit, CPU)计算每个数据块的hash值,然后将计算的hash值和数据块在文件中的位置进行存储。由于CPU采用串行指令逐一计算并存储hash值,因此当文件中数据块的数量较多时,则执行速度比较慢,相应降低了 hash值的存储效率。
技术实现思路
本专利技术实施例提供哈希值存储方法、装置及芯片,以解决现有技术中哈希值存储效率不高的问题。为了解决上述技术问题,本专利技术实施例公开了如下技术方案第一方面,提供一种哈希值存储方法,所述方法包括计算文件中多个数据块的哈希值;选择所述多个数据块中每个数据块的哈希值对应的哈希子表;将所述每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述对应的哈希子表中。结合第一方面,在第一种可能的实现方式中,所述计算文件中多个数据块的哈希值,包括从所述文件中获取与设置的并行处理数一致的多个数据块;并行计算获取的所述多个数据块的哈希值。结合第一方面,或第一种可能的实现方式,在第二种可能的实现方式中,所述选择所述多个数据块中每个数据块的哈希值对应的哈希子表,包括对于每个数据块,比较所述数据块的哈希值与每个哈希子表存储的哈希值范围;根据比较结果,获得所述数据块的哈希值所属的哈希值范围对应的哈希子表,将获得的所述哈希子表确定为所述数据块的哈希值对应的哈希子表。结合第一方面,或第一种可能的实现方式,或第二种可能的实现方式,在第三种可能的实现方式中,所述将每个数据块的哈希值和所述数据块在所述文件中的位置信息存储4到所述对应的哈希子表中,包括当所述多个数据块中的至少两个数据块的哈希值对应同一个哈希子表时,按照预设方式将所述至少两个数据块中的每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表。结合第三种可能的实现方式,在第四种可能的实现方式中,所述按照预设方式将所述至少两个数据块中的每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表,包括按照所述至少两个数据块中每个数据块的优先级从高到低的顺序,将所述每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表;或者,按照随机选择的方式将所述至少两个数据块中的每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表。第二方面,提供一种哈希值存储装置,所述装置包括计算单元,用于计算文件中多个数据块的哈希值;选择单元,用于选择所述计算单元计算的所述多个数据块中每个数据块的哈希值对应的哈希子表;存储单元,用于将所述每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述选择单元选择的所述对应的哈希子表中。结合第二方面,在第一种可能的实现方式中,所述计算单元包括获取子单元,用于从所述文件中获取与设置的并行处理数一致的多个数据块;计算子单元,用于并行计算所述获取子单元获取的所述多个数据块的哈希值。结合第二方面,或第一种可能的实现方式,在第二种可能的实现方式中,所述选择单元包括比较子单元,用于对于每个数据块,比较所述数据块的哈希值与每个哈希子表存储的哈希值范围;获得子单元,用于根据所述比较子单元的比较结果,获得所述数据块的哈希值所属的哈希值范围对应的哈希子表,将获得的所述哈希子表确定为所述数据块的哈希值对应的哈希子表。结合第二方面,或第一种可能的实现方式,或第二种可能的实现方式,在第三种可能的实现方式中,所述存储单元,具体用于当所述多个数据块中的至少两个数据块的哈希值对应同一个哈希子表时,按照预设方式将所述至少两个数据块中的每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表。结合第三种可能的实现方式,在第四种可能的实现方式中,所述存储单元包括至少一个下述单元第一存储子单元,用于按照所述至少两个数据块中每个数据块的优先级从高到低的顺序,将所述每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表;第二存储子单元,用于按照随机选择的方式将所述至少两个数据块中的每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表。第三方面,提供一种芯片,所述芯片包括至少一个输入输出接口,至少一个随机5存储器RAM,和门级电路,其中,所述输入输出接口,用于接收文件,并将所述文件输入到所述门级电路;每个所述RAM,用于保存至少一个哈希子表;所述门级电路,用于计算所述文件中多个数据块的哈希值,选择所述多个数据块中每个数据块的哈希值对应的哈希子表,并将所述每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述保存所述对应的哈希子表的RAM中。结合第三方面,在第一种可能的实现方式中,所述门级电路,具体用于从所述文件中获取与设置的并行处理数一致的多个数据块,并行计算获取的所述多个数据块的哈希值,对于每个数据块,比较所述数据块的哈希值与每个哈希子表存储的哈希值范围,根据比较结果,获得所述数据块的哈希值所属的哈希值范围对应的哈希子表,将获得的所述哈希子表确定为所述数据块的哈希值对应的哈希子表。结合第三方面,或第一种可能的实现方式,在第二种可能的实现方式中,所述门级电路,具体用于当所述多个数据块中的至少两个数据块的哈希值对应同一个哈希子表时,按照预设方式将所述至少两个数据块中的每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表。结合第二种可能的实现方式,在第三种可能的实现方式中,所述门级电路,具体用于按照所述至少两个数据块中每个数据块的优先级从高到低的顺序,将所述每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表;或者,按照随机选择的方式将所述至少两个数据块中的每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表。本专利技术实施例中,计算文件中多个数据块的哈希值,选择多个数据块中每个数据块的哈希值对应的哈希子表,将每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述对应的哈希子表中。本专利技术实施例可以通过硬件实现同时计算并存储多个数据块的哈希值,因此当文件中的数据块数量较多时,可以加快哈希值的处理速度,提高哈希值的存储效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。本文档来自技高网...

【技术保护点】
一种哈希值存储方法,其特征在于,所述方法包括:计算文件中多个数据块的哈希值;选择所述多个数据块中每个数据块的哈希值对应的哈希子表;将所述每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述对应的哈希子表中。

【技术特征摘要】
1.一种哈希值存储方法,其特征在于,所述方法包括 计算文件中多个数据块的哈希值; 选择所述多个数据块中每个数据块的哈希值对应的哈希子表; 将所述每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述对应的哈希子表中。2.根据权利要求I所述的方法,其特征在于,所述计算文件中多个数据块的哈希值,包括 从所述文件中获取与设置的并行处理数一致的多个数据块; 并行计算获取的所述多个数据块的哈希值。3.根据权利要求I或2所述的方法,其特征在于,所述选择所述多个数据块中每个数据块的哈希值对应的哈希子表,包括 对于每个数据块,比较所述数据块的哈希值与每个哈希子表存储的哈希值范围;根据比较结果,获得所述数据块的哈希值所属的哈希值范围对应的哈希子表,将获得的所述哈希子表确定为所述数据块的哈希值对应的哈希子表。4.根据权利要求I至3任意一项所述的方法,其特征在于,所述将每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述对应的哈希子表中,包括 当所述多个数据块中的至少两个数据块的哈希值对应同一个哈希子表时,按照预设方式将所述至少两个数据块中的每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表。5.根据权利要求4所述的方法,其特征在于,所述按照预设方式将所述至少两个数据块中的每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表,包括 按照所述至少两个数据块中每个数据块的优先级从高到低的顺序,将所述每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表;或者, 按照随机选择的方式将所述至少两个数据块中的每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述同一个哈希子表。6.一种哈希值存储装置,其特征在于,所述装置包括 计算单元,用于计算文件中多个数据块的哈希值; 选择单元,用于选择所述计算单元计算的所述多个数据块中每个数据块的哈希值对应的哈希子表; 存储单元,用于将所述每个数据块的哈希值和所述数据块在所述文件中的位置信息存储到所述选择单元选择的所述对应的哈希子表中。7.根据权利要求6所述的装置,其特征在于,所述计算单元包括 获取子单元,用于从所述文件中获取与设置的并行处理数一致的多个数据块; 计算子单元,用于并行计算所述获取子单元获取的所述多个数据块的哈希值。8.根据权利要求6或7所述的装置,其特征在于,所述选择单元包括 比较子单元,用于对于每个数据块,比较所述数据块的哈希值与每个哈希子表存储的哈希值范围; 获得子单元,用于根据所...

【专利技术属性】
技术研发人员:覃祥菊周咸春
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1