一种多策略内存分段拷贝优化方法、装置及介质制造方法及图纸

技术编号:37135964 阅读:24 留言:0更新日期:2023-04-06 21:35
本发明专利技术提供一种多策略内存分段拷贝优化方法、装置及介质,能够提高拷贝性能。方法包括以下步骤:获取待拷贝数据,根据访存指令特性,判断源目地址对界属性,若目的地址非R字节对界,则使用标量拷贝指令处理至目的地址R字节对界;获取待拷贝数据的长度,并根据待拷贝数据的长度进行区分,针对各区间特性,采用不同优化手段,以实现分段多策略拷贝优化。以实现分段多策略拷贝优化。以实现分段多策略拷贝优化。

【技术实现步骤摘要】
一种多策略内存分段拷贝优化方法、装置及介质


[0001]本专利技术涉及一种多策略内存分段拷贝优化方法、装置及介质,属于字节拷贝


技术介绍

[0002]内存拷贝广泛应用于计算机数据处理。现阶段内存拷贝有多种方法,其中一种有代表性的是高位宽指令优先策略的memcpy函数优化方法,先使用单字节拷贝指令使得源/目的地址至少一个满足系统支持最高位宽指令的对界属性,另一个地址按照当前对界属性能匹配的最高字节长度(不大于系统最高位宽指令)对应指令进行拷贝,这样势必存在该地址使用单字节或两字节等固定字节且较小指令完成循环拷贝的情况。另一种有代表性的是16/64字节分段的内存加速拷贝方法,其中低于16字节采用单字节拷贝,介于16与64之间采用4字节,高于64字节采用4字节连续拷贝16次进行加速。以上研究更多的是考虑高位宽指令或简单分段模式,未充分利用待拷贝数据的长度范围与处理器支持的结构特性进行优化。
[0003]现有技术中,存在相关专利:一种memcpy函数的优化方法;专利申请号:201310408259.5;
[0004]一种加快内存拷贝速度的方法;专利申请号:CN201010133607.9。
[0005]但是,现有内存拷贝方法,在待拷贝数据的长度范围较广情况下,无法精准地针对不同数据段进行定制性拷贝:
[0006]1.由于待拷贝数据的长度不固定,并且目前内存拷贝方法未针对较广的长度范围进行充分分段,导致较大、较小的待拷贝数据的长度均使用固定策略;
[0007]2.在待拷贝数据的长度较大情形下,由于现有拷贝指令的位宽固定,无法进行高效拷贝;在待拷贝数据的长度较小情形下,当前仍采用单字节循环拷贝,导致循环与判断的开销占比较大;
[0008]3.当前拷贝方法对处理器支持的存储结构特性利用不充分。
[0009]现阶段内存拷贝优化手段较为简单且不够灵活,且未充分结合处理器特性,导致收益不高。

技术实现思路

[0010]本专利技术的目的在于克服现有技术中的不足,提供一种多策略内存分段拷贝优化方法、装置及介质,能够提高拷贝性能。
[0011]为达到上述目的,本专利技术是采用下述技术方案实现的:
[0012]第一方面,本专利技术提供了一种多策略内存分段拷贝优化方法,包括以下步骤:
[0013]步骤1:获取待拷贝数据,根据访存指令特性,判断源目地址对界属性,若目的地址非R字节对界,则使用标量拷贝指令处理至目的地址R字节对界后,再跳转到步骤2,若目的地址R字节对界,则直接跳转到步骤2;
[0014]步骤2:获取待拷贝数据的长度,并根据待拷贝数据的长度进行区分,针对各区间特性,采用不同优化手段,以实现分段多策略拷贝优化。
[0015]进一步的,本方法基于多级存储结构的处理器,包含核内(L1,L2级)Cache与核外(L3级)Cache。
[0016]进一步的,根据待拷贝数据的长度进行区分,针对各区间特性,采用不同优化手段,以实现分段多策略拷贝优化,包括:
[0017]步骤a:根据处理器特性以及标量访存指令处理字长,设置效率阈值A(A的取值等于X字节标量访存处理单元大小)。判断要拷贝的待拷贝数据的长度与效率阈值A的大小关系,若待拷贝数据的长度小于A,则跳转到步骤b,若大于等于A,则跳转到步骤c;
[0018]步骤b:针对待拷贝数据的长度len小于A的情况,采用跳转表实现:根据待拷贝数据的长度len进行偏移计算,并结合跳转表基址得到精准的跳转地址,在跳转到相应位置后,结合处理器访存指令完成len字节拷贝;
[0019]步骤c:根据处理器特性以及向量访存指令处理字长,设置效率阈值B(B的取值大小为Y字节向量访存指令处理单元的整数倍);判断要拷贝的待拷贝数据的长度与效率阈值B的大小关系,若待拷贝数据的长度小于B,则跳转到步骤d,使用标量访存指令进行内存拷贝;若待拷贝数据的长度大于等于B,则跳转到步骤e,使用向量访存指令进行拷贝;
[0020]步骤d:针对待拷贝数据的长度len介于A与B之间的情况,将目的地址属性处理至满足标量访存指令的自然对界属性,即低位宽对界属性,采用X字节的标量访存指令为处理单元进行循环拷贝。
[0021]步骤e:针对待拷贝数据的长度len大于B的情况,为实现单指令多数据流,将目的地址属性处理至满足向量访存指令的自然对界属性,即高位宽对界属性,引入Y字节向量访存指令为处理单元实现循环加速拷贝。
[0022]进一步的,步骤d中,采用X字节的标量访存指令为处理单元进行循环拷贝,包括:
[0023]d1.当待拷贝数据的长度大于M*X时,按X字节标量指令为处理单元进行循环拷贝,且每次循环展开M(M=4、8、16等)次;当不满足循环条件后,根据当前待拷贝数据的长度与X的关系,跳转到步骤d2或d3;
[0024]d2.当待拷贝数据的长度介于X与M*X之间,按X字节标量指令为处理单元进行循环拷贝;当不满足循环条件后,跳转到步骤d3;
[0025]d3.当待拷贝数据的长度小于X时,跳转到步骤b。
[0026]进一步的,步骤e中,引入Y字节向量访存指令为处理单元实现循环加速拷贝,包括:
[0027]e1.当数据长度大于N*Y时,按Y字节向量指令为处理单元进行循环读取,并按Y字节向量不访Cache指令进行循环存储,且循环体中展开N(N=4、8、16等)次;当不满足循环条件后,根据当前数据长度与Y的关系,酌情跳转到步骤e2或e3;
[0028]e2.当数据长度介于Y与N*Y之间,按Y字节向量指令为处理单元进行循环读取,并按Y字节向量不访Cache指令进行循环存储;当不满足循环条件后,跳转到步骤e3;
[0029]e3.当数据长度小于Y时,跳转到步骤d进行数据长度判断并选择跳转分支。
[0030]第二方面,本专利技术提供一种多策略内存分段拷贝优化装置,所述装置包括:
[0031]对界属性模块:用于获取待拷贝数据,根据访存指令特性,判断源目地址对界属
性,若目的地址非R字节对界,则使用标量拷贝指令处理至目的地址R字节对界;
[0032]分段优化模块:用于获取待拷贝数据的长度,并根据待拷贝数据的长度进行区分,针对各区间特性,采用不同优化手段,以实现分段多策略拷贝优化。
[0033]第三方面,本专利技术提供一种多策略内存分段拷贝优化装置,包括处理器及存储介质;
[0034]所述存储介质用于存储指令;
[0035]所述处理器用于根据所述指令进行操作以执行第一方面所述方法的步骤。
[0036]第四方面,本专利技术提供计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述方法的步骤。
[0037]与现有技术相比,本专利技术所达到的有益效果:
[0038]1、本专利技术根据待拷贝数据的长度进行划分,针对不同区间特性,以多形式拷贝策略代替固定策略,有效提高拷贝效率;
[0039]2、本专利技术在标量访存的基本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多策略内存分段拷贝优化方法,其特征在于,包括以下步骤:步骤1:获取待拷贝数据,根据访存指令特性,判断源目地址对界属性,若目的地址非R字节对界,则使用标量拷贝指令处理至目的地址R字节对界后,再跳转到步骤2,若目的地址R字节对界,则直接跳转到步骤2;步骤2:获取待拷贝数据的长度,并根据待拷贝数据的长度进行区分,针对各区间特性,采用不同优化手段,以实现分段多策略拷贝优化。2.根据权利要求1所述的多策略内存分段拷贝优化方法,其特征在于,根据待拷贝数据的长度进行区分,针对各区间特性,采用不同优化手段,以实现分段多策略拷贝优化,包括:步骤a:判断待拷贝数据的长度与效率阈值A的大小关系,若待拷贝数据的长度小于A,则跳转到步骤b,若大于等于A,则跳转到步骤c;步骤b:针对待拷贝数据的长度len小于A的情况,采用跳转表实现:根据待拷贝数据的长度len进行偏移计算,并结合跳转表基址得到精准的跳转地址,在跳转到相应位置后,结合处理器访存指令完成len字节拷贝;步骤c:判断待拷贝数据的长度与效率阈值B的大小关系,若待拷贝数据的长度小于B,则跳转到步骤d,使用标量访存指令进行内存拷贝;若待拷贝数据的长度大于等于B,则跳转到步骤e,使用向量访存指令进行拷贝;步骤d:针对待拷贝数据的长度len介于A与B之间的情况,将目的地址属性处理至满足标量访存指令的自然对界属性,即低位宽对界属性,采用X字节的标量访存指令为处理单元进行循环拷贝;步骤e:针对待拷贝数据的长度len大于B的情况,将目的地址属性处理至满足向量访存指令的自然对界属性,即高位宽对界属性,引入Y字节向量访存指令为处理单元实现循环加速拷贝。3.根据权利要求2所述的多策略内存分段拷贝优化方法,其特征在于,步骤d中,采用X字节的标量访存指令为处理单元进行循环拷贝,包括:d1.当待拷贝数据的长度大于M*X时,按X字节标量指令为处理单元进行循环拷贝,且每次循环展开M次...

【专利技术属性】
技术研发人员:黄亮明张静姜军蒋丽萍邓洁
申请(专利权)人:无锡先进技术研究院
类型:发明
国别省市:

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

1