论文部分内容阅读
当今社会,在信息呈现出爆炸式增长,云计算的兴起,大数据时代的到来,新的工作负载不断增大,海量数据传输和存储的问题不断引起关注,如何能够高效的传输海量的数据,同时不对处理器造成过于沉重的负荷的问题亟待解决。当处理和传输海量数据的时候,必然会占用大量的内存和带宽,所以在数据传输和存储之前对数据进行有效的压缩将是非常必要的。GZIP作为一种适宜实现的压缩算法。该算法综合了字典模式LZ77算法(Abraham Lempel和Jacob Zib在1977年提出)和统计冗余的Huffman(David A.Huffman提出)两种算法,不但可以达到很高的压缩率,而且该算法已经开源,没有专利保护,适合硬件来实现,通过该算法高效的数据压缩率,能够显著减少存储数据所需要的空间,同时提升数据带宽效率。虽然GZIP压缩算法已经取得很好的压缩率,但是基于软件的GZIP压缩算法速率并不高,而且存在过多占用处理器资源的缺点,对于海量数据进行处理的时,长时间占用大量CPU资源,不能充分的发挥CPU的性能,且软件基于串行执行特性,速率较低,使其难以实现处理数据实时性的要求。本论文提出基于FPGA实现的GZIP压缩电路,利用FPGA低功耗,强大的并行计算能力等优势,大幅提高压缩速率,基于该硬件设计实现了多种用于加速的硬件电路,加速方案包括:修改字典存储器,高效的哈希算法和匹配方法等。针对所设计的电路,完成了在FPGA开发平台上的测试,运行频率125MHz,压缩单通道吞吐率可达400Mbps;同时采用卡尔加里语料库进行测试,相对比软件模型,压缩测试结果表明,本文所设计的电路在支持标准GZIP文件压缩格式的同时,尽管压缩率有所降低,但压缩速率提升10倍左右。本文提出的基于FPGA实现的压缩电路对于通用数据具有较好的数据压缩效果,同时拥有较高的吞吐量,可广泛用于需要进行实时数据压缩的云计算、数据通信、卫星遥感等领域。