论文部分内容阅读
近几年来,随着科技的发展,计算机网络成为人们日常生活不可或缺的一部分。面对着海量的数据需要交互,传输和存储数据的要求就变的非常迫切。压缩后的数据会占用比原来数据小很多的存储空间,在传输的过程中也会占用较少的带宽并降低服务器的传输流量,从而进行快速的传输。因此将数据压缩后进行传输或存储,在用到数据时再对其进行解压缩就变得非常的有必要。传统意义上大多都是采用软件对数据进行压缩和解压缩操作的,但软件在对大数据进行压缩和解压缩操作时会占用较大的CPU资源。若采用硬件实现可降低CPU因处理压缩/解压缩时的资源占用率。而且现在FPGA芯片的快速发展使得其容量和在处理数据的速度上都有很大的提升,因此采用基于硬件的解压缩方法必然能提高解压缩速率,降低在浏览网页时的等待时间。针对于软件压缩和解压缩占用大量的CPU资源并且软件对于处理大数据的能力较差的问题,在对比分析国内外对于各种压缩算法研究的基础上,分析各种压缩方法的优劣,最终选定通用的实时无损压缩算法GZIP算法来实现服务器到客户端的数据处理。本文提出了一种基于FPGA实现的GZIP解压缩算法。所设计模块在实现数据重构的条件下,尽量的提高解压缩速率。GZIP压缩使用的是Deflate算法,解压缩使用Inflate算法。采用Verilog语言完成了GZIP解压缩硬件的设计。设计利用FPGA的并行处理数据的优势,加快解压缩的速率。通过增加FIFO模块来实现数据的流水线处理,并增加多个存储模块,来缓存大量的数据,并且在建立动态Huffman树的过程中利用多个RAM,充分利用FPGA的优势提高设计的并行性,加快动态树的建立,降低处理数据的等待时间。本文用Questasim进行功能仿真,测试文档选取大小不同且压缩方式不同的文件进行测试,仿真的结果用MD5工具对生成的报文摘要进行校验,得到的解压缩文件和未压缩之前的文件的报文摘要完全一致,证明了设计的可行性。在FPGA上进行验证,采用DMA软核实现数据在计算机和FPGA间的搬运工作,采用标准测试文件进行测试,解压缩单通道吞吐率可达600Mbps,并用MD5校验工具对生成的文件提取报文摘要,和未压缩前的文件的报文摘要进行比对完全一致,证明了硬件设计的正确性。验证结果表明所设计的GZIP解压缩模块可以实现对软硬件压缩的文件进行数据重构,并且对文件的解压缩速率比同期软件速率提高40%左右。为之后该算法在服务器上的硬件实现奠定了基础。