[發(fā)明專利]一種基于GZIP的壓縮硬件系統(tǒng)及其加速方法有效
| 申請?zhí)枺?/td> | 201210458643.1 | 申請日: | 2012-11-14 |
| 公開(公告)號: | CN102970043B | 公開(公告)日: | 2016-03-30 |
| 發(fā)明(設(shè)計)人: | 湯曉東;狄永清;李冰;李瑋 | 申請(專利權(quán))人: | 無錫芯響電子科技有限公司 |
| 主分類號: | H03M7/30 | 分類號: | H03M7/30 |
| 代理公司: | 南京經(jīng)緯專利商標(biāo)代理有限公司 32200 | 代理人: | 樓高潮 |
| 地址: | 214000 江蘇省無錫市新區(qū)*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 gzip 壓縮 硬件 系統(tǒng) 及其 加速 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及一種基于GZIP壓縮硬件系統(tǒng)實現(xiàn)與加速方法;屬于數(shù)據(jù)壓縮技術(shù)領(lǐng)域。
背景技術(shù)
隨著云計算技術(shù)的發(fā)展,海量數(shù)據(jù)存儲和傳輸越來越嚴(yán)峻。因此,數(shù)據(jù)無損壓縮技術(shù)得到廣泛的應(yīng)用以減少數(shù)據(jù)存儲空間、提升數(shù)據(jù)傳輸效率。GZIP,即GNUZIP壓縮算法是非常著名的無損壓縮算法,無專利保護(hù),復(fù)雜度適中,適合硬件平臺實現(xiàn)。
在傳統(tǒng)的數(shù)據(jù)壓縮領(lǐng)域中,基于軟件平臺的實現(xiàn)的方案得以廣泛的運用,然而基于軟件平臺的實現(xiàn)方法中,占用太多CPU,即CentralProcessingUnit以及內(nèi)存資源。
在本發(fā)明中,給出了一種全新的GZIP硬件實現(xiàn)結(jié)構(gòu)并提出了多種加速方案來提升整個系統(tǒng)性能,可以顯著的減少CPU以及內(nèi)存資源的消耗。高性能系統(tǒng)總線PCIE2.0作為壓縮卡與計算機(jī)之間進(jìn)行通信橋梁,DMA,即DirectMemoryAccess通過PCIE2.0接口把計算機(jī)內(nèi)存中的數(shù)據(jù)傳輸給GZIP壓縮內(nèi)核,在內(nèi)核壓縮完畢之后,DMA再將壓縮過的數(shù)據(jù)傳遞到就算計的內(nèi)存中,在數(shù)據(jù)傳遞和壓縮過程中無需CPU干預(yù)。
發(fā)明內(nèi)容
本發(fā)明目的是針對現(xiàn)有技術(shù)存在的缺陷提供一種可實現(xiàn)GZIP壓縮算法、做到軟件壓縮相兼容、提升GZIP壓縮的數(shù)據(jù)吞吐率,使得數(shù)據(jù)壓縮過程中無需CPU的干預(yù)的GZIP壓縮硬件系統(tǒng)實現(xiàn)與加速方法。
本發(fā)明為實現(xiàn)上述目的,采用如下技術(shù)方案:一種基于GZIP的壓縮硬件系統(tǒng),該系統(tǒng)包括:
一個輸入緩存單元,用于對輸入數(shù)據(jù)進(jìn)行緩存;
一個LZ77編碼單元,用于對輸入數(shù)據(jù)進(jìn)行LZ77編碼;
一個動態(tài)新字符/匹配長度Huffman編碼頻率統(tǒng)計控制單元,用于對LZ77編碼單元輸出的新字符以及匹配長度進(jìn)行統(tǒng)計;
一個動態(tài)指回距離Huffman編碼頻率統(tǒng)計控制單元,用于對LZ77編碼單元輸出的指回距離進(jìn)行統(tǒng)計;
一個動態(tài)新字符/匹配長度Huffman編碼單元,用于對LZ77編碼單元輸出的新字符以及匹配長度進(jìn)行動態(tài)Huffman編碼;
一個動態(tài)指回距離Huffman編碼單元,用于對LZ77編碼單元輸出的指回距離進(jìn)行動態(tài)Huffman編碼;
一個動態(tài)碼字長度Huffman編碼單元,用于對動態(tài)新字符/匹配長度Huffman樹的信息及對動態(tài)指回距離Huffman樹的信息進(jìn)行編碼;
一個靜態(tài)新字符/匹配長度Huffman編碼單元,用于對LZ77編碼單元輸出之后的新字符/匹配長度進(jìn)行靜態(tài)Huffman編碼;
一個靜態(tài)指回距離Huffman編碼單元,用于對LZ77編碼單元輸出之后的指回距離進(jìn)行靜態(tài)Huffman編碼;
一個數(shù)據(jù)打包單元,用于判斷采用直接存儲、靜態(tài)Huffman編碼以及動態(tài)Huffman編碼三種模式中的一種,并按照固定的格式進(jìn)行編碼輸出;
一個輸出緩存單元,用于緩存數(shù)據(jù)打包單元輸出的壓縮之后的數(shù)據(jù)。
優(yōu)選的,所述輸入緩存單元包括:
兩個數(shù)據(jù)塊緩存單元,用于存放待壓縮的原始數(shù)據(jù);
兩個數(shù)據(jù)選擇單元,用于控制數(shù)據(jù)塊緩存單元的讀寫控制權(quán)。
優(yōu)選的,所述LZ77編碼單元包括:
兩對Head/PrevHash表,用于對LZ77編碼單元中編碼字符串的快速匹配查找;
一個只讀存儲單元ROM,用于存放循環(huán)冗余校驗碼CRC32校驗計算時的常數(shù)表;
一個新字符/匹配長度緩存單元,用于存放LZ77編碼單元輸出之后的新字符或者是匹配長度;
一個指回距離緩存單元,用于存放LZ77編碼單元輸出之后的指回距離;
一個主控狀態(tài)機(jī)單元,用于對數(shù)據(jù)塊緩存單元中的數(shù)據(jù)進(jìn)行數(shù)據(jù)讀取。
優(yōu)選的,所述動態(tài)新字符/匹配長度Huffman編碼單元包括:
一個新字符/匹配長度頻率緩存單元,用于存放LZ77編碼單元輸出之后新字符以及匹配長度的頻率;
一個新字符/匹配長度父親節(jié)點緩存單元,用于存放新字符以及匹配長度Huffman樹中每一個節(jié)點的父親節(jié)點,其中根節(jié)點除外;
一個新字符/匹配長度深度緩存單元,用于存放新字符以及匹配長度Huffman樹中每一個節(jié)點在新字符以及匹配長度Huffman樹中的深度;
一個新字符/匹配長度最小堆緩存單元,用于連續(xù)存放新字符以及匹配長度Huffman樹中所有的節(jié)點;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于無錫芯響電子科技有限公司,未經(jīng)無錫芯響電子科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210458643.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
H03M 一般編碼、譯碼或代碼轉(zhuǎn)換
H03M7-00 把用給定序列的數(shù)字或給定數(shù)目的數(shù)字來表示信息的碼,轉(zhuǎn)換到用不同序列的數(shù)字或不同數(shù)目的數(shù)字來表示相同信息的碼
H03M7-02 .轉(zhuǎn)換到加權(quán)代碼或相反轉(zhuǎn)換,即對一數(shù)字的加權(quán)與該數(shù)字在信息組或代碼字中的位置有關(guān)
H03M7-14 .轉(zhuǎn)換到非加權(quán)代碼或相反轉(zhuǎn)換
H03M7-26 .轉(zhuǎn)換到隨機(jī)碼或相反轉(zhuǎn)換
H03M7-28 .可編程序結(jié)構(gòu),即代碼轉(zhuǎn)換器所包括的設(shè)備其算符是可變的,以調(diào)整轉(zhuǎn)換程序
H03M7-30 .壓縮





