基于PCI_Express接口的FPGA数据压缩芯片的设计及实现
摘 要
论文针对高速网络环境下数据的压缩存储问题,提出一种实用的解决方案,采用软硬件相结合的压缩存储方法,在不影响网络速度的前提下对数据进行实时的压缩存储。论文使用xxx公司自主研发的基于LZS技术的压缩芯片xxx和Xilinx公司FPGA芯片的PCI Express接口,实现了Host主机内存和压缩芯片间的DMA方式的数据交换。
网络和文件系统的数据存储需采用无损压缩的方式。这种方式可以减少存储成本,提高存储效率。字符内容压缩采用的算法LZ(Lempel-Ziv)和LZW(Lempel-Ziv-Welch)是从Huffman发展而来的,由xxx公司独有专利的LZS(Lempel-Ziv-Stac)算法基于LZ一系列压缩算法扩展,在网络存储市场已经成为主流的数据压缩算法。
论文基于Xilinx V5 FPGA芯片的PCI Express IP接口,将内存待处理数据通过PCI Express接口送至板卡上的压缩芯片xxx进行压缩或解压缩,同时将处理后的数据通过PCI Express接口送回至内存。
论文充分利用DMA方式,在主机软件对内存和FPGA硬件进行必要的管理和配置后,FPGA硬件主动连续读取内存数据,同时处理后的数据也连续写到主机内存中,软件在数据传输中无需过多干预,节省了CPU带宽,很好的提高了系统效率。
论文最后在完成系统架构设计和逻辑功能模块代码并经过FPGA设计流程后,实现了硬件板级的逻辑和系统调试,并进一步总结分析了方案设计的可改进点、FPGA设计流程以及与ASIC设计的异同点。
作为一张可以实现数据压缩、解压缩处理的PCI Express插卡,可应用于各类需要大量数据存储的服务器、数据库和NAS等网络存储设备上,实现快速、稳定和低成本的数据备份,满足了各网络存储厂商对数据备份的要求,有较高的商业价值。
关键词 :LZS, DMA, 描述符, PCI Express, FPGA设计
ABSTRACT
The paper provides a practical solution aiming to the issue of data reduction, compression and storage in high speed network environment. The solution uses the compression and storage with software and hardware combined. It could compress and storage data in real time, without the effect of network speed and bandwidth. The paper uses the xxx self-designed compression chip xxx, which is based on LZS technology,and the PCI Express interface of Xilinx FPGA chip to implement the data exchange with the DMA mechanism between the host memory and the compression chip.
The storage in file system and network need to use the method of lossless. This method could reduce storage cost and improve storage efficiency. The character content compression utilizes the basic LZ (Lempel-Ziv) and LZW (Lempel-Ziv-Welch) algorithm, which is developed from Huffman encoding. The LZS (Lempel-Ziv-Stac) algorithm, which is an unique patent owned by xxx and based on a series of extensive algorithm of LZ, has become the mainstream data compression algorithm.
The paper, which is based on PCI Express IP core in Xilinx V5 FPGA chip, transfer the pre-process data in host memory to compression chip xxx by PCI Express interface, at the meantime, send the post-process data, which is processed by compression or decompression, back to host memory still by PCI Express.
The paper implements the DMA mechanism. After the host software finish the necessary management and configuration to the host memory and FPGA hardware, FPGA hardware initiate successive pre-process data read requests to host memory, as well as post-process data write requests. The software need not involve much, which could save CPU bandwidth and improve the system efficiency.
After implementation of system architecture design and logic module RTL coding and passing FPGA design flow, the paper finishes logic and system debug and test in hardware board level and analyzes and concludes possible design improvements and the differences and similarities between FPGA design flow and ASIC design flow.
This is a PCI Express adding card, which could achieve data compression and decompression processing. It could be used on all kinds of network storage devices, such as data server, database and Network Attached Storages, to implement rapid, stable and low-cost data backup. It could meet the backup requirement of storage device manufactures and show high business value.
KEY WORDS: LZS, DMA, Descriptor, PCI Express, FPGA design
目 录
摘 要 2
ABSTRACT 3
目 录 5
图 7
表 7
英文缩写、符号清单与术语表 8
第1章 绪论 9
1.1 数据压缩存储的意义 9
1.2 数据压缩算法 9
1.3 数据压缩软硬件实现比较 10
1.4 硬件压缩现状 11
1.5 发展趋势 11
第2章 数据压缩综述 13
2.1 数据压缩概述 13
2.2 LZS压缩算法 13
2.3 LZS压缩芯片xxx xxx 16
2.4 本章小结 19
第3章 FPGA板卡功能设计 20
3.1 全局结构 20
3.2 FPGA技术特点 21
3.3 PCI Express 接口 21
3.3.1 接口特点 21
3.3.2 协议层次 23
3.3.3 接口数据包 24
3.4 时钟分配 25
3.5 DMA介绍 26
3.5.1 若干数据结构 27
3.5.2 DMA模块功能 28
3.5.2.1 PIM 28
3.5.2.2 POM 29
3.5.2.3 RRC 29
3.5.2.4 WRC 30
3.5.2.5 CC 31
3.5.2.6 CFG_REGS 32
3.5.2.7 QM 32
3.5.3 DMA机制 33
3.6 性能参数 41
3.7 本章小结 41
第4章 FPGA实现 42
4.1 FPGA芯片简介 42
4.2 FPGA资源使用 43
4.3 FPGA设计流程 45
4.4 FPGA调试 48
4.5 本章小结 48
第5章 设计总结 49
5.1 设计可改进点 49
5.2 FPGA设计与ASIC设计的异同 49
第6章 结语 51
参考文献 52
致谢 53
个人简历 54
图
图 2 1 LZS算法原理 15
图 2 2 LZS算法数据格式 16
图 2 3 xxx芯片内部结构图 18
图 2 4 xxx芯片的CRC校验位置图 19
图 2 5 xxx芯片应用结构图 19
图 2 5 FPGA硬宏 (IP核)设计流程 21
图 3 1 FPGA板卡结构图 23
图 3 2 PCI Express设备拓扑图 25
图 3 3 PCIE协议分层图 26
图 3 4 PCIE数据包结构图 26
图 3 5 PCIE TLP包结构图 27
图 3 6 PCIE DLLP包结构图 27
图 3 7 FPGA内部时钟分布图 28
图 3 8 DMA模块框图 29
图 3 9 DMA机制流程图 32
图 3 10 数据包的命令结构体 33
图 3 11 32位地址的Result Descriptor格式 33
图 3 12 64位地址的Result Descriptor格式 34
图 3 13 32位地址的Source和Destination Descriptor格式 34
图 3 14 64位地址的Source和Destination Descriptor格式 35
图 3 15 主机内存各数据结构关系图 36
图 3 16 DMA写请求仲裁结构图 37
图 3 17 DMA传输系统硬件框图 47
图 3 18 发周期状态机设计 49
图 4 1 FPGA内PCIE核结构图 51
图 4 2 XC5VLX30T开发板外形 52
图 4 3 XC5VLX30T开发板结构 52
图 4 4 视频压缩数据流图 53
图 4 4 FPGA设计流程图 56
图 4 3 逻辑仿真模块框图 57
表
表 3-1 Descriptor描述符域格式 34
表 3-2 Result Index Ring域格式 35
第1章 绪论
1.1 数据压缩存储的意义
随着企业用户数据呈现指数级增长,对于数据中心的标准要求也水涨船高,首当其冲的是现有的网络基础设施和存储系统不得不加速扩容的步伐。如若仅简单地复制原有的系统,单纯以增加硬件数量来获取更高的性能,该模式下的系统扩容远远不足以应对随之而来的信息挑战。在统筹评估整个系统的过程中,除性能价格比这一考核指标外,用户开始越来越重视性能能耗比这一参数。采用数据压缩技术,明显降低CPU负载,改善存储系统的性能,节省功耗,真正满足更高效,更环保,更绿色的数据中心新诉求,已然提上了企业信息系统优化的历史日程。
第6章 结语
此FPGA芯片和板卡实现了硬件测试,并成功在服务器平台上实现了数据压缩、解压等流程。从测试结论看,该芯片对小包的处理速度比较慢,大约为16Mbps,其主要原因是小包的command和descriptor等占用了较多的数据带宽。 基于此,在后续设计中可对小包进行专门的数据结构设计。
FPGA逻辑设计完成后,逻辑验证工程师搭建了VCS仿真环境,进行了较为精确的逻辑仿真,对代码测试覆盖率也作了大量的分析。
在系统调试阶段,主机系统是在Linux操作系统下,驱动程序和用户界面均采用了命令行的方式运行。在对比测试中,利用了各种测试文件反复进行压缩和解压缩等测试,其过程均是可逆操作。对压缩率的测试中,一般文件都在2~10倍的压缩率,少数在1~2倍之间。
在目前FPGA压缩板卡的设计基础上,从系统性能、产品尺寸、生产成本等产品商用的角度考虑,后续可以将压缩芯片和FPGA内的DMA逻辑等放在一个ASIC芯片内,并增加数据加密、Hash算法等一系列和网络存储、安全应用有关的数据处理算法模块,增强单一ASIC芯片的商用范围。
在论文设计过程中,我对LZS压缩算法以及数据备份存储等有了进一步的了解;在调用PCI Express IP核以及硬件板级调试中,加深了对PCI Express总线协议、Linux驱动程序开发及调试等的理解;在DMA controller逻辑设计过程中,对端点设备和主机之间的高速数据交换、内存管理、异常机制处理等有了新的理解和经验。从方案设计、逻辑代码实现到FPGA工程和板级调试,论文对FPGA设计流程进行了一些总结,并及时分析了和ASIC之间的异同点,这对今后从事FPGA或者ASIC设计都是一笔宝贵的经验财富。
本文编号:11587
本文链接:https://www.wllwen.com/jixiegongchenglunwen/11587.html