一种LZ4无损压缩电路设计
一种LZ4无损压缩电路设计
作者:
刘 勇,郭建刚,方 震
作者单位
摘要:
为缓解存储系统中软件压缩算法对计算资源的大量占用,使用LZ4算法设计了一种无损压缩电路。提出了一种循环队列结构的滑动字典,结合散列表模块构建LZ4无损压缩电路,最后使用Calgary和Canterbury语料库,在Xilinx KC705 FPGA平台对电路进行验证并与软件压缩对比。结果表明所设计的LZ4无损压缩电路保持了软件压缩相同的压缩率的同时,在压缩效率上远超过软件压缩。
引言:
随着计算机和网络技术的飞速发展和用户的激增,互联网产生的数据量也显现爆发式增长的态势。如何提高存储器利用效率,存储不断产生的海量数据,成为存储系统领域的一大难题。自两位以色列研究者Ziv和Lempel在1977年提出了LZ77压缩算法 [1] 以来,各种基于字典匹配的LZ压缩算法的变体相继被提出,其中包括LZ78、LZW、LZO、LZSS等。其中,基于LZ77的变体被广泛用于文本和位图的无损压缩,其压缩编码的效率可以很大程度上逼近信源的信息熵值 [2] 。LZ4正是LZ77压缩算法面向处理速度进行优化所得的变体算法,其处理速度可达传统LZ77压缩算法的6倍以上 [3] ,目前已被广泛用于高吞吐量的存储系统 [4-5] 。LZ4压缩算法的速度优势在于建立字典的过程中,减少了计算散列值和更新散列表单元的次数,并且摘用直接编码的方式输出编码,减小了输出延迟 [6-7] 。但同样由于降低散列表更新次数,导致LZ4压缩算法的压缩率会高于其他变体压缩算法。
与此同时,现有的LZ4压缩算法基本基于x86架构计算机的软件实现,处理效率低。而且在存储系统的访问过程中,后台运行的压缩程序将会占用大量中心处理器(CPU)的运算资源,造成存储系统请求响应延迟上升,严重情状下甚至抵消LZ4压缩算法的速度优势。因此需要设计一种专用硬件电路实现LZ4无损压缩,以释放存储系统中的运算资源,提高系统实时性。
文章来源:《电子技术使用》杂志12月刊
,下载论文PDF
点