The invention discloses a method and device for matching line based on the data, the method comprises: matching the original source file compression block sequence of successive memory read in a dictionary, a dictionary update the data in the memory according to the matching compressed schedule; improved hashing sequence of 3 consecutive character dictionary memory, according to the the hash value of the pre sentence may match the string, matching character string can store the address to the address chain chain; at the same time values in the address, in turn from the dictionary storage and comparison value, the optimal matching result output. The above 3 steps are simultaneous, pipelined, and the data dependency of the pipelining is very small due to the fast read and hash computations.
【技术实现步骤摘要】
一种基于流水线的数据匹配方法和装置
本专利技术实施例涉及数据压缩
,尤其涉及一种基于流水线的数据匹配方法和装置。
技术介绍
目前,为了节省数据存储空间,减少存储介质需求,同时提高数据传输效率,数据压缩技术在物联网、数据库、云存储等领域有着广泛的应用。其中,Gzip压缩算法是目前应用最广泛的一种高效且开源压缩算法,例如,使用Gzip压缩算法在Web服务器上将网页进行压缩,可以提高访问响应速度。Gzip压缩算法具体包括两部分:LZ77算法和哈夫曼(Huffman)编码。其中哈夫曼编码不在本专利讨论范围之内。LZ77算法通过匹配替换将原始源文件进行去冗余,以达到压缩的目的。LZ77算法的软件实现方法是:先使用哈希算法,将可能匹配的字符串的地址构成链表;然后在匹配范围内(也被称为滑动窗口,大小为32768,32KB),将当前处理字符串与上述链表中字符串,不断迭代寻找最佳匹配;最后将匹配串替换来去冗余。目前LZ77算法软件实现时,会使用哈希算法构造链表;从文件头开始,为原始源文件中每3个连续字节(3Byte:24bit)计算得出一个15比特(15bit)哈希值(根据哈 ...
【技术保护点】
一种基于流水线的数据匹配方法,其特征在于,包括:随着匹配比较单元对文件进行匹配压缩操作,字典存储器将相应地循环从参与匹配压缩原始源文件中读入并更新内容,直至整个文件匹配压缩完毕,其中,字典存储器是一组随机存储器,存储着将要被匹配压缩的文件;哈希单元计算当前处理字符段的哈希值,其中,所述当前处理字符段指当前处理的1个字节(Byte)的字符及随后的2个字节(Byte)的字符,共3个字节(Byte)的字符;并以此哈希值为地址,将当前处理字符在字典存储器中的位置信息为内容,存储到的链头存储器中;根据上述地址中链头存储器中内容的情况,对链头存储器、回溯存储器和相关链头匹配先入先出存储 ...
【技术特征摘要】
1.一种基于流水线的数据匹配方法,其特征在于,包括:随着匹配比较单元对文件进行匹配压缩操作,字典存储器将相应地循环从参与匹配压缩原始源文件中读入并更新内容,直至整个文件匹配压缩完毕,其中,字典存储器是一组随机存储器,存储着将要被匹配压缩的文件;哈希单元计算当前处理字符段的哈希值,其中,所述当前处理字符段指当前处理的1个字节(Byte)的字符及随后的2个字节(Byte)的字符,共3个字节(Byte)的字符;并以此哈希值为地址,将当前处理字符在字典存储器中的位置信息为内容,存储到的链头存储器中;根据上述地址中链头存储器中内容的情况,对链头存储器、回溯存储器和相关链头匹配先入先出存储器进行维护;匹配比较单元从链头匹配先入先出存储器和回溯存储器中顺序取得可能匹配的字符串索引,并依次使用改进匹配比较方法取值比较,同时维护回溯存储器,直至匹配比较结束。2.根据权利要求1所述的方法,其特征在于,字典存储器是一组多块32千字节(32KB:8Byte*4K或4Byte*8K)的块随机存储器(blockRAM),参与匹配压缩原始源文件被顺序存储在字典存储器中,并且根据匹配压缩情况更新,每组字典存储器由多块随机存储器组成;参与匹配压缩原始源文件被顺序存储在字典存储器中,随着匹配压缩的进行,当某一块字典存储器中的内容完全脱离被匹配比较范围(32768,32K)时,其中的数据将被清空,随后填入新的后续的参与压缩匹配的数据;一组多块字典存储器轮流更新,直至匹配压缩完成。3.根据权利要求2所述的方法,其特征在于,所述哈希单元提供地址将所述当前处理字符在字典存储器中的位置信息存储在所述链头存储器中包括:哈希单元使用改进哈希算法计算当前处理字符段的哈希值,使用3字节(3Byte:24bit)长的字符串计算得到16位(bit)长的哈希值,可有效避免哈希值临近连续位的伪匹配;以上述哈希值为地址,将当前处理字符在字典存储器中的位置信息存入链头存储器;如果在所述链头存储器中,已经存储以所述哈希值为地址的旧位置信息,则使用新位置信息替代所述旧位置信息。4.根据权利要求3所述的方法,其特征在于,所述匹配比较单元获取所述链头存储器中的字符索引之前,所述方法还包括:所述哈希单元在使用新位置信息替代所述旧位置信息时,将所述新位置信息和所述旧位置信息拼接后,放入链头匹配先入先出存储器中;所述匹配比较单元在匹配比较开始时,从链头匹配先入先出存储器中取出所述新位置信息和所述旧位置信息拼接后的数据;计算旧位置信息和新位置信息间距离,若该距离已经大于匹配比较范围(32768,32K),则只使用新位置信息替代所述旧位置信息,不放入链头匹配先入先出存储器中。5.根据权利要求4所述的方法,其特征在于,所述哈希单元在使用新位置信息替代所述旧位置信息时,将所述新位置信息和所述旧位置信息拼接后,放入链头匹配先入先出存储器中之后,所述方法还包括:以新位置信息为索引地址,将旧位置信息存入到回溯存储器中,当与回溯存储器对应的某块字典存储中的内容完全脱离被匹配比较范围时,该回溯存储器中的数据将被清空。6.根据权利要求5所述的方法,其特征在于,所述匹配比较单元根据所述链头匹配先入先出存储器和回溯存储器中的数据进行匹配包括:所述匹配比较单元,从链头匹配先入先出存储器中读取出与链头可能匹配的地址对,并在使用改进比较方法进行匹配比较;通过从字典存储器取值、拼接,使每次匹配比较8个字节,匹配比较后输出匹配失败或匹配成功字节数;若匹配成功字节数为8,则继续匹配后8个字节,直至得到最长匹配长度为止。7.根据权利要求6所述的方法,其特征在于,所述改进匹配比较方法从链头匹配先入先出存储器中取得链头可能匹配对的地址对,并在使用改进比较方法进行匹配比较,同时以链头可能匹配对的后半部分为地址,在回溯存储器中取值;再以该值为地址在回溯存储器中取值,如此循环得到回溯存储器中所有可能匹配的地址;取值的同时使用改进比较方法进行匹配比较;所有匹配结束后,输出未匹配成功或匹配长度最优的匹配结果。8.根据权利要求7所述的方法,其特征在于,所述回溯存储器、字典存储器中的内容将随着匹配比较模块和哈希单元的工作清空和重置;当哈希单元计算完字典存储器某一块中所有的哈希值时,会对该块字典存储器设一个标志位;哈希单元对字典存储器三块顺序循环计算哈希值,当计算到字典存储器某一新块,先检查与其对应的标志位,若标志位已设,哈希单元暂停计算,直至标志位被清除后再开始计算;匹配比较模块,顺序进行比较匹配工作,当发现字典存储器某一块中的内容已经完全脱离被匹配比较范围,并且参与匹配压缩原始源文件尚未被处理结束时,则将该字典存储器以及相应的回溯存储器中的内容清空,并且将新的内容填入字典存储器中,然后将标志位清除。9.根据权利要求8所述的方法,其特征在于:所述链头存储器,是一块136千字节(136KB:17bit*64K)的块随机存储器(blockRAM);所述链头匹配先入先出存储器是一种双端口先入先出存储器,其深度和数据宽度,由字典存储器的块数决定;其中,所述链头匹配先入先出存储器深度至少...
【专利技术属性】
技术研发人员:董乾,刘勇,李冰,赵霞,王刚,
申请(专利权)人:东南大学,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。