基于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
本文鏈接:http://www.malleg.cn/jixiegongchenglunwen/11587.html

