发明名称 bzip2压缩算法硬件加速实现方法
摘要 本发明公开了一种bzip2压缩算法硬件加速实现方法。本方法是利用硬件加速器实现在程序中占大量执行时间的前置变换和行程长度编码,以加速程序的压缩速度。有如下特点:首先,以硬件加速器输入输出缓存作为与通用计算系统的通信接口,并通过软件为硬件加速器准备输入数据,并整理读取输出数据,简化了硬件加速器的设计;其次,以硬件方式实现前置变换和行程长度编码,并采用全展开的2048位并行比较器和移位器,加速了程序的执行,加快了bzip2算法的数据压缩速度,有效提高程序的性能。
申请公布号 CN101478311B 申请公布日期 2010.10.20
申请号 CN200910095596.7 申请日期 2009.01.22
申请人 浙江大学 发明人 陈天洲;严力科;胡威;王罡;冯德贵;吴斌斌;陈度;王勇刚;刘敬伟
分类号 H03M7/30(2006.01)I;G06F9/38(2006.01)I 主分类号 H03M7/30(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 林怀禹
主权项 一种bzip2压缩算法硬件加速实现方法,其特征在于:1)软件对硬件加速器的输入输出进行管理:硬件加速器以输入输出缓存作为与通用计算系统的通信接口;软件直接访问硬件加速器的输入输出缓存,为硬件加速器准备输入数据,并整理和读取输出数据:①硬件加速器开始计算前,软件组织好硬件加速器的输入数据,写入到硬件加速器的输入缓存;②硬件加速器计算完成后,软件将硬件加速器的输出数据从输出缓存中取走,写回到系统内存;2)硬件加速器实现前置变换和行程长度编码:输入缓存和输出缓存分离,输入缓存称为本地缓存,用作缓存硬件加速器的输入数据,输出缓存称作本地存储,用作存储硬件加速器的计算结果;硬件加速器包括本地存储、本地缓存、寄存器组、一个2048位并行比较器、一个2048位移位器、一个256-8编码器和一个行程长度编码器;寄存器组包括当前字节寄存器、当前地址寄存器、输出地址寄存器、连续相同字节计数器、2048位的字符列表寄存器;其中字符列表寄存器的初始时从左到右按顺序存储值为0到256的字节;具体实现步骤如下:①根据当前地址从输入缓存中读取内容到当前字节寄存器,当前地址加1;②以当前字节寄存器内容和字符列表寄存器作为2048位并行比较器的输入,按如下方式进行并行比较:2048位并行比较器有两个输入,8位的当前字节寄存器输入和2048位的字符列表寄存器输入;输出结果为256位,每1位表示8位输入与2048位输入中的每8位的比较结果,相同则为‘1’,否则为‘0’;③以2048位并行比较器的输出作为256-8编码器的输入,进行编码;I、当编码结果为00000000时,连续相同字节计数器加1,继续步骤①;II、当编码结果不为00000000,并且连续相同字节计数器为0时,继续执行步骤④;III、当编码结果不为00000000,并且连续相同字节计数器不为0时,继续执行步骤⑤;④以2048位并行比较器的输出结果和字符列表寄存器作为2048位移位器的输入,以2048位并行比较器的输出结果中的一位对应字符列表寄存器中的一个字节,将2048位并行比较器的输出结果中‘1’所指向的字节前置到字符列表寄存器的第一个字节,将‘1’左边的‘0’所对应的字符列表寄存器中的字节向后移8位;继续执行步骤⑥;⑤以连续相同字节计数器计数值作为行程长度编码器的输入,进行行程长度编码,然后继续执行步骤④;⑥将256-8编码器的编码结果写回到本地存储中输出地址寄存器指向的空间;如果输入数据还没处理完,继续步骤①;如果输入数据已经全部处理,硬件加速器挂起,通知软件取回结果数据。
地址 310027 浙江省杭州市西湖区浙大路38号