推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

Gzip压缩的硬件加速电路设计

更新时间:2019-12-25 03:34:39 大小:1M 上传用户:zhiyao6查看TA发布的资源 标签:Gzip压缩硬件加速电路设计 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

硬件无损压缩技术可以发挥专用电路的速度和功耗优势,被广泛应用于大数据计算以及通信领域.本文以GNUzip(Gzip)数据无损压缩技术为原型设计了一种硬件压缩电路.通过采用双Hash函数、并行匹配处理、面向硬件存储的LZ77压缩存储格式、高效数据拼接器等加速方法,发挥并行计算和流水线结构优势,提升压缩速率.该硬件压缩电路基于Verilog HDL设计,使用现场可编程门阵列(FPGA)进行测试和验证.测试数据表明:与软件压缩方式相比,该硬件压缩电路在获得适中压缩率(65.9%)的同时,其压缩速率得到显著提升,平均压缩速率达171Mb/s,满足网络通信、数据存储等实时压缩应用需求.


部分文件列表

文件名 大小
Gzip压缩的硬件加速电路设计.pdf 1M

部分页面预览

(完整内容请下载后查看)
3
Vol. 45 No. 3  
Mar. 2017  
第
2017  
期
电
子
ACTA ELECTRONICA SINICA  
学
报
3
年
月
Gzip  
压缩的硬件加速电路设计  
,
,
,
李 冰 王超凡 顾 巍 董 乾  
(
,
210096)  
东南大学集成电路学院 江苏南京  
:
,
.
摘
要
硬件无损压缩技术可以发挥专用电路的速度和功耗优势 被广泛应用于大数据计算以及通信领域 本  
GNUzip( Gzip)  
.
数据无损压缩技术为原型设计了一种硬件压缩电路 通过采用双  
Hash  
、
、
文以  
函数 并行匹配处理 面向  
LZ77  
、
,
,
.
硬件存储的  
压缩存储格式 高效数据拼接器等加速方法 发挥并行计算和流水线结构优势 提升压缩速率 该硬  
Verilog HDL  
,
( FPGA)  
.
:
件压缩电路基于  
设计 使用现场可编程门阵列  
进行测试和验证 测试数据表明 与软件压缩方式  
171Mb/s,  
满足  
,
( 65ꢀ 9% )  
,
,
相比 该硬件压缩电路在获得适中压缩率  
的同时 其压缩速率得到显著提升 平均压缩速率达  
、
网络通信 数据存储等实时压缩应用需求  
.
:
; Gzip; ; LZ77; FPGA  
硬件  
关键词  
中图分类号  
无损压缩  
:
TP391ꢀ 1; TN492  
:
A
:
0372-2112 ( 2017) 03-0540-06  
DOI: 10. 3969 /j. issn. 0372-2112. 2017. 03. 005  
文献标识码  
文章编号  
URL: http: / /www. ejournal. org. cn  
电子学报  
Hardware-Accelerated Circuit Design for Gzip Compression  
LI Bing,WANG Chao-fan,GU Wei,DONG Qian  
( School of Integrated Circuit,Southeast University,Nanjing,Jiangsu 210096,China)  
Abstract: The hardware implementation of lossless data compression is wildly used in big data computing and com-  
munication,since it combines the speed and power advantage of the dedicated circuit. This paper proposed a hardware com-  
pression circuit based on GNUzip( Gzip) lossless data compression algorithm. The dual Hash functions,parallel match pro-  
cessing,hardware storage oriented LZ77 compression data format and high-performance data adaptor were involved to accel-  
erate the compression speed with the advantages of parallel calculation and pipeline structure. The hardware compression cir-  
cuit,based on Verilog HDL,was tested and verified by field programmable gate array( FPGA) . The test data shows that,  
compared with software implementation,the compression speed of hardware circuit is improved significantly while the com-  
pression rate is 65ꢀ 9% . The average speed is up to 171Mb/s that can satisfy the real-time compression requests of network  
communication and data storage.  
Key words: lossless compression; Gzip; hardware; LZ77; FPGA  
研究[2,3] 清华大学和百度公司使用分布式随机存储器  
;
1
引言  
( RAM)  
,
FPGA,  
实现了高速多通  
构成字典 基于定制的  
[4]  
、
数据无损压缩技术可节约存储空间 降低数据传  
Gzip  
;
道的  
无损数据压缩  
微软公司和华盛顿大学合  
Hash  
输带宽需求[1] 且不影响数据重构质量 常以软件方式  
,
,
LZ77  
,
处理结构 取代了原有  
作设计了新型  
算法的  
Hash  
[5]  
.
,
,
实现 该方式配置灵活 易获得较好的压缩率 但存在资  
,
;
滑铁卢大  
的链表结构 有效提升了  
的处理效率  
、
、
,
源消耗多 功耗大 处理速率低等性能瓶颈 无法满足大  
.
Huffman  
,
学完成了动态  
编码的硬件实现等工作 进一步  
提升了压缩率性能[6]  
数据环境下的实时压缩处理需求  
.
是一种基于字典[7,8] 和熵编码[9] 的无损压缩  
,
基于硬件的数据无损压缩实现方式 可充分利用  
Gzip  
,
其并行计算和流水线的性能优势 以很小的压缩率损  
.
,
方式 本文以提高数据压缩速率为主要目标 兼顾硬件  
,
失为代价获得极高的处理效率 同时几乎不占用上位  
,
Hash  
、
、
资源消耗 使用双  
函数 并行匹配处理方法 面向  
、
.
机的运算 存储资源 因而被国内外院校和企业关注和  
LZ77  
、
压缩存储格式 高效数据拼接器等多  
硬件存储的  
: 2015-08-17;  
: 2016-01-15; :  
责任编辑 覃怀银  
收稿日期  
修回日期  
:
( No. 61571116)  
基金项目 国家自然科学基金  
541  
3
: Gzip  
第
期
李
冰
压缩的硬件加速电路设计  
Deflate  
,
Xilinx Vertix-6 ML605  
、
Huffman  
种提速方法 基于  
Gzip  
硬件平台实现  
算法第二级包括动态 静态  
编码处  
.
.
理 动态  
Huffman  
,
是一种基于频率统计的编码方式 其  
了
数据无损压缩 测试发现其平均压缩速率可达  
、
“
”
171Mb/s,  
频率统计 基于频率编码的 两遍 处理需求限制了流  
相较无损压缩软件的平均处理速率提升可达  
.
,
Huffman  
8
.
水线结构的使用 另外 动态  
编码过程中对存  
储资源需求大且利用率不高 本文以提升无损压缩速  
Huffman  
倍多  
.
2
Gzip  
数据无损压缩技术  
,
,
率为主要目标 兼顾资源消耗 选择使用静态  
Gzip  
Deflate  
是一种基于  
算法的两级无损压缩方  
.
实现第二级数据无损压缩的方式 以少量压缩率损失  
,
1( a)  
,
式 该两级处理流程如图  
所示 待压缩数据经第一  
,
.
为代价 获得硬件资源的优化和压缩速率的极大提高  
[6,9]  
LZ77  
,
、
Huff-  
级
man  
压缩后 再分别经过第二级的动态 静态  
Huffman  
,
如表  
1
静态  
编码根据预设编码表  
所
,
.
编码处理 最后选择压缩率较好的结果输出  
, LZ77  
( LEN、DIS、LIT)  
,
示 对  
压缩输出数据  
进行编码 并  
[7,8]  
LZ77  
,
通
是一种基于字典的数据无损压缩算法  
过使用索引替代重复出现的字符串达到压缩的目的  
1( b) ( Hash)  
函数被引入用来实  
Gzip  
. LZ77  
按
文件格式封装发送  
压缩输出数据的组织  
.
,
形式也是影响编码速率的关键因素之一  
1
Huffman  
表
静态  
编码树  
,
其流程如图  
现快速查找重复字符串 顺序计算每个字符串前 个字  
( byte) Hash Hash  
所示 哈希  
:
3
字符编号  
编码位数  
编码值  
,
、
,
0 ꢁ 143  
8
9
7
8
00110000 ꢁ 10111111  
节
的
值 根据  
值构造 维护链表 并沿  
144 ꢁ 255  
256 ꢁ 279  
280 ꢁ 287  
110010000 ꢁ 111111111  
0000000 ꢁ 0010111  
.
,
着链表顺序搜索匹配 若匹配完成时 未找到重复字符  
,
( LIT) ,  
串 则输出字符编码  
反之则输出由指回距离  
.
11000000 ꢁ 11000111  
( DIS) ( LEN)  
与匹配长度  
构成的编码  
3
Gzip  
数据无损压缩硬件加速方案  
2
针对第 节所述各种影响  
Gzip  
无损压缩速率的关  
,
4
,
键问题 本文相应使用 种加速方法 以达到数据无损  
.
压缩硬件加速的目的  
3. 1  
Hash  
LZ77  
双
函数提升  
匹配成功率  
,3byte  
Hash  
15  
使用  
函数构造链 表 时  
”
变 量与  
“
位
( bit) Hash  
“
”
值 多对一 的映射关系会导致 伪匹配 情  
,
.
2
况的出现 降低字符串匹配的成功率 本文通过使用  
Hash 3byte Hash  
的
,
值 当且  
.
种不同  
仅当所得  
“
函数计算字符串前  
Hash  
值的指向地址相同时维护链表 以此降  
”
,
.
低 伪匹配 出现概率 提高匹配成功率  
2
,
电路结构如图 所示 链表信息存储于链头存储器  
( Head Ram1、Head Ram2)  
( Prev Ram)  
和回溯存储器  
2 Hash  
ꢁ
ꢁ
ꢁ
. Hash  
,
中
计算模块 包含 个不同的  
函数计算逻  
,
Hash  
.
/
辑 可并行计算两路  
值 链表构造 维护模块根据  
Hash  
Head Ram1、Head Ram2  
两个  
两路  
值相应地从  
中获取  
值各自的指向地址 当所指向的地址相同时  
Head Ram1、Head Ram2 Prev Ram.  
ꢁ
ꢁ
Hash  
,
,
维护链表 更新  
和
ꢁ
ꢁ
ꢁ
,
Hash  
( Mat Ad-  
值都指向的相同地址  
同时 将两路  
ꢁ
LZ77  
,
压缩是一个循环迭代的过程 由于各个步骤  
,
;
Hash  
间数据的依赖性 使得并行计算难以开展 加之  
函
“
”
,
Hash  
数 多对一 的特征 不可避免地出现  
值相同而字  
“
”
.“ ”  
符串不同的 伪匹配 情况 伪匹配 导致不必要的匹  
LZ77  
.
压缩处理速率 此 外  
,
配比较工作将极大限制  
LZ77  
LZ77  
匹配处理的执行效率也是影响  
压缩处理速  
.
率的关键因素  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载