BZIP2压缩算法硬件加速实现方法.pdf

上传人:小** 文档编号:1119208 上传时间:2018-04-01 格式:PDF 页数:10 大小:438.22KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910095596.7

申请日:

2009.01.22

公开号:

CN101478311A

公开日:

2009.07.08

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):H03M 7/30申请日:20090122授权公告日:20101020终止日期:20120122|||授权|||实质审查的生效|||公开

IPC分类号:

H03M7/30; G06F9/38

主分类号:

H03M7/30

申请人:

浙江大学

发明人:

陈天洲; 严力科; 胡 威; 王 罡; 冯德贵; 吴斌斌; 陈 度; 王勇刚; 刘敬伟

地址:

310027浙江省杭州市西湖区浙大路38号

优先权:

专利代理机构:

杭州求是专利事务所有限公司

代理人:

林怀禹

PDF下载: PDF下载
内容摘要

本发明公开了一种bzip2压缩算法硬件加速实现方法。本方法是利用硬件加速器实现在程序中占大量执行时间的前置变换和行程长度编码,以加速程序的压缩速度。有如下特点:首先,以硬件加速器输入输出缓存作为与通用计算系统的通信接口,并通过软件为硬件加速器准备输入数据,并整理读取输出数据,简化了硬件加速器的设计;其次,以硬件方式实现前置变换和行程长度编码,并采用全展开的2048位并行比较器和移位器,加速了程序的执行,加快了bzip2算法的数据压缩速度,有效提高程序的性能。

权利要求书

1、  一种bzip2压缩算法硬件加速实现方法,其特征在于:
1)软件对硬件加速器的输入输出进行管理:
硬件加速器以输入输出缓存作为与通用计算系统的通信接口;
软件直接访问硬件加速器的输入输出缓存,为硬件加速器准备输入数据,并整理读取输出数据:
①硬件加速器开始计算前,软件组织好硬件加速器的输入数据,写入到硬件加速器的输入缓存;
②硬件加速器计算完成后,软件将硬件加速器的输出数据从缓存中取走,写回到系统内存;
2)硬件加速器实现前置变换和行程长度编码:
硬件加速器包括本地存储、本地缓存、寄存器组、一个2048位并行比较器、一个2048位移位器、一个256-8编码器和一个行程长度编码器;
寄存器组包括当前字节寄存器、当前地址寄存器、输出地址寄存器、连续相同字节计数器、2048位的字符列表寄存器;
具体实现步骤如下:
①根据当前地址从输入缓存中读取内容到当前字节寄存器,当前地址加1;
②以当前字节寄存器内容和字符列表寄存器作为2048位并行比较器的输入,进行并行比较;
③以2048位并行比较器的输出作为256-8编码器的输入,进行编码;
I、当编码结果为00000000时,连续相同字节计数器加1,继续步骤①;
II、当编码结果不为00000000,并且连续相同字节计数器为0时,继续执行步骤④;
III、当编码结果不为00000000,并且连续相同字节计数器不为0时,继续执行步骤⑤;
④以2048位并行比较器的输出结果和字符列表寄存器作为2048位移位器的输入,以2048位并行比较器的输出结果中的一位对应字符列表寄存器中的一个字节,将2048位并行比较器的输出结果中‘1’所指向的字节前置到字符列表寄存器的第一个字节,将‘1’左边的‘0’所对应的字符列表寄存器中的字节向后移8位;继续执行步骤⑥;
⑤以连续相同字节计数器计数值作为行程长度编码器的输入,进行行程长度编码,然后继续执行步骤④;
⑥将256-8编码器的编码结果写回到本地存储中输出地址寄存器指向的空间;如果输入数据还没处理完,继续步骤①;
如果输入数据已经全部处理,硬件加速器挂起,通知软件取回结果数据。

说明书

bzip2压缩算法硬件加速实现方法
技术领域
本发明涉及软硬件协同设计、数据压缩技术领域、尤其涉及一种bzip2压缩算法硬件加速实现方法。
背景技术
随着新材料的应用和新技术的发展,VLSI技术取得长足进步,这为多核处理器(Chip Multi-Processor,CMP)的发展奠定了基础。CMP就是将多个计算内核集成在一个处理器芯片中,从而提高计算能力。按计算内核的对等与否,CMP可分为同构多核和异构多核。
在未来几年里,处理核的数目将会越来越多,但是,随着单个芯片内集成的处理核数目越来越多,增加处理核数目已经难以带来更大的性能提升,同时通用处理器也已逐渐难以满足融合应用需求,越来越多的多核处理器转向SoC架构,也就是异构多核架构。越来越多的研究机构开展了面向异构多核处理器的研究,这些研究包括了异构多核处理器体系的方方面面,如处理核结构的优化;异构多核处理器上的线程分配和迁移;以及针对视音频处理的CPU+DSP多核处理器结构研究等。并且一些商用处理器已经开始采用异构体系,或者针对特定的应用定制一些专用的加速器。
bzip2比传统的gzip或者ZIP的压缩效率更高,但是它的压缩速度较慢。从这点来说,它非常类似于最近出现的其它一些压缩算法。与RAR或者ZIP等其它不同的是,bzip2只是一个数据压缩工具,而不是归档工具,在这一点上它与gzip类似。程序本身不包含用于多个文件、加密或者文档切分的工具,相反按照UNIX的传统需要使用如tar或者Gnu PG这样的外部工具。
bzip2使用Burrows-Wheeler transform将重复出现的字符序列转换成同样字母的字符串,然后用move-to-front transform进行处理,最后使用哈夫曼编码进行压缩。在bzip2中所有的数据块都是大小一样的纯文本数据块,它们可以用命令行变量进行选择,然后用从π的十进制表示得到的一个任意位序列标识成压缩文本。
虽然bzip2的压缩效率较gzip或者zip高,但是其较慢的压缩速度限制了使用范围。随着VLSI技术的发展,芯片上晶体管数目的增多,可以为bzip2定制专用的加速器,加速其压缩过程。
发明内容
为了满足不断提高的计算性能的需求,通过定制专用的加速器完成bzip2算法的程序热点功能,提高bzip2算法的压缩速度,本发明的目的在于提供一种bzip2压缩算法硬件加速实现方法。
本发明解决技术问题所采用的技术方案是:
一种bzip2压缩算法硬件加速实现方法:
1)软件对硬件加速器的输入输出进行管理:
硬件加速器以输入输出缓存作为与通用计算系统的通信接口;
软件直接访问硬件加速器的输入输出缓存,为硬件加速器准备输入数据,并整理读取输出数据:
①硬件加速器开始计算前,软件组织好硬件加速器的输入数据,写入到硬件加速器的输入缓存;
②硬件加速器计算完成后,软件将硬件加速器的输出数据从缓存中取走,写回到系统内存;
2)硬件加速器实现前置变换和行程长度编码
硬件加速器主要包括寄存器组、一个2048位并行比较器、一个2048位移位器、一个256-8编码器和一个行程长度编码器;
寄存器组包括本地存储、本地缓存、当前字节寄存器、当前地址寄存器、输出地址寄存器、连续相同字节计数器、2048位的字符列表寄存器;
具体实现步骤如下:
①根据当前地址从输入缓存中读取内容到当前字节寄存器,当前地址加1;
②以当前字节寄存器内容和字符列表寄存器作为2048位并行比较器的输入,进行并行比较;
③以2048位并行比较器的输出作为256-8编码器的输入,进行编码;
I、当编码结果为00000000时,连续相同字节计数器加1,继续步骤①;
II、当编码结果不为00000000,并且连续相同字节计数器为0时,继续执行步骤④;
III、当编码结果不为00000000,并且连续相同字节计数器不为0时,继续执行步骤⑤;
④以2048位并行比较器的输出结果和字符列表寄存器作为2048位移位器的输入,以2048位并行比较器的输出结果中的一位对应字符列表寄存器中的一个字节,将2048位并行比较器的输出结果中‘1’所指向的字节前置到字符列表寄存器的第一个字节,将‘1’左边的‘0’所对应的字符列表寄存器中的字节向后移8位;继续执行步骤⑥;
⑤以连续相同字节计数器计数值作为行程长度编码器的输入,进行行程长度编码,然后继续执行步骤④;
⑥将256-8编码器的编码结果写回到本地存储中输出地址寄存器指向的空间;如果输入数据还没处理完,继续步骤①;
如果输入数据已经全部处理,硬件加速器挂起,通知软件取回结果数据。
本发明具有的有益效果是:
首先,以硬件加速器输入输出缓存作为与通用计算系统的通信接口,并通过软件为硬件加速器准备输入数据,并整理读取输出数据,简化了硬件加速器的设计;其次,以硬件方式实现在整个程序中占用时间最多的前置变换和行程长度编码,加速了程序的执行,加快了bzip2算法的数据压缩速度,有效提高程序的性能。
附图说明
图1是本发明的总体流程图。
图2是本发明硬件加速器的模块示意图。
具体实施方式
基于处理器和FPGA混合架构的硬件线程执行方法的具体实现流程如下:
一种bzip2压缩算法硬件加速实现方法,具体步骤如图1所示:
1)软件对加速器的输入输出进行管理
硬件加速器以输入输出缓存作为与通用计算系统的通信接口,通用计算系统指以传统的桌面计算机为代表的通用计算机。通用计算系统通过PCI-E总线访问硬件加速器的输入输出缓存,在本发明中,输入缓存和输出缓存分离,输入缓存称为本地缓存,用作缓存硬件加速器的输入数据,输出缓存称作本地存储,用作存储硬件加速器的计算结果。
软件通过PCI-E总线直接访问硬件加速器的输入输出缓存,为硬件加速器准备输入数据,并整理读取输出数据:
①硬件加速器开始计算前,软件在系统内存中组织好硬件加速器的输入数据,然后通过PCI-E将整理在系统内存中数据的传输到硬件加速器的本地缓存,然后通知硬件加速器开始计算;
②硬件加速器计算完成后,产生中断,通知软件将硬件加速器的输出数据从本地存储中取走,写回到系统内存。
2)硬件加速器实现前置变换和行程长度编码
硬件加速器的模块示意图如图2所示,包括本地存储、本地缓存、寄存器组、一个2048位并行比较器、一个2048位移位器、一个256-8编码器和一个行程长度编码器;
2048位并行比较器有两个输入:1个8位输入和一个2048位输入;输出结果为256位,每1位表示8位输入与2048位输入中的每8位的比较结果,相同则为‘1’,否则为‘0’。
2048位移位器也有两个输入:1个256位输入和一个2048位输入;输出结果为2048位,256位输入的每1位对于2048位输入中的8位,移位器将256位输入中‘1’所对应的2048位输入的字节前置到第一个字节,并将‘1’左边的‘0’所对应的2048位输入中的字节向后移8位,产生2048位的输出结果。
256-8编码器根据256位的输入中‘1’的位置,产生8位的输出结果,其数值为256为中‘1’的位置。
寄存器组包括8位的当前字节寄存器、16位的当前地址寄存器、16位的输出地址寄存器、16位的连续相同字节计数器、2048位的字符列表寄存器。当前地址寄存器、输出地址寄存器和连续相同字节计数器初始值为0,字符列表寄存器初始时从左到右按顺序存储值为0到256的字节。
具体实现步骤如下:
①根据当前地址从本地缓存中读取内容到当前字节寄存器,当前地址加1;
②以当前字节寄存器内容和字符列表寄存器作为2048位并行比较器的输入,进行并行比较;
③以2048位并行比较器的输出作为256-8编码器的输入,进行编码;
I、当编码结果为00000000时,连续相同字节计数器加1,继续步骤①;
II、当编码结果不为00000000,并且连续相同字节计数器为0时,继续执行步骤④;
III、当编码结果不为00000000,并且连续相同字节计数器不为0时,继续执行步骤⑤;
④以2048位并行比较器的输出结果和字符列表寄存器作为2048位移位器的输入,以2048位并行比较器的输出结果中的一位对应字符列表寄存器中的一个字节,将2048位并行比较器的输出结果中‘1’所指向的字节前置到字符列表寄存器的第一个字节,将‘1’左边的‘0’所对应的字符列表寄存器中的字节向后移8位;继续执行步骤⑥;
⑤以连续相同字节计数器计数值作为行程长度编码器的输入,进行行程长度编码,具体如下:
I、如果连续相同字节计数器末位为‘1’,在本地存储中输出地址寄存器指向空间写1,输入地址寄存器加1;
II、如果连续相同字节计数器末位为‘0’,在本地存储中输出地址寄存器指向空间写0,输入地址寄存器加1;
III、如果连续相同字节计数器值小于2,继续执行步骤④;否则,连续相同字节计数器减2并又移1位,继续执行步骤⑤;
⑥将256-8编码器的编码结果写回到本地存储中输出地址寄存器指向的空间,输出地址寄存器内容加1;如果输入数据还没处理完,继续步骤①;
如果输入数据已经全部处理,硬件加速器挂起,通知软件取回结果数据。

BZIP2压缩算法硬件加速实现方法.pdf_第1页
第1页 / 共10页
BZIP2压缩算法硬件加速实现方法.pdf_第2页
第2页 / 共10页
BZIP2压缩算法硬件加速实现方法.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《BZIP2压缩算法硬件加速实现方法.pdf》由会员分享,可在线阅读,更多相关《BZIP2压缩算法硬件加速实现方法.pdf(10页珍藏版)》请在专利查询网上搜索。

本发明公开了一种bzip2压缩算法硬件加速实现方法。本方法是利用硬件加速器实现在程序中占大量执行时间的前置变换和行程长度编码,以加速程序的压缩速度。有如下特点:首先,以硬件加速器输入输出缓存作为与通用计算系统的通信接口,并通过软件为硬件加速器准备输入数据,并整理读取输出数据,简化了硬件加速器的设计;其次,以硬件方式实现前置变换和行程长度编码,并采用全展开的2048位并行比较器和移位器,加速了程序的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 基本电子电路


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1