汇编级内存复制标准库函数的生成方法及装置制造方法及图纸

技术编号:8271273 阅读:252 留言:0更新日期:2013-01-31 03:27
本发明专利技术实施例涉及一种汇编级内存复制标准库函数的生成方法及装置。包括:根据数据搬移要求、目标机器可用数据搬移指令集及其相应的地址对齐要求和当前可用的硬件资源信息,对所述目标机器可用数据搬移指令集进行第一功能筛选,生成满足搬移要求的搬移模式集合;根据每个搬移模式含有的数据搬移指令个数,对所述搬移模式集合进行第一性能筛选,得到最精简搬移模式;根据所述最精简搬移模式生成汇编级内存复制标准库函数,由此确定的汇编级内存复制标准库函数,搬移性能较优,可移植性较好。

【技术实现步骤摘要】
本专利技术涉及微处理器领域,尤其涉及一种汇编级内存复制库函数的生成方法及装置。
技术介绍
在数字信号处理领域,微处理器是面向数据密集型的应用,通常需要完成大量的实时计算。其中,内存复制标准库函数(memcpy标准库函数)是最常用的库函数之一,在微处理器进行多媒体编解码过程中会被频繁调用,属调用密集型函数,对其进行优化有助于提高微处理器数据处理性能。memcpy标准库函数目的是实现内存中任意规模的数据搬移。一般地,对于具有不同硬件特性的微处理器来说,标准库函数在高级语言层面上的实现代 码是一致的。然而,正是因为这种一致性,高级语言层面上的标准库函数很难做到针对特定目标体系结构的彻底优化。基于优化理论,对程序的汇编级进行优化,程序越底层,代码越容易调试,更能有效利用指令集。因此,现代微处理器为了提高处理性能,很多标准库函数都是以汇编的形式内嵌静态库中。memcpy标准库函数的典型实现算法是单字节数据搬移,即单字节从内存中读数,单字节写回内存。这种算法实现简单,当数据规模较小时,性能尚可。然而,当处理器的数据带宽大于8bits,且数据规模较大时,这种单字节的搬移方式,远没有发挥处理器的数据带宽,搬移性能极低。在大多数平台下,从内存对齐边界开始拷贝可以充分发挥处理器的数据带宽。编译器套装(GNU Compiler Collection, GCC)在对memcpy标准库函数实现优化时正是利用了这一点,将待搬移数据按照地址对齐与否分为三部分对齐边界之前的数据,对齐拷贝的数据,剩余数据。地址对齐部分采用多字节数据搬移指令实现搬移,不对齐部分仍采用单字节数据搬移。然而,GCC对于memcpy标准库函数的优化,在C语言级别上实现了相同的代码,而在汇编级实现优化需要针对不同的体系结构,结合各自的硬件特性分别实现,可移植性较差。Intel公司在汇编级对memcpy标准库函数进行优化时,结合其指令集中的16B对齐数据搬移指令,将需要搬移的数据细分成16种情况对齐搬移和15种不对齐搬移。其中,地址不对齐的数据通过移位、寄存器拼接等操作,从而使得待搬移数据全部归一化,均可用对齐数据搬移指令来完成数据搬移。然而,当数据规模较大,且地址不对齐时,移位等操作的代价也会对整体优化产生负面影响。
技术实现思路
本专利技术实施例提供了一种汇编级内存复制标准库函数的生成方法及装置,生成的汇编级memcpy标准库函数具有较优的搬移性能,并且可移植性较好。在第一方面,本专利技术实施例提供了一种汇编级memcpy标准库函数的生成方法,所述方法包括根据数据搬移要求、目标机器可用数据搬移指令集及其相应的地址对齐要求和当前可用的硬件资源信息,对所述目标机器可用数据搬移指令集进行第一功能筛选,生成满足搬移要求的搬移模式集合;根据每个搬移模式含有的数据搬移指令个数,对所述搬移模式集合进行第一性能筛选,得到最精简搬移模式;根据所述最精简搬移模式生成汇编级内存复制标准库函数。在第二方面,本专利技术实施例提供了又一种汇编级memcpy标准库函数的生成方法,所述方法包括将搬移任务分解为头部搬移任务、循环搬移任务和尾部搬移任务; 分别根据所述头部搬移任务、循环搬移任务、尾部搬移任务、目标机器可用数据搬移指令集及其相应的地址对齐要求和所述目标机器当前可用的硬件资源信息,对所述目标机器可用数据搬移指令集进行第一功能筛选,并且分别生成第一头部搬移模式集合、第一循环搬移模式集合和第一尾部搬移模式集合;根据每个搬移模式所含有的数据搬移指令个数,对所述第一头部搬移模式集合、第一循环搬移模式集合和第一尾部搬移模式集合分别进行第一性能筛选,分别生成第二头部搬移模式集合、第二循环搬移模式集合和第二尾部搬移模式集合;将所述第二头部搬移模式集合、第二循环搬移模式集合和第二尾部搬移模式集合中相应的各个元素进行有序组合得到组合搬移模式集合,根据所述组合搬移模式集合中各个元素含有的各条指令执行代价,对所述组合搬移模式集合进行第二性能筛选,得到满足数据搬移要求的执行代价最小的组合搬移模式;根据所述组合搬移模式生成汇编级内存复制标准库函数。在第三方面,本专利技术实施例提供了一种汇编级memcpy标准库函数的生成装置,所述装置包括第一功能筛选单元,用于根据数据搬移要求、目标机器可用数据搬移指令集及其相应的地址对齐要求和当前可用的硬件资源信息,对所述目标机器可用数据搬移指令集进行第一功能筛选,生成满足搬移要求的搬移模式集合;第一性能筛选单元,用于根据每个搬移模式含有的数据搬移指令个数,对所述搬移模式集合进行第一性能筛选,得到最精简搬移模式;生成单元,用于根据所述最精简搬移模式生成汇编级内存复制标准库函数。在第四方面,本专利技术实施例提供了又一种汇编级memcpy标准库函数的生成装置,所述装置包括分解单元,用于将搬移任务分解为头部搬移任务、循环搬移任务和尾部搬移任务;第一功能筛选单元,用于分别根据所述头部搬移任务、循环搬移任务、尾部搬移任务、目标机器可用数据搬移指令集及其相应的地址对齐要求和所述目标机器当前可用的硬件资源信息,对所述目标机器可用数据搬移指令集进行第一功能筛选,并且分别生成第一头部搬移模式集合、第一循环搬移模式集合和第一尾部搬移模式集合;第一性能筛选单元,用于根据每个搬移模式所含有的数据搬移指令个数,对所述第一头部搬移模式集合、第一循环搬移模式集合和第一尾部搬移模式集合分别进行第一性能筛选,分别生成第二头部搬移模式集合、第二循环搬移模式集合和第二尾部搬移模式集合;第二性能筛选单元,用于将所述第二头部搬移模式集合、第二循环搬移模式集合和第二尾部搬移模式集合中相应的各个元素进行有序组合得到组合搬移模式集合,根据所述组合搬移模式集合中各个元素含有的各条指令执行代价,对所述组合搬移模式集合进行第二性能筛选,得到满足数据搬移要求的执行代价最小的组合搬移模式;生成单元,用于根据所述组合搬移模式生成汇编级内存复制标准库函数。根据本专利技术实施例提供的汇编级memcpy标准库函数的生成方法及装置确定的汇编级memcpy标准库函数,搬移性能较优,可移植性较好。附图说明 图I是本专利技术实施例一提供的汇编级memcpy标准库函数的生成方法流程图;图2是本专利技术实施例一提供的数据规模为8的搬移模式汇编代码片段示意图;图3是本专利技术实施例二提供的汇编级memcpy标准库函数的生成方法流程图;图4是本专利技术实施例三提供的汇编级memcpy标准库函数的生成装置示意图;图5是本专利技术实施例四提供的汇编级memcpy标准库函数的生成装置示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,下面结合附图对本专利技术具体实施例作进一步的详细描述。memcpy标准库函数的典型实现算法是单字节的数据搬移,然而这种算法在数据规模较小时性能尚可,当数据规模较大时,实现代价很大,性能极低。因此,如何实现多字节的拷贝是众多memcpy标准库函数优化算法的设计重点。现代微处理器的指令集都提供了字节、半字、字寻址,一般都支持多字节的搬移指令,为了充分发挥处理器的数据带宽,我们在内存中进行数据搬移时,根据目标机器支持的指令集,每次对有效指令支持的字节数进行搬移。然而,当实现多字节数据搬移时,需要考虑数据地址的对齐问题,如4字节取数指令要求源数据内存地址必须为4字节对齐,否则本文档来自技高网
...

【技术保护点】
一种汇编级内存复制标准库函数的生成方法,其特征在于,所述方法包括:根据数据搬移要求、目标机器可用数据搬移指令集及其相应的地址对齐要求和当前可用的硬件资源信息,对所述目标机器可用数据搬移指令集进行第一功能筛选,生成满足搬移要求的搬移模式集合;根据每个搬移模式含有的数据搬移指令个数,对所述搬移模式集合进行第一性能筛选,得到最精简搬移模式;根据所述最精简搬移模式生成汇编级内存复制标准库函数。

【技术特征摘要】
1.一种汇编级内存复制标准库函数的生成方法,其特征在于,所述方法包括 根据数据搬移要求、目标机器可用数据搬移指令集及其相应的地址对齐要求和当前可用的硬件资源信息,对所述目标机器可用数据搬移指令集进行第一功能筛选,生成满足搬移要求的搬移模式集合; 根据每个搬移模式含有的数据搬移指令个数,对所述搬移模式集合进行第一性能筛选,得到最精简搬移模式; 根据所述最精简搬移模式生成汇编级内存复制标准库函数。2.如权利要求I所述的方法,其特征在于,对所述搬移模式集合进行第一性能筛选,若得到多个同样精简的搬移模式,取其中任意一个搬移模式作为所述最精简搬移模式。3.一种汇编级内存复制标准库函数的生成方法,其特征在于,所述方法包括 将搬移任务分解为头部搬移任务、循环搬移任务和尾部搬移任务; 根据所述头部搬移任务、循环搬移任务、尾部搬移任务、目标机器可用数据搬移指令集及其相应的地址对齐要求和所述目标机器当前可用的硬件资源信息,分别对所述目标机器可用数据搬移指令集进行第一功能筛选,并且分别生成第一头部搬移模式集合、第一循环搬移模式集合和第一尾部搬移模式集合; 根据每个搬移模式所含有的数据搬移指令个数,对所述第一头部搬移模式集合、第一循环搬移模式集合和第一尾部搬移模式集合分别进行第一性能筛选,分别生成第二头部搬移模式集合、第二循环搬移模式集合和第二尾部搬移模式集合; 将所述第二头部搬移模式集合、第二循环搬移模式集合和第二尾部搬移模式集合中相应的各个元素进行有序组合得到组合搬移模式集合,根据所述组合搬移模式集合中各个元素含有的各条指令执行代价,对所述组合搬移模式集合进行第二性能筛选,得到满足数据搬移要求的执行代价最小的组合搬移模式; 根据所述组合搬移模式生成汇编级内存复制标准库函数。4.如权利要求3所述的方法,其特征在于,对所述第一循环搬移模式集合进行所述第一性能筛选后生成第二循环搬移模式集合之后,按照循环次数展开进行第二功能筛选,更新所述第二循环搬移模式集合。5.一种汇编级内存复制标准库函数的生成装置,其特征在于,所述装置包括 第一功...

【专利技术属性】
技术研发人员:朱浩应欢王东辉洪缨彭楚
申请(专利权)人:中国科学院声学研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1