[发明专利]bzip2压缩算法硬件加速实现方法无效
申请号: | 200910095596.7 | 申请日: | 2009-01-22 |
公开(公告)号: | CN101478311A | 公开(公告)日: | 2009-07-08 |
发明(设计)人: | 陈天洲;严力科;胡威;王罡;冯德贵;吴斌斌;陈度;王勇刚;刘敬伟 | 申请(专利权)人: | 浙江大学 |
主分类号: | H03M7/30 | 分类号: | H03M7/30;G06F9/38 |
代理公司: | 杭州求是专利事务所有限公司 | 代理人: | 林怀禹 |
地址: | 310027浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 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位;继续执行步骤⑥;
⑤以连续相同字节计数器计数值作为行程长度编码器的输入,进行行程长度编码,然后继续执行步骤④;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910095596.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多天线蜂窝通信系统中多小区之间协作调度的方法
- 下一篇:一种电源插座