基于Nios II平台的实时压缩系统

作者: sunyzz
上传时间为: 2014-08-23 12:46 AM

在互联网基础上的物联网和云计算技术,使人们的生活更加智能化。然而,这些技术在发展的过程中却面临着海量数据的传输和存储等亟待解决的问题。因而,寻求一种合适的方案解决海量数据的传输和存储问题成为互联网技术和云计算技术持续发展的一项重要任务。经过调查和研究发现,目前解决此类问题的一种有效且可靠的技术方案是对海量数据进行压缩处理。然而,无论是互联网技术或云计算技术,它们对数据处理的实时性要求都特别高,寻找一种合适的压缩算法,在保证压缩率适中的情况下满足实时压缩效果则显得尤为重要。

LZO(Lempel-Ziv-Oberhumer)是一种被称为实时数据无损压缩的算法,该算法的平均压缩速率约为55MB/sec(2.6GHz主频),平均压缩率约为50%。虽然LZO压缩算法取得了适中的压缩率和实时的压缩速率的优点,但是在面对互联网和云计算海量数据处理时,如果采用软件压缩海量数据,LZO压缩算法的执行过程会占用大量的CPU资源,另外,由于软件串行执行的特点使得该算法的实时性不能充分发挥。为此,本文提出一种全新的硬件结构,利用硬件的并行性等特点使LZO压缩算法特性得以发挥,同时释放了算法执行过程中占用的CPU资源。通过进一步对LZO压缩算法进行研究,针对性的提出基于该硬件结构的加速方案,使得LZO压缩算法压缩速率和压缩率均有所提升。采用Altera公司的SOPC Builder工具将LZO压缩算法模块与Altera公司的相关IP(Intellectual Property)模块搭建成SOPC(System On Programmable Chip,Altera公司提出的一种概念),同时在IDE(Integrated Development Environment)平台上编写C语言,最终在Altera EP2C35 FPGA(Field Programmable Gate Array) DE2开发板上对LZO压缩算法模块及SOPC进行测试和验证。

设计思路

1、系统结构图

 

在该SOPC硬件结构中,内层虚线表示FPGA资源,虚线内的模块由相应的代码或硬件电路构成,外层虚线表示DE2开发板资源,开发板提供了相应的软硬件资源,图中:

1)PC机通过下载线将待压缩的数据传送至DE2开发板上的SDRAM,数据经压缩后再经下载线回传至PC机;

2)Nios II处理器负责与用户交互,对待压缩数据进行管理,控制整个SOPC的正常工作;

3)JTAG-UART用于设计过程中的软件和硬件调试;

4)DMA控制器用于高速数据传输,它将片外SDRAM中的待压缩数据传送到LZO压缩算法模块,将LZO压缩算法模块中被压缩后的数据传送到片外SDRAM中;

5)LZO压缩算法模块用于对用户传输过来的数据进行压缩,它与片外SRAM进行通讯;

6)LCD控制器用于控制LCD的显示,LCD可显示LZO压缩文件开始与结束,增加用户交互的可视性,例如显示待压缩文件的大小,压缩后的文件大小等;

7)PIO控制LED指示灯的亮与灭,LED灯可用于指示LZO压缩文件开始与结束,增加用户交互的可视性;

8)On-chip memory用于存储系统启动时的软硬件配置等信息;

9)SDRAM控制器用于控制SDRAM与系统数据的交换;

10)SDRAM用于存储指令和数据;

11)SRAM用于存储LZO压缩算法过程中产生的压缩信息,在硬件设计中扮演“字典”的角色,采用片外SRAM的原因是考虑到FPGA片内资源可能不够使用。

2、压缩算法模块图

一种LZO压缩算法的硬件结构。

 输入缓存模块:用于缓存DMA传输过来的待压缩数据,为高速缓存模块提供数据源用以进行压缩操作。

高速缓存模块:临时缓存待压缩数据,为LZSS压缩模块提供待压缩数据,初始化时提前写入一定量的数据。

LZSS模块:对待压缩数据进行压缩处理。

字典模块:存储压缩过程中产生的压缩信息,例如历史字符串的索引信息,这样便可为后续数据压缩提供历史字符串信息。

LZO编码模块:对LZSS压缩后的数据按照LZO编码格式进行编码,并将编码数据组包成固定长度的数据包,方便总线通讯。

输出缓存模块:缓存编码后的数据,为DMA读操作提供压缩后的数据源。

Avalon总线接口:按照Avalon总线规范对LZO压缩算法模块进行封装,为后续集成SOPC提供准备。

3、FPGA系统集成电路图

三、验证平台及结论

本文针对性的提出一种全新的LZO压缩算法硬件结构,并在该结构的基础上提出多种加速方案,使得LZO压缩算法压缩速率相比软件提升4.81倍,压缩率相比软件提升1.37%,同时LZO压缩算法模块FPGA综合频率约为134MHz,全部达到设计指标。本文所做的一些工作为LZO压缩算法应用于互联网技术和云计算技术中处理海量数据的传输和存储提供参考及可能。

视频

全部评论 ()

创建讨论帖子

登录 后参与评论
系统提示