[发明专利]汇编级内存复制标准库函数的生成方法及装置有效
申请号: | 201210408416.8 | 申请日: | 2012-10-24 |
公开(公告)号: | CN102902548A | 公开(公告)日: | 2013-01-30 |
发明(设计)人: | 朱浩;应欢;王东辉;洪缨;彭楚 | 申请(专利权)人: | 中国科学院声学研究所 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京亿腾知识产权代理事务所 11309 | 代理人: | 陈霁 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 汇编 内存 复制 标准 库函数 生成 方法 装置 | ||
技术领域
本发明涉及微处理器领域,尤其涉及一种汇编级内存复制库函数的生成方法及装置。
背景技术
在数字信号处理领域,微处理器是面向数据密集型的应用,通常需要完成大量的实时计算。其中,内存复制标准库函数(memcpy标准库函数)是最常用的库函数之一,在微处理器进行多媒体编解码过程中会被频繁调用,属调用密集型函数,对其进行优化有助于提高微处理器数据处理性能。memcpy标准库函数目的是实现内存中任意规模的数据搬移。一般地,对于具有不同硬件特性的微处理器来说,标准库函数在高级语言层面上的实现代码是一致的。然而,正是因为这种一致性,高级语言层面上的标准库函数很难做到针对特定目标体系结构的彻底优化。基于优化理论,对程序的汇编级进行优化,程序越底层,代码越容易调试,更能有效利用指令集。因此,现代微处理器为了提高处理性能,很多标准库函数都是以汇编的形式内嵌静态库中。
memcpy标准库函数的典型实现算法是单字节数据搬移,即单字节从内存中读数,单字节写回内存。这种算法实现简单,当数据规模较小时,性能尚可。然而,当处理器的数据带宽大于8bits,且数据规模较大时,这种单字节的搬移方式,远没有发挥处理器的数据带宽,搬移性能极低。在大多数平台下,从内存对齐边界开始拷贝可以充分发挥处理器的数据带宽。
编译器套装(GNU Compiler Collection,GCC)在对memcpy标准库函数实现优化时正是利用了这一点,将待搬移数据按照地址对齐与否分为三部分:对齐边界之前的数据,对齐拷贝的数据,剩余数据。地址对齐部分采用多字节数据搬移指令实现搬移,不对齐部分仍采用单字节数据搬移。然而,GCC对 于memcpy标准库函数的优化,在C语言级别上实现了相同的代码,而在汇编级实现优化需要针对不同的体系结构,结合各自的硬件特性分别实现,可移植性较差。
Intel公司在汇编级对memcpy标准库函数进行优化时,结合其指令集中的16B对齐数据搬移指令,将需要搬移的数据细分成16种情况:对齐搬移和15种不对齐搬移。其中,地址不对齐的数据通过移位、寄存器拼接等操作,从而使得待搬移数据全部归一化,均可用对齐数据搬移指令来完成数据搬移。然而,当数据规模较大,且地址不对齐时,移位等操作的代价也会对整体优化产生负面影响。
发明内容
本发明实施例提供了一种汇编级内存复制标准库函数的生成方法及装置,生成的汇编级memcpy标准库函数具有较优的搬移性能,并且可移植性较好。
在第一方面,本发明实施例提供了一种汇编级memcpy标准库函数的生成方法,所述方法包括:
根据数据搬移要求、目标机器可用数据搬移指令集及其相应的地址对齐要求和当前可用的硬件资源信息,对所述目标机器可用数据搬移指令集进行第一功能筛选,生成满足搬移要求的搬移模式集合;
根据每个搬移模式含有的数据搬移指令个数,对所述搬移模式集合进行第一性能筛选,得到最精简搬移模式;
根据所述最精简搬移模式生成汇编级内存复制标准库函数。
在第二方面,本发明实施例提供了又一种汇编级memcpy标准库函数的生成方法,所述方法包括:
将搬移任务分解为头部搬移任务、循环搬移任务和尾部搬移任务;
分别根据所述头部搬移任务、循环搬移任务、尾部搬移任务、目标机器 可用数据搬移指令集及其相应的地址对齐要求和所述目标机器当前可用的硬件资源信息,对所述目标机器可用数据搬移指令集进行第一功能筛选,并且分别生成第一头部搬移模式集合、第一循环搬移模式集合和第一尾部搬移模式集合;
根据每个搬移模式所含有的数据搬移指令个数,对所述第一头部搬移模式集合、第一循环搬移模式集合和第一尾部搬移模式集合分别进行第一性能筛选,分别生成第二头部搬移模式集合、第二循环搬移模式集合和第二尾部搬移模式集合;
将所述第二头部搬移模式集合、第二循环搬移模式集合和第二尾部搬移模式集合中相应的各个元素进行有序组合得到组合搬移模式集合,根据所述组合搬移模式集合中各个元素含有的各条指令执行代价,对所述组合搬移模式集合进行第二性能筛选,得到满足数据搬移要求的执行代价最小的组合搬移模式;
根据所述组合搬移模式生成汇编级内存复制标准库函数。
在第三方面,本发明实施例提供了一种汇编级memcpy标准库函数的生成装置,所述装置包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所,未经中国科学院声学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210408416.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种真菌类农副产品加工生产线
- 下一篇:一种海藻破壁装置