[发明专利]一种优化的memset标准库函数汇编代码生成方法有效
申请号: | 201210563969.0 | 申请日: | 2012-12-21 |
公开(公告)号: | CN102981886A | 公开(公告)日: | 2013-03-20 |
发明(设计)人: | 朱浩;应欢;王东辉;洪缨 | 申请(专利权)人: | 中国科学院声学研究所 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 北京亿腾知识产权代理事务所 11309 | 代理人: | 陈霁 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 优化 memset 标准 库函数 汇编 代码 生成 方法 | ||
技术领域
本发明涉及标准库函数汇编代码生成技术,尤其涉及一种优化的memset标准库函数汇编代码生成方法。
背景技术
数字信号处理任务通常需要完成大量的数据计算,如数字信号处理中常用的FIR(Finite Impulse Response,有限长单位冲激响应)滤波器和FFT(Fast Fourier Transformation,快速傅氏变换)算法,而数组的初始化工作一般由C标准中的memset标准库函数完成。在C11标准中,memset标准库函数定义为将某一特定大小的内存区域全部以特定单字节数据进行填充。由于内存的速度相对于微处理器来说要慢得多,而对于面向数据密集型应用的微处理器而言,用于数据初始化的memset标准库函数属调用密集型,对其进行优化很有意义。一般地,对于具有不同硬件特性的微处理器而言,标准库函数在高级语言层面上的实现是一致的。然而,正是因为这种一致性,高级语言层面上的标准库函数很难做到针对特定目标体系结构的彻底优化。从优化的时机出发,在汇编级对程序进行优化,程序越底层,代码越容易调度,更能有效利用指令集。因此,现代微处理器为了提高处理性能,很多标准库函数都是以汇编的形式内嵌静态库中。
上述所提及的memset标准库函数所做的操作是把某一特定内存块全部以特定单字节数据进行填充,其典型实现是单字节数据填充。这种算法实现简单,当待填充的内存块规模较小时,性能尚可。然而,当微处理器的数据带宽大于8比特,且待填充的内存块规模较大时,这种单字节数据的填充方式远没有发挥微处理器的数据带宽,性能较低。在大多数平台下,从内存对齐边界处开始对其实现数据填充可以充分发挥微处理器的数据带宽。
现有技术中的GCC(GNU Complier Collection)编译器在对memset标准库函数实现优化时正是利用了这一点,将待填充的内存块规模按照目标填充地址对齐与否分为三部分:对齐边界之前的内存块、对齐填充的内存块,对齐边界之后的内存块。其中,目标地址对齐的内存块采用多字节数据传输指令一次性填充多字节数据,不对齐部分仍采用单字节数据传输指令完成填充。GCC编译器对于memset标准库函数的优化在C语言级别上实现了相同的代码,然而,在汇编级实现优化需要针对不同的体系结构,结合各自的硬件特性分别实现,可移植性较差。对于其他自主研发的微处理器,现有的对于标准库函数汇编级的优化,大部分是根据目标处理器的硬件特性,在由相应编译器编译高级语言生成的汇编代码基础上,对其进行手工优化以获得当前微处理器上的较优性能。然而,这种对于标准库函数的优化方法,是基于编译器编译高级语言得到的汇编代码,冗余较多,优化不够彻底。
发明内容
本发明的目的是基于标准库函数的行为本质,提供一种优化的memset标准库函数汇编代码的生成方法。
为实现上述目的,本发明提供了一种优化的memset标准库函数汇编代码生成方法,该方法包括:
根据目标机器的硬件特性,确定待生成的优化的填充执行片段所具有的属性特征及规模;根据上述待生成的优化的填充执行片段的规模,构造集中跳转表,该集中跳转表由多条分支跳转语句构成,每条分支跳转语句旨在将执行路径引向相应的优化的填充执行片段;根据上述集中跳转表,基于目标机器可用的逻辑运算指令,对输入参数中的目标填充地址和填充规模按照上述待生成的优化的填充执行片段的属性特征进行分支判断,建立输入参数集到集中跳转表的映射关系;根据目标机器可用的数据传输指令集、上述待生成的优化的填充执行片段所具有的属性特征,即特定的填充要求信息,生成满足填充要求的所有填充模式构成的填充模式集合;根据目标机器的硬件特性,对上述填充模式集合进行性能筛选,得到具有最优填充性能的填充模式,由此生成优化的填充执行片段。
本发明实施例基于标准库函数的行为本质,设计了一种优化的memset标准库函数汇编代码生成方法,该方法生成的memset标准库函数汇编代码在执行时,能够根据输入参数,即填充要求信息,实现具有针对性优化地数据填充,且只需通过修改硬件特性自定义文件,可扩展到其他基于RISC(Reduced Instruction Set Computer,精简指令集计算机)的体系结构上,可移植性较好。
附图说明
通过以下结合附图以举例方式对本发明的实施方式进行详细描述后,本发明的其他特征、特点和优点将会更加明显。
图1为本发明实施例提供的一种优化的memset标准库函数汇编代码生成方法流程示意图;
图2为本发明实施例优化的填充执行片段生成的框图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所,未经中国科学院声学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210563969.0/2.html,转载请声明来源钻瓜专利网。