[发明专利]一种LZ77压缩算法硬件加速系统及加速方法无效
申请号: | 201310397198.7 | 申请日: | 2013-09-04 |
公开(公告)号: | CN103475375A | 公开(公告)日: | 2013-12-25 |
发明(设计)人: | 李冰;尚壮壮;董乾;王刚;赵霞;刘勇 | 申请(专利权)人: | 东南大学 |
主分类号: | H03M7/30 | 分类号: | H03M7/30 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 许方 |
地址: | 214135 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 lz77 压缩 算法 硬件加速 系统 加速 方法 | ||
技术领域
本发明涉及数据压缩技术,尤其涉及一种LZ77压缩算法硬件加速系统及加速方法。
背景技术
随着互联网技术、云计算技术的发展,越来越多的数据需要存储,而这些海量数据的存储成本是非常高的,为了缓解这个问题,通常在数据进行存储前会对数据进行压缩处理,经过压缩后的数据可以大幅度提高磁盘的有效容量,提高读写操作时的输入输出(I/O)有效带宽,从而有效的降低互联网数据中心的成本,提高应用层程序的执行速度。
当前,压缩技术可以简单的分为有损压缩和无损压缩,有损压缩多用于视频、音频等领域,无损压缩则具有通用性,可以运用到各个领域。经调研发现,无损压缩方法有基于字典模式的压缩方法和基于统计模式的压缩方法,基于字典模式的压缩方法最著名的是LZ77算法,该算法复杂度适中,易于实现。然而,经过研究发现,由于软件串行执行的特点,LZ77算法的优越性很难发挥出来,因此,有针对性的提出一种LZ77压缩算法硬件加速系统和方法可以很好的解决这个问题,为LZ77算法、LZ77算法的变型算法、利用LZ77算法原理的Gzip算法、LZO算法等广泛运用于大数据处理环境中提供解决方案。
发明内容
本发明所要解决的技术问题在于克服现有技术的不足,提供一种LZ77压缩算法硬件加速系统及加速方法。
本发明具体采用以下技术方案解决上述技术问题:本发明设计了一种LZ77压缩算法硬件加速系统,包括数据输入控制模块、数据缓存模块、LZ77压缩模块和数据输出控制模块,其中:
所述数据输入控制模块用于将控制接口传输过来的数据打包成8字节数据组,并传输至数据缓存模块;
所述数据缓存模块用于存储上述8字节数据组,并在接收到LZ77压缩模块发出的读请求时,为该8字节数据组加上标示字节,将得到的9个字节长度的数据以数据源的形式传输至LZ77压缩模块;
所述LZ77压缩模块用于对上述待压缩的数据源采用LZ77压缩方法压缩成LZ77数据包,并将LZ77数据包传输至数据输出控制模块;
所述数据输出控制模块用于将上述LZ77数据包以8字节组包的形式输出。
作为本发明的一种优化结构:所述数据缓存模块包括M个随机存取存储器,所述M个随机存取存储器的输入端共同连接数据输入控制模块的输出端,所述M个随机存取存储器的输出端共同连接LZ77压缩模块的输入端,每个随机存取存储器的宽度为8字节,其中,M为大于等于2的自然数。
本发明还设计了一种基于权利要求1所述的LZ77压缩算法硬件加速系统的加速方法,包括如下具体步骤:
步骤(1):所述数据输入控制模块将控制接口传输过来的数据打包成8字节数据组,并传输至数据缓存模块;
步骤(2):所述数据缓存模块用于存储上述8字节数据组,并在接收到LZ77压缩模块发出的读请求时,为该8字节数据组加上标示字节,将得到的9个字节长度的数据以数据源的形式传输至LZ77压缩模块;
步骤(3):所述LZ77压缩模块将接收到的待压缩数据源采用LZ77压缩方法压缩成LZ77数据包,并将LZ77数据包传输至数据输出控制模块;
步骤(4):所述数据输出控制模块将上述LZ77数据包以8字节组包的形式传输至接口,以便接口进行读取。
本发明还设计了一种基于权利要求2所述的LZ77压缩算法硬件加速系统的加速方法,包括如下具体步骤:
步骤(1):所述数据输入控制模块将控制接口传输过来的数据打包成8字节数据组,并传输至数据缓存模块;
步骤(2):所述数据缓存模块将上述8字节数据组交替缓存至M个随机存取存储器,当LZ77压缩模块向其发起读请求时,所述读请求同时发送到所有随机存取存储器,所述数据缓存模块为随机存取存储器中的8字节数据组加上标示字节,即向LZ77压缩模块提供9个字节长度的数据,其中,M为大于等于2的自然数;
步骤(3):所述LZ77压缩模块将接收到的9个字节长度的数据采用LZ77压缩方法压缩成LZ77数据包,并将LZ77数据包传输至数据输出控制模块;
步骤(4):所述数据输出控制模块将上述LZ77数据包以8字节组包的形式输出。
作为本发明的一种优化方法:所述步骤(3)还包括如下具体处理:
步骤(31):所述LZ77压缩模块对接收到的9个字节长度的数据计算Hash值;
步骤(32):所述LZ77压缩模块根据上述Hash值再次向数据缓存模块发出读请求,从数据缓存模块中读取9字符;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310397198.7/2.html,转载请声明来源钻瓜专利网。