一种改进型lz4压缩算法的硬件实现系统的制作方法_3

文档序号:9455581阅读:来源:国知局
对地址,并且,该绝对地址 还能够表明字符与字符之间的相对位置关系。该模块中包含地址累加电路,使用来自滑动 字典模块提供的32bit地址head_addr来生成32bit绝对地址abs_addr_in ;
[0062] 地址转换模块,将来自绝对地址产生模块的32位绝对地址转换成适用于滑动字 典模块中的64KB字典寻址的16位相对地址,这里的地址转换模块是用于生成字典中各个 字符的相对存储地址,是写入字典的地址。该地址转换模块中包含地址减法电路,使用来自 滑动字典模块的32bit地址head_addr和来自主控模块的32bitabs_addr_out地址生成地 址范围在16bit以内的滑动字典读写地址relate_raddr和relate_waddr,供滑动字典使 用;
[0063] 滑动字典模块,接收来自外部的数据,将其依次存入内部环形存储器中,并且通过 主控模块提供的匹配进程状态信息,从字符串拼接模块中读取数据并按照地址自增顺序依 次存入内部环形存储器中,该模块工作过程中实时调整滑动字典中用于字典功能的连续存 储区域在环形存储器中的首地址和尾地址,并记录当前正在处理的字符地址,并同时接收 来自主控模块的读字典绝对地址经由地址转换模块转换而成的相对地址。滑动字典中包含 一个位宽32bit,深度32KB,总容量128KB的存储器,用于存储当前的64KB滑动字典以及紧 邻滑动字典的数据,用地址指针调度的方式实现滑动的功能,凡是属于滑动字典范围内的 字符串都会在散列表中有对应关系,每完成一段压缩编码后,主控模块使用m 〇ve_distanCe 信号来控制滑动字典的滑动距离,然后再启动一次新的匹配和编码过程;
[0064] 主控模块,用于协调各模块的工作,并读取各模块工作的状态信息和产生控制信 号,负责待匹配数据与字典数据之间的比对以及相应的压缩编码的产生。主控模块从散列 表模块、滑动字典模块、绝对地址产生模块以及字符串拼接模块中读取如图4所示的状态 信号,然后根据当前各模块电路的状态来控制压缩编码过程的进行,并输出针对其它电路 的控制信号。
[0065] 综上所述,本发明可实现一种基于字典匹配的快速压缩算法,该算法可以在相同 的计算机环境下以高于目前其他压缩算法的速度处理高带宽输入数据,并且保证了一定的 压缩率。在采用本发明所示的一种实施例中的硬件结构实现该改进型LZ4压缩算法时,可 以发挥出该压缩算法的最大性能。
[0066] 以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为 限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权 利要求书中记载的保护范围内。
【主权项】
1. 一种改进型LZ4压缩算法的硬件实现系统,其特征在于,通过硬件实现系统实现 待压缩文件的全范围逐字散列的LZ4压缩算法;所述硬件实现系统包括数据输入模块、字 符串拼接模块、滑动字典模块、绝对地址产生模块、地址转换模块、散列表模块以及主控模 块; 所述数据输入模块用于读取待压缩文件的数据块,并暂存在FIFO中,等待后级模块的 读取; 所述字符串拼接模块由两组移位寄存器构成;用于从FIFO中读取待压缩文件中的数 据,并将读入的字符与之前3个字符组合成一个新的4字节字符串对数据进行拼接,等待所 述散列表模块或所述主控模块的数据读取请求; 所述滑动字典模块包含用于存储当前的字典以及紧邻字典的数据的存储器;用于接收 所述字符串拼接模块拼接完成的数据,并将其依次存入所述存储器中更新滑动字典; 所述绝对地址产生模块包括地址累加电路,用于对文件中的每个字符产生独一无二的 32位绝对地址; 所述地址转换模块包含地址减法电路,用于将来自所述绝对地址产生模块产生的32 位绝对地址转换成适用于所述滑动字典模块中的滑动字典寻址的16位相对地址; 所述散列表模块包含一个用于存储散列表数据的存储器和一个用于计算散列地址的 逻辑运算电路;用于在更新过程中从所述字符串拼接模块中读取拼接好的4字节字符串, 并通过逻辑运算电路计算字符串的散列地址,将该4字节字符串对应的在数据块中的绝对 首地址存入存储器中散列地址对应的存储单元中; 所述主控模块用于接收所述字符串拼接模块的4字节字符串作为当前字符串,并将其 发送给散列表模块计算散列地址;读取散列表中对应散列地址中的内容,并根据散列表中 对应散列地址中的内容根据所述地址转换模块转换的相对地址读取滑动字典模块中的4 字节字符串,并与当前字符串比对,输出匹配信息与未匹配信息。2. 根据权利要求1所述的一种改进型LZ4压缩算法的硬件实现系统,其特征在于,所 述滑动字典模块包含一个位宽32bit,深度32KB,总容量128KB的存储器,用于存储当前的 64KB字典以及紧邻字典的数据,用地址指针调度的方式实现滑动的功能。3. 根据权利要求1所述的一种改进型LZ4压缩算法的硬件实现系统,其特征在于,所述 散列地址的计算过程为用32位二进制值乘以0~2 32之间的黄金分割系数,然后保留第31 位到第17位,得到15位散列地址。4. 根据权利要求1所述的一种改进型LZ4压缩算法的硬件实现系统,其特征在于,所述 通过硬件实现系统实现待压缩文件的全范围逐字散列的LZ4压缩算法包括以下步骤: 步骤1、初始化散列表和滑动字典,所有散列表存储单元内容全部初始化成〇,滑动字 典初始化首地址和尾地址重合; 步骤2、从待压缩文件中读入4字节字符串,计算该字符串散列地址,并将该字符串在 文件中的绝对首地址存入散列表中该字符串散列地址的对应单元;在读入过程中,将所述 字符串存入滑动字典中; 步骤3、从待压缩文件中读入一个后续字符,将读入的字符与之前3个字符组合成一个 新的4字节字符串并计算其散列地址;在读入过程中,将所述字符存入滑动字典中直至滑 动字典达到设定大小并不断进行更新; 步骤4、利用散列表查找滑动字典中是否存在新的4字节字符串的匹配字符串,如果有 匹配,则跳至步骤5,并保存当前字符串的散列映射关系;如果没有匹配,则返回步骤3,同 时计算匹配距离,且无匹配字符串长度加1并输出无匹配字符; 步骤5、从待压缩文件中读入一个后续字符,读入过程中将读入的字符与之前3个字符 组合成一个新的4字节字符串,计算其散列地址并将散列映射关系保存至散列表中;从滑 动字典中读出步骤3的匹配字符串的后续字符;将读入的字符与该后续字符作比较,如果 匹配,那么重复本步骤;否则计算匹配字符串长度,返回步骤4 ; 步骤6、将步骤4和步骤5得到的无匹配字符串长度、无匹配字符串、匹配字符串长度以 及匹配距离编码成压缩后的数据格式,输出到压缩目标文件中;同时,判断待压缩文件是否 结束,如果未结束,则返回步骤3 ;如果已结束,则结束压缩过程。5. 根据权利要求4所述的一种改进型LZ4压缩算法的硬件实现系统,其特征在于,所述 步骤3中滑动字典的设定大小为64KB。6. 根据权利要求4所述的一种改进型LZ4压缩算法的硬件实现系统,其特征在于,所述 步骤6中的编码:假设在扫描待处理区域字符的过程中,通过散列表找到了在滑动字典中 的匹配串,并且获得了匹配串的首地址,则该匹配串长度为N,用当前处理字符的地址减去 匹配串首地址得到有匹配字符串相对于滑动字典中的匹配串的偏移量0,用当前处理字符 的地址减去滑动字典尾地址即无匹配字符串长度M;如果M和N均小于等于15,则将M和N 拼接成一个8位编码,其中M和N各占用4位;如果M超过15,则增加一个8位编码的无匹 配串长度的附加字节来表示多出的计数值;如果N超过15,则增加一个有匹配串长度附加 字节来表示多出的计数值;然后将M个无匹配字符直接输出到编码中,最后输出16位的有 匹配字符串的偏移量0以及可选的无匹配串长度附加位。
【专利摘要】本发明公开了一种改进型LZ4压缩算法的硬件实现系统,提供了超过目前现有的LZ系列无损压缩算法的处理速度,非常适合于高带宽数据压缩场合。本发明的一种改进型LZ4压缩算法的实现方法采用全范围逐字散列的方法,改进了原始LZ4算法中,对匹配字符串内部不进行散列表录入的缺陷。本发明还公开了实现该算法的一种硬件实现系统,利用该硬件电路实现改进型LZ4压缩算法,可以发挥出该压缩算法的最大性能。压缩速度超过目前现有的LZ系列无损压缩算法,为在高带宽数据处理过程中使用LZ压缩算法提供了可能。
【IPC分类】H03M7/30
【公开号】CN105207678
【申请号】CN201510632922
【发明人】李冰, 顾巍, 王超凡, 董乾, 陈帅, 赵霞, 刘勇, 王刚
【申请人】东南大学
【公开日】2015年12月30日
【申请日】2015年9月29日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1